Title: [174740] trunk
Revision
174740
Author
[email protected]
Date
2014-10-15 12:18:23 -0700 (Wed, 15 Oct 2014)

Log Message

Sometimes can't scroll overflow:scroll areas in subframes
https://bugs.webkit.org/show_bug.cgi?id=137746
rdar://problem/18603560

Reviewed by Tim Horton.

Source/WebCore:

r169733 introduced a regression which caused us to no longer update the non-fast
scrollable region on every layout in subframes, by adding a bogus isMainFrame() check.
Revert to the previous code.

Test: platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout.html

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):

LayoutTests:

Test that changes an overflow size in a subframe and then dumps the non-fast scrollable region.

* platform/mac-wk2/tiled-drawing/scrolling/frames/resources/layouting-frame.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (174739 => 174740)


--- trunk/LayoutTests/ChangeLog	2014-10-15 19:15:16 UTC (rev 174739)
+++ trunk/LayoutTests/ChangeLog	2014-10-15 19:18:23 UTC (rev 174740)
@@ -1,3 +1,17 @@
+2014-10-15  Simon Fraser  <[email protected]>
+
+        Sometimes can't scroll overflow:scroll areas in subframes
+        https://bugs.webkit.org/show_bug.cgi?id=137746
+        rdar://problem/18603560
+
+        Reviewed by Tim Horton.
+        
+        Test that changes an overflow size in a subframe and then dumps the non-fast scrollable region.
+
+        * platform/mac-wk2/tiled-drawing/scrolling/frames/resources/layouting-frame.html: Added.
+        * platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt: Added.
+        * platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout.html: Added.
+
 2014-10-15  Zalan Bujtas  <[email protected]>
 
         [Mac] Unreviewed gardening.

Added: trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/resources/layouting-frame.html (0 => 174740)


--- trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/resources/layouting-frame.html	                        (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/resources/layouting-frame.html	2014-10-15 19:18:23 UTC (rev 174740)
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        .container {
+            width: 300px;
+            height: 0;
+            overflow: scroll;
+        }
+        
+        .tall {
+            height: 300px;
+        }
+    </style>
+    <script>
+        function changeHeight()
+        {
+            window.setTimeout(function() {
+                document.getElementById('container').classList.add('tall');
+                document.body.offsetHeight;
+                window.parent.frameDidChange();
+            }, 0);
+        }
+        window.addEventListener('load', changeHeight, false);
+    </script>
+</head>
+<body>
+
+    <div id="container" class="container">
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+        <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
+    </div>
+</body>
+</html>

Added: trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt (0 => 174740)


--- trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt	2014-10-15 19:18:23 UTC (rev 174740)
@@ -0,0 +1,8 @@
+
+(Frame scrolling node
+  (scrollable area size 785 600)
+  (contents size 785 757)
+  (non-fast-scrollable region
+    at (68,68) size 300x300)
+)
+

Added: trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout.html (0 => 174740)


--- trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout.html	                        (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout.html	2014-10-15 19:18:23 UTC (rev 174740)
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+    iframe {
+        margin: 50px;
+        border: 2px solid black;
+        width: 600px;
+        height: 600px;
+    }
+    </style>
+    <script>
+        if (window.testRunner) {
+            testRunner.waitUntilDone();
+            testRunner.dumpAsText();
+            window.internals.settings.setScrollingTreeIncludesFrames(true);
+        }
+
+        function frameDidChange()
+        {
+            window.setTimeout(function() {
+                if (window.testRunner) {
+                    var scrollingTree = internals.scrollingStateTreeAsText();
+                    var layerTree = internals.layerTreeAsText(document);
+                    
+                    var resultElement = document.getElementById('result');
+                    resultElement.textContent = scrollingTree + layerTree;
+                    
+                    testRunner.notifyDone();
+                }
+            }, 0);
+        }
+    </script>
+</head>
+<body>
+<iframe src=""
+<pre id="result">Results</pre>
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (174739 => 174740)


--- trunk/Source/WebCore/ChangeLog	2014-10-15 19:15:16 UTC (rev 174739)
+++ trunk/Source/WebCore/ChangeLog	2014-10-15 19:18:23 UTC (rev 174740)
@@ -1,3 +1,20 @@
+2014-10-15  Simon Fraser  <[email protected]>
+
+        Sometimes can't scroll overflow:scroll areas in subframes
+        https://bugs.webkit.org/show_bug.cgi?id=137746
+        rdar://problem/18603560
+
+        Reviewed by Tim Horton.
+        
+        r169733 introduced a regression which caused us to no longer update the non-fast
+        scrollable region on every layout in subframes, by adding a bogus isMainFrame() check.
+        Revert to the previous code.
+
+        Test: platform/mac-wk2/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout.html
+
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
+
 2014-10-15  Chris Dumez  <[email protected]>
 
         Use is<>() / downcast<>() for TransformOperation subclasses

Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (174739 => 174740)


--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp	2014-10-15 19:15:16 UTC (rev 174739)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp	2014-10-15 19:18:23 UTC (rev 174740)
@@ -87,8 +87,7 @@
     // frame view whose layout was updated is not the main frame.
     // In the future, we may want to have the ability to set non-fast scrolling regions for more than
     // just the root node. But right now, this concept only applies to the root.
-    if (frameView->frame().isMainFrame())
-        m_scrollingStateTree->rootStateNode()->setNonFastScrollableRegion(computeNonFastScrollableRegion(&frameView->frame(), IntPoint()));
+    m_scrollingStateTree->rootStateNode()->setNonFastScrollableRegion(computeNonFastScrollableRegion(&m_page->mainFrame(), IntPoint()));
 
     if (!coordinatesScrollingForFrameView(frameView))
         return;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to