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