Title: [99758] branches/chromium/912
Revision
99758
Author
[email protected]
Date
2011-11-09 14:09:39 -0800 (Wed, 09 Nov 2011)

Log Message

Merge 99485 - Source/WebCore: Create a separate setting for compositing of for scrollable [i]frames
that forceCompositingMode can be used without turning frames into composited layers.
https://bugs.webkit.org/show_bug.cgi?id=71714

Reviewed by James Robinson.

* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setAcceleratedCompositingForScrollableFramesEnabled):
(WebCore::Settings::acceleratedCompositingForScrollableFramesEnabled):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
* testing/Internals.cpp:
(WebCore::Internals::setEnableCompositingForScrollableFrames):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests: [chromium] Make compositing for scrollable [i]frames a setting separate from
forceCompositingMode.
https://bugs.webkit.org/show_bug.cgi?id=71714

Adjust the force-compositing-mode layout tests to explicitly set the new flag.

Reviewed by James Robinson.

* platform/chromium/compositing/force-compositing-mode/force-composite-empty.html:
* platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html:
* platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html:
* platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html:
* platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html:
* platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html:


[email protected]
Review URL: http://codereview.chromium.org/8506028

Modified Paths

Diff

Modified: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html (99757 => 99758)


--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html	2011-11-09 22:09:39 UTC (rev 99758)
@@ -1,8 +1,10 @@
 <html>
   <head>
     <script>
-      if (window.internals)
+      if (window.internals) {
         window.internals.setForceCompositingMode(document, true);
+        window.internals.setEnableCompositingForScrollableFrames(document, true);
+      }
       function doTest() {
         if (window.layoutTestController) {
           document.getElementById("layertree").innerText = layoutTestController.layerTreeAsText();

Modified: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html (99757 => 99758)


--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html	2011-11-09 22:09:39 UTC (rev 99758)
@@ -15,8 +15,10 @@
       }
     }
     window.addEventListener("load", doTest, false);
-    if (window.internals)
+    if (window.internals) {
       internals.setForceCompositingMode(document, true);
+      internals.setEnableCompositingForScrollableFrames(document, true);
+    }
   </script>
 </head>
 <body>

Modified: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html (99757 => 99758)


--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html	2011-11-09 22:09:39 UTC (rev 99758)
@@ -7,8 +7,10 @@
     }
   </style>
   <script>
-    if (window.internals)
+    if (window.internals) {
       internals.setForceCompositingMode(document, true);
+      internals.setEnableCompositingForScrollableFrames(document, true);
+    }
     function doTest()
     {
       if (window.layoutTestController)

Modified: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html (99757 => 99758)


--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html	2011-11-09 22:09:39 UTC (rev 99758)
@@ -7,8 +7,10 @@
     }
   </style>
   <script>
-    if (window.internals)
+    if (window.internals) {
       internals.setForceCompositingMode(document, true);
+      internals.setEnableCompositingForScrollableFrames(document, true);
+    }
     function doTest()
     {
       if (window.layoutTestController)

Modified: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html (99757 => 99758)


--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html	2011-11-09 22:09:39 UTC (rev 99758)
@@ -7,8 +7,10 @@
     }
   </style>
   <script>
-    if (window.internals)
+    if (window.internals) {
       internals.setForceCompositingMode(document, true);
+      internals.setEnableCompositingForScrollableFrames(document, true);
+    }
     function doTest()
     {
       if (window.layoutTestController) {

Modified: branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html (99757 => 99758)


--- branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html	2011-11-09 22:09:39 UTC (rev 99758)
@@ -7,8 +7,10 @@
     }
   </style>
   <script>
-    if (window.internals)
+    if (window.internals) {
       internals.setForceCompositingMode(document, true);
+      internals.setEnableCompositingForScrollableFrames(document, true);
+    }
     function doTest()
     {
       if (window.layoutTestController)

Modified: branches/chromium/912/Source/WebCore/page/Settings.cpp (99757 => 99758)


--- branches/chromium/912/Source/WebCore/page/Settings.cpp	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/page/Settings.cpp	2011-11-09 22:09:39 UTC (rev 99758)
@@ -180,6 +180,7 @@
     , m_acceleratedCompositingForPluginsEnabled(true)
     , m_acceleratedCompositingForCanvasEnabled(true)
     , m_acceleratedCompositingForAnimationEnabled(true)
+    , m_acceleratedCompositingForScrollableFramesEnabled(false)
     , m_showDebugBorders(false)
     , m_showRepaintCounter(false)
     , m_experimentalNotificationsEnabled(false)

Modified: branches/chromium/912/Source/WebCore/page/Settings.h (99757 => 99758)


--- branches/chromium/912/Source/WebCore/page/Settings.h	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/page/Settings.h	2011-11-09 22:09:39 UTC (rev 99758)
@@ -319,6 +319,9 @@
         void setAcceleratedCompositingForAnimationEnabled(bool);
         bool acceleratedCompositingForAnimationEnabled() const { return m_acceleratedCompositingForAnimationEnabled; }
 
+        void setAcceleratedCompositingForScrollableFramesEnabled(bool enabled) { m_acceleratedCompositingForScrollableFramesEnabled = enabled; }
+        bool acceleratedCompositingForScrollableFramesEnabled() const { return m_acceleratedCompositingForScrollableFramesEnabled; }
+
         void setShowDebugBorders(bool);
         bool showDebugBorders() const { return m_showDebugBorders; }
 
@@ -552,6 +555,7 @@
         bool m_acceleratedCompositingForPluginsEnabled : 1;
         bool m_acceleratedCompositingForCanvasEnabled : 1;
         bool m_acceleratedCompositingForAnimationEnabled : 1;
+        bool m_acceleratedCompositingForScrollableFramesEnabled : 1; // Works only in conjunction with forceCompositingMode
         bool m_showDebugBorders : 1;
         bool m_showRepaintCounter : 1;
         bool m_experimentalNotificationsEnabled : 1;

Modified: branches/chromium/912/Source/WebCore/rendering/RenderLayerCompositor.cpp (99757 => 99758)


--- branches/chromium/912/Source/WebCore/rendering/RenderLayerCompositor.cpp	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/rendering/RenderLayerCompositor.cpp	2011-11-09 22:09:39 UTC (rev 99758)
@@ -143,7 +143,7 @@
         forceCompositingMode = settings->forceCompositingMode() && hasAcceleratedCompositing;
 
         if (forceCompositingMode && m_renderView->document()->ownerElement())
-            forceCompositingMode = requiresCompositingForScrollableFrame();
+            forceCompositingMode = settings->acceleratedCompositingForScrollableFramesEnabled() && requiresCompositingForScrollableFrame();
     }
 
     // We allow the chrome to override the settings, in case the page is rendered

Modified: branches/chromium/912/Source/WebCore/testing/Internals.cpp (99757 => 99758)


--- branches/chromium/912/Source/WebCore/testing/Internals.cpp	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/testing/Internals.cpp	2011-11-09 22:09:39 UTC (rev 99758)
@@ -248,6 +248,16 @@
     document->settings()->setForceCompositingMode(enabled);
 }
 
+void Internals::setEnableCompositingForScrollableFrames(Document* document, bool enabled, ExceptionCode& ec)
+{
+    if (!document || !document->settings()) {
+        ec = INVALID_ACCESS_ERR;
+        return;
+    }
+
+    document->settings()->setAcceleratedCompositingForScrollableFramesEnabled(enabled);
+}
+
 void Internals::setEnableScrollAnimator(Document* document, bool enabled, ExceptionCode& ec)
 {
     if (!document || !document->settings()) {

Modified: branches/chromium/912/Source/WebCore/testing/Internals.h (99757 => 99758)


--- branches/chromium/912/Source/WebCore/testing/Internals.h	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/testing/Internals.h	2011-11-09 22:09:39 UTC (rev 99758)
@@ -76,6 +76,7 @@
     PassRefPtr<Range> markerRangeForNode(Node*, unsigned, ExceptionCode&);
 
     void setForceCompositingMode(Document*, bool enabled, ExceptionCode&);
+    void setEnableCompositingForScrollableFrames(Document*, bool enabled, ExceptionCode&);
 
     void setEnableScrollAnimator(Document*, bool enabled, ExceptionCode&);
     void setZoomAnimatorTransform(Document*, float scale, float tx, float ty, ExceptionCode&);

Modified: branches/chromium/912/Source/WebCore/testing/Internals.idl (99757 => 99758)


--- branches/chromium/912/Source/WebCore/testing/Internals.idl	2011-11-09 21:59:15 UTC (rev 99757)
+++ branches/chromium/912/Source/WebCore/testing/Internals.idl	2011-11-09 22:09:39 UTC (rev 99758)
@@ -50,6 +50,8 @@
         Range markerRangeForNode(in Node node, in unsigned long index) raises(DOMException);
 
         void setForceCompositingMode(in Document document, in boolean enabled) raises(DOMException);
+        void setEnableCompositingForScrollableFrames(in Document document, in boolean enabled) raises(DOMException);
+
         void setEnableScrollAnimator(in Document document, in boolean enabled) raises(DOMException);
         void setZoomAnimatorTransform(in Document document, in float scale, in float tx, in float ty) raises(DOMException);
         float getPageScaleFactor(in Document document) raises(DOMException);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to