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