Title: [161279] trunk/Source/WebCore
Revision
161279
Author
[email protected]
Date
2014-01-03 12:45:24 -0800 (Fri, 03 Jan 2014)

Log Message

Allow the ChromeClient to provide a custom ScrollingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=126450

Reviewed by Tim Horton.

Some platforms will want to provide a custom ScrollingCoordinator, so let
them do so by asking ChromeClient first for one.

* page/ChromeClient.h:
(WebCore::ChromeClient::createScrollingCoordinator):
* page/Page.cpp:
(WebCore::Page::scrollingCoordinator):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (161278 => 161279)


--- trunk/Source/WebCore/ChangeLog	2014-01-03 20:22:09 UTC (rev 161278)
+++ trunk/Source/WebCore/ChangeLog	2014-01-03 20:45:24 UTC (rev 161279)
@@ -1,3 +1,18 @@
+2014-01-03  Simon Fraser  <[email protected]>
+
+        Allow the ChromeClient to provide a custom ScrollingCoordinator
+        https://bugs.webkit.org/show_bug.cgi?id=126450
+
+        Reviewed by Tim Horton.
+        
+        Some platforms will want to provide a custom ScrollingCoordinator, so let
+        them do so by asking ChromeClient first for one.
+
+        * page/ChromeClient.h:
+        (WebCore::ChromeClient::createScrollingCoordinator):
+        * page/Page.cpp:
+        (WebCore::Page::scrollingCoordinator):
+
 2014-01-03  Andreas Kling  <[email protected]>
 
         Deploy more child renderer iterators in RenderBlockFlow.

Modified: trunk/Source/WebCore/page/ChromeClient.h (161278 => 161279)


--- trunk/Source/WebCore/page/ChromeClient.h	2014-01-03 20:22:09 UTC (rev 161278)
+++ trunk/Source/WebCore/page/ChromeClient.h	2014-01-03 20:45:24 UTC (rev 161279)
@@ -34,6 +34,7 @@
 #include "PopupMenuClient.h"
 #include "RenderEmbeddedObject.h"
 #include "ScrollTypes.h"
+#include "ScrollingCoordinator.h"
 #include "SearchPopupMenu.h"
 #include "WebCoreKeyboardUIMode.h"
 #include <wtf/Forward.h>
@@ -322,6 +323,8 @@
     virtual bool layerTreeStateIsFrozen() const { return false; }
 #endif
 
+    virtual PassRefPtr<ScrollingCoordinator> createScrollingCoordinator(Page*) const { return nullptr; }
+
 #if PLATFORM(WIN) && USE(AVFOUNDATION)
     virtual GraphicsDeviceAdapter* graphicsDeviceAdapter() const { return 0; }
 #endif

Modified: trunk/Source/WebCore/page/Page.cpp (161278 => 161279)


--- trunk/Source/WebCore/page/Page.cpp	2014-01-03 20:22:09 UTC (rev 161278)
+++ trunk/Source/WebCore/page/Page.cpp	2014-01-03 20:45:24 UTC (rev 161279)
@@ -260,8 +260,11 @@
 
 ScrollingCoordinator* Page::scrollingCoordinator()
 {
-    if (!m_scrollingCoordinator && m_settings->scrollingCoordinatorEnabled())
-        m_scrollingCoordinator = ScrollingCoordinator::create(this);
+    if (!m_scrollingCoordinator && m_settings->scrollingCoordinatorEnabled()) {
+        m_scrollingCoordinator = chrome().client().createScrollingCoordinator(this);
+        if (!m_scrollingCoordinator)
+            m_scrollingCoordinator = ScrollingCoordinator::create(this);
+    }
 
     return m_scrollingCoordinator.get();
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to