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

Reply via email to