Commit 0e8acfa7 authored by darin@chromium.org's avatar darin@chromium.org

2009-01-13 Darin Fisher <darin@chromium.org>

        Reviewed by Eric Seidel.

        Landing portions of platform/chromium/, taken from here:
        http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/WebKit/WebCore/platform/chromium/

        * platform/chromium/ChromiumBridge.h: Added.
        * platform/chromium/ChromiumDataObject.cpp: Added.
        (WebCore::ChromiumDataObject::clear):
        (WebCore::ChromiumDataObject::hasData):
        * platform/chromium/ChromiumDataObject.h: Added.
        (WebCore::ChromiumDataObject::create):
        (WebCore::ChromiumDataObject::ChromiumDataObject):
        * platform/chromium/ClipboardChromium.cpp: Added.
        (WebCore::):
        (WebCore::clipboardTypeFromMIMEType):
        (WebCore::ClipboardChromium::ClipboardChromium):
        (WebCore::ClipboardChromium::create):
        (WebCore::ClipboardChromium::clearData):
        (WebCore::ClipboardChromium::clearAllData):
        (WebCore::ClipboardChromium::getData):
        (WebCore::ClipboardChromium::setData):
        (WebCore::ClipboardChromium::types):
        (WebCore::ClipboardChromium::setDragImage):
        (WebCore::ClipboardChromium::setDragImageElement):
        (WebCore::ClipboardChromium::createDragImage):
        (WebCore::imageToMarkup):
        (WebCore::getCachedImage):
        (WebCore::writeImageToDataObject):
        (WebCore::ClipboardChromium::declareAndWriteDragImage):
        (WebCore::ClipboardChromium::writeURL):
        (WebCore::ClipboardChromium::writeRange):
        (WebCore::ClipboardChromium::hasData):
        * platform/chromium/ClipboardChromium.h: Added.
        (WebCore::ClipboardChromium::~ClipboardChromium):
        (WebCore::ClipboardChromium::dataObject):
        * platform/chromium/ClipboardUtilitiesChromium.cpp: Added.
        (WebCore::replaceNewlinesWithWindowsStyleNewlines):
        (WebCore::replaceNBSPWithSpace):
        (WebCore::urlToMarkup):
        * platform/chromium/ClipboardUtilitiesChromium.h: Added.
        * platform/chromium/ContextMenuChromium.cpp: Added.
        (WebCore::ContextMenu::ContextMenu):
        (WebCore::ContextMenu::~ContextMenu):
        (WebCore::ContextMenu::itemCount):
        (WebCore::ContextMenu::insertItem):
        (WebCore::ContextMenu::appendItem):
        (WebCore::ContextMenu::itemWithAction):
        (WebCore::ContextMenu::itemAtIndex):
        (WebCore::ContextMenu::setPlatformDescription):
        (WebCore::ContextMenu::platformDescription):
        (WebCore::ContextMenu::releasePlatformDescription):
        * platform/chromium/ContextMenuItemChromium.cpp: Added.
        (WebCore::ContextMenuItem::ContextMenuItem):
        (WebCore::ContextMenuItem::~ContextMenuItem):
        (WebCore::ContextMenuItem::releasePlatformDescription):
        (WebCore::ContextMenuItem::type):
        (WebCore::ContextMenuItem::action):
        (WebCore::ContextMenuItem::title):
        (WebCore::ContextMenuItem::platformSubMenu):
        (WebCore::ContextMenuItem::setType):
        (WebCore::ContextMenuItem::setAction):
        (WebCore::ContextMenuItem::setTitle):
        (WebCore::ContextMenuItem::setSubMenu):
        (WebCore::ContextMenuItem::setChecked):
        (WebCore::ContextMenuItem::setEnabled):
        (WebCore::ContextMenuItem::enabled):
        * platform/chromium/CursorChromium.cpp: Added.
        (WebCore::Cursor::Cursor):
        (WebCore::Cursor::~Cursor):
        (WebCore::Cursor::operator=):
        (WebCore::pointerCursor):
        (WebCore::crossCursor):
        (WebCore::handCursor):
        (WebCore::iBeamCursor):
        (WebCore::waitCursor):
        (WebCore::helpCursor):
        (WebCore::eastResizeCursor):
        (WebCore::northResizeCursor):
        (WebCore::northEastResizeCursor):
        (WebCore::northWestResizeCursor):
        (WebCore::southResizeCursor):
        (WebCore::southEastResizeCursor):
        (WebCore::southWestResizeCursor):
        (WebCore::westResizeCursor):
        (WebCore::northSouthResizeCursor):
        (WebCore::eastWestResizeCursor):
        (WebCore::northEastSouthWestResizeCursor):
        (WebCore::northWestSouthEastResizeCursor):
        (WebCore::columnResizeCursor):
        (WebCore::rowResizeCursor):
        (WebCore::middlePanningCursor):
        (WebCore::eastPanningCursor):
        (WebCore::northPanningCursor):
        (WebCore::northEastPanningCursor):
        (WebCore::northWestPanningCursor):
        (WebCore::southPanningCursor):
        (WebCore::southEastPanningCursor):
        (WebCore::southWestPanningCursor):
        (WebCore::westPanningCursor):
        (WebCore::moveCursor):
        (WebCore::verticalTextCursor):
        (WebCore::cellCursor):
        (WebCore::contextMenuCursor):
        (WebCore::aliasCursor):
        (WebCore::progressCursor):
        (WebCore::noDropCursor):
        (WebCore::copyCursor):
        (WebCore::noneCursor):
        (WebCore::notAllowedCursor):
        (WebCore::zoomInCursor):
        (WebCore::zoomOutCursor):
        (WebCore::grabCursor):
        (WebCore::grabbingCursor):
        * platform/chromium/DragDataChromium.cpp: Added.
        (WebCore::containsHTML):
        (WebCore::DragData::createClipboard):
        (WebCore::DragData::containsURL):
        (WebCore::DragData::asURL):
        (WebCore::DragData::containsFiles):
        (WebCore::DragData::asFilenames):
        (WebCore::DragData::containsPlainText):
        (WebCore::DragData::asPlainText):
        (WebCore::DragData::containsColor):
        (WebCore::DragData::canSmartReplace):
        (WebCore::DragData::containsCompatibleContent):
        (WebCore::DragData::asFragment):
        (WebCore::DragData::asColor):
        * platform/chromium/EditorChromium.cpp: Added.
        (WebCore::Editor::newGeneralClipboard):
        * platform/chromium/FileChooserChromium.cpp: Added.
        (WebCore::FileChooser::basenameForWidth):
        * platform/chromium/FileSystemChromium.cpp: Added.
        (WebCore::deleteFile):
        (WebCore::deleteEmptyDirectory):
        (WebCore::getFileSize):
        (WebCore::getFileModificationTime):
        (WebCore::directoryName):
        (WebCore::pathByAppendingComponent):
        (WebCore::makeAllDirectories):
        (WebCore::fileExists):
        * platform/chromium/FileSystemChromiumLinux.cpp: Added.
        (WebCore::pathGetFileName):
        * platform/chromium/FileSystemChromiumMac.mm: Added.
        (WebCore::pathGetFileName):
        * platform/chromium/FileSystemChromiumWin.cpp: Added.
        (WebCore::pathGetFileName):
        * platform/chromium/FramelessScrollView.cpp: Added.
        (WebCore::FramelessScrollView::~FramelessScrollView):
        (WebCore::FramelessScrollView::invalidateScrollbarRect):
        (WebCore::FramelessScrollView::isActive):
        (WebCore::FramelessScrollView::invalidateRect):
        (WebCore::FramelessScrollView::hostWindow):
        (WebCore::FramelessScrollView::windowClipRect):
        (WebCore::FramelessScrollView::paintContents):
        (WebCore::FramelessScrollView::contentsResized):
        (WebCore::FramelessScrollView::visibleContentsResized):
        * platform/chromium/FramelessScrollView.h: Added.
        (WebCore::FramelessScrollView::FramelessScrollView):
        (WebCore::FramelessScrollView::client):
        (WebCore::FramelessScrollView::setClient):
        * platform/chromium/FramelessScrollViewClient.h: Added.
        * platform/chromium/ScrollbarThemeChromiumWin.cpp: Added.
        (WebCore::):
        (WebCore::ScrollbarThemeChromium::scrollbarThickness):
        (WebCore::ScrollbarThemeChromium::invalidateOnMouseEnterExit):
        (WebCore::ScrollbarThemeChromium::paintTrackPiece):
        (WebCore::ScrollbarThemeChromium::paintButton):
        (WebCore::ScrollbarThemeChromium::paintThumb):
        (WebCore::ScrollbarThemeChromium::getThemeState):
        (WebCore::ScrollbarThemeChromium::getThemeArrowState):
        (WebCore::ScrollbarThemeChromium::getClassicThemeState):
        * platform/chromium/SoundChromiumPosix.cpp: Added.
        (WebCore::systemBeep):
        * platform/chromium/SoundChromiumWin.cpp: Added.
        (WebCore::systemBeep):
        * platform/chromium/SystemTimeChromium.cpp: Added.
        (WebCore::currentTime):
        (WebCore::userIdleTime):
        * platform/chromium/WidgetChromium.cpp: Added.
        (WebCore::Widget::Widget):
        (WebCore::Widget::~Widget):
        (WebCore::Widget::show):
        (WebCore::Widget::hide):
        (WebCore::Widget::setCursor):
        (WebCore::Widget::paint):
        (WebCore::Widget::setFocus):
        (WebCore::Widget::setIsSelected):
        (WebCore::Widget::frameRect):
        (WebCore::Widget::setFrameRect):
        * platform/chromium/WindowsVersion.cpp: Added.
        (WebCore::isVistaOrNewer):
        * platform/chromium/WindowsVersion.h: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@39861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent a2c54e27
2009-01-13 Darin Fisher <darin@chromium.org>
Reviewed by Eric Seidel.
Landing portions of platform/chromium/, taken from here:
http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/WebKit/WebCore/platform/chromium/
* platform/chromium/ChromiumBridge.h: Added.
* platform/chromium/ChromiumDataObject.cpp: Added.
(WebCore::ChromiumDataObject::clear):
(WebCore::ChromiumDataObject::hasData):
* platform/chromium/ChromiumDataObject.h: Added.
(WebCore::ChromiumDataObject::create):
(WebCore::ChromiumDataObject::ChromiumDataObject):
* platform/chromium/ClipboardChromium.cpp: Added.
(WebCore::):
(WebCore::clipboardTypeFromMIMEType):
(WebCore::ClipboardChromium::ClipboardChromium):
(WebCore::ClipboardChromium::create):
(WebCore::ClipboardChromium::clearData):
(WebCore::ClipboardChromium::clearAllData):
(WebCore::ClipboardChromium::getData):
(WebCore::ClipboardChromium::setData):
(WebCore::ClipboardChromium::types):
(WebCore::ClipboardChromium::setDragImage):
(WebCore::ClipboardChromium::setDragImageElement):
(WebCore::ClipboardChromium::createDragImage):
(WebCore::imageToMarkup):
(WebCore::getCachedImage):
(WebCore::writeImageToDataObject):
(WebCore::ClipboardChromium::declareAndWriteDragImage):
(WebCore::ClipboardChromium::writeURL):
(WebCore::ClipboardChromium::writeRange):
(WebCore::ClipboardChromium::hasData):
* platform/chromium/ClipboardChromium.h: Added.
(WebCore::ClipboardChromium::~ClipboardChromium):
(WebCore::ClipboardChromium::dataObject):
* platform/chromium/ClipboardUtilitiesChromium.cpp: Added.
(WebCore::replaceNewlinesWithWindowsStyleNewlines):
(WebCore::replaceNBSPWithSpace):
(WebCore::urlToMarkup):
* platform/chromium/ClipboardUtilitiesChromium.h: Added.
* platform/chromium/ContextMenuChromium.cpp: Added.
(WebCore::ContextMenu::ContextMenu):
(WebCore::ContextMenu::~ContextMenu):
(WebCore::ContextMenu::itemCount):
(WebCore::ContextMenu::insertItem):
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::itemWithAction):
(WebCore::ContextMenu::itemAtIndex):
(WebCore::ContextMenu::setPlatformDescription):
(WebCore::ContextMenu::platformDescription):
(WebCore::ContextMenu::releasePlatformDescription):
* platform/chromium/ContextMenuItemChromium.cpp: Added.
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::~ContextMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::action):
(WebCore::ContextMenuItem::title):
(WebCore::ContextMenuItem::platformSubMenu):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::setTitle):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::setEnabled):
(WebCore::ContextMenuItem::enabled):
* platform/chromium/CursorChromium.cpp: Added.
(WebCore::Cursor::Cursor):
(WebCore::Cursor::~Cursor):
(WebCore::Cursor::operator=):
(WebCore::pointerCursor):
(WebCore::crossCursor):
(WebCore::handCursor):
(WebCore::iBeamCursor):
(WebCore::waitCursor):
(WebCore::helpCursor):
(WebCore::eastResizeCursor):
(WebCore::northResizeCursor):
(WebCore::northEastResizeCursor):
(WebCore::northWestResizeCursor):
(WebCore::southResizeCursor):
(WebCore::southEastResizeCursor):
(WebCore::southWestResizeCursor):
(WebCore::westResizeCursor):
(WebCore::northSouthResizeCursor):
(WebCore::eastWestResizeCursor):
(WebCore::northEastSouthWestResizeCursor):
(WebCore::northWestSouthEastResizeCursor):
(WebCore::columnResizeCursor):
(WebCore::rowResizeCursor):
(WebCore::middlePanningCursor):
(WebCore::eastPanningCursor):
(WebCore::northPanningCursor):
(WebCore::northEastPanningCursor):
(WebCore::northWestPanningCursor):
(WebCore::southPanningCursor):
(WebCore::southEastPanningCursor):
(WebCore::southWestPanningCursor):
(WebCore::westPanningCursor):
(WebCore::moveCursor):
(WebCore::verticalTextCursor):
(WebCore::cellCursor):
(WebCore::contextMenuCursor):
(WebCore::aliasCursor):
(WebCore::progressCursor):
(WebCore::noDropCursor):
(WebCore::copyCursor):
(WebCore::noneCursor):
(WebCore::notAllowedCursor):
(WebCore::zoomInCursor):
(WebCore::zoomOutCursor):
(WebCore::grabCursor):
(WebCore::grabbingCursor):
* platform/chromium/DragDataChromium.cpp: Added.
(WebCore::containsHTML):
(WebCore::DragData::createClipboard):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
(WebCore::DragData::containsFiles):
(WebCore::DragData::asFilenames):
(WebCore::DragData::containsPlainText):
(WebCore::DragData::asPlainText):
(WebCore::DragData::containsColor):
(WebCore::DragData::canSmartReplace):
(WebCore::DragData::containsCompatibleContent):
(WebCore::DragData::asFragment):
(WebCore::DragData::asColor):
* platform/chromium/EditorChromium.cpp: Added.
(WebCore::Editor::newGeneralClipboard):
* platform/chromium/FileChooserChromium.cpp: Added.
(WebCore::FileChooser::basenameForWidth):
* platform/chromium/FileSystemChromium.cpp: Added.
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
(WebCore::getFileSize):
(WebCore::getFileModificationTime):
(WebCore::directoryName):
(WebCore::pathByAppendingComponent):
(WebCore::makeAllDirectories):
(WebCore::fileExists):
* platform/chromium/FileSystemChromiumLinux.cpp: Added.
(WebCore::pathGetFileName):
* platform/chromium/FileSystemChromiumMac.mm: Added.
(WebCore::pathGetFileName):
* platform/chromium/FileSystemChromiumWin.cpp: Added.
(WebCore::pathGetFileName):
* platform/chromium/FramelessScrollView.cpp: Added.
(WebCore::FramelessScrollView::~FramelessScrollView):
(WebCore::FramelessScrollView::invalidateScrollbarRect):
(WebCore::FramelessScrollView::isActive):
(WebCore::FramelessScrollView::invalidateRect):
(WebCore::FramelessScrollView::hostWindow):
(WebCore::FramelessScrollView::windowClipRect):
(WebCore::FramelessScrollView::paintContents):
(WebCore::FramelessScrollView::contentsResized):
(WebCore::FramelessScrollView::visibleContentsResized):
* platform/chromium/FramelessScrollView.h: Added.
(WebCore::FramelessScrollView::FramelessScrollView):
(WebCore::FramelessScrollView::client):
(WebCore::FramelessScrollView::setClient):
* platform/chromium/FramelessScrollViewClient.h: Added.
* platform/chromium/ScrollbarThemeChromiumWin.cpp: Added.
(WebCore::):
(WebCore::ScrollbarThemeChromium::scrollbarThickness):
(WebCore::ScrollbarThemeChromium::invalidateOnMouseEnterExit):
(WebCore::ScrollbarThemeChromium::paintTrackPiece):
(WebCore::ScrollbarThemeChromium::paintButton):
(WebCore::ScrollbarThemeChromium::paintThumb):
(WebCore::ScrollbarThemeChromium::getThemeState):
(WebCore::ScrollbarThemeChromium::getThemeArrowState):
(WebCore::ScrollbarThemeChromium::getClassicThemeState):
* platform/chromium/SoundChromiumPosix.cpp: Added.
(WebCore::systemBeep):
* platform/chromium/SoundChromiumWin.cpp: Added.
(WebCore::systemBeep):
* platform/chromium/SystemTimeChromium.cpp: Added.
(WebCore::currentTime):
(WebCore::userIdleTime):
* platform/chromium/WidgetChromium.cpp: Added.
(WebCore::Widget::Widget):
(WebCore::Widget::~Widget):
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::setCursor):
(WebCore::Widget::paint):
(WebCore::Widget::setFocus):
(WebCore::Widget::setIsSelected):
(WebCore::Widget::frameRect):
(WebCore::Widget::setFrameRect):
* platform/chromium/WindowsVersion.cpp: Added.
(WebCore::isVistaOrNewer):
* platform/chromium/WindowsVersion.h: Added.
2009-01-13 Tor Arne Vestbø <tavestbo@trolltech.com>
Reviewed by Simon Hausmann.
/*
* Copyright (c) 2008, 2009, Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef ChromiumBridge_h
#define ChromiumBridge_h
#include "LinkHash.h"
#include "PassRefPtr.h"
#include "PasteboardPrivate.h"
class NativeImageSkia;
typedef struct NPObject NPObject;
typedef struct _NPP NPP_t;
typedef NPP_t* NPP;
#if PLATFORM(WIN_OS)
typedef struct HFONT__* HFONT;
#endif
namespace WebCore {
class Color;
class Cursor;
class Document;
class Frame;
class GraphicsContext;
class Image;
class IntRect;
class KURL;
class String;
class Widget;
struct PluginInfo;
// An interface to the embedding layer, which has the ability to answer
// questions about the system and so on...
class ChromiumBridge {
public:
// Clipboard ----------------------------------------------------------
static bool clipboardIsFormatAvailable(PasteboardPrivate::ClipboardFormat);
static String clipboardReadPlainText();
static void clipboardReadHTML(String*, KURL*);
static void clipboardWriteSelection(const String&, const KURL&, const String&, bool);
static void clipboardWriteURL(const KURL&, const String&);
static void clipboardWriteImage(const NativeImageSkia*, const KURL&, const String&);
// Cookies ------------------------------------------------------------
static void setCookies(const KURL& url, const KURL& policyURL, const String& value);
static String cookies(const KURL& url, const KURL& policyURL);
// DNS ----------------------------------------------------------------
static void prefetchDNS(const String& hostname);
// Font ---------------------------------------------------------------
#if PLATFORM(WIN_OS)
static bool ensureFontLoaded(HFONT font);
#endif
// Forms --------------------------------------------------------------
static void notifyFormStateChanged(const Document*);
// JavaScript ---------------------------------------------------------
static void notifyJSOutOfMemory(Frame*);
// Language -----------------------------------------------------------
static String computedDefaultLanguage();
// LayoutTestMode -----------------------------------------------------
static bool layoutTestMode();
// MimeType -----------------------------------------------------------
static bool isSupportedImageMIMEType(const char* mimeType);
static bool isSupportedJavascriptMIMEType(const char* mimeType);
static bool isSupportedNonImageMIMEType(const char* mimeType);
static bool matchesMIMEType(const String& pattern, const String& type);
static String mimeTypeForExtension(const String& ext);
static String mimeTypeFromFile(const String& filePath);
static String preferredExtensionForMIMEType(const String& mimeType);
// Plugin -------------------------------------------------------------
static bool plugins(bool refresh, Vector<PluginInfo*>*);
static NPObject* pluginScriptableObject(Widget*);
static bool popupsAllowed(NPP);
// Protocol -----------------------------------------------------------
static String uiResourceProtocol();
// Resources ----------------------------------------------------------
static PassRefPtr<Image> loadPlatformImageResource(const char* name);
// Screen -------------------------------------------------------------
static int screenDepth(Widget*);
static int screenDepthPerComponent(Widget*);
static bool screenIsMonochrome(Widget*);
static IntRect screenRect(Widget*);
static IntRect screenAvailableRect(Widget*);
// SharedTimers -------------------------------------------------------
static void setSharedTimerFiredFunction(void (*func)());
static void setSharedTimerFireTime(double fireTime);
static void stopSharedTimer();
// StatsCounters ------------------------------------------------------
static void decrementStatsCounter(const char* name);
static void incrementStatsCounter(const char* name);
static void initV8CounterFunction();
// SystemTime ---------------------------------------------------------
static double currentTime();
// Theming ------------------------------------------------------------
#if PLATFORM(WIN_OS)
static void paintButton(
GraphicsContext*, int part, int state, int classicState, const IntRect&);
static void paintMenuList(
GraphicsContext*, int part, int state, int classicState, const IntRect&);
static void paintScrollbarArrow(
GraphicsContext*, int state, int classicState, const IntRect&);
static void paintScrollbarThumb(
GraphicsContext*, int part, int state, int classicState, const IntRect&);
static void paintScrollbarTrack(
GraphicsContext*, int part, int state, int classicState, const IntRect&, const IntRect& alignRect);
static void paintTextField(
GraphicsContext*, int part, int state, int classicState, const IntRect&, const Color&, bool fillContentArea, bool drawEdges);
#endif
// Trace Event --------------------------------------------------------
static void traceEventBegin(const char* name, void* id, const char* extra);
static void traceEventEnd(const char* name, void* id, const char* extra);
// URL ----------------------------------------------------------------
static KURL inspectorURL();
// Visited links ------------------------------------------------------
static LinkHash visitedLinkHash(const UChar* url, unsigned length);
static LinkHash visitedLinkHash(const KURL& base, const AtomicString& attributeURL);
static bool isLinkVisited(LinkHash);
// Widget -------------------------------------------------------------
static void widgetSetCursor(Widget*, const Cursor&);
static void widgetSetFocus(Widget*);
};
} // namespace WebCore
#endif
/*
* Copyright (c) 2008, 2009, Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
#include "ChromiumDataObject.h"
namespace WebCore {
void ChromiumDataObject::clear()
{
url = KURL();
urlTitle = "";
filenames.clear();
plainText = "";
textHtml = "";
htmlBaseUrl = KURL();
fileContentFilename = "";
if (fileContent)
fileContent->clear();
}
bool ChromiumDataObject::hasData()
{
return !url.isEmpty()
|| !filenames.isEmpty()
|| !plainText.isEmpty()
|| !textHtml.isEmpty()
|| fileContent;
}
} // namespace WebCore
/*
* Copyright (c) 2008, 2009, Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef ChromiumDataObject_h
#define ChromiumDataObject_h
#include "KURL.h"
#include "PlatformString.h"
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
namespace WebCore {
// A data object for holding data that would be in a clipboard or moved
// during a drag-n-drop operation. This is the data that WebCore is aware
// of and is not specific to a platform.
class ChromiumDataObject : public RefCounted<ChromiumDataObject> {
public:
static PassRefPtr<ChromiumDataObject> create()
{
return adoptRef(new ChromiumDataObject);
}
void clear();
bool hasData();
KURL url;
String urlTitle;
Vector<String> filenames;
String plainText;
String textHtml;
KURL htmlBaseUrl;
String fileContentFilename;
RefPtr<SharedBuffer> fileContent;
private:
ChromiumDataObject() {}
};
} // namespace WebCore
#endif
This diff is collapsed.
// Copyright (c) 2008, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef ClipboardChromium_h
#define ClipboardChromium_h
#include "Clipboard.h"
#include "CachedResourceClient.h"
namespace WebCore {
class CachedImage;
class ChromiumDataObject;
class IntPoint;
class ClipboardChromium : public Clipboard, public CachedResourceClient {
public:
~ClipboardChromium() {}
static PassRefPtr<ClipboardChromium> create(
bool isForDragging, PassRefPtr<ChromiumDataObject>, ClipboardAccessPolicy);
virtual void clearData(const String& type);
void clearAllData();
String getData(const String& type, bool& success) const;
bool setData(const String& type, const String& data);
// extensions beyond IE's API
HashSet<String> types() const;
void setDragImage(CachedImage*, const IntPoint&);
void setDragImageElement(Node*, const IntPoint&);
PassRefPtr<ChromiumDataObject> dataObject()
{
return m_dataObject;
}
virtual DragImageRef createDragImage(IntPoint& dragLoc) const;
virtual void declareAndWriteDragImage(Element*, const KURL&, const String& title, Frame*);
virtual void writeURL(const KURL&, const String&, Frame*);
virtual void writeRange(Range*, Frame*);
virtual bool hasData();
private:
ClipboardChromium(bool, PassRefPtr<ChromiumDataObject>, ClipboardAccessPolicy);
void resetFromClipboard();
void setDragImage(CachedImage*, Node*, const IntPoint&);
RefPtr<ChromiumDataObject> m_dataObject;
Frame* m_frame;
};
} // namespace WebCore
#endif // ClipboardChromium_h
/*
* Copyright (c) 2008, 2009, Google Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following disclaimer
* in the documentation and/or other materials provided with the
* distribution.
* * Neither the name of Google Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "config.h"
#include "ClipboardUtilitiesChromium.h"
#include "KURL.h"