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

Reply via email to