Title: [224715] trunk
- Revision
- 224715
- Author
- simon.fra...@apple.com
- Date
- 2017-11-10 17:07:44 -0800 (Fri, 10 Nov 2017)
Log Message
Contents of composited overflow-scroll are missing when newly added
https://bugs.webkit.org/show_bug.cgi?id=179556
rdar://problem/20368294
Reviewed by Tim Horton.
Source/WebCore:
When content is appended to an oveflow:scroll, we do a subtree layout. That triggered
a compositing code path that failed to call updateAfterDescendants() which is where
we compute whether we can be a simple composited layer without backing store. Fix to
call that after the updateGeometry() call, as we do elsewhere.
Test: compositing/backing/overflow-gains-content.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
LayoutTests:
* compositing/backing/overflow-gains-content-expected.html: Added.
* compositing/backing/overflow-gains-content.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (224714 => 224715)
--- trunk/LayoutTests/ChangeLog 2017-11-11 00:20:31 UTC (rev 224714)
+++ trunk/LayoutTests/ChangeLog 2017-11-11 01:07:44 UTC (rev 224715)
@@ -1,3 +1,14 @@
+2017-11-10 Simon Fraser <simon.fra...@apple.com>
+
+ Contents of composited overflow-scroll are missing when newly added
+ https://bugs.webkit.org/show_bug.cgi?id=179556
+ rdar://problem/20368294
+
+ Reviewed by Tim Horton.
+
+ * compositing/backing/overflow-gains-content-expected.html: Added.
+ * compositing/backing/overflow-gains-content.html: Added.
+
2017-11-10 Chris Dumez <cdu...@apple.com>
[Service Workers] Implement better support for "Clear Registration" algorithm
Added: trunk/LayoutTests/compositing/backing/overflow-gains-content-expected.html (0 => 224715)
--- trunk/LayoutTests/compositing/backing/overflow-gains-content-expected.html (rev 0)
+++ trunk/LayoutTests/compositing/backing/overflow-gains-content-expected.html 2017-11-11 01:07:44 UTC (rev 224715)
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style>
+ #container {
+ width: 400px;
+ height: 500px;
+ overflow: scroll;
+ will-change: transform;
+ }
+
+ #container > div {
+ background-color: green;
+ height: 100%;
+ width: 100%;
+ }
+ </style>
+</head>
+<body>
+ <div id="container">
+ <div></div>
+ </div>
+</body>
+</html>
Added: trunk/LayoutTests/compositing/backing/overflow-gains-content.html (0 => 224715)
--- trunk/LayoutTests/compositing/backing/overflow-gains-content.html (rev 0)
+++ trunk/LayoutTests/compositing/backing/overflow-gains-content.html 2017-11-11 01:07:44 UTC (rev 224715)
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+ <style>
+ #container {
+ width: 400px;
+ height: 500px;
+ overflow: scroll;
+ will-change: transform;
+ }
+
+ #container > div {
+ background-color: green;
+ height: 100%;
+ width: 100%;
+ }
+ </style>
+ <script>
+ if (window.testRunner)
+ testRunner.waitUntilDone();
+ function appendContent()
+ {
+ var container = document.getElementById('container');
+ container.appendChild(document.createElement('div'));
+
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }
+
+ function doTest()
+ {
+ window.setTimeout(appendContent, 0);
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+ <div id="container"></div>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (224714 => 224715)
--- trunk/Source/WebCore/ChangeLog 2017-11-11 00:20:31 UTC (rev 224714)
+++ trunk/Source/WebCore/ChangeLog 2017-11-11 01:07:44 UTC (rev 224715)
@@ -1,5 +1,23 @@
2017-11-10 Simon Fraser <simon.fra...@apple.com>
+ Contents of composited overflow-scroll are missing when newly added
+ https://bugs.webkit.org/show_bug.cgi?id=179556
+ rdar://problem/20368294
+
+ Reviewed by Tim Horton.
+
+ When content is appended to an oveflow:scroll, we do a subtree layout. That triggered
+ a compositing code path that failed to call updateAfterDescendants() which is where
+ we compute whether we can be a simple composited layer without backing store. Fix to
+ call that after the updateGeometry() call, as we do elsewhere.
+
+ Test: compositing/backing/overflow-gains-content.html
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateAfterLayout):
+
+2017-11-10 Simon Fraser <simon.fra...@apple.com>
+
Remove the 'CompositingChildrenOnly' flag which was always on
https://bugs.webkit.org/show_bug.cgi?id=179546
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (224714 => 224715)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2017-11-11 00:20:31 UTC (rev 224714)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2017-11-11 01:07:44 UTC (rev 224715)
@@ -646,6 +646,7 @@
if (flags.contains(UpdateAfterLayoutFlags::IsUpdateRoot)) {
updateGeometry();
+ updateAfterDescendants();
compositor().updateRootLayerPosition();
auto* stackingContainer = m_owningLayer.enclosingStackingContainer();
if (!compositor().compositingLayersNeedRebuild() && stackingContainer && (stackingContainer != &m_owningLayer))
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes