Title: [207078] releases/WebKitGTK/webkit-2.14
- Revision
- 207078
- Author
- carlo...@webkit.org
- Date
- 2016-10-11 03:31:36 -0700 (Tue, 11 Oct 2016)
Log Message
Merge r205999 - ASSERTION FAILED: willBeComposited == needsToBeComposited(layer) in WebCore::RenderLayerCompositor::computeCompositingRequirements
https://bugs.webkit.org/show_bug.cgi?id=151097
<rdar://problem/27711678>
Reviewed by Simon Fraser.
Source/WebCore:
This patch ensures that when will-change property triggers stacking context, we make the associated layer a non-normal flow layer.
(This is similar to what any other stacking context-triggering CSS property does.)
Test: compositing/assert-on-will-change-transform-with-composited-descendant.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
LayoutTests:
* compositing/assert-on-will-change-transform-with-composited-descendant-expected.txt: Added.
* compositing/assert-on-will-change-transform-with-composited-descendant.html: Added.
Modified Paths
Added Paths
Diff
Modified: releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog (207077 => 207078)
--- releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog 2016-10-11 10:24:07 UTC (rev 207077)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/ChangeLog 2016-10-11 10:31:36 UTC (rev 207078)
@@ -1,5 +1,16 @@
2016-09-15 Zalan Bujtas <za...@apple.com>
+ ASSERTION FAILED: willBeComposited == needsToBeComposited(layer) in WebCore::RenderLayerCompositor::computeCompositingRequirements
+ https://bugs.webkit.org/show_bug.cgi?id=151097
+ <rdar://problem/27711678>
+
+ Reviewed by Simon Fraser.
+
+ * compositing/assert-on-will-change-transform-with-composited-descendant-expected.txt: Added.
+ * compositing/assert-on-will-change-transform-with-composited-descendant.html: Added.
+
+2016-09-15 Zalan Bujtas <za...@apple.com>
+
Cleanup RenderLayer::shouldBeNormalFlowOnly
https://bugs.webkit.org/show_bug.cgi?id=161981
Added: releases/WebKitGTK/webkit-2.14/LayoutTests/compositing/assert-on-will-change-transform-with-composited-descendant-expected.txt (0 => 207078)
--- releases/WebKitGTK/webkit-2.14/LayoutTests/compositing/assert-on-will-change-transform-with-composited-descendant-expected.txt (rev 0)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/compositing/assert-on-will-change-transform-with-composited-descendant-expected.txt 2016-10-11 10:31:36 UTC (rev 207078)
@@ -0,0 +1,2 @@
+PASS if no assert in debug.
+
Added: releases/WebKitGTK/webkit-2.14/LayoutTests/compositing/assert-on-will-change-transform-with-composited-descendant.html (0 => 207078)
--- releases/WebKitGTK/webkit-2.14/LayoutTests/compositing/assert-on-will-change-transform-with-composited-descendant.html (rev 0)
+++ releases/WebKitGTK/webkit-2.14/LayoutTests/compositing/assert-on-will-change-transform-with-composited-descendant.html 2016-10-11 10:31:36 UTC (rev 207078)
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title></title>
+<script>
+if (window.testRunner)
+ testRunner.dumpAsText();
+</script>
+<style>
+.container {
+ overflow: hidden;
+ will-change: -webkit-transform;
+}
+
+.inner {
+ z-index: -1;
+ position: relative;
+ transform: translateZ(0);
+}
+</style>
+</head>
+<body>
+PASS if no assert in debug.
+<div class=container><div class=inner></div></div>
+</body>
+</html>
Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog (207077 => 207078)
--- releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog 2016-10-11 10:24:07 UTC (rev 207077)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/ChangeLog 2016-10-11 10:31:36 UTC (rev 207078)
@@ -1,5 +1,21 @@
2016-09-15 Zalan Bujtas <za...@apple.com>
+ ASSERTION FAILED: willBeComposited == needsToBeComposited(layer) in WebCore::RenderLayerCompositor::computeCompositingRequirements
+ https://bugs.webkit.org/show_bug.cgi?id=151097
+ <rdar://problem/27711678>
+
+ Reviewed by Simon Fraser.
+
+ This patch ensures that when will-change property triggers stacking context, we make the associated layer a non-normal flow layer.
+ (This is similar to what any other stacking context-triggering CSS property does.)
+
+ Test: compositing/assert-on-will-change-transform-with-composited-descendant.html
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::calculateClipRects):
+
+2016-09-15 Zalan Bujtas <za...@apple.com>
+
Cleanup RenderLayer::shouldBeNormalFlowOnly
https://bugs.webkit.org/show_bug.cgi?id=161981
Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/RenderLayer.cpp (207077 => 207078)
--- releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/RenderLayer.cpp 2016-10-11 10:24:07 UTC (rev 207077)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/RenderLayer.cpp 2016-10-11 10:31:36 UTC (rev 207078)
@@ -6464,33 +6464,27 @@
}
}
-static bool mayCreateGraphicalGroup(const RenderElement& renderer)
+static bool createsStackingContext(const RenderLayer& layer)
{
- bool createsGraphicalGroup = renderer.hasClipPath()
+ auto& renderer = layer.renderer();
+ return renderer.hasTransformRelatedProperty()
+ || renderer.hasClipPath()
|| renderer.hasFilter()
+ || renderer.hasMask()
|| renderer.hasBackdropFilter()
#if ENABLE(CSS_COMPOSITING)
|| renderer.hasBlendMode()
#endif
|| renderer.isTransparent()
- || renderer.hasMask();
- return createsGraphicalGroup || (renderer.style().willChange() && renderer.style().willChange()->canCreateGraphicalGroup());
-}
-
-static bool createsStackingContext(const RenderLayer& layer)
-{
- auto& renderer = layer.renderer();
- return renderer.hasTransformRelatedProperty()
|| renderer.isPositioned()
- || layer.needsCompositedScrolling()
|| renderer.style().hasFlowFrom()
|| renderer.hasReflection()
|| renderer.style().hasIsolation()
+ || layer.needsCompositedScrolling()
#if PLATFORM(IOS)
|| layer.hasAcceleratedTouchScrolling()
#endif
- // FIXME: Check if willChange()->canCreateStackingContext() is more accurate here.
- || mayCreateGraphicalGroup(renderer);
+ || (renderer.style().willChange() && renderer.style().willChange()->canCreateStackingContext());
}
bool RenderLayer::shouldBeNormalFlowOnly() const
Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/style/WillChangeData.cpp (207077 => 207078)
--- releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/style/WillChangeData.cpp 2016-10-11 10:24:07 UTC (rev 207077)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/style/WillChangeData.cpp 2016-10-11 10:31:36 UTC (rev 207078)
@@ -99,30 +99,6 @@
}
}
-static bool propertyCreatesGraphicalGroup(CSSPropertyID property)
-{
- switch (property) {
- case CSSPropertyClipPath:
- case CSSPropertyWebkitClipPath:
- case CSSPropertyMask:
- case CSSPropertyOpacity:
-#if ENABLE(CSS_COMPOSITING)
- case CSSPropertyMixBlendMode:
- case CSSPropertyIsolation:
-#endif
- case CSSPropertyFilter:
-#if ENABLE(FILTERS_LEVEL_2)
- case CSSPropertyWebkitBackdropFilter:
-#endif
- case CSSPropertyWebkitMask:
- case CSSPropertyWebkitMaskImage:
- case CSSPropertyWebkitMaskBoxImage:
- return true;
- default:
- return false;
- }
-}
-
static bool propertyTriggersCompositing(CSSPropertyID property)
{
switch (property) {
@@ -161,8 +137,6 @@
m_canTriggerCompositingOnInline |= propertyTriggersCompositing(propertyID);
m_canTriggerCompositing |= m_canTriggerCompositingOnInline | propertyTriggersCompositingOnBoxesOnly(propertyID);
-
- m_canCreateGraphicalGroup |= propertyCreatesGraphicalGroup(propertyID);
}
WillChangeData::FeaturePropertyPair WillChangeData::featureAt(size_t index) const
Modified: releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/style/WillChangeData.h (207077 => 207078)
--- releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/style/WillChangeData.h 2016-10-11 10:24:07 UTC (rev 207077)
+++ releases/WebKitGTK/webkit-2.14/Source/WebCore/rendering/style/WillChangeData.h 2016-10-11 10:31:36 UTC (rev 207078)
@@ -57,7 +57,6 @@
bool canCreateStackingContext() const { return m_canCreateStackingContext; }
bool canTriggerCompositing() const { return m_canTriggerCompositing; }
bool canTriggerCompositingOnInline() const { return m_canTriggerCompositingOnInline; }
- bool canCreateGraphicalGroup() const { return m_canCreateGraphicalGroup; }
enum Feature {
ScrollPosition,
@@ -125,7 +124,6 @@
bool m_canCreateStackingContext { false };
bool m_canTriggerCompositing { false };
bool m_canTriggerCompositingOnInline { false };
- bool m_canCreateGraphicalGroup { false };
};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes