Title: [114433] trunk/Source/WebCore
Revision
114433
Author
aes...@apple.com
Date
2012-04-17 14:32:37 -0700 (Tue, 17 Apr 2012)

Log Message

-webkit-mask-box-image does not draw when layer tree flattening is enabled
https://bugs.webkit.org/show_bug.cgi?id=84111

Reviewed by Simon Fraser.

No new tests since taking pixel test results with
PaintBehaviorFlattenCompositingLayers set is not currently supported.
<https://bugs.webkit.org/show_bug.cgi?id=84110> tracks fixing this.

When painting mask images, we should take the non-composited path if
layers are being flattened.

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintMask):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintMaskImages):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (114432 => 114433)


--- trunk/Source/WebCore/ChangeLog	2012-04-17 21:28:52 UTC (rev 114432)
+++ trunk/Source/WebCore/ChangeLog	2012-04-17 21:32:37 UTC (rev 114433)
@@ -1,3 +1,22 @@
+2012-04-16  Andy Estes  <aes...@apple.com>
+
+        -webkit-mask-box-image does not draw when layer tree flattening is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=84111
+
+        Reviewed by Simon Fraser.
+
+        No new tests since taking pixel test results with
+        PaintBehaviorFlattenCompositingLayers set is not currently supported.
+        <https://bugs.webkit.org/show_bug.cgi?id=84110> tracks fixing this.
+
+        When painting mask images, we should take the non-composited path if
+        layers are being flattened.
+
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::paintMask):
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::paintMaskImages):
+
 2012-04-17  Emil A Eklund  <e...@chromium.org>
 
         Rollout r114404 as it broke a couple of chromium builds.

Modified: trunk/Source/WebCore/rendering/InlineFlowBox.cpp (114432 => 114433)


--- trunk/Source/WebCore/rendering/InlineFlowBox.cpp	2012-04-17 21:28:52 UTC (rev 114432)
+++ trunk/Source/WebCore/rendering/InlineFlowBox.cpp	2012-04-17 21:32:37 UTC (rev 114433)
@@ -1289,8 +1289,9 @@
     // Figure out if we need to push a transparency layer to render our mask.
     bool pushTransparencyLayer = false;
     bool compositedMask = renderer()->hasLayer() && boxModelObject()->layer()->hasCompositedMask();
+    bool flattenCompositingLayers = renderer()->view()->frameView() && renderer()->view()->frameView()->paintBehavior() & PaintBehaviorFlattenCompositingLayers;
     CompositeOperator compositeOp = CompositeSourceOver;
-    if (!compositedMask) {
+    if (!compositedMask || flattenCompositingLayers) {
         if ((maskBoxImage && renderer()->style()->maskLayers()->hasImage()) || renderer()->style()->maskLayers()->next())
             pushTransparencyLayer = true;
         

Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (114432 => 114433)


--- trunk/Source/WebCore/rendering/RenderBox.cpp	2012-04-17 21:28:52 UTC (rev 114432)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp	2012-04-17 21:32:37 UTC (rev 114433)
@@ -1051,11 +1051,12 @@
     // Figure out if we need to push a transparency layer to render our mask.
     bool pushTransparencyLayer = false;
     bool compositedMask = hasLayer() && layer()->hasCompositedMask();
+    bool flattenCompositingLayers = view()->frameView() && view()->frameView()->paintBehavior() & PaintBehaviorFlattenCompositingLayers;
     CompositeOperator compositeOp = CompositeSourceOver;
 
     bool allMaskImagesLoaded = true;
     
-    if (!compositedMask) {
+    if (!compositedMask || flattenCompositingLayers) {
         pushTransparencyLayer = true;
         StyleImage* maskBoxImage = style()->maskBoxImage().image();
         const FillLayer* maskLayers = style()->maskLayers();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to