Title: [139053] trunk/Source
Revision
139053
Author
[email protected]
Date
2013-01-08 06:05:37 -0800 (Tue, 08 Jan 2013)

Log Message

Introduce a compositing trigger for scrollable frames
https://bugs.webkit.org/show_bug.cgi?id=105573

Reviewed by James Robinson.
Patch by Antonio Gomes <[email protected]>

Source/WebCore:

Make requiresCompositingForScrollableFrame to check the
newly added compositing trigger instead of the associated setting.

It introduces no have behavior change, so no new tests. Patch basically
does some preparation work for adding support to composite scrollable inner
frames independently from "force compositing mode" bit.

* page/ChromeClient.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):

Source/WebKit/chromium:

Set the newly added scrollable-inner-frames bit to compositing-trigger
bitset in accordance to the respective setting value.

* src/ChromeClientImpl.cpp:
(WebKit::ChromeClientImpl::allowedCompositingTriggers):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (139052 => 139053)


--- trunk/Source/WebCore/ChangeLog	2013-01-08 13:28:41 UTC (rev 139052)
+++ trunk/Source/WebCore/ChangeLog	2013-01-08 14:05:37 UTC (rev 139053)
@@ -1,3 +1,22 @@
+2012-12-20  Antonio Gomes  <[email protected]>
+
+        Introduce a compositing trigger for scrollable frames
+        https://bugs.webkit.org/show_bug.cgi?id=105573
+
+        Reviewed by James Robinson.
+
+        Make requiresCompositingForScrollableFrame to check the
+        newly added compositing trigger instead of the associated setting.
+
+        It introduces no have behavior change, so no new tests. Patch basically
+        does some preparation work for adding support to composite scrollable inner
+        frames independently from "force compositing mode" bit.
+
+        * page/ChromeClient.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
+        (WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):
+
 2013-01-08  Kihong Kwon  <[email protected]>
 
         Add DeviceProximityController to support Device Proximity Events.

Modified: trunk/Source/WebCore/page/ChromeClient.h (139052 => 139053)


--- trunk/Source/WebCore/page/ChromeClient.h	2013-01-08 13:28:41 UTC (rev 139052)
+++ trunk/Source/WebCore/page/ChromeClient.h	2013-01-08 14:05:37 UTC (rev 139053)
@@ -271,6 +271,7 @@
         CanvasTrigger = 1 << 3,
         AnimationTrigger = 1 << 4,
         FilterTrigger = 1 << 5,
+        ScrollableInnerFrameTrigger = 1 << 6,
         AllTriggers = 0xFFFFFFFF
     };
     typedef unsigned CompositingTriggerFlags;

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (139052 => 139053)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2013-01-08 13:28:41 UTC (rev 139052)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2013-01-08 14:05:37 UTC (rev 139053)
@@ -256,7 +256,7 @@
         forceCompositingMode = settings->forceCompositingMode() && hasAcceleratedCompositing;
 
         if (forceCompositingMode && m_renderView->document()->ownerElement())
-            forceCompositingMode = settings->acceleratedCompositingForScrollableFramesEnabled() && requiresCompositingForScrollableFrame();
+            forceCompositingMode = requiresCompositingForScrollableFrame();
 
         acceleratedDrawingEnabled = settings->acceleratedDrawingEnabled();
     }
@@ -1800,7 +1800,13 @@
 {
     // Need this done first to determine overflow.
     ASSERT(!m_renderView->needsLayout());
+    HTMLFrameOwnerElement* ownerElement = m_renderView->document()->ownerElement();
+    if (!ownerElement)
+        return false;
 
+    if (!(m_compositingTriggers & ChromeClient::ScrollableInnerFrameTrigger))
+        return false;
+
     FrameView* frameView = m_renderView->frameView();
     return frameView->isScrollable();
 }

Modified: trunk/Source/WebKit/chromium/ChangeLog (139052 => 139053)


--- trunk/Source/WebKit/chromium/ChangeLog	2013-01-08 13:28:41 UTC (rev 139052)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-01-08 14:05:37 UTC (rev 139053)
@@ -1,3 +1,16 @@
+2012-12-20  Antonio Gomes  <[email protected]>
+
+        Introduce a compositing trigger for scrollable frames
+        https://bugs.webkit.org/show_bug.cgi?id=105573
+
+        Reviewed by James Robinson.
+
+        Set the newly added scrollable-inner-frames bit to compositing-trigger
+        bitset in accordance to the respective setting value.
+
+        * src/ChromeClientImpl.cpp:
+        (WebKit::ChromeClientImpl::allowedCompositingTriggers):
+
 2013-01-08  Steve Block  <[email protected]>
 
         Rename 'IntSize toSize(const IntPoint&)' to 'toIntSize'

Modified: trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp (139052 => 139053)


--- trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp	2013-01-08 13:28:41 UTC (rev 139052)
+++ trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp	2013-01-08 14:05:37 UTC (rev 139053)
@@ -945,6 +945,8 @@
         flags |= AnimationTrigger;
     if (settings->acceleratedCompositingForCanvasEnabled())
         flags |= CanvasTrigger;
+    if (settings->acceleratedCompositingForScrollableFramesEnabled())
+        flags |= ScrollableInnerFrameTrigger;
 
     return flags;
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to