Title: [104347] trunk/Source/WebCore
- Revision
- 104347
- Author
- [email protected]
- Date
- 2012-01-06 15:13:02 -0800 (Fri, 06 Jan 2012)
Log Message
Enable a compositing trigger for filters
https://bugs.webkit.org/show_bug.cgi?id=75658
This will enable forcing the compositing code path when filters exist for a RenderObject.
Reviewed by Simon Fraser.
No new functionality so no new tests.
* page/ChromeClient.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::requiresCompositingForFilters):
* rendering/RenderLayerCompositor.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (104346 => 104347)
--- trunk/Source/WebCore/ChangeLog 2012-01-06 23:01:21 UTC (rev 104346)
+++ trunk/Source/WebCore/ChangeLog 2012-01-06 23:13:02 UTC (rev 104347)
@@ -1,3 +1,20 @@
+2012-01-06 No'am Rosenthal <[email protected]>
+
+ Enable a compositing trigger for filters
+ https://bugs.webkit.org/show_bug.cgi?id=75658
+
+ This will enable forcing the compositing code path when filters exist for a RenderObject.
+
+ Reviewed by Simon Fraser.
+
+ No new functionality so no new tests.
+
+ * page/ChromeClient.h:
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingLayer):
+ (WebCore::RenderLayerCompositor::requiresCompositingForFilters):
+ * rendering/RenderLayerCompositor.h:
+
2012-01-06 Anders Carlsson <[email protected]>
Add and use ScrollElasticityControllerClient::absoluteScrollPosition
Modified: trunk/Source/WebCore/page/ChromeClient.h (104346 => 104347)
--- trunk/Source/WebCore/page/ChromeClient.h 2012-01-06 23:01:21 UTC (rev 104346)
+++ trunk/Source/WebCore/page/ChromeClient.h 2012-01-06 23:13:02 UTC (rev 104347)
@@ -258,6 +258,7 @@
PluginTrigger = 1 << 2,
CanvasTrigger = 1 << 3,
AnimationTrigger = 1 << 4,
+ FilterTrigger = 1 << 5,
AllTriggers = 0xFFFFFFFF
};
typedef unsigned CompositingTriggerFlags;
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (104346 => 104347)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2012-01-06 23:01:21 UTC (rev 104346)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2012-01-06 23:13:02 UTC (rev 104347)
@@ -1331,6 +1331,7 @@
|| clipsCompositingDescendants(layer)
|| requiresCompositingForAnimation(renderer)
|| requiresCompositingForFullScreen(renderer)
+ || requiresCompositingForFilters(renderer)
|| requiresCompositingForPosition(renderer, layer);
}
@@ -1516,6 +1517,19 @@
#endif
}
+bool RenderLayerCompositor::requiresCompositingForFilters(RenderObject* renderer) const
+{
+#if ENABLE(CSS_FILTERS)
+ if (!(m_compositingTriggers & ChromeClient::FilterTrigger))
+ return false;
+
+ return renderer->hasFilter();
+#else
+ UNUSED_PARAM(renderer);
+ return false;
+#endif
+}
+
bool RenderLayerCompositor::requiresCompositingForPosition(RenderObject* renderer, const RenderLayer* layer) const
{
// position:fixed elements that create their own stacking context (e.g. have an explicit z-index,
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (104346 => 104347)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2012-01-06 23:01:21 UTC (rev 104346)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2012-01-06 23:13:02 UTC (rev 104347)
@@ -285,6 +285,7 @@
bool requiresCompositingForFrame(RenderObject*) const;
bool requiresCompositingWhenDescendantsAreCompositing(RenderObject*) const;
bool requiresCompositingForFullScreen(RenderObject*) const;
+ bool requiresCompositingForFilters(RenderObject*) const;
bool requiresCompositingForScrollableFrame() const;
bool requiresCompositingForPosition(RenderObject*, const RenderLayer*) const;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes