Title: [99485] trunk
Revision
99485
Author
[email protected]
Date
2011-11-07 15:03:05 -0800 (Mon, 07 Nov 2011)

Log Message

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:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (99484 => 99485)


--- trunk/LayoutTests/ChangeLog	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/ChangeLog	2011-11-07 23:03:05 UTC (rev 99485)
@@ -1,3 +1,20 @@
+2011-11-07  Vangelis Kokkevis  <[email protected]>
+
+        [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:
+
 2011-11-07  Tony Chang  <[email protected]>
 
         Update chromium test_expectations.txt.

Modified: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html (99484 => 99485)


--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/force-composite-empty.html	2011-11-07 23:03:05 UTC (rev 99485)
@@ -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: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html (99484 => 99485)


--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html	2011-11-07 23:03:05 UTC (rev 99485)
@@ -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: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html (99484 => 99485)


--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html	2011-11-07 23:03:05 UTC (rev 99485)
@@ -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: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html (99484 => 99485)


--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html	2011-11-07 23:03:05 UTC (rev 99485)
@@ -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: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html (99484 => 99485)


--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html	2011-11-07 23:03:05 UTC (rev 99485)
@@ -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: trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html (99484 => 99485)


--- trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/LayoutTests/platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html	2011-11-07 23:03:05 UTC (rev 99485)
@@ -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: trunk/Source/WebCore/ChangeLog (99484 => 99485)


--- trunk/Source/WebCore/ChangeLog	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/ChangeLog	2011-11-07 23:03:05 UTC (rev 99485)
@@ -1,3 +1,23 @@
+2011-11-07  Vangelis Kokkevis  <[email protected]>
+
+        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:
+
 2011-11-07  Rafael Weinstein  <[email protected]>
 
         [MutationObservers] Fix mac build (with mutation_observers enabled)

Modified: trunk/Source/WebCore/page/Settings.cpp (99484 => 99485)


--- trunk/Source/WebCore/page/Settings.cpp	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/page/Settings.cpp	2011-11-07 23:03:05 UTC (rev 99485)
@@ -181,6 +181,7 @@
     , m_acceleratedCompositingForCanvasEnabled(true)
     , m_acceleratedCompositingForAnimationEnabled(true)
     , m_acceleratedCompositingForFixedPositionEnabled(false)
+    , m_acceleratedCompositingForScrollableFramesEnabled(false)
     , m_showDebugBorders(false)
     , m_showRepaintCounter(false)
     , m_experimentalNotificationsEnabled(false)

Modified: trunk/Source/WebCore/page/Settings.h (99484 => 99485)


--- trunk/Source/WebCore/page/Settings.h	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/page/Settings.h	2011-11-07 23:03:05 UTC (rev 99485)
@@ -322,6 +322,9 @@
         void setAcceleratedCompositingForFixedPositionEnabled(bool enabled) { m_acceleratedCompositingForFixedPositionEnabled = enabled; }
         bool acceleratedCompositingForFixedPositionEnabled() const { return m_acceleratedCompositingForFixedPositionEnabled; }
 
+        void setAcceleratedCompositingForScrollableFramesEnabled(bool enabled) { m_acceleratedCompositingForScrollableFramesEnabled = enabled; }
+        bool acceleratedCompositingForScrollableFramesEnabled() const { return m_acceleratedCompositingForScrollableFramesEnabled; }
+
         void setShowDebugBorders(bool);
         bool showDebugBorders() const { return m_showDebugBorders; }
 
@@ -573,6 +576,7 @@
         bool m_acceleratedCompositingForCanvasEnabled : 1;
         bool m_acceleratedCompositingForAnimationEnabled : 1;
         bool m_acceleratedCompositingForFixedPositionEnabled : 1;
+        bool m_acceleratedCompositingForScrollableFramesEnabled : 1; // Works only in conjunction with forceCompositingMode
         bool m_showDebugBorders : 1;
         bool m_showRepaintCounter : 1;
         bool m_experimentalNotificationsEnabled : 1;

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (99484 => 99485)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2011-11-07 23:03:05 UTC (rev 99485)
@@ -144,7 +144,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: trunk/Source/WebCore/testing/Internals.cpp (99484 => 99485)


--- trunk/Source/WebCore/testing/Internals.cpp	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/testing/Internals.cpp	2011-11-07 23:03:05 UTC (rev 99485)
@@ -253,6 +253,16 @@
     document->settings()->setAcceleratedCompositingForFixedPositionEnabled(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::setAcceleratedDrawingEnabled(Document* document, bool enabled, ExceptionCode& ec)
 {
     if (!document || !document->settings()) {

Modified: trunk/Source/WebCore/testing/Internals.h (99484 => 99485)


--- trunk/Source/WebCore/testing/Internals.h	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/testing/Internals.h	2011-11-07 23:03:05 UTC (rev 99485)
@@ -76,6 +76,7 @@
 
     void setForceCompositingMode(Document*, bool enabled, ExceptionCode&);
     void setEnableCompositingForFixedPosition(Document*, bool enabled, ExceptionCode&);
+    void setEnableCompositingForScrollableFrames(Document*, bool enabled, ExceptionCode&);
     void setAcceleratedDrawingEnabled(Document*, bool enabled, ExceptionCode&);
 
     void setEnableScrollAnimator(Document*, bool enabled, ExceptionCode&);

Modified: trunk/Source/WebCore/testing/Internals.idl (99484 => 99485)


--- trunk/Source/WebCore/testing/Internals.idl	2011-11-07 22:55:30 UTC (rev 99484)
+++ trunk/Source/WebCore/testing/Internals.idl	2011-11-07 23:03:05 UTC (rev 99485)
@@ -50,6 +50,7 @@
 
         void setForceCompositingMode(in Document document, in boolean enabled) raises(DOMException);
         void setEnableCompositingForFixedPosition(in Document document, in boolean enabled) raises(DOMException);
+        void setEnableCompositingForScrollableFrames(in Document document, in boolean enabled) raises(DOMException);
         void setAcceleratedDrawingEnabled(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);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to