[WK2] Frameset frames are not scrollable after loading (and should be)
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 22 Jun 2014 18:35:32 +0000 (18:35 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 22 Jun 2014 18:35:32 +0000 (18:35 +0000)
commit536a4cd987ea55c99f5c7e6418e158c00eb44fd6
tree253603487a438b61eb510415352e2766b6b3a9ed
parent2d0111c3e4370a0c102906714d97fb6d5872d255
[WK2] Frameset frames are not scrollable after loading (and should be)
https://bugs.webkit.org/show_bug.cgi?id=134151
<rdar://problem/17403365>

Reviewed by Dan Bates.

Source/WebCore:
When loading a <frameset>, we could end up with an empty non-fast-scrollable
region for the main frame, because after the initial frameset document layout,
nothing updated the non-fast scrollable region as the subframes added their
scrollable areas to the the main frame's scrollable area set.

Fix by having addScrollableArea() and removeScrollableArea() trigger an update
of the non-fast scrollable region.

Test: platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-frame-scrollability.html

* page/FrameView.cpp:
(WebCore::FrameView::addScrollableArea):
(WebCore::FrameView::removeScrollableArea):
(WebCore::FrameView::scrollableAreaSetChanged):
* page/FrameView.h:

LayoutTests:
Frameset test that dumps the scrolling tree.

* platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-frame-scrollability.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/frames/resources/scrollable-page.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-frame-scrollability-expected.txt [new file with mode: 0644]
LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-frame-scrollability.html [new file with mode: 0644]
LayoutTests/platform/mac-wk2/tiled-drawing/scrolling/frames/resources/scrollable-page.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/page/FrameView.cpp
Source/WebCore/page/FrameView.h