Title: [252439] trunk
- Revision
- 252439
- Author
- [email protected]
- Date
- 2019-11-13 16:35:07 -0800 (Wed, 13 Nov 2019)
Log Message
REGRESSION (r249434): flashy menus on wellsfargo.com
https://bugs.webkit.org/show_bug.cgi?id=204175
<rdar://problem/56654512>
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: compositing/backing/backing-for-clipping.html
r249434 made overflow an "indirect compositing reason" (i.e. we composite for overflow:hidden
when necessary to clip a composited descendant). However this made a clause in RenderLayerCompositor::requiresOwnBackingStore()
return early when this reason is set, skipping the bounds check, so we need to do the bound check first.
This is similar to the fix in r252070.
The change to the perspective test relates to the "FIXME"; we don't use the correct ancestor for the
bounds check, so sometimes layers can have backing store when they don't need it until that's fixed.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
LayoutTests:
* compositing/backing/backing-for-clipping-expected.html: Added.
* compositing/backing/backing-for-clipping.html: Added.
* compositing/backing/no-backing-for-perspective-expected.txt:
* platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt:
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (252438 => 252439)
--- trunk/LayoutTests/ChangeLog 2019-11-14 00:25:27 UTC (rev 252438)
+++ trunk/LayoutTests/ChangeLog 2019-11-14 00:35:07 UTC (rev 252439)
@@ -187,6 +187,19 @@
and fast/visual-viewport/zoomed-fixed-scroll-down-then-up.html as
Failure.
+2019-11-13 Simon Fraser <[email protected]>
+
+ REGRESSION (r249434): flashy menus on wellsfargo.com
+ https://bugs.webkit.org/show_bug.cgi?id=204175
+ <rdar://problem/56654512>
+
+ Reviewed by Zalan Bujtas.
+
+ * compositing/backing/backing-for-clipping-expected.html: Added.
+ * compositing/backing/backing-for-clipping.html: Added.
+ * compositing/backing/no-backing-for-perspective-expected.txt:
+ * platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt:
+
2019-11-11 Ryosuke Niwa <[email protected]>
iOS: fast/scrolling/ios/scrollTo-at-page-load.html is flaky
Added: trunk/LayoutTests/compositing/backing/backing-for-clipping-expected.html (0 => 252439)
--- trunk/LayoutTests/compositing/backing/backing-for-clipping-expected.html (rev 0)
+++ trunk/LayoutTests/compositing/backing/backing-for-clipping-expected.html 2019-11-14 00:35:07 UTC (rev 252439)
@@ -0,0 +1,53 @@
+<html>
+<head>
+ <style>
+ header {
+ position: fixed;
+ left: 0px;
+ right: 0px;
+ top: 0px;
+ height: 50px;
+ width: 400px;
+ background-color: silver;
+ }
+
+ .container
+ {
+ position: absolute;
+ left: 50px;
+ top: 30px;
+ background-color: silver;
+ width: 300px;
+ z-index: 1;
+ }
+
+ .child {
+ width: 100%;
+ height: 50px;
+ background-color: green;
+ }
+
+ body.changed .composited {
+ transform: translateZ(0);
+ }
+ </style>
+ <script>
+
+ window.addEventListener('load', () => {
+ setTimeout(() => {
+ document.body.classList.add('changed');
+ }, 0)
+ }, false);
+ </script>
+</head>
+<body>
+ <header>
+
+ <div class="container">
+ <div class="child"> </div>
+ <div class="child"> </div>
+ <div class="composited child"> </div>
+ </div>
+ </header>
+</body>
+</html>
\ No newline at end of file
Added: trunk/LayoutTests/compositing/backing/backing-for-clipping.html (0 => 252439)
--- trunk/LayoutTests/compositing/backing/backing-for-clipping.html (rev 0)
+++ trunk/LayoutTests/compositing/backing/backing-for-clipping.html 2019-11-14 00:35:07 UTC (rev 252439)
@@ -0,0 +1,58 @@
+<html>
+<head>
+ <style>
+ header {
+ position: fixed;
+ left: 0px;
+ right: 0px;
+ top: 0px;
+ height: 50px;
+ width: 400px;
+ background-color: silver;
+ }
+
+ .container
+ {
+ position: absolute;
+ left: 50px;
+ top: 30px;
+ background-color: silver;
+ overflow-x: hidden;
+ overflow-y: auto;
+ width: 300px;
+ z-index: 1;
+ }
+
+ .child {
+ width: 100%;
+ height: 50px;
+ background-color: green;
+ }
+
+ body.changed .composited {
+ transform: translateZ(0);
+ }
+ </style>
+ <script>
+ if (window.testRunner)
+ testRunner.waitUntilDone();
+ window.addEventListener('load', () => {
+ setTimeout(() => {
+ document.body.classList.add('changed');
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }, 0)
+ }, false);
+ </script>
+</head>
+<body>
+ <header>
+
+ <div class="container">
+ <div class="child"> </div>
+ <div class="child"> </div>
+ <div class="composited child"> </div>
+ </div>
+ </header>
+</body>
+</html>
\ No newline at end of file
Modified: trunk/LayoutTests/compositing/backing/no-backing-for-perspective-expected.txt (252438 => 252439)
--- trunk/LayoutTests/compositing/backing/no-backing-for-perspective-expected.txt 2019-11-14 00:25:27 UTC (rev 252438)
+++ trunk/LayoutTests/compositing/backing/no-backing-for-perspective-expected.txt 2019-11-14 00:35:07 UTC (rev 252439)
@@ -16,6 +16,7 @@
(GraphicsLayer
(position 21.00 39.00)
(bounds 342.00 180.00)
+ (drawsContent 1)
(childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00])
(children 1
(GraphicsLayer
Modified: trunk/LayoutTests/platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt (252438 => 252439)
--- trunk/LayoutTests/platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt 2019-11-14 00:25:27 UTC (rev 252438)
+++ trunk/LayoutTests/platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt 2019-11-14 00:35:07 UTC (rev 252439)
@@ -16,6 +16,7 @@
(GraphicsLayer
(position 21.00 41.00)
(bounds 342.00 182.00)
+ (drawsContent 1)
(childrenTransform [1.00 0.00 0.00 0.00] [0.00 1.00 0.00 0.00] [0.00 0.00 1.00 -0.00] [0.00 0.00 0.00 1.00])
(children 1
(GraphicsLayer
Modified: trunk/Source/WebCore/ChangeLog (252438 => 252439)
--- trunk/Source/WebCore/ChangeLog 2019-11-14 00:25:27 UTC (rev 252438)
+++ trunk/Source/WebCore/ChangeLog 2019-11-14 00:35:07 UTC (rev 252439)
@@ -713,6 +713,27 @@
* Modules/modern-media-controls/media/pip-support.js:
(PiPSupport.prototype.buttonWasPressed):
+2019-11-13 Simon Fraser <[email protected]>
+
+ REGRESSION (r249434): flashy menus on wellsfargo.com
+ https://bugs.webkit.org/show_bug.cgi?id=204175
+ <rdar://problem/56654512>
+
+ Reviewed by Zalan Bujtas.
+
+ Test: compositing/backing/backing-for-clipping.html
+
+ r249434 made overflow an "indirect compositing reason" (i.e. we composite for overflow:hidden
+ when necessary to clip a composited descendant). However this made a clause in RenderLayerCompositor::requiresOwnBackingStore()
+ return early when this reason is set, skipping the bounds check, so we need to do the bound check first.
+ This is similar to the fix in r252070.
+
+ The change to the perspective test relates to the "FIXME"; we don't use the correct ancestor for the
+ bounds check, so sometimes layers can have backing store when they don't need it until that's fixed.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
+
2019-11-11 Per Arne Vollan <[email protected]>
Many legacy animation tests are timing out with VS2019
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (252438 => 252439)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2019-11-14 00:25:27 UTC (rev 252438)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2019-11-14 00:35:07 UTC (rev 252439)
@@ -2426,6 +2426,10 @@
if (layer.isComposited() && layer.backing()->hasBackingSharingLayers())
return true;
+ // FIXME: We really need to keep track of the ancestor layer that has its own backing store.
+ if (!ancestorCompositedBounds.contains(layerCompositedBoundsInAncestor))
+ return true;
+
if (layer.mustCompositeForIndirectReasons()) {
IndirectCompositingReason reason = layer.indirectCompositingReason();
return reason == IndirectCompositingReason::Overlap
@@ -2436,10 +2440,6 @@
|| reason == IndirectCompositingReason::Preserve3D; // preserve-3d has to create backing store to ensure that 3d-transformed elements intersect.
}
- // FIXME: We really need to keep track of the ancestor layer that has its own backing store.
- if (!ancestorCompositedBounds.contains(layerCompositedBoundsInAncestor))
- return true;
-
return false;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes