Title: [224618] trunk
- Revision
- 224618
- Author
- [email protected]
- Date
- 2017-11-08 21:35:34 -0800 (Wed, 08 Nov 2017)
Log Message
Content not painted when scrolling an overflow node inside an iframe
https://bugs.webkit.org/show_bug.cgi?id=179315
rdar://problem/35364166
Reviewed by Tim Horton.
Source/WebCore:
When scrolling overflow:scroll, we need to check for overlap updates just as we do
for page scrolls.
Test: compositing/ios/overflow-scroll-update-overlap.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
LayoutTests:
* compositing/ios/overflow-scroll-update-overlap-expected.html: Added.
* compositing/ios/overflow-scroll-update-overlap.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (224617 => 224618)
--- trunk/LayoutTests/ChangeLog 2017-11-09 05:27:22 UTC (rev 224617)
+++ trunk/LayoutTests/ChangeLog 2017-11-09 05:35:34 UTC (rev 224618)
@@ -1,3 +1,14 @@
+2017-11-08 Simon Fraser <[email protected]>
+
+ Content not painted when scrolling an overflow node inside an iframe
+ https://bugs.webkit.org/show_bug.cgi?id=179315
+ rdar://problem/35364166
+
+ Reviewed by Tim Horton.
+
+ * compositing/ios/overflow-scroll-update-overlap-expected.html: Added.
+ * compositing/ios/overflow-scroll-update-overlap.html: Added.
+
2017-11-08 Ryan Haddad <[email protected]>
Mark imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html as flaky.
Added: trunk/LayoutTests/compositing/ios/overflow-scroll-update-overlap-expected.html (0 => 224618)
--- trunk/LayoutTests/compositing/ios/overflow-scroll-update-overlap-expected.html (rev 0)
+++ trunk/LayoutTests/compositing/ios/overflow-scroll-update-overlap-expected.html 2017-11-09 05:35:34 UTC (rev 224618)
@@ -0,0 +1,20 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
+<html>
+<head>
+ <meta name="viewport" content="width=device-width">
+ <style>
+ body {
+ margin: 0;
+ }
+ .test {
+ position: relative;
+ background-color: green;
+ height: 800px;
+ width: 100%;
+ }
+ </style>
+</head>
+<body>
+ <div class="test"></div>
+</body>
+</html>
Added: trunk/LayoutTests/compositing/ios/overflow-scroll-update-overlap.html (0 => 224618)
--- trunk/LayoutTests/compositing/ios/overflow-scroll-update-overlap.html (rev 0)
+++ trunk/LayoutTests/compositing/ios/overflow-scroll-update-overlap.html 2017-11-09 05:35:34 UTC (rev 224618)
@@ -0,0 +1,62 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
+<html>
+<head>
+ <meta name="viewport" content="width=device-width">
+ <style>
+ body,
+ html {
+ -webkit-overflow-scrolling: touch;
+ overflow-x: hidden;
+ height: 100%;
+ }
+ body {
+ margin: 0;
+ }
+ .container {
+ height: 100px;
+ position: relative;
+ background-color: silver;
+ }
+ .scroller {
+ width: 100vw;
+ overflow-y: hidden;
+ background-color: gray;
+ }
+ .scroller div {
+ width: 150vw;
+ height: 200px;
+ }
+ #bottom-scroller {
+ position: relative;
+ background: rgba(255, 255, 255, 0.8);
+ }
+ .spacer {
+ height: 500px;
+ }
+ .test {
+ position: relative;
+ background-color: green;
+ height: 800px;
+ }
+ </style>
+ <script>
+ function doTest()
+ {
+ document.body.scrollTop = 600;
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+ <div class="container">
+ <div class="scroller">
+ <div></div>
+ </div>
+ </div>
+ <div id="bottom-scroller">
+ <div class="spacer"></div>
+ <div class="test"></div>
+ </div>
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (224617 => 224618)
--- trunk/Source/WebCore/ChangeLog 2017-11-09 05:27:22 UTC (rev 224617)
+++ trunk/Source/WebCore/ChangeLog 2017-11-09 05:35:34 UTC (rev 224618)
@@ -1,5 +1,21 @@
2017-11-08 Simon Fraser <[email protected]>
+ Content not painted when scrolling an overflow node inside an iframe
+ https://bugs.webkit.org/show_bug.cgi?id=179315
+ rdar://problem/35364166
+
+ Reviewed by Tim Horton.
+
+ When scrolling overflow:scroll, we need to check for overlap updates just as we do
+ for page scrolls.
+
+ Test: compositing/ios/overflow-scroll-update-overlap.html
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateCompositingLayers):
+
+2017-11-08 Simon Fraser <[email protected]>
+
Cordova: elements with tag position:fixed disappears (flickering) when a long content is scrolling and appears again when the scroll is finished.
https://bugs.webkit.org/show_bug.cgi?id=178066
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (224617 => 224618)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2017-11-09 05:27:22 UTC (rev 224617)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2017-11-09 05:35:34 UTC (rev 224618)
@@ -665,13 +665,10 @@
checkForHierarchyUpdate = true;
break;
case CompositingUpdateType::OnScroll:
+ case CompositingUpdateType::OnCompositedScroll:
checkForHierarchyUpdate = true; // Overlap can change with scrolling, so need to check for hierarchy updates.
-
needGeometryUpdate = true;
break;
- case CompositingUpdateType::OnCompositedScroll:
- needGeometryUpdate = true;
- break;
}
if (!checkForHierarchyUpdate && !needGeometryUpdate)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes