Index: Source/core/page/scrolling/ScrollingCoordinator.cpp |
=================================================================== |
--- Source/core/page/scrolling/ScrollingCoordinator.cpp (revision 183995) |
+++ Source/core/page/scrolling/ScrollingCoordinator.cpp (working copy) |
@@ -155,25 +155,16 @@ |
} |
m_wasFrameScrollable = frameIsScrollable; |
+ // The mainFrame view doesn't get included in the FrameTree below, so we |
+ // update its size separately. |
if (WebLayer* scrollingWebLayer = frameView ? toWebLayer(frameView->layerForScrolling()) : 0) { |
- // If there is a non-root fullscreen element, prevent the main frame |
- // from scrolling. |
+ // If there is a fullscreen element, set the scroll bounds to empty so the main frame won't scroll. |
Document* mainFrameDocument = m_page->deprecatedLocalMainFrame()->document(); |
Element* fullscreenElement = Fullscreen::fullscreenElementFrom(*mainFrameDocument); |
- if (fullscreenElement && fullscreenElement != mainFrameDocument->documentElement()) { |
- if (m_page->settings().pinchVirtualViewportEnabled()) { |
- toWebLayer(m_page->frameHost().pinchViewport().scrollLayer())->setUserScrollable(false, false); |
- } else { |
- scrollingWebLayer->setBounds(IntSize()); |
- } |
- } else { |
- if (m_page->settings().pinchVirtualViewportEnabled()) { |
- toWebLayer(m_page->frameHost().pinchViewport().scrollLayer())->setUserScrollable(true, true); |
- } else { |
- scrollingWebLayer->setBounds(frameView->contentsSize()); |
- } |
- } |
- scrollingWebLayer->setUserScrollable(frameView->userInputScrollable(HorizontalScrollbar), frameView->userInputScrollable(VerticalScrollbar)); |
+ if (fullscreenElement && fullscreenElement != mainFrameDocument->documentElement()) |
+ scrollingWebLayer->setBounds(IntSize()); |
+ else |
+ scrollingWebLayer->setBounds(frameView->contentsSize()); |
} |
const FrameTree& tree = m_page->mainFrame()->tree(); |