Title: [128245] trunk/Source/WebKit2
Revision
128245
Author
ander...@apple.com
Date
2012-09-11 17:00:18 -0700 (Tue, 11 Sep 2012)

Log Message

Accelerated compositing should always be forced when using the tiled drawing area
https://bugs.webkit.org/show_bug.cgi?id=96449

Reviewed by Andy Estes.

There's code in WebPage::updatePreferences that will turn off accelerated compositing unless accelerated drawing is enabled.
This should only be done in the non-tiled model, so move the code to DrawingAreaImpl::updatePreferences.

* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::updatePreferences):
This now takes a WebPreferencesStore.

* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updatePreferences):
Move code here from WebPage::updatePreferences.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Pass the WebPreferencesStore to DrawingArea::updatePreferences.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
Remove call to updatePreferences, it's going to be called by the WebPage object later.

(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
This now takes a WebPreferencesStore.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (128244 => 128245)


--- trunk/Source/WebKit2/ChangeLog	2012-09-11 23:53:46 UTC (rev 128244)
+++ trunk/Source/WebKit2/ChangeLog	2012-09-12 00:00:18 UTC (rev 128245)
@@ -1,3 +1,33 @@
+2012-09-11  Anders Carlsson  <ander...@apple.com>
+
+        Accelerated compositing should always be forced when using the tiled drawing area
+        https://bugs.webkit.org/show_bug.cgi?id=96449
+
+        Reviewed by Andy Estes.
+
+        There's code in WebPage::updatePreferences that will turn off accelerated compositing unless accelerated drawing is enabled.
+        This should only be done in the non-tiled model, so move the code to DrawingAreaImpl::updatePreferences.
+
+        * WebProcess/WebPage/DrawingArea.h:
+        (WebKit::DrawingArea::updatePreferences):
+        This now takes a WebPreferencesStore.
+
+        * WebProcess/WebPage/DrawingAreaImpl.cpp:
+        (WebKit::DrawingAreaImpl::updatePreferences):
+        Move code here from WebPage::updatePreferences.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+        Pass the WebPreferencesStore to DrawingArea::updatePreferences.
+
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+        (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
+        Remove call to updatePreferences, it's going to be called by the WebPage object later.
+
+        (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
+        This now takes a WebPreferencesStore.
+
 2012-09-11  Brady Eidson  <beid...@apple.com>
 
         Get rid of the PluginProcessShim for 64-bit plug-ins

Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h (128244 => 128245)


--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h	2012-09-11 23:53:46 UTC (rev 128244)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h	2012-09-12 00:00:18 UTC (rev 128245)
@@ -49,6 +49,7 @@
 class LayerTreeHost;
 class WebPage;
 struct WebPageCreationParameters;
+struct WebPreferencesStore;
 
 #if PLATFORM(WIN)
 struct WindowGeometry;
@@ -83,7 +84,7 @@
     virtual void pageCustomRepresentationChanged() { }
 
     virtual void setPaintingEnabled(bool) { }
-    virtual void updatePreferences() { }
+    virtual void updatePreferences(const WebPreferencesStore&) { }
 
 #if USE(ACCELERATED_COMPOSITING)
     virtual void setRootCompositingLayer(WebCore::GraphicsLayer*) = 0;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp (128244 => 128245)


--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2012-09-11 23:53:46 UTC (rev 128244)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2012-09-12 00:00:18 UTC (rev 128245)
@@ -259,6 +259,18 @@
     m_isPaintingEnabled = paintingEnabled;
 }
 
+void DrawingAreaImpl::updatePreferences(const WebPreferencesStore& store)
+{
+    // <rdar://problem/10697417>: It is necessary to force compositing when accelerate drawing
+    // is enabled on Mac so that scrollbars are always in their own layers.
+#if PLATFORM(MAC)
+    if (m_webPage->corePage()->settings()->acceleratedDrawingEnabled())
+        m_webPage->corePage()->settings()->setForceCompositingMode(LayerTreeHost::supportsAcceleratedCompositing());
+    else
+#endif
+        m_webPage->corePage()->settings()->setForceCompositingMode(store.getBoolValueForKey(WebPreferencesKey::forceCompositingModeKey()) && LayerTreeHost::supportsAcceleratedCompositing());
+}
+
 void DrawingAreaImpl::layerHostDidFlushLayers()
 {
     ASSERT(m_layerTreeHost);

Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h (128244 => 128245)


--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h	2012-09-11 23:53:46 UTC (rev 128244)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h	2012-09-12 00:00:18 UTC (rev 128245)
@@ -66,6 +66,7 @@
     virtual bool pageOverlayShouldApplyFadeWhenPainting() const;
 
     virtual void setPaintingEnabled(bool);
+    virtual void updatePreferences(const WebPreferencesStore&) OVERRIDE;
 
     virtual void setRootCompositingLayer(WebCore::GraphicsLayer*);
     virtual void scheduleCompositingLayerSync();

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (128244 => 128245)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-09-11 23:53:46 UTC (rev 128244)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-09-12 00:00:18 UTC (rev 128245)
@@ -2081,15 +2081,6 @@
 #endif
     settings->setInteractiveFormValidationEnabled(store.getBoolValueForKey(WebPreferencesKey::interactiveFormValidationEnabledKey()));
 
-    // <rdar://problem/10697417>: It is necessary to force compositing when accelerate drawing
-    // is enabled on Mac so that scrollbars are always in their own layers.
-#if PLATFORM(MAC)
-    if (settings->acceleratedDrawingEnabled())
-        settings->setForceCompositingMode(LayerTreeHost::supportsAcceleratedCompositing());
-    else
-#endif
-        settings->setForceCompositingMode(store.getBoolValueForKey(WebPreferencesKey::forceCompositingModeKey()) && LayerTreeHost::supportsAcceleratedCompositing());
-
 #if ENABLE(SQL_DATABASE)
     AbstractDatabase::setIsAvailable(store.getBoolValueForKey(WebPreferencesKey::databasesEnabledKey()));
 #endif
@@ -2134,7 +2125,7 @@
     platformPreferencesDidChange(store);
 
     if (m_drawingArea)
-        m_drawingArea->updatePreferences();
+        m_drawingArea->updatePreferences(store);
 }
 
 #if ENABLE(INSPECTOR)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h (128244 => 128245)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h	2012-09-11 23:53:46 UTC (rev 128244)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h	2012-09-12 00:00:18 UTC (rev 128245)
@@ -64,7 +64,7 @@
     virtual void didInstallPageOverlay() OVERRIDE;
     virtual void didUninstallPageOverlay() OVERRIDE;
     virtual void setPageOverlayNeedsDisplay(const WebCore::IntRect&) OVERRIDE;
-    virtual void updatePreferences() OVERRIDE;
+    virtual void updatePreferences(const WebPreferencesStore&) OVERRIDE;
 
     virtual void dispatchAfterEnsuringUpdatedScrollPosition(const Function<void ()>&) OVERRIDE;
 

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (128244 => 128245)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2012-09-11 23:53:46 UTC (rev 128244)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2012-09-12 00:00:18 UTC (rev 128245)
@@ -71,11 +71,10 @@
     , m_layerFlushScheduler(this)
     , m_isPaintingSuspended(!parameters.isVisible)
 {
-    Page* page = webPage->corePage();
+    Page* page = m_webPage->corePage();
 
-    // FIXME: It's weird that we're mucking around with the settings here.
-    page->settings()->setForceCompositingMode(true);
     page->settings()->setScrollingCoordinatorEnabled(true);
+    page->settings()->setForceCompositingMode(true);
 
     WebProcess::shared().eventDispatcher().addScrollingTreeForPage(webPage);
 
@@ -92,8 +91,6 @@
     LayerTreeContext layerTreeContext;
     layerTreeContext.contextID = m_layerHostingContext->contextID();
     m_webPage->send(Messages::DrawingAreaProxy::EnterAcceleratedCompositingMode(0, layerTreeContext));
-
-    updatePreferences();
 }
 
 TiledCoreAnimationDrawingArea::~TiledCoreAnimationDrawingArea()
@@ -206,7 +203,7 @@
     scheduleCompositingLayerSync();
 }
 
-void TiledCoreAnimationDrawingArea::updatePreferences()
+void TiledCoreAnimationDrawingArea::updatePreferences(const WebPreferencesStore&)
 {
     bool showDebugBorders = m_webPage->corePage()->settings()->showDebugBorders();
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to