Title: [172365] trunk
- Revision
- 172365
- Author
- [email protected]
- Date
- 2014-08-08 16:24:02 -0700 (Fri, 08 Aug 2014)
Log Message
[WK2] Scrolling does not work inside nested frames
https://bugs.webkit.org/show_bug.cgi?id=135775
<rdar://problem/17959896>
Reviewed by Tim Horton.
Source/WebCore:
r169733 added an "isMainFrame" check in AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged.
However we have to rebuild the non-fast-scrollable region when any subframe changes,
even a deeply nested one. So always rebuild it, starting from the root frame.
Fixes scrolling on nested framesets like http://www.opengl.org/sdk/docs/man3/.
Test: platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
LayoutTests:
Nested frameset test that dumps the scrolling tree.
* platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/frames/resources/frameset-frame.html: Added.
Modified Paths
Added Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (172364 => 172365)
--- trunk/LayoutTests/ChangeLog 2014-08-08 23:15:55 UTC (rev 172364)
+++ trunk/LayoutTests/ChangeLog 2014-08-08 23:24:02 UTC (rev 172365)
@@ -1,3 +1,17 @@
+2014-08-08 Simon Fraser <[email protected]>
+
+ [WK2] Scrolling does not work inside nested frames
+ https://bugs.webkit.org/show_bug.cgi?id=135775
+ <rdar://problem/17959896>
+
+ Reviewed by Tim Horton.
+
+ Nested frameset test that dumps the scrolling tree.
+
+ * platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt: Added.
+ * platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html: Added.
+ * platform/mac-wk2/tiled-drawing/scrolling/frames/resources/frameset-frame.html: Added.
+
2014-08-07 Roger Fong <[email protected]>
Adjustments to CueBox CSS Width calculations.
Added: trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt (0 => 172365)
--- trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability-expected.txt 2014-08-08 23:24:02 UTC (rev 172365)
@@ -0,0 +1,7 @@
+(Frame scrolling node
+ (scrollable area size 800 600)
+ (contents size 800 600)
+ (non-fast-scrollable region
+ at (0,166) size 280x434)
+)
+
Added: trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html (0 => 172365)
--- trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html 2014-08-08 23:24:02 UTC (rev 172365)
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <script>
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ function frameDidChange()
+ {
+ window.setTimeout(function() {
+ if (window.testRunner) {
+ var scrollingTree = window.internals.scrollingStateTreeAsText();
+ document.open();
+ document.write('<pre>');
+ document.write(scrollingTree);
+ document.write('</pre>');
+ document.close();
+ testRunner.notifyDone();
+ }
+ }, 0);
+ }
+ </script>
+</head>
+<frameset rows="160,*">
+<frame></frame>
+<frame src=""
+</frameset>
+</html>
Added: trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/resources/frameset-frame.html (0 => 172365)
--- trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/resources/frameset-frame.html (rev 0)
+++ trunk/LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/resources/frameset-frame.html 2014-08-08 23:24:02 UTC (rev 172365)
@@ -0,0 +1,17 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <script>
+ function frameDidChange()
+ {
+ window.parent.frameDidChange();
+ }
+ </script>
+</head>
+
+<frameset cols="280, *">
+<frame src=""
+</frameset>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (172364 => 172365)
--- trunk/Source/WebCore/ChangeLog 2014-08-08 23:15:55 UTC (rev 172364)
+++ trunk/Source/WebCore/ChangeLog 2014-08-08 23:24:02 UTC (rev 172365)
@@ -1,3 +1,22 @@
+2014-08-08 Simon Fraser <[email protected]>
+
+ [WK2] Scrolling does not work inside nested frames
+ https://bugs.webkit.org/show_bug.cgi?id=135775
+ <rdar://problem/17959896>
+
+ Reviewed by Tim Horton.
+
+ r169733 added an "isMainFrame" check in AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged.
+ However we have to rebuild the non-fast-scrollable region when any subframe changes,
+ even a deeply nested one. So always rebuild it, starting from the root frame.
+
+ Fixes scrolling on nested framesets like http://www.opengl.org/sdk/docs/man3/.
+
+ Test: platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html
+
+ * page/scrolling/AsyncScrollingCoordinator.cpp:
+ (WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):
+
2014-08-08 Bem Jones-Bey <[email protected]>
[CSS Shapes] Refactor getExcludedIntervals since only one LineSegment is ever returned
Modified: trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp (172364 => 172365)
--- trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp 2014-08-08 23:15:55 UTC (rev 172364)
+++ trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp 2014-08-08 23:24:02 UTC (rev 172365)
@@ -108,13 +108,12 @@
node->setScrollableAreaParameters(scrollParameters);
}
-void AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged(FrameView* frameView)
+void AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged(FrameView*)
{
if (!m_scrollingStateTree->rootStateNode())
return;
- if (frameView->frame().isMainFrame())
- m_scrollingStateTree->rootStateNode()->setNonFastScrollableRegion(computeNonFastScrollableRegion(&frameView->frame(), IntPoint()));
+ m_scrollingStateTree->rootStateNode()->setNonFastScrollableRegion(computeNonFastScrollableRegion(&m_page->mainFrame(), IntPoint()));
}
void AsyncScrollingCoordinator::frameViewRootLayerDidChange(FrameView* frameView)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes