diff options
| author | Ben Murdoch <benm@google.com> | 2011-05-16 16:25:10 +0100 |
|---|---|---|
| committer | Ben Murdoch <benm@google.com> | 2011-05-23 18:54:14 +0100 |
| commit | ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb (patch) | |
| tree | db769fadd053248f85db67434a5b275224defef7 /Source/WebKit/chromium/src | |
| parent | 52e2557aeb8477967e97fd24f20f8f407a10fa15 (diff) | |
| download | external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.zip external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.tar.gz external_webkit-ab9e7a118cf1ea2e3a93dce683b2ded3e7291ddb.tar.bz2 | |
Merge WebKit at r76408: Initial merge by git.
Change-Id: I5b91decbd693ccbf5c1b8354b37cd68cc9a1ea53
Diffstat (limited to 'Source/WebKit/chromium/src')
35 files changed, 390 insertions, 291 deletions
diff --git a/Source/WebKit/chromium/src/AssertMatchingEnums.cpp b/Source/WebKit/chromium/src/AssertMatchingEnums.cpp index e1ee4a1..e89fb74 100644 --- a/Source/WebKit/chromium/src/AssertMatchingEnums.cpp +++ b/Source/WebKit/chromium/src/AssertMatchingEnums.cpp @@ -80,7 +80,7 @@ #include <wtf/text/StringImpl.h> #if OS(DARWIN) -#include "ChromiumBridge.h" +#include "PlatformBridge.h" #include "mac/WebThemeEngine.h" #endif @@ -398,17 +398,17 @@ COMPILE_ASSERT_MATCHING_ENUM(WebGeolocationError::ErrorPermissionDenied, Geoloca COMPILE_ASSERT_MATCHING_ENUM(WebGeolocationError::ErrorPositionUnavailable, GeolocationError::PositionUnavailable); #if OS(DARWIN) -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::StateDisabled, ChromiumBridge::StateDisabled); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::StateInactive, ChromiumBridge::StateInactive); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::StateActive, ChromiumBridge::StateActive); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::StatePressed, ChromiumBridge::StatePressed); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::StateDisabled, PlatformBridge::StateDisabled); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::StateInactive, PlatformBridge::StateInactive); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::StateActive, PlatformBridge::StateActive); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::StatePressed, PlatformBridge::StatePressed); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::SizeRegular, ChromiumBridge::SizeRegular); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::SizeSmall, ChromiumBridge::SizeSmall); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::SizeRegular, PlatformBridge::SizeRegular); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::SizeSmall, PlatformBridge::SizeSmall); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::ScrollbarOrientationHorizontal, ChromiumBridge::ScrollbarOrientationHorizontal); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::ScrollbarOrientationVertical, ChromiumBridge::ScrollbarOrientationVertical); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::ScrollbarOrientationHorizontal, PlatformBridge::ScrollbarOrientationHorizontal); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::ScrollbarOrientationVertical, PlatformBridge::ScrollbarOrientationVertical); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::ScrollbarParentScrollView, ChromiumBridge::ScrollbarParentScrollView); -COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::ScrollbarParentRenderLayer, ChromiumBridge::ScrollbarParentRenderLayer); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::ScrollbarParentScrollView, PlatformBridge::ScrollbarParentScrollView); +COMPILE_ASSERT_MATCHING_ENUM(WebThemeEngine::ScrollbarParentRenderLayer, PlatformBridge::ScrollbarParentRenderLayer); #endif diff --git a/Source/WebKit/chromium/src/AutoFillPopupMenuClient.cpp b/Source/WebKit/chromium/src/AutoFillPopupMenuClient.cpp index 4f57994..2ce31a9 100644 --- a/Source/WebKit/chromium/src/AutoFillPopupMenuClient.cpp +++ b/Source/WebKit/chromium/src/AutoFillPopupMenuClient.cpp @@ -254,11 +254,11 @@ HostWindow* AutoFillPopupMenuClient::hostWindow() const } PassRefPtr<Scrollbar> AutoFillPopupMenuClient::createScrollbar( - ScrollbarClient* client, + ScrollableArea* scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size) { - return Scrollbar::createNativeScrollbar(client, orientation, size); + return Scrollbar::createNativeScrollbar(scrollableArea, orientation, size); } void AutoFillPopupMenuClient::initialize( diff --git a/Source/WebKit/chromium/src/AutoFillPopupMenuClient.h b/Source/WebKit/chromium/src/AutoFillPopupMenuClient.h index 0129a81..0071121 100644 --- a/Source/WebKit/chromium/src/AutoFillPopupMenuClient.h +++ b/Source/WebKit/chromium/src/AutoFillPopupMenuClient.h @@ -97,7 +97,7 @@ public: virtual WebCore::FontSelector* fontSelector() const; virtual WebCore::HostWindow* hostWindow() const; virtual PassRefPtr<WebCore::Scrollbar> createScrollbar( - WebCore::ScrollbarClient* client, + WebCore::ScrollableArea* client, WebCore::ScrollbarOrientation orientation, WebCore::ScrollbarControlSize size); diff --git a/Source/WebKit/chromium/src/BoundObject.h b/Source/WebKit/chromium/src/BoundObject.h index 769e83f..394ff7c 100644 --- a/Source/WebKit/chromium/src/BoundObject.h +++ b/Source/WebKit/chromium/src/BoundObject.h @@ -39,7 +39,8 @@ namespace WebKit { // BoundObject is a helper class that lets you map JavaScript method calls // directly to C++ method calls. It should be destroyed once JS object is // built. -class BoundObject : public Noncopyable { +class BoundObject { + WTF_MAKE_NONCOPYABLE(BoundObject); public: BoundObject(v8::Handle<v8::Context> context, void* v8This, const char* objectName); virtual ~BoundObject(); diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.cpp b/Source/WebKit/chromium/src/ChromeClientImpl.cpp index 1a984c1..a63a625 100644 --- a/Source/WebKit/chromium/src/ChromeClientImpl.cpp +++ b/Source/WebKit/chromium/src/ChromeClientImpl.cpp @@ -436,11 +436,6 @@ void ChromeClientImpl::closeWindowSoon() void ChromeClientImpl::runJavaScriptAlert(Frame* frame, const String& message) { if (m_webView->client()) { -#if USE(V8) - // Before showing the JavaScript dialog, we give the proxy implementation - // a chance to process any pending console messages. - V8Proxy::processConsoleMessages(); -#endif m_webView->client()->runModalAlertDialog( WebFrameImpl::fromFrame(frame), message); } @@ -532,6 +527,13 @@ void ChromeClientImpl::invalidateContentsForSlowScroll(const IntRect& updateRect invalidateContentsAndWindow(updateRect, immediate); } +#if ENABLE(REQUEST_ANIMATION_FRAME) +void ChromeClientImpl::scheduleAnimation() +{ + m_webView->client()->scheduleAnimation(); +} +#endif + void ChromeClientImpl::scroll( const IntSize& scrollDelta, const IntRect& scrollRect, const IntRect& clipRect) @@ -700,6 +702,11 @@ void ChromeClientImpl::popupClosed(WebCore::PopupContainer* popupContainer) m_webView->popupClosed(popupContainer); } +void ChromeClientImpl::setCursor(const WebCore::Cursor& cursor) +{ + setCursor(WebCursorInfo(cursor)); +} + void ChromeClientImpl::setCursor(const WebCursorInfo& cursor) { if (m_webView->client()) diff --git a/Source/WebKit/chromium/src/ChromeClientImpl.h b/Source/WebKit/chromium/src/ChromeClientImpl.h index b024bc0..07f7d1f 100644 --- a/Source/WebKit/chromium/src/ChromeClientImpl.h +++ b/Source/WebKit/chromium/src/ChromeClientImpl.h @@ -105,6 +105,9 @@ public: virtual void invalidateWindow(const WebCore::IntRect&, bool); virtual void invalidateContentsAndWindow(const WebCore::IntRect&, bool); virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&, bool); +#if ENABLE(REQUEST_ANIMATION_FRAME) + virtual void scheduleAnimation(); +#endif virtual void scroll( const WebCore::IntSize& scrollDelta, const WebCore::IntRect& rectToScroll, const WebCore::IntRect& clipRect); @@ -132,7 +135,7 @@ public: virtual void cancelGeolocationPermissionRequestForFrame(WebCore::Frame*, WebCore::Geolocation*); virtual void runOpenPanel(WebCore::Frame*, PassRefPtr<WebCore::FileChooser>); virtual void chooseIconForFiles(const Vector<WTF::String>&, WebCore::FileChooser*); - virtual void setCursor(const WebCore::Cursor&) { } + virtual void setCursor(const WebCore::Cursor&); virtual void formStateDidChange(const WebCore::Node*); virtual PassOwnPtr<WebCore::HTMLParserQuirks> createHTMLParserQuirks() { return 0; } #if ENABLE(TOUCH_EVENTS) @@ -167,8 +170,7 @@ public: virtual void postAccessibilityNotification(WebCore::AccessibilityObject*, WebCore::AXObjectCache::AXNotification); // ChromeClientImpl: - void setCursor(const WebCursorInfo& cursor); - void setCursorForPlugin(const WebCursorInfo& cursor); + void setCursorForPlugin(const WebCursorInfo&); virtual bool selectItemWritingDirectionIsNatural(); virtual PassRefPtr<WebCore::PopupMenu> createPopupMenu(WebCore::PopupMenuClient*) const; @@ -180,6 +182,7 @@ public: private: void getPopupMenuInfo(WebCore::PopupContainer*, WebPopupMenuInfo*); + void setCursor(const WebCursorInfo&); WebViewImpl* m_webView; // weak pointer bool m_toolbarsVisible; diff --git a/Source/WebKit/chromium/src/DOMUtilitiesPrivate.cpp b/Source/WebKit/chromium/src/DOMUtilitiesPrivate.cpp index 6f952f7..e688bfa 100644 --- a/Source/WebKit/chromium/src/DOMUtilitiesPrivate.cpp +++ b/Source/WebKit/chromium/src/DOMUtilitiesPrivate.cpp @@ -39,8 +39,6 @@ #include "HTMLOptionElement.h" #include "Node.h" -#include "WebInputElement.h" - using namespace WebCore; namespace { @@ -79,11 +77,6 @@ HTMLOptionElement* toHTMLOptionElement(Node* node) return toHTMLElement<HTMLOptionElement>(node, HTMLNames::optionTag); } -String nameOfInputElement(HTMLInputElement* element) -{ - return WebInputElement(element).nameForAutofill(); -} - bool elementHasLegalLinkAttribute(const Element* element, const QualifiedName& attrName) { diff --git a/Source/WebKit/chromium/src/DOMUtilitiesPrivate.h b/Source/WebKit/chromium/src/DOMUtilitiesPrivate.h index f5d03a5..99e3d9c 100644 --- a/Source/WebKit/chromium/src/DOMUtilitiesPrivate.h +++ b/Source/WebKit/chromium/src/DOMUtilitiesPrivate.h @@ -31,8 +31,6 @@ #ifndef DOMUtilitiesPrivate_h #define DOMUtilitiesPrivate_h -#include <wtf/Forward.h> - namespace WebCore { class Element; class HTMLInputElement; @@ -53,9 +51,6 @@ WebCore::HTMLLinkElement* toHTMLLinkElement(WebCore::Node*); WebCore::HTMLMetaElement* toHTMLMetaElement(WebCore::Node*); WebCore::HTMLOptionElement* toHTMLOptionElement(WebCore::Node*); -// FIXME: Deprecate. Use WebInputElement::nameForAutofill instead. -WTF::String nameOfInputElement(WebCore::HTMLInputElement*); - // For img, script, iframe, frame element, when attribute name is src, // for link, a, area element, when attribute name is href, // for form element, when attribute name is action, diff --git a/Source/WebKit/chromium/src/DebuggerAgentManager.cpp b/Source/WebKit/chromium/src/DebuggerAgentManager.cpp index 0860cb1..b76bcfe 100644 --- a/Source/WebKit/chromium/src/DebuggerAgentManager.cpp +++ b/Source/WebKit/chromium/src/DebuggerAgentManager.cpp @@ -55,7 +55,8 @@ bool DebuggerAgentManager::s_exposeV8DebuggerProtocol = false; namespace { -class CallerIdWrapper : public v8::Debug::ClientData, public Noncopyable { +class CallerIdWrapper : public v8::Debug::ClientData { + WTF_MAKE_NONCOPYABLE(CallerIdWrapper); public: CallerIdWrapper() : m_callerIsMananager(true), m_callerId(0) { } explicit CallerIdWrapper(int callerId) diff --git a/Source/WebKit/chromium/src/DebuggerAgentManager.h b/Source/WebKit/chromium/src/DebuggerAgentManager.h index 66bd714..a323311 100644 --- a/Source/WebKit/chromium/src/DebuggerAgentManager.h +++ b/Source/WebKit/chromium/src/DebuggerAgentManager.h @@ -63,7 +63,8 @@ class WebViewImpl; // would expect some actions from the handler. If there is no appropriate // debugger agent to handle such messages the manager will perform the action // itself, otherwise v8 may hang waiting for the action. -class DebuggerAgentManager : public Noncopyable { +class DebuggerAgentManager { + WTF_MAKE_NONCOPYABLE(DebuggerAgentManager); public: static void debugAttach(DebuggerAgentImpl* debuggerAgent); static void debugDetach(DebuggerAgentImpl* debuggerAgent); diff --git a/Source/WebKit/chromium/src/EditorClientImpl.cpp b/Source/WebKit/chromium/src/EditorClientImpl.cpp index 19b5873..68694c2 100644 --- a/Source/WebKit/chromium/src/EditorClientImpl.cpp +++ b/Source/WebKit/chromium/src/EditorClientImpl.cpp @@ -45,6 +45,7 @@ #include "WebAutoFillClient.h" #include "WebEditingAction.h" #include "WebElement.h" +#include "WebFrameClient.h" #include "WebFrameImpl.h" #include "WebKit.h" #include "WebInputElement.h" @@ -161,6 +162,11 @@ void EditorClientImpl::toggleContinuousSpellChecking() m_spellCheckThisFieldStatus = SpellCheckForcedOff; else m_spellCheckThisFieldStatus = SpellCheckForcedOn; + + WebFrameImpl* webframe = WebFrameImpl::fromFrame( + m_webView->focusedWebCoreFrame()); + if (webframe) + webframe->client()->didToggleContinuousSpellChecking(webframe); } bool EditorClientImpl::isGrammarCheckingEnabled() diff --git a/Source/WebKit/chromium/src/InspectorFrontendClientImpl.h b/Source/WebKit/chromium/src/InspectorFrontendClientImpl.h index fc21f3e..2867917 100644 --- a/Source/WebKit/chromium/src/InspectorFrontendClientImpl.h +++ b/Source/WebKit/chromium/src/InspectorFrontendClientImpl.h @@ -44,8 +44,8 @@ namespace WebKit { class WebDevToolsFrontendClient; class WebDevToolsFrontendImpl; -class InspectorFrontendClientImpl : public WebCore::InspectorFrontendClient - , public Noncopyable { +class InspectorFrontendClientImpl : public WebCore::InspectorFrontendClient { + WTF_MAKE_NONCOPYABLE(InspectorFrontendClientImpl); public: InspectorFrontendClientImpl(WebCore::Page*, WebDevToolsFrontendClient*, WebDevToolsFrontendImpl*); virtual ~InspectorFrontendClientImpl(); diff --git a/Source/WebKit/chromium/src/ChromiumBridge.cpp b/Source/WebKit/chromium/src/PlatformBridge.cpp index e16025c..04016fc 100644 --- a/Source/WebKit/chromium/src/ChromiumBridge.cpp +++ b/Source/WebKit/chromium/src/PlatformBridge.cpp @@ -29,7 +29,7 @@ */ #include "config.h" -#include "ChromiumBridge.h" +#include "PlatformBridge.h" #include <googleurl/src/url_util.h> @@ -39,7 +39,6 @@ #include "WebClipboard.h" #include "WebCookie.h" #include "WebCookieJar.h" -#include "WebCursorInfo.h" #include "WebData.h" #include "WebDragData.h" #include "WebFileUtilities.h" @@ -146,14 +145,14 @@ static WebCookieJar* getCookieJar(const Document* document) // Cache ---------------------------------------------------------------------- -void ChromiumBridge::cacheMetadata(const KURL& url, double responseTime, const Vector<char>& data) +void PlatformBridge::cacheMetadata(const KURL& url, double responseTime, const Vector<char>& data) { webKitClient()->cacheMetadata(url, responseTime, data.data(), data.size()); } // Clipboard ------------------------------------------------------------------ -bool ChromiumBridge::clipboardIsFormatAvailable( +bool PlatformBridge::clipboardIsFormatAvailable( PasteboardPrivate::ClipboardFormat format, PasteboardPrivate::ClipboardBuffer buffer) { @@ -162,14 +161,14 @@ bool ChromiumBridge::clipboardIsFormatAvailable( static_cast<WebClipboard::Buffer>(buffer)); } -String ChromiumBridge::clipboardReadPlainText( +String PlatformBridge::clipboardReadPlainText( PasteboardPrivate::ClipboardBuffer buffer) { return webKitClient()->clipboard()->readPlainText( static_cast<WebClipboard::Buffer>(buffer)); } -void ChromiumBridge::clipboardReadHTML( +void PlatformBridge::clipboardReadHTML( PasteboardPrivate::ClipboardBuffer buffer, String* htmlText, KURL* sourceURL) { @@ -179,7 +178,7 @@ void ChromiumBridge::clipboardReadHTML( *sourceURL = url; } -void ChromiumBridge::clipboardWriteSelection(const String& htmlText, +void PlatformBridge::clipboardWriteSelection(const String& htmlText, const KURL& sourceURL, const String& plainText, bool writeSmartPaste) @@ -188,17 +187,17 @@ void ChromiumBridge::clipboardWriteSelection(const String& htmlText, htmlText, sourceURL, plainText, writeSmartPaste); } -void ChromiumBridge::clipboardWritePlainText(const String& plainText) +void PlatformBridge::clipboardWritePlainText(const String& plainText) { webKitClient()->clipboard()->writePlainText(plainText); } -void ChromiumBridge::clipboardWriteURL(const KURL& url, const String& title) +void PlatformBridge::clipboardWriteURL(const KURL& url, const String& title) { webKitClient()->clipboard()->writeURL(url, title); } -void ChromiumBridge::clipboardWriteImage(NativeImagePtr image, +void PlatformBridge::clipboardWriteImage(NativeImagePtr image, const KURL& sourceURL, const String& title) { @@ -210,14 +209,14 @@ void ChromiumBridge::clipboardWriteImage(NativeImagePtr image, webKitClient()->clipboard()->writeImage(webImage, sourceURL, title); } -void ChromiumBridge::clipboardWriteData(const String& type, +void PlatformBridge::clipboardWriteData(const String& type, const String& data, const String& metadata) { webKitClient()->clipboard()->writeData(type, data, metadata); } -HashSet<String> ChromiumBridge::clipboardReadAvailableTypes( +HashSet<String> PlatformBridge::clipboardReadAvailableTypes( PasteboardPrivate::ClipboardBuffer buffer, bool* containsFilenames) { WebVector<WebString> result = webKitClient()->clipboard()->readAvailableTypes( @@ -228,7 +227,7 @@ HashSet<String> ChromiumBridge::clipboardReadAvailableTypes( return types; } -bool ChromiumBridge::clipboardReadData(PasteboardPrivate::ClipboardBuffer buffer, +bool PlatformBridge::clipboardReadData(PasteboardPrivate::ClipboardBuffer buffer, const String& type, String& data, String& metadata) { WebString resultData; @@ -242,7 +241,7 @@ bool ChromiumBridge::clipboardReadData(PasteboardPrivate::ClipboardBuffer buffer return succeeded; } -Vector<String> ChromiumBridge::clipboardReadFilenames(PasteboardPrivate::ClipboardBuffer buffer) +Vector<String> PlatformBridge::clipboardReadFilenames(PasteboardPrivate::ClipboardBuffer buffer) { WebVector<WebString> result = webKitClient()->clipboard()->readFilenames( static_cast<WebClipboard::Buffer>(buffer)); @@ -254,7 +253,7 @@ Vector<String> ChromiumBridge::clipboardReadFilenames(PasteboardPrivate::Clipboa // Cookies -------------------------------------------------------------------- -void ChromiumBridge::setCookies(const Document* document, const KURL& url, +void PlatformBridge::setCookies(const Document* document, const KURL& url, const String& value) { WebCookieJar* cookieJar = getCookieJar(document); @@ -262,7 +261,7 @@ void ChromiumBridge::setCookies(const Document* document, const KURL& url, cookieJar->setCookie(url, document->firstPartyForCookies(), value); } -String ChromiumBridge::cookies(const Document* document, const KURL& url) +String PlatformBridge::cookies(const Document* document, const KURL& url) { String result; WebCookieJar* cookieJar = getCookieJar(document); @@ -271,7 +270,7 @@ String ChromiumBridge::cookies(const Document* document, const KURL& url) return result; } -String ChromiumBridge::cookieRequestHeaderFieldValue(const Document* document, +String PlatformBridge::cookieRequestHeaderFieldValue(const Document* document, const KURL& url) { String result; @@ -281,7 +280,7 @@ String ChromiumBridge::cookieRequestHeaderFieldValue(const Document* document, return result; } -bool ChromiumBridge::rawCookies(const Document* document, const KURL& url, Vector<Cookie>& rawCookies) +bool PlatformBridge::rawCookies(const Document* document, const KURL& url, Vector<Cookie>& rawCookies) { rawCookies.clear(); WebVector<WebCookie> webCookies; @@ -305,14 +304,14 @@ bool ChromiumBridge::rawCookies(const Document* document, const KURL& url, Vecto return true; } -void ChromiumBridge::deleteCookie(const Document* document, const KURL& url, const String& cookieName) +void PlatformBridge::deleteCookie(const Document* document, const KURL& url, const String& cookieName) { WebCookieJar* cookieJar = getCookieJar(document); if (cookieJar) cookieJar->deleteCookie(url, cookieName); } -bool ChromiumBridge::cookiesEnabled(const Document* document) +bool PlatformBridge::cookiesEnabled(const Document* document) { bool result = false; WebCookieJar* cookieJar = getCookieJar(document); @@ -323,39 +322,39 @@ bool ChromiumBridge::cookiesEnabled(const Document* document) // DNS ------------------------------------------------------------------------ -void ChromiumBridge::prefetchDNS(const String& hostname) +void PlatformBridge::prefetchDNS(const String& hostname) { webKitClient()->prefetchHostName(hostname); } // File ------------------------------------------------------------------------ -bool ChromiumBridge::fileExists(const String& path) +bool PlatformBridge::fileExists(const String& path) { return webKitClient()->fileUtilities()->fileExists(path); } -bool ChromiumBridge::deleteFile(const String& path) +bool PlatformBridge::deleteFile(const String& path) { return webKitClient()->fileUtilities()->deleteFile(path); } -bool ChromiumBridge::deleteEmptyDirectory(const String& path) +bool PlatformBridge::deleteEmptyDirectory(const String& path) { return webKitClient()->fileUtilities()->deleteEmptyDirectory(path); } -bool ChromiumBridge::getFileSize(const String& path, long long& result) +bool PlatformBridge::getFileSize(const String& path, long long& result) { return webKitClient()->fileUtilities()->getFileSize(path, result); } -void ChromiumBridge::revealFolderInOS(const String& path) +void PlatformBridge::revealFolderInOS(const String& path) { webKitClient()->fileUtilities()->revealFolderInOS(path); } -bool ChromiumBridge::getFileModificationTime(const String& path, time_t& result) +bool PlatformBridge::getFileModificationTime(const String& path, time_t& result) { double modificationTime; if (!webKitClient()->fileUtilities()->getFileModificationTime(path, modificationTime)) @@ -364,62 +363,62 @@ bool ChromiumBridge::getFileModificationTime(const String& path, time_t& result) return true; } -String ChromiumBridge::directoryName(const String& path) +String PlatformBridge::directoryName(const String& path) { return webKitClient()->fileUtilities()->directoryName(path); } -String ChromiumBridge::pathByAppendingComponent(const String& path, const String& component) +String PlatformBridge::pathByAppendingComponent(const String& path, const String& component) { return webKitClient()->fileUtilities()->pathByAppendingComponent(path, component); } -bool ChromiumBridge::makeAllDirectories(const String& path) +bool PlatformBridge::makeAllDirectories(const String& path) { return webKitClient()->fileUtilities()->makeAllDirectories(path); } -String ChromiumBridge::getAbsolutePath(const String& path) +String PlatformBridge::getAbsolutePath(const String& path) { return webKitClient()->fileUtilities()->getAbsolutePath(path); } -bool ChromiumBridge::isDirectory(const String& path) +bool PlatformBridge::isDirectory(const String& path) { return webKitClient()->fileUtilities()->isDirectory(path); } -KURL ChromiumBridge::filePathToURL(const String& path) +KURL PlatformBridge::filePathToURL(const String& path) { return webKitClient()->fileUtilities()->filePathToURL(path); } -PlatformFileHandle ChromiumBridge::openFile(const String& path, FileOpenMode mode) +PlatformFileHandle PlatformBridge::openFile(const String& path, FileOpenMode mode) { return webKitClient()->fileUtilities()->openFile(path, mode); } -void ChromiumBridge::closeFile(PlatformFileHandle& handle) +void PlatformBridge::closeFile(PlatformFileHandle& handle) { webKitClient()->fileUtilities()->closeFile(handle); } -long long ChromiumBridge::seekFile(PlatformFileHandle handle, long long offset, FileSeekOrigin origin) +long long PlatformBridge::seekFile(PlatformFileHandle handle, long long offset, FileSeekOrigin origin) { return webKitClient()->fileUtilities()->seekFile(handle, offset, origin); } -bool ChromiumBridge::truncateFile(PlatformFileHandle handle, long long offset) +bool PlatformBridge::truncateFile(PlatformFileHandle handle, long long offset) { return webKitClient()->fileUtilities()->truncateFile(handle, offset); } -int ChromiumBridge::readFromFile(PlatformFileHandle handle, char* data, int length) +int PlatformBridge::readFromFile(PlatformFileHandle handle, char* data, int length) { return webKitClient()->fileUtilities()->readFromFile(handle, data, length); } -int ChromiumBridge::writeToFile(PlatformFileHandle handle, const char* data, int length) +int PlatformBridge::writeToFile(PlatformFileHandle handle, const char* data, int length) { return webKitClient()->fileUtilities()->writeToFile(handle, data, length); } @@ -427,7 +426,7 @@ int ChromiumBridge::writeToFile(PlatformFileHandle handle, const char* data, int // Font ----------------------------------------------------------------------- #if OS(WINDOWS) -bool ChromiumBridge::ensureFontLoaded(HFONT font) +bool PlatformBridge::ensureFontLoaded(HFONT font) { WebSandboxSupport* ss = webKitClient()->sandboxSupport(); @@ -438,7 +437,7 @@ bool ChromiumBridge::ensureFontLoaded(HFONT font) #endif #if OS(LINUX) || OS(FREEBSD) -String ChromiumBridge::getFontFamilyForCharacters(const UChar* characters, size_t numCharacters) +String PlatformBridge::getFontFamilyForCharacters(const UChar* characters, size_t numCharacters) { if (webKitClient()->sandboxSupport()) return webKitClient()->sandboxSupport()->getFontFamilyForCharacters(characters, numCharacters); @@ -450,7 +449,7 @@ String ChromiumBridge::getFontFamilyForCharacters(const UChar* characters, size_ return WebString(); } -void ChromiumBridge::getRenderStyleForStrike(const char* font, int sizeAndStyle, FontRenderStyle* result) +void PlatformBridge::getRenderStyleForStrike(const char* font, int sizeAndStyle, FontRenderStyle* result) { WebFontRenderStyle style; @@ -464,7 +463,7 @@ void ChromiumBridge::getRenderStyleForStrike(const char* font, int sizeAndStyle, #endif #if OS(DARWIN) -bool ChromiumBridge::loadFont(NSFont* srcFont, ATSFontContainerRef* out) +bool PlatformBridge::loadFont(NSFont* srcFont, ATSFontContainerRef* out) { WebSandboxSupport* ss = webKitClient()->sandboxSupport(); if (ss) @@ -481,42 +480,42 @@ bool ChromiumBridge::loadFont(NSFont* srcFont, ATSFontContainerRef* out) // Databases ------------------------------------------------------------------ -PlatformFileHandle ChromiumBridge::databaseOpenFile(const String& vfsFileName, int desiredFlags) +PlatformFileHandle PlatformBridge::databaseOpenFile(const String& vfsFileName, int desiredFlags) { return webKitClient()->databaseOpenFile(WebString(vfsFileName), desiredFlags); } -int ChromiumBridge::databaseDeleteFile(const String& vfsFileName, bool syncDir) +int PlatformBridge::databaseDeleteFile(const String& vfsFileName, bool syncDir) { return webKitClient()->databaseDeleteFile(WebString(vfsFileName), syncDir); } -long ChromiumBridge::databaseGetFileAttributes(const String& vfsFileName) +long PlatformBridge::databaseGetFileAttributes(const String& vfsFileName) { return webKitClient()->databaseGetFileAttributes(WebString(vfsFileName)); } -long long ChromiumBridge::databaseGetFileSize(const String& vfsFileName) +long long PlatformBridge::databaseGetFileSize(const String& vfsFileName) { return webKitClient()->databaseGetFileSize(WebString(vfsFileName)); } // Indexed Database ----------------------------------------------------------- -PassRefPtr<IDBFactoryBackendInterface> ChromiumBridge::idbFactory() +PassRefPtr<IDBFactoryBackendInterface> PlatformBridge::idbFactory() { // There's no reason why we need to allocate a new proxy each time, but // there's also no strong reason not to. return IDBFactoryBackendProxy::create(); } -void ChromiumBridge::idbShutdown() +void PlatformBridge::idbShutdown() { // In the browser process, this shuts down the utility process. In the renderer process, it does nothing. webKitClient()->idbShutdown(); } -void ChromiumBridge::createIDBKeysFromSerializedValuesAndKeyPath(const Vector<RefPtr<SerializedScriptValue> >& values, const String& keyPath, Vector<RefPtr<IDBKey> >& keys) +void PlatformBridge::createIDBKeysFromSerializedValuesAndKeyPath(const Vector<RefPtr<SerializedScriptValue> >& values, const String& keyPath, Vector<RefPtr<IDBKey> >& keys) { WebVector<WebSerializedScriptValue> webValues = values; WebVector<WebIDBKey> webKeys; @@ -530,7 +529,7 @@ void ChromiumBridge::createIDBKeysFromSerializedValuesAndKeyPath(const Vector<Re // Keygen --------------------------------------------------------------------- -String ChromiumBridge::signedPublicKeyAndChallengeString( +String PlatformBridge::signedPublicKeyAndChallengeString( unsigned keySizeIndex, const String& challenge, const KURL& url) { return webKitClient()->signedPublicKeyAndChallengeString(keySizeIndex, @@ -540,63 +539,63 @@ String ChromiumBridge::signedPublicKeyAndChallengeString( // Language ------------------------------------------------------------------- -String ChromiumBridge::computedDefaultLanguage() +String PlatformBridge::computedDefaultLanguage() { return webKitClient()->defaultLocale(); } // LayoutTestMode ------------------------------------------------------------- -bool ChromiumBridge::layoutTestMode() +bool PlatformBridge::layoutTestMode() { return WebKit::layoutTestMode(); } // MimeType ------------------------------------------------------------------- -bool ChromiumBridge::isSupportedImageMIMEType(const String& mimeType) +bool PlatformBridge::isSupportedImageMIMEType(const String& mimeType) { return webKitClient()->mimeRegistry()->supportsImageMIMEType(mimeType) != WebMimeRegistry::IsNotSupported; } -bool ChromiumBridge::isSupportedJavaScriptMIMEType(const String& mimeType) +bool PlatformBridge::isSupportedJavaScriptMIMEType(const String& mimeType) { return webKitClient()->mimeRegistry()->supportsJavaScriptMIMEType(mimeType) != WebMimeRegistry::IsNotSupported; } -bool ChromiumBridge::isSupportedNonImageMIMEType(const String& mimeType) +bool PlatformBridge::isSupportedNonImageMIMEType(const String& mimeType) { return webKitClient()->mimeRegistry()->supportsNonImageMIMEType(mimeType) != WebMimeRegistry::IsNotSupported; } -String ChromiumBridge::mimeTypeForExtension(const String& extension) +String PlatformBridge::mimeTypeForExtension(const String& extension) { return webKitClient()->mimeRegistry()->mimeTypeForExtension(extension); } -String ChromiumBridge::mimeTypeFromFile(const String& path) +String PlatformBridge::mimeTypeFromFile(const String& path) { return webKitClient()->mimeRegistry()->mimeTypeFromFile(path); } -String ChromiumBridge::preferredExtensionForMIMEType(const String& mimeType) +String PlatformBridge::preferredExtensionForMIMEType(const String& mimeType) { return webKitClient()->mimeRegistry()->preferredExtensionForMIMEType(mimeType); } // Plugin --------------------------------------------------------------------- -bool ChromiumBridge::plugins(bool refresh, Vector<PluginInfo>* results) +bool PlatformBridge::plugins(bool refresh, Vector<PluginInfo>* results) { WebPluginListBuilderImpl builder(results); webKitClient()->getPluginList(refresh, &builder); return true; // FIXME: There is no need for this function to return a value. } -NPObject* ChromiumBridge::pluginScriptableObject(Widget* widget) +NPObject* PlatformBridge::pluginScriptableObject(Widget* widget) { if (!widget || !widget->isPluginContainer()) return 0; @@ -606,7 +605,7 @@ NPObject* ChromiumBridge::pluginScriptableObject(Widget* widget) // Resources ------------------------------------------------------------------ -PassRefPtr<Image> ChromiumBridge::loadPlatformImageResource(const char* name) +PassRefPtr<Image> PlatformBridge::loadPlatformImageResource(const char* name) { const WebData& resource = webKitClient()->loadResource(name); if (resource.isEmpty()) @@ -619,7 +618,7 @@ PassRefPtr<Image> ChromiumBridge::loadPlatformImageResource(const char* name) #if ENABLE(WEB_AUDIO) -PassOwnPtr<AudioBus> ChromiumBridge::loadPlatformAudioResource(const char* name, double sampleRate) +PassOwnPtr<AudioBus> PlatformBridge::loadPlatformAudioResource(const char* name, double sampleRate) { const WebData& resource = webKitClient()->loadResource(name); if (resource.isEmpty()) @@ -628,7 +627,7 @@ PassOwnPtr<AudioBus> ChromiumBridge::loadPlatformAudioResource(const char* name, return decodeAudioFileData(resource.data(), resource.size(), sampleRate); } -PassOwnPtr<AudioBus> ChromiumBridge::decodeAudioFileData(const char* data, size_t size, double sampleRate) +PassOwnPtr<AudioBus> PlatformBridge::decodeAudioFileData(const char* data, size_t size, double sampleRate) { WebAudioBus webAudioBus; if (webKitClient()->loadAudioResource(&webAudioBus, data, size, sampleRate)) @@ -640,60 +639,60 @@ PassOwnPtr<AudioBus> ChromiumBridge::decodeAudioFileData(const char* data, size_ // Sandbox -------------------------------------------------------------------- -bool ChromiumBridge::sandboxEnabled() +bool PlatformBridge::sandboxEnabled() { return webKitClient()->sandboxEnabled(); } // SharedTimers --------------------------------------------------------------- -void ChromiumBridge::setSharedTimerFiredFunction(void (*func)()) +void PlatformBridge::setSharedTimerFiredFunction(void (*func)()) { webKitClient()->setSharedTimerFiredFunction(func); } -void ChromiumBridge::setSharedTimerFireTime(double fireTime) +void PlatformBridge::setSharedTimerFireTime(double fireTime) { webKitClient()->setSharedTimerFireTime(fireTime); } -void ChromiumBridge::stopSharedTimer() +void PlatformBridge::stopSharedTimer() { webKitClient()->stopSharedTimer(); } // StatsCounters -------------------------------------------------------------- -void ChromiumBridge::decrementStatsCounter(const char* name) +void PlatformBridge::decrementStatsCounter(const char* name) { webKitClient()->decrementStatsCounter(name); } -void ChromiumBridge::incrementStatsCounter(const char* name) +void PlatformBridge::incrementStatsCounter(const char* name) { webKitClient()->incrementStatsCounter(name); } -void ChromiumBridge::histogramCustomCounts(const char* name, int sample, int min, int max, int bucketCount) +void PlatformBridge::histogramCustomCounts(const char* name, int sample, int min, int max, int bucketCount) { webKitClient()->histogramCustomCounts(name, sample, min, max, bucketCount); } -void ChromiumBridge::histogramEnumeration(const char* name, int sample, int boundaryValue) +void PlatformBridge::histogramEnumeration(const char* name, int sample, int boundaryValue) { webKitClient()->histogramEnumeration(name, sample, boundaryValue); } // Sudden Termination --------------------------------------------------------- -void ChromiumBridge::suddenTerminationChanged(bool enabled) +void PlatformBridge::suddenTerminationChanged(bool enabled) { webKitClient()->suddenTerminationChanged(enabled); } // SystemTime ----------------------------------------------------------------- -double ChromiumBridge::currentTime() +double PlatformBridge::currentTime() { return webKitClient()->currentTime(); } @@ -702,7 +701,7 @@ double ChromiumBridge::currentTime() #if OS(WINDOWS) -void ChromiumBridge::paintButton( +void PlatformBridge::paintButton( GraphicsContext* gc, int part, int state, int classicState, const IntRect& rect) { @@ -710,7 +709,7 @@ void ChromiumBridge::paintButton( gc->platformContext()->canvas(), part, state, classicState, rect); } -void ChromiumBridge::paintMenuList( +void PlatformBridge::paintMenuList( GraphicsContext* gc, int part, int state, int classicState, const IntRect& rect) { @@ -718,7 +717,7 @@ void ChromiumBridge::paintMenuList( gc->platformContext()->canvas(), part, state, classicState, rect); } -void ChromiumBridge::paintScrollbarArrow( +void PlatformBridge::paintScrollbarArrow( GraphicsContext* gc, int state, int classicState, const IntRect& rect) { @@ -726,7 +725,7 @@ void ChromiumBridge::paintScrollbarArrow( gc->platformContext()->canvas(), state, classicState, rect); } -void ChromiumBridge::paintScrollbarThumb( +void PlatformBridge::paintScrollbarThumb( GraphicsContext* gc, int part, int state, int classicState, const IntRect& rect) { @@ -734,7 +733,7 @@ void ChromiumBridge::paintScrollbarThumb( gc->platformContext()->canvas(), part, state, classicState, rect); } -void ChromiumBridge::paintScrollbarTrack( +void PlatformBridge::paintScrollbarTrack( GraphicsContext* gc, int part, int state, int classicState, const IntRect& rect, const IntRect& alignRect) { @@ -743,7 +742,7 @@ void ChromiumBridge::paintScrollbarTrack( alignRect); } -void ChromiumBridge::paintSpinButton( +void PlatformBridge::paintSpinButton( GraphicsContext* gc, int part, int state, int classicState, const IntRect& rect) { @@ -751,7 +750,7 @@ void ChromiumBridge::paintSpinButton( gc->platformContext()->canvas(), part, state, classicState, rect); } -void ChromiumBridge::paintTextField( +void PlatformBridge::paintTextField( GraphicsContext* gc, int part, int state, int classicState, const IntRect& rect, const Color& color, bool fillContentArea, bool drawEdges) @@ -764,7 +763,7 @@ void ChromiumBridge::paintTextField( backgroundColor, fillContentArea, drawEdges); } -void ChromiumBridge::paintTrackbar( +void PlatformBridge::paintTrackbar( GraphicsContext* gc, int part, int state, int classicState, const IntRect& rect) { @@ -772,7 +771,7 @@ void ChromiumBridge::paintTrackbar( gc->platformContext()->canvas(), part, state, classicState, rect); } -void ChromiumBridge::paintProgressBar( +void PlatformBridge::paintProgressBar( GraphicsContext* gc, const IntRect& barRect, const IntRect& valueRect, bool determinate, double animatedSeconds) { webKitClient()->themeEngine()->paintProgressBar( @@ -781,50 +780,101 @@ void ChromiumBridge::paintProgressBar( #elif OS(LINUX) -static WebThemeEngine::Part WebThemePart(ChromiumBridge::ThemePart part) +static WebThemeEngine::Part WebThemePart(PlatformBridge::ThemePart part) { switch (part) { - case ChromiumBridge::PartScrollbarDownArrow: return WebThemeEngine::PartScrollbarDownArrow; - case ChromiumBridge::PartScrollbarLeftArrow: return WebThemeEngine::PartScrollbarLeftArrow; - case ChromiumBridge::PartScrollbarRightArrow: return WebThemeEngine::PartScrollbarRightArrow; - case ChromiumBridge::PartScrollbarUpArrow: return WebThemeEngine::PartScrollbarUpArrow; - case ChromiumBridge::PartScrollbarHorizontalThumb: return WebThemeEngine::PartScrollbarHorizontalThumb; - case ChromiumBridge::PartScrollbarVerticalThumb: return WebThemeEngine::PartScrollbarVerticalThumb; - case ChromiumBridge::PartScrollbarHorizontalTrack: return WebThemeEngine::PartScrollbarHorizontalTrack; - case ChromiumBridge::PartScrollbarVerticalTrack: return WebThemeEngine::PartScrollbarVerticalTrack; + case PlatformBridge::PartScrollbarDownArrow: return WebThemeEngine::PartScrollbarDownArrow; + case PlatformBridge::PartScrollbarLeftArrow: return WebThemeEngine::PartScrollbarLeftArrow; + case PlatformBridge::PartScrollbarRightArrow: return WebThemeEngine::PartScrollbarRightArrow; + case PlatformBridge::PartScrollbarUpArrow: return WebThemeEngine::PartScrollbarUpArrow; + case PlatformBridge::PartScrollbarHorizontalThumb: return WebThemeEngine::PartScrollbarHorizontalThumb; + case PlatformBridge::PartScrollbarVerticalThumb: return WebThemeEngine::PartScrollbarVerticalThumb; + case PlatformBridge::PartScrollbarHorizontalTrack: return WebThemeEngine::PartScrollbarHorizontalTrack; + case PlatformBridge::PartScrollbarVerticalTrack: return WebThemeEngine::PartScrollbarVerticalTrack; + case PlatformBridge::PartCheckbox: return WebThemeEngine::PartCheckbox; + case PlatformBridge::PartRadio: return WebThemeEngine::PartRadio; + case PlatformBridge::PartButton: return WebThemeEngine::PartButton; + case PlatformBridge::PartTextField: return WebThemeEngine::PartTextField; + case PlatformBridge::PartMenuList: return WebThemeEngine::PartMenuList; + case PlatformBridge::PartSliderTrack: return WebThemeEngine::PartSliderTrack; + case PlatformBridge::PartSliderThumb: return WebThemeEngine::PartSliderThumb; + case PlatformBridge::PartInnerSpinButton: return WebThemeEngine::PartInnerSpinButton; + case PlatformBridge::PartProgressBar: return WebThemeEngine::PartProgressBar; } ASSERT_NOT_REACHED(); return WebThemeEngine::PartScrollbarDownArrow; } -static WebThemeEngine::State WebThemeState(ChromiumBridge::ThemePaintState state) +static WebThemeEngine::State WebThemeState(PlatformBridge::ThemePaintState state) { switch (state) { - case ChromiumBridge::StateDisabled: return WebThemeEngine::StateDisabled; - case ChromiumBridge::StateHover: return WebThemeEngine::StateHover; - case ChromiumBridge::StateNormal: return WebThemeEngine::StateNormal; - case ChromiumBridge::StatePressed: return WebThemeEngine::StatePressed; + case PlatformBridge::StateDisabled: return WebThemeEngine::StateDisabled; + case PlatformBridge::StateHover: return WebThemeEngine::StateHover; + case PlatformBridge::StateNormal: return WebThemeEngine::StateNormal; + case PlatformBridge::StatePressed: return WebThemeEngine::StatePressed; } ASSERT_NOT_REACHED(); return WebThemeEngine::StateDisabled; } -static void GetWebThemeExtraParams(ChromiumBridge::ThemePart part, ChromiumBridge::ThemePaintState state, const ChromiumBridge::ThemePaintExtraParams* extraParams, WebThemeEngine::ExtraParams* webThemeExtraParams) +static void GetWebThemeExtraParams(PlatformBridge::ThemePart part, PlatformBridge::ThemePaintState state, const PlatformBridge::ThemePaintExtraParams* extraParams, WebThemeEngine::ExtraParams* webThemeExtraParams) { - if (part == ChromiumBridge::PartScrollbarHorizontalTrack || part == ChromiumBridge::PartScrollbarVerticalTrack) { + switch (part) { + case PlatformBridge::PartScrollbarHorizontalTrack: + case PlatformBridge::PartScrollbarVerticalTrack: webThemeExtraParams->scrollbarTrack.trackX = extraParams->scrollbarTrack.trackX; webThemeExtraParams->scrollbarTrack.trackY = extraParams->scrollbarTrack.trackY; webThemeExtraParams->scrollbarTrack.trackWidth = extraParams->scrollbarTrack.trackWidth; webThemeExtraParams->scrollbarTrack.trackHeight = extraParams->scrollbarTrack.trackHeight; + break; + case PlatformBridge::PartCheckbox: + webThemeExtraParams->button.checked = extraParams->button.checked; + webThemeExtraParams->button.indeterminate = extraParams->button.indeterminate; + break; + case PlatformBridge::PartRadio: + webThemeExtraParams->button.checked = extraParams->button.checked; + break; + case PlatformBridge::PartButton: + webThemeExtraParams->button.isDefault = extraParams->button.isDefault; + webThemeExtraParams->button.backgroundColor = extraParams->button.backgroundColor; + break; + case PlatformBridge::PartTextField: + webThemeExtraParams->textField.isTextArea = extraParams->textField.isTextArea; + webThemeExtraParams->textField.isListbox = extraParams->textField.isListbox; + webThemeExtraParams->textField.backgroundColor = extraParams->textField.backgroundColor; + break; + case PlatformBridge::PartMenuList: + webThemeExtraParams->menuList.arrowX = extraParams->menuList.arrowX; + webThemeExtraParams->menuList.arrowY = extraParams->menuList.arrowY; + webThemeExtraParams->menuList.backgroundColor = extraParams->menuList.backgroundColor; + break; + case PlatformBridge::PartSliderTrack: + case PlatformBridge::PartSliderThumb: + webThemeExtraParams->slider.vertical = extraParams->slider.vertical; + webThemeExtraParams->slider.inDrag = extraParams->slider.inDrag; + break; + case PlatformBridge::PartInnerSpinButton: + webThemeExtraParams->innerSpin.spinUp = extraParams->innerSpin.spinUp; + webThemeExtraParams->innerSpin.readOnly = extraParams->innerSpin.readOnly; + break; + case PlatformBridge::PartProgressBar: + webThemeExtraParams->progressBar.determinate = extraParams->progressBar.determinate; + webThemeExtraParams->progressBar.valueRectX = extraParams->progressBar.valueRectX; + webThemeExtraParams->progressBar.valueRectY = extraParams->progressBar.valueRectY; + webThemeExtraParams->progressBar.valueRectWidth = extraParams->progressBar.valueRectWidth; + webThemeExtraParams->progressBar.valueRectHeight = extraParams->progressBar.valueRectHeight; + break; + default: + break; // Parts that have no extra params get here. } } -IntSize ChromiumBridge::getThemePartSize(ThemePart part) +IntSize PlatformBridge::getThemePartSize(ThemePart part) { return webKitClient()->themeEngine()->getSize(WebThemePart(part)); } -void ChromiumBridge::paintThemePart( +void PlatformBridge::paintThemePart( GraphicsContext* gc, ThemePart part, ThemePaintState state, const IntRect& rect, const ThemePaintExtraParams* extraParams) { WebThemeEngine::ExtraParams webThemeExtraParams; @@ -835,7 +885,7 @@ void ChromiumBridge::paintThemePart( #elif OS(DARWIN) -void ChromiumBridge::paintScrollbarThumb( +void PlatformBridge::paintScrollbarThumb( GraphicsContext* gc, ThemePaintState state, ThemePaintSize size, const IntRect& rect, const ThemePaintScrollbarInfo& scrollbarInfo) { WebThemeEngine::ScrollbarInfo webThemeScrollbarInfo; @@ -859,19 +909,19 @@ void ChromiumBridge::paintScrollbarThumb( // Trace Event ---------------------------------------------------------------- -void ChromiumBridge::traceEventBegin(const char* name, void* id, const char* extra) +void PlatformBridge::traceEventBegin(const char* name, void* id, const char* extra) { webKitClient()->traceEventBegin(name, id, extra); } -void ChromiumBridge::traceEventEnd(const char* name, void* id, const char* extra) +void PlatformBridge::traceEventEnd(const char* name, void* id, const char* extra) { webKitClient()->traceEventEnd(name, id, extra); } // Visited Links -------------------------------------------------------------- -LinkHash ChromiumBridge::visitedLinkHash(const UChar* url, unsigned length) +LinkHash PlatformBridge::visitedLinkHash(const UChar* url, unsigned length) { url_canon::RawCanonOutput<2048> buffer; url_parse::Parsed parsed; @@ -880,7 +930,7 @@ LinkHash ChromiumBridge::visitedLinkHash(const UChar* url, unsigned length) return webKitClient()->visitedLinkHash(buffer.data(), buffer.length()); } -LinkHash ChromiumBridge::visitedLinkHash(const KURL& base, +LinkHash PlatformBridge::visitedLinkHash(const KURL& base, const AtomicString& attributeURL) { // Resolve the relative URL using googleurl and pass the absolute URL up to @@ -914,7 +964,7 @@ LinkHash ChromiumBridge::visitedLinkHash(const KURL& base, return webKitClient()->visitedLinkHash(buffer.data(), buffer.length()); } -bool ChromiumBridge::isLinkVisited(LinkHash visitedLinkHash) +bool PlatformBridge::isLinkVisited(LinkHash visitedLinkHash) { return webKitClient()->isLinkVisited(visitedLinkHash); } @@ -923,7 +973,7 @@ bool ChromiumBridge::isLinkVisited(LinkHash visitedLinkHash) // Glue layer. Once the Glue layer moves entirely into the WebKit layer, these // methods will be deleted. -void ChromiumBridge::notifyJSOutOfMemory(Frame* frame) +void PlatformBridge::notifyJSOutOfMemory(Frame* frame) { if (!frame) return; @@ -934,17 +984,17 @@ void ChromiumBridge::notifyJSOutOfMemory(Frame* frame) webFrame->client()->didExhaustMemoryAvailableForScript(webFrame); } -int ChromiumBridge::memoryUsageMB() +int PlatformBridge::memoryUsageMB() { return static_cast<int>(webKitClient()->memoryUsageMB()); } -int ChromiumBridge::actualMemoryUsageMB() +int PlatformBridge::actualMemoryUsageMB() { return static_cast<int>(webKitClient()->actualMemoryUsageMB()); } -int ChromiumBridge::screenDepth(Widget* widget) +int PlatformBridge::screenDepth(Widget* widget) { WebWidgetClient* client = toWebWidgetClient(widget); if (!client) @@ -952,7 +1002,7 @@ int ChromiumBridge::screenDepth(Widget* widget) return client->screenInfo().depth; } -int ChromiumBridge::screenDepthPerComponent(Widget* widget) +int PlatformBridge::screenDepthPerComponent(Widget* widget) { WebWidgetClient* client = toWebWidgetClient(widget); if (!client) @@ -960,7 +1010,7 @@ int ChromiumBridge::screenDepthPerComponent(Widget* widget) return client->screenInfo().depthPerComponent; } -bool ChromiumBridge::screenIsMonochrome(Widget* widget) +bool PlatformBridge::screenIsMonochrome(Widget* widget) { WebWidgetClient* client = toWebWidgetClient(widget); if (!client) @@ -968,7 +1018,7 @@ bool ChromiumBridge::screenIsMonochrome(Widget* widget) return client->screenInfo().isMonochrome; } -IntRect ChromiumBridge::screenRect(Widget* widget) +IntRect PlatformBridge::screenRect(Widget* widget) { WebWidgetClient* client = toWebWidgetClient(widget); if (!client) @@ -976,7 +1026,7 @@ IntRect ChromiumBridge::screenRect(Widget* widget) return client->screenInfo().rect; } -IntRect ChromiumBridge::screenAvailableRect(Widget* widget) +IntRect PlatformBridge::screenAvailableRect(Widget* widget) { WebWidgetClient* client = toWebWidgetClient(widget); if (!client) @@ -984,19 +1034,12 @@ IntRect ChromiumBridge::screenAvailableRect(Widget* widget) return client->screenInfo().availableRect; } -bool ChromiumBridge::popupsAllowed(NPP npp) +bool PlatformBridge::popupsAllowed(NPP npp) { // FIXME: Give the embedder a way to control this. return false; } -void ChromiumBridge::widgetSetCursor(Widget* widget, const Cursor& cursor) -{ - ChromeClientImpl* client = toChromeClientImpl(widget); - if (client) - client->setCursor(WebCursorInfo(cursor)); -} - WorkerContextProxy* WorkerContextProxy::create(Worker* worker) { return WebWorkerClientImpl::createWorkerContextProxy(worker); diff --git a/Source/WebKit/chromium/src/ResourceHandle.cpp b/Source/WebKit/chromium/src/ResourceHandle.cpp index 83e0017..72f60bb 100644 --- a/Source/WebKit/chromium/src/ResourceHandle.cpp +++ b/Source/WebKit/chromium/src/ResourceHandle.cpp @@ -31,7 +31,7 @@ #include "config.h" #include "ResourceHandle.h" -#include "ChromiumBridge.h" +#include "PlatformBridge.h" #include "ResourceHandleClient.h" #include "ResourceRequest.h" #include "SharedBuffer.h" @@ -330,7 +330,7 @@ bool ResourceHandle::willLoadFromCache(ResourceRequest& request, Frame*) // static void ResourceHandle::cacheMetadata(const ResourceResponse& response, const Vector<char>& data) { - ChromiumBridge::cacheMetadata(response.url(), response.responseTime(), data); + PlatformBridge::cacheMetadata(response.url(), response.responseTime(), data); } } // namespace WebCore diff --git a/Source/WebKit/chromium/src/SpeechInputClientImpl.cpp b/Source/WebKit/chromium/src/SpeechInputClientImpl.cpp index b5ed384..e481f6e 100644 --- a/Source/WebKit/chromium/src/SpeechInputClientImpl.cpp +++ b/Source/WebKit/chromium/src/SpeechInputClientImpl.cpp @@ -32,7 +32,9 @@ #include "SpeechInputClientImpl.h" #include "PlatformString.h" +#include "SecurityOrigin.h" #include "SpeechInputListener.h" +#include "WebSecurityOrigin.h" #include "WebSpeechInputController.h" #include "WebString.h" #include "WebViewClient.h" @@ -62,10 +64,10 @@ void SpeechInputClientImpl::setListener(WebCore::SpeechInputListener* listener) m_listener = listener; } -bool SpeechInputClientImpl::startRecognition(int requestId, const WebCore::IntRect& elementRect, const AtomicString& language, const String& grammar) +bool SpeechInputClientImpl::startRecognition(int requestId, const WebCore::IntRect& elementRect, const AtomicString& language, const String& grammar, WebCore::SecurityOrigin* origin) { ASSERT(m_listener); - return m_controller->startRecognition(requestId, elementRect, language, grammar); + return m_controller->startRecognition(requestId, elementRect, language, grammar, WebSecurityOrigin(origin)); } void SpeechInputClientImpl::stopRecording(int requestId) diff --git a/Source/WebKit/chromium/src/SpeechInputClientImpl.h b/Source/WebKit/chromium/src/SpeechInputClientImpl.h index 520803a..a81151d 100644 --- a/Source/WebKit/chromium/src/SpeechInputClientImpl.h +++ b/Source/WebKit/chromium/src/SpeechInputClientImpl.h @@ -40,6 +40,7 @@ #include <wtf/PassOwnPtr.h> namespace WebCore { +class SecurityOrigin; class SpeechInputListener; } @@ -57,7 +58,7 @@ public: // SpeechInputClient methods. void setListener(WebCore::SpeechInputListener*); - bool startRecognition(int requestId, const WebCore::IntRect& elementRect, const AtomicString& language, const String& grammar); + bool startRecognition(int requestId, const WebCore::IntRect& elementRect, const AtomicString& language, const String& grammar, WebCore::SecurityOrigin*); void stopRecording(int); void cancelRecognition(int); diff --git a/Source/WebKit/chromium/src/VideoFrameChromiumImpl.cpp b/Source/WebKit/chromium/src/VideoFrameChromiumImpl.cpp index 99e3e1e..86545b7 100644 --- a/Source/WebKit/chromium/src/VideoFrameChromiumImpl.cpp +++ b/Source/WebKit/chromium/src/VideoFrameChromiumImpl.cpp @@ -111,6 +111,7 @@ const IntSize VideoFrameChromiumImpl::requiredTextureSize(unsigned plane) const { switch (format()) { case RGBA: + case YV16: return IntSize(stride(plane), height()); case YV12: if (plane == static_cast<unsigned>(yPlane)) diff --git a/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h b/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h index 866a1cb..dc7d2df 100644 --- a/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h +++ b/Source/WebKit/chromium/src/WebDevToolsFrontendImpl.h @@ -55,8 +55,8 @@ struct WebDevToolsMessageData; using WTF::String; -class WebDevToolsFrontendImpl : public WebKit::WebDevToolsFrontend - , public Noncopyable { +class WebDevToolsFrontendImpl : public WebKit::WebDevToolsFrontend { + WTF_MAKE_NONCOPYABLE(WebDevToolsFrontendImpl); public: WebDevToolsFrontendImpl( WebKit::WebViewImpl* webViewImpl, diff --git a/Source/WebKit/chromium/src/WebFontImpl.cpp b/Source/WebKit/chromium/src/WebFontImpl.cpp index 8c61997..e1fa0e7 100644 --- a/Source/WebKit/chromium/src/WebFontImpl.cpp +++ b/Source/WebKit/chromium/src/WebFontImpl.cpp @@ -35,6 +35,7 @@ #include "FontDescription.h" #include "GraphicsContext.h" #include "PlatformContextSkia.h" +#include "TextRun.h" #include "WebFloatPoint.h" #include "WebFloatRect.h" #include "WebFontDescription.h" diff --git a/Source/WebKit/chromium/src/WebFrameImpl.cpp b/Source/WebKit/chromium/src/WebFrameImpl.cpp index a13eec0..8651fa8 100644 --- a/Source/WebKit/chromium/src/WebFrameImpl.cpp +++ b/Source/WebKit/chromium/src/WebFrameImpl.cpp @@ -74,7 +74,6 @@ #include "AssociatedURLLoader.h" #include "BackForwardController.h" #include "Chrome.h" -#include "ChromiumBridge.h" #include "ClipboardUtilitiesChromium.h" #include "Console.h" #include "DOMUtilitiesPrivate.h" @@ -103,6 +102,7 @@ #include "InspectorController.h" #include "Page.h" #include "Performance.h" +#include "PlatformBridge.h" #include "PlatformContextSkia.h" #include "PluginDocument.h" #include "PrintContext.h" @@ -284,7 +284,8 @@ WebPluginContainerImpl* WebFrameImpl::pluginContainerFromFrame(Frame* frame) // Simple class to override some of PrintContext behavior. Some of the methods // made virtual so that they can be overriden by ChromePluginPrintContext. -class ChromePrintContext : public PrintContext, public Noncopyable { +class ChromePrintContext : public PrintContext { + WTF_MAKE_NONCOPYABLE(ChromePrintContext); public: ChromePrintContext(Frame* frame) : PrintContext(frame) @@ -883,6 +884,17 @@ void WebFrameImpl::loadHistoryItem(const WebHistoryItem& item) RefPtr<HistoryItem> historyItem = PassRefPtr<HistoryItem>(item); ASSERT(historyItem.get()); + // Sanity check for http://webkit.org/b/52819. It appears that some child + // items of this item might be null. Try validating just the first set of + // children in an attempt to catch it early. + const HistoryItemVector& childItems = historyItem->children(); + int size = childItems.size(); + for (int i = 0; i < size; ++i) { + RefPtr<HistoryItem> childItem = childItems[i].get(); + if (!childItem.get()) + CRASH(); + } + // If there is no currentItem, which happens when we are navigating in // session history after a crash, we need to manufacture one otherwise WebKit // hoarks. This is probably the wrong thing to do, but it seems to work. @@ -1198,6 +1210,9 @@ void WebFrameImpl::enableContinuousSpellChecking(bool enable) { if (enable == isContinuousSpellCheckingEnabled()) return; + // Note, the editor will will notify the client that the continuous spell + // checking state has changed by calling + // WebFrameClient::didToggleContinuousSpellChecking(). frame()->editor()->toggleContinuousSpellChecking(); } @@ -1820,13 +1835,13 @@ WebFrameImpl::WebFrameImpl(WebFrameClient* client) , m_animationController(this) , m_identifier(generateFrameIdentifier()) { - ChromiumBridge::incrementStatsCounter(webFrameActiveCount); + PlatformBridge::incrementStatsCounter(webFrameActiveCount); frameCount++; } WebFrameImpl::~WebFrameImpl() { - ChromiumBridge::decrementStatsCounter(webFrameActiveCount); + PlatformBridge::decrementStatsCounter(webFrameActiveCount); frameCount--; cancelPendingScopingEffort(); diff --git a/Source/WebKit/chromium/src/WebGeolocationPermissionRequest.cpp b/Source/WebKit/chromium/src/WebGeolocationPermissionRequest.cpp index 8d8c53e..53eca19 100644 --- a/Source/WebKit/chromium/src/WebGeolocationPermissionRequest.cpp +++ b/Source/WebKit/chromium/src/WebGeolocationPermissionRequest.cpp @@ -38,7 +38,7 @@ namespace WebKit { WebSecurityOrigin WebGeolocationPermissionRequest::securityOrigin() const { - return WebSecurityOrigin::create(m_private->frame()->document()->url()); + return WebSecurityOrigin(m_private->frame()->document()->securityOrigin()); } void WebGeolocationPermissionRequest::setIsAllowed(bool allowed) diff --git a/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp b/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp index 63ebed8..a209e6a 100644 --- a/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp +++ b/Source/WebKit/chromium/src/WebPopupMenuImpl.cpp @@ -151,6 +151,10 @@ void WebPopupMenuImpl::resize(const WebSize& newSize) } } +void WebPopupMenuImpl::animate() +{ +} + void WebPopupMenuImpl::layout() { } @@ -299,6 +303,10 @@ void WebPopupMenuImpl::invalidateContentsForSlowScroll(const IntRect& updateRect invalidateContentsAndWindow(updateRect, immediate); } +void WebPopupMenuImpl::scheduleAnimation() +{ +} + void WebPopupMenuImpl::scroll(const IntSize& scrollDelta, const IntRect& scrollRect, const IntRect& clipRect) diff --git a/Source/WebKit/chromium/src/WebPopupMenuImpl.h b/Source/WebKit/chromium/src/WebPopupMenuImpl.h index b8ef7ba..7bb9f7e 100644 --- a/Source/WebKit/chromium/src/WebPopupMenuImpl.h +++ b/Source/WebKit/chromium/src/WebPopupMenuImpl.h @@ -56,11 +56,13 @@ struct WebRect; class WebPopupMenuImpl : public WebPopupMenu, public WebCore::FramelessScrollViewClient, public RefCounted<WebPopupMenuImpl> { + WTF_MAKE_FAST_ALLOCATED; public: // WebWidget virtual void close(); virtual WebSize size() { return m_size; } virtual void resize(const WebSize&); + virtual void animate(); virtual void layout(); virtual void paint(WebCanvas* canvas, const WebRect& rect); virtual void themeChanged(); @@ -105,6 +107,7 @@ public: virtual void invalidateWindow(const WebCore::IntRect&, bool); virtual void invalidateContentsAndWindow(const WebCore::IntRect&, bool); virtual void invalidateContentsForSlowScroll(const WebCore::IntRect&, bool); + virtual void scheduleAnimation(); virtual void scroll( const WebCore::IntSize& scrollDelta, const WebCore::IntRect& scrollRect, const WebCore::IntRect& clipRect); diff --git a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp index edb0413..0b5d397 100644 --- a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp +++ b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp @@ -184,6 +184,22 @@ bool WebRuntimeFeatures::isIndexedDatabaseEnabled() #endif } +void WebRuntimeFeatures::enableWebAudio(bool enable) +{ +#if ENABLE(WEB_AUDIO) + RuntimeEnabledFeatures::setWebkitAudioContextEnabled(enable); +#endif +} + +bool WebRuntimeFeatures::isWebAudioEnabled() +{ +#if ENABLE(WEB_AUDIO) + return RuntimeEnabledFeatures::webkitAudioContextEnabled(); +#else + return false; +#endif +} + void WebRuntimeFeatures::enableWebGL(bool enable) { #if ENABLE(3D_CANVAS) diff --git a/Source/WebKit/chromium/src/WebScriptController.cpp b/Source/WebKit/chromium/src/WebScriptController.cpp index 0aa11a6..10bc68f 100644 --- a/Source/WebKit/chromium/src/WebScriptController.cpp +++ b/Source/WebKit/chromium/src/WebScriptController.cpp @@ -54,7 +54,7 @@ void WebScriptController::enableV8SingleThreadMode() void WebScriptController::flushConsoleMessages() { - WebCore::V8Proxy::processConsoleMessages(); + // FIXME: remove this method after all it's usages are gone. } } // namespace WebKit diff --git a/Source/WebKit/chromium/src/WebScrollbarImpl.cpp b/Source/WebKit/chromium/src/WebScrollbarImpl.cpp index 8b9e287..05d2d1f 100644 --- a/Source/WebKit/chromium/src/WebScrollbarImpl.cpp +++ b/Source/WebKit/chromium/src/WebScrollbarImpl.cpp @@ -62,9 +62,10 @@ int WebScrollbar::defaultThickness() WebScrollbarImpl::WebScrollbarImpl(WebScrollbarClient* client, Orientation orientation) : m_client(client) + , m_scrollOffset(0) { m_scrollbar = Scrollbar::createNativeScrollbar( - static_cast<ScrollbarClient*>(this), + static_cast<ScrollableArea*>(this), static_cast<ScrollbarOrientation>(orientation), RegularScrollbar); } @@ -89,12 +90,12 @@ void WebScrollbarImpl::setLocation(const WebRect& rect) int WebScrollbarImpl::value() const { - return m_scrollbar->value(); + return m_scrollOffset; } void WebScrollbarImpl::setValue(int position) { - m_scrollbar->setValue(position, Scrollbar::NotFromScrollAnimator); + WebCore::ScrollableArea::scrollToOffsetWithoutAnimation(m_scrollbar->orientation(), position); } void WebScrollbarImpl::setDocumentSize(int size) @@ -112,7 +113,8 @@ void WebScrollbarImpl::scroll(ScrollDirection direction, ScrollGranularity granu dir = horizontal ? ScrollRight : ScrollDown; else dir = horizontal ? ScrollLeft : ScrollUp; - m_scrollbar->scroll(dir, static_cast<WebCore::ScrollGranularity>(granularity), multiplier); + + WebCore::ScrollableArea::scroll(dir, static_cast<WebCore::ScrollGranularity>(granularity), multiplier); } void WebScrollbarImpl::paint(WebCanvas* canvas, const WebRect& rect) @@ -167,11 +169,11 @@ bool WebScrollbarImpl::onMouseDown(const WebInputEvent& event) if (!m_scrollbar->frameRect().contains(mousedown.x, mousedown.y)) return false; - mousedown.x -= m_scrollbar->x(); - mousedown.y -= m_scrollbar->y(); - m_scrollbar->mouseDown(PlatformMouseEventBuilder(m_scrollbar.get(), mousedown)); - return true; - } + mousedown.x -= m_scrollbar->x(); + mousedown.y -= m_scrollbar->y(); + m_scrollbar->mouseDown(PlatformMouseEventBuilder(m_scrollbar.get(), mousedown)); + return true; +} bool WebScrollbarImpl::onMouseUp(const WebInputEvent& event) { @@ -183,16 +185,16 @@ bool WebScrollbarImpl::onMouseUp(const WebInputEvent& event) bool WebScrollbarImpl::onMouseMove(const WebInputEvent& event) { - WebMouseEvent mousemove = *static_cast<const WebMouseEvent*>(&event); - if (m_scrollbar->frameRect().contains(mousemove.x, mousemove.y) - || m_scrollbar->pressedPart() != NoPart) { - mousemove.x -= m_scrollbar->x(); - mousemove.y -= m_scrollbar->y(); - return m_scrollbar->mouseMoved(PlatformMouseEventBuilder(m_scrollbar.get(), mousemove)); - } + WebMouseEvent mousemove = *static_cast<const WebMouseEvent*>(&event); + if (m_scrollbar->frameRect().contains(mousemove.x, mousemove.y) + || m_scrollbar->pressedPart() != NoPart) { + mousemove.x -= m_scrollbar->x(); + mousemove.y -= m_scrollbar->y(); + return m_scrollbar->mouseMoved(PlatformMouseEventBuilder(m_scrollbar.get(), mousemove)); + } - if (m_scrollbar->hoveredPart() != NoPart) - m_scrollbar->mouseExited(); + if (m_scrollbar->hoveredPart() != NoPart) + m_scrollbar->mouseExited(); return false; } @@ -206,59 +208,59 @@ bool WebScrollbarImpl::onMouseLeave(const WebInputEvent& event) bool WebScrollbarImpl::onMouseWheel(const WebInputEvent& event) { - // Same logic as in Scrollview.cpp. If we can move at all, we'll accept the event. - WebMouseWheelEvent mousewheel = *static_cast<const WebMouseWheelEvent*>(&event); - int maxScrollDelta = m_scrollbar->maximum() - m_scrollbar->value(); - float delta = m_scrollbar->orientation() == HorizontalScrollbar ? mousewheel.deltaX : mousewheel.deltaY; - if ((delta < 0 && maxScrollDelta > 0) || (delta > 0 && m_scrollbar->value() > 0)) { - if (mousewheel.scrollByPage) { - ASSERT(m_scrollbar->orientation() == VerticalScrollbar); - bool negative = delta < 0; - delta = max(max(static_cast<float>(m_scrollbar->visibleSize()) * Scrollbar::minFractionToStepWhenPaging(), static_cast<float>(m_scrollbar->visibleSize() - Scrollbar::maxOverlapBetweenPages())), 1.0f); - if (negative) - delta *= -1; - } - m_scrollbar->scroll((m_scrollbar->orientation() == HorizontalScrollbar) ? WebCore::ScrollLeft : WebCore::ScrollUp, WebCore::ScrollByPixel, delta); - return true; + // Same logic as in Scrollview.cpp. If we can move at all, we'll accept the event. + WebMouseWheelEvent mousewheel = *static_cast<const WebMouseWheelEvent*>(&event); + int maxScrollDelta = m_scrollbar->maximum() - m_scrollbar->value(); + float delta = m_scrollbar->orientation() == HorizontalScrollbar ? mousewheel.deltaX : mousewheel.deltaY; + if ((delta < 0 && maxScrollDelta > 0) || (delta > 0 && m_scrollbar->value() > 0)) { + if (mousewheel.scrollByPage) { + ASSERT(m_scrollbar->orientation() == VerticalScrollbar); + bool negative = delta < 0; + delta = max(max(static_cast<float>(m_scrollbar->visibleSize()) * Scrollbar::minFractionToStepWhenPaging(), static_cast<float>(m_scrollbar->visibleSize() - Scrollbar::maxOverlapBetweenPages())), 1.0f); + if (negative) + delta *= -1; } + WebCore::ScrollableArea::scroll((m_scrollbar->orientation() == HorizontalScrollbar) ? WebCore::ScrollLeft : WebCore::ScrollUp, WebCore::ScrollByPixel, delta); + return true; + } return false; } bool WebScrollbarImpl::onKeyDown(const WebInputEvent& event) { - WebKeyboardEvent keyboard = *static_cast<const WebKeyboardEvent*>(&event); - int keyCode; - // We have to duplicate this logic from WebViewImpl because there it uses - // Char and RawKeyDown events, which don't exist at this point. - if (keyboard.windowsKeyCode == VKEY_SPACE) - keyCode = ((keyboard.modifiers & WebInputEvent::ShiftKey) ? VKEY_PRIOR : VKEY_NEXT); - else { - if (keyboard.modifiers == WebInputEvent::ControlKey) { - // Match FF behavior in the sense that Ctrl+home/end are the only Ctrl - // key combinations which affect scrolling. Safari is buggy in the - // sense that it scrolls the page for all Ctrl+scrolling key - // combinations. For e.g. Ctrl+pgup/pgdn/up/down, etc. - switch (keyboard.windowsKeyCode) { - case VKEY_HOME: - case VKEY_END: - break; - default: - return false; - } + WebKeyboardEvent keyboard = *static_cast<const WebKeyboardEvent*>(&event); + int keyCode; + // We have to duplicate this logic from WebViewImpl because there it uses + // Char and RawKeyDown events, which don't exist at this point. + if (keyboard.windowsKeyCode == VKEY_SPACE) + keyCode = ((keyboard.modifiers & WebInputEvent::ShiftKey) ? VKEY_PRIOR : VKEY_NEXT); + else { + if (keyboard.modifiers == WebInputEvent::ControlKey) { + // Match FF behavior in the sense that Ctrl+home/end are the only Ctrl + // key combinations which affect scrolling. Safari is buggy in the + // sense that it scrolls the page for all Ctrl+scrolling key + // combinations. For e.g. Ctrl+pgup/pgdn/up/down, etc. + switch (keyboard.windowsKeyCode) { + case VKEY_HOME: + case VKEY_END: + break; + default: + return false; } + } - if (keyboard.isSystemKey || (keyboard.modifiers & WebInputEvent::ShiftKey)) - return false; + if (keyboard.isSystemKey || (keyboard.modifiers & WebInputEvent::ShiftKey)) + return false; - keyCode = keyboard.windowsKeyCode; - } - WebCore::ScrollDirection scrollDirection; - WebCore::ScrollGranularity scrollGranularity; - if (WebViewImpl::mapKeyCodeForScroll(keyCode, &scrollDirection, &scrollGranularity)) { - // Will return false if scroll direction wasn't compatible with this scrollbar. - return m_scrollbar->scroll(scrollDirection, scrollGranularity); - } + keyCode = keyboard.windowsKeyCode; + } + WebCore::ScrollDirection scrollDirection; + WebCore::ScrollGranularity scrollGranularity; + if (WebViewImpl::mapKeyCodeForScroll(keyCode, &scrollDirection, &scrollGranularity)) { + // Will return false if scroll direction wasn't compatible with this scrollbar. + return WebCore::ScrollableArea::scroll(scrollDirection, scrollGranularity); + } return false; } @@ -267,13 +269,18 @@ int WebScrollbarImpl::scrollSize(WebCore::ScrollbarOrientation orientation) cons return (orientation == m_scrollbar->orientation()) ? (m_scrollbar->totalSize() - m_scrollbar->visibleSize()) : 0; } -void WebScrollbarImpl::setScrollOffsetFromAnimation(const WebCore::IntPoint& offset) +int WebScrollbarImpl::scrollPosition(WebCore::Scrollbar*) const { - m_scrollbar->setValue((m_scrollbar->orientation() == HorizontalScrollbar) ? offset.x() : offset.y(), Scrollbar::FromScrollAnimator); + return m_scrollOffset; } -void WebScrollbarImpl::valueChanged(WebCore::Scrollbar*) +void WebScrollbarImpl::setScrollOffset(const WebCore::IntPoint& offset) { + if (m_scrollbar->orientation() == HorizontalScrollbar) + m_scrollOffset = offset.x(); + else + m_scrollOffset = offset.y(); + m_client->valueChanged(this); } diff --git a/Source/WebKit/chromium/src/WebScrollbarImpl.h b/Source/WebKit/chromium/src/WebScrollbarImpl.h index 5512867..4dcfd5d 100644 --- a/Source/WebKit/chromium/src/WebScrollbarImpl.h +++ b/Source/WebKit/chromium/src/WebScrollbarImpl.h @@ -31,7 +31,7 @@ #ifndef WebScrollbarImpl_h #define WebScrollbarImpl_h -#include "ScrollbarClient.h" +#include "ScrollableArea.h" #include "WebScrollbar.h" #include <wtf/RefPtr.h> @@ -43,7 +43,7 @@ class Scrollbar; namespace WebKit { class WebScrollbarImpl : public WebScrollbar, - public WebCore::ScrollbarClient { + public WebCore::ScrollableArea { public: WebScrollbarImpl(WebScrollbarClient*, Orientation orientation); ~WebScrollbarImpl(); @@ -57,10 +57,10 @@ public: virtual void paint(WebCanvas*, const WebRect&); virtual bool handleInputEvent(const WebInputEvent&); - // WebCore::ScrollbarClient methods - virtual int scrollSize(WebCore::ScrollbarOrientation orientation) const; - virtual void setScrollOffsetFromAnimation(const WebCore::IntPoint&); - virtual void valueChanged(WebCore::Scrollbar*); + // WebCore::ScrollableArea methods + virtual int scrollSize(WebCore::ScrollbarOrientation) const; + virtual int scrollPosition(WebCore::Scrollbar*) const; + virtual void setScrollOffset(const WebCore::IntPoint&); virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&); virtual bool isActive() const; virtual bool scrollbarCornerPresent() const; @@ -76,6 +76,7 @@ private: WebScrollbarClient* m_client; + int m_scrollOffset; RefPtr<WebCore::Scrollbar> m_scrollbar; }; diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.cpp b/Source/WebKit/chromium/src/WebSettingsImpl.cpp index c66a57b..0457f77 100644 --- a/Source/WebKit/chromium/src/WebSettingsImpl.cpp +++ b/Source/WebKit/chromium/src/WebSettingsImpl.cpp @@ -264,6 +264,11 @@ void WebSettingsImpl::setOfflineWebApplicationCacheEnabled(bool enabled) m_settings->setOfflineWebApplicationCacheEnabled(enabled); } +void WebSettingsImpl::setWebAudioEnabled(bool enabled) +{ + m_settings->setWebAudioEnabled(enabled); +} + void WebSettingsImpl::setExperimentalWebGLEnabled(bool enabled) { m_settings->setWebGLEnabled(enabled); diff --git a/Source/WebKit/chromium/src/WebSettingsImpl.h b/Source/WebKit/chromium/src/WebSettingsImpl.h index febc959..4960bb9 100644 --- a/Source/WebKit/chromium/src/WebSettingsImpl.h +++ b/Source/WebKit/chromium/src/WebSettingsImpl.h @@ -84,6 +84,7 @@ public: virtual void setAllowFileAccessFromFileURLs(bool); virtual void setTextDirectionSubmenuInclusionBehaviorNeverIncluded(); virtual void setOfflineWebApplicationCacheEnabled(bool); + virtual void setWebAudioEnabled(bool); virtual void setExperimentalWebGLEnabled(bool); virtual void setShowDebugBorders(bool); virtual void setEditingBehavior(EditingBehavior); diff --git a/Source/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp b/Source/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp index 48f8b50..3beb785 100644 --- a/Source/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp +++ b/Source/WebKit/chromium/src/WebSpeechInputControllerMockImpl.cpp @@ -32,8 +32,10 @@ #include "WebSpeechInputControllerMockImpl.h" #include "PlatformString.h" +#include "SecurityOrigin.h" #include "SpeechInputClientMock.h" #include "WebRect.h" +#include "WebSecurityOrigin.h" namespace WebKit { @@ -80,9 +82,9 @@ void WebSpeechInputControllerMockImpl::setRecognitionResult(int requestId, const m_listener->setRecognitionResult(requestId, result); } -bool WebSpeechInputControllerMockImpl::startRecognition(int requestId, const WebRect& elementRect, const WebString& language, const WebString& grammar) +bool WebSpeechInputControllerMockImpl::startRecognition(int requestId, const WebRect& elementRect, const WebString& language, const WebString& grammar, const WebSecurityOrigin& origin) { - return m_webcoreMock->startRecognition(requestId, elementRect, language, grammar); + return m_webcoreMock->startRecognition(requestId, elementRect, language, grammar, origin.get()); } void WebSpeechInputControllerMockImpl::cancelRecognition(int requestId) diff --git a/Source/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h b/Source/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h index bf00ed0..4c8fee7 100644 --- a/Source/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h +++ b/Source/WebKit/chromium/src/WebSpeechInputControllerMockImpl.h @@ -57,7 +57,7 @@ public: void setRecognitionResult(int requestId, const WebCore::SpeechInputResultArray& result); // WebSpeechInputController methods. - bool startRecognition(int requestId, const WebRect& elementRect, const WebString& language, const WebString& grammar); + bool startRecognition(int requestId, const WebRect& elementRect, const WebString& language, const WebString& grammar, const WebSecurityOrigin&); void cancelRecognition(int requestId); void stopRecording(int requestId); diff --git a/Source/WebKit/chromium/src/WebViewImpl.cpp b/Source/WebKit/chromium/src/WebViewImpl.cpp index 41a0804..798e5ff 100644 --- a/Source/WebKit/chromium/src/WebViewImpl.cpp +++ b/Source/WebKit/chromium/src/WebViewImpl.cpp @@ -34,23 +34,22 @@ #include "AutoFillPopupMenuClient.h" #include "AXObjectCache.h" #include "BackForwardListChromium.h" +#include "CSSStyleSelector.h" +#include "CSSValueKeywords.h" #include "Chrome.h" -#include "ChromiumBridge.h" #include "ColorSpace.h" #include "CompositionUnderlineVectorBuilder.h" #include "ContextMenu.h" #include "ContextMenuController.h" #include "ContextMenuItem.h" -#include "CSSStyleSelector.h" -#include "CSSValueKeywords.h" #include "Cursor.h" +#include "DOMUtilitiesPrivate.h" #include "DeviceOrientationClientProxy.h" #include "Document.h" #include "DocumentLoader.h" -#include "DOMUtilitiesPrivate.h" #include "DragController.h" -#include "DragScrollTimer.h" #include "DragData.h" +#include "DragScrollTimer.h" #include "Editor.h" #include "EventHandler.h" #include "Extensions3D.h" @@ -65,8 +64,8 @@ #include "GraphicsContext3DInternal.h" #include "HTMLInputElement.h" #include "HTMLMediaElement.h" -#include "HitTestResult.h" #include "HTMLNames.h" +#include "HitTestResult.h" #include "Image.h" #include "ImageBuffer.h" #include "InspectorController.h" @@ -78,6 +77,7 @@ #include "PageGroup.h" #include "PageGroupLoadDeferrer.h" #include "Pasteboard.h" +#include "PlatformBridge.h" #include "PlatformContextSkia.h" #include "PlatformKeyboardEvent.h" #include "PlatformMouseEvent.h" @@ -98,8 +98,8 @@ #include "Vector.h" #include "WebAccessibilityObject.h" #include "WebAutoFillClient.h" -#include "WebDevToolsAgentPrivate.h" #include "WebDevToolsAgentImpl.h" +#include "WebDevToolsAgentPrivate.h" #include "WebDragData.h" #include "WebFrameImpl.h" #include "WebImage.h" @@ -972,6 +972,18 @@ void WebViewImpl::resize(const WebSize& newSize) #endif } +void WebViewImpl::animate() +{ +#if ENABLE(REQUEST_ANIMATION_FRAME) + WebFrameImpl* webframe = mainFrameImpl(); + if (webframe) { + FrameView* view = webframe->frameView(); + if (view) + view->serviceScriptedAnimations(); + } +#endif +} + void WebViewImpl::layout() { WebFrameImpl* webframe = mainFrameImpl(); @@ -2287,7 +2299,7 @@ void WebViewImpl::invalidateRootLayerRect(const IntRect& rect) void WebViewImpl::setIsAcceleratedCompositingActive(bool active) { - ChromiumBridge::histogramEnumeration("GPU.setIsAcceleratedCompositingActive", active * 2 + m_isAcceleratedCompositingActive, 4); + PlatformBridge::histogramEnumeration("GPU.setIsAcceleratedCompositingActive", active * 2 + m_isAcceleratedCompositingActive, 4); if (m_isAcceleratedCompositingActive == active) return; diff --git a/Source/WebKit/chromium/src/WebViewImpl.h b/Source/WebKit/chromium/src/WebViewImpl.h index bc79ec1..d164a48 100644 --- a/Source/WebKit/chromium/src/WebViewImpl.h +++ b/Source/WebKit/chromium/src/WebViewImpl.h @@ -91,6 +91,7 @@ public: virtual void close(); virtual WebSize size() { return m_size; } virtual void resize(const WebSize&); + virtual void animate(); virtual void layout(); virtual void paint(WebCanvas*, const WebRect&); virtual void themeChanged(); diff --git a/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp b/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp index 18282e3..f90e7e8 100644 --- a/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp +++ b/Source/WebKit/chromium/src/WebWorkerClientImpl.cpp @@ -41,6 +41,7 @@ #include "MessageEvent.h" #include "MessagePort.h" #include "MessagePortChannel.h" +#include "ScriptCallStack.h" #include "ScriptExecutionContext.h" #include "Worker.h" #include "WorkerContext.h" @@ -247,7 +248,7 @@ void WebWorkerClientImpl::postExceptionToWorkerObject(const WebString& errorMess sourceURL, lineNumber)); if (unhandled) - m_scriptExecutionContext->reportException(errorMessage, lineNumber, sourceURL); + m_scriptExecutionContext->reportException(errorMessage, lineNumber, sourceURL, 0); } void WebWorkerClientImpl::postConsoleMessageToWorkerObject(int destination, @@ -274,7 +275,7 @@ void WebWorkerClientImpl::postConsoleMessageToWorkerObject(int destination, static_cast<MessageType>(messageType), static_cast<MessageLevel>(messageLevel), String(message), lineNumber, - String(sourceURL)); + String(sourceURL), 0); } void WebWorkerClientImpl::postConsoleMessageToWorkerObject(int sourceId, @@ -381,9 +382,7 @@ void WebWorkerClientImpl::postExceptionToWorkerObjectTask( sourceURL, lineNumber)); if (!handled) - thisPtr->m_scriptExecutionContext->reportException(errorMessage, - lineNumber, - sourceURL); + thisPtr->m_scriptExecutionContext->reportException(errorMessage, lineNumber, sourceURL, 0); } void WebWorkerClientImpl::postConsoleMessageToWorkerObjectTask(ScriptExecutionContext* context, @@ -398,8 +397,7 @@ void WebWorkerClientImpl::postConsoleMessageToWorkerObjectTask(ScriptExecutionCo thisPtr->m_scriptExecutionContext->addMessage(static_cast<MessageSource>(sourceId), static_cast<MessageType>(messageType), static_cast<MessageLevel>(messageLevel), - message, lineNumber, - sourceURL); + message, lineNumber, sourceURL, 0); } void WebWorkerClientImpl::confirmMessageFromWorkerObjectTask(ScriptExecutionContext* context, diff --git a/Source/WebKit/chromium/src/js/Tests.js b/Source/WebKit/chromium/src/js/Tests.js index f2e8dcb..900d79e 100644 --- a/Source/WebKit/chromium/src/js/Tests.js +++ b/Source/WebKit/chromium/src/js/Tests.js @@ -616,7 +616,7 @@ TestSuite.prototype.evaluateInConsole_ = function(code, callback) */ TestSuite.prototype._checkExecutionLine = function(sourceFrame, lineNumber, lineContent) { - this.assertEquals(lineNumber, sourceFrame.executionLine, "Unexpected execution line number."); + this.assertEquals(lineNumber, sourceFrame._executionLine, "Unexpected execution line number."); this.assertEquals(lineContent, sourceFrame._textModel.line(lineNumber - 1), "Unexpected execution line text."); } @@ -686,7 +686,8 @@ TestSuite.prototype._checkSourceFrameWhenLoaded = function(expectations, callbac var test = this; var frame = WebInspector.currentPanel.visibleView.sourceFrame; - if (frame._loaded) + + if (frame._textViewer) checkExecLine(); else { setTimeout(function() { @@ -741,32 +742,6 @@ TestSuite.prototype._waitUntilScriptsAreParsed = function(expectedScripts, callb /** - * Executes the 'code' with InjectedScriptAccess.getProperties overriden - * so that all callbacks passed to InjectedScriptAccess.getProperties are - * extended with the "hook". - * @param {Function} hook The hook function. - * @param {Function} code A code snippet to be executed. - */ -TestSuite.prototype._hookGetPropertiesCallback = function(hook, code) -{ - var accessor = InjectedScriptAccess.prototype; - var orig = accessor.getProperties; - accessor.getProperties = function(objectProxy, ignoreHasOwnProperty, abbreviate, callback) { - orig.call(this, objectProxy, ignoreHasOwnProperty, abbreviate, - function() { - callback.apply(this, arguments); - hook(); - }); - }; - try { - code(); - } finally { - accessor.getProperties = orig; - } -}; - - -/** * Key event with given key identifier. */ TestSuite.createKeyEvent = function(keyIdentifier) |
