[iOS] Do not flatten frames when async frame scrolling is enabled
https://bugs.webkit.org/show_bug.cgi?id=173704
Patch by Frederic Wang <[email protected]> on 2017-09-27
Reviewed by Simon Fraser.
Source/WebCore:
This patch disables frame flattening when async frame scrolling is enabled on iOS, as
otherwise you can not scroll them. Once iframe scrolling is implemented in iOS (bug 149264),
developers and beta testers will be able to check it by enabling "Async Frame Scrolling"
in the "Experimental WebKit Features" menu of Safari iOS.
Test: platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html
(WebCore::FrameView::frameFlatteningEnabled): Use effectiveFrameFlattening()
(WebCore::Settings::effectiveFrameFlattening): New function to return frameFlattening() or do
some exceptions on iOS.
- page/Settings.h: Declare effectiveFrameFlattening.
- rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::flattenFrameSet): Use effectiveFrameFlattening()
- rendering/RenderIFrame.cpp:
(WebCore::RenderIFrame::flattenFrame): Ditto.
- rendering/RenderView.cpp:
(WebCore::FrameFlatteningLayoutDisallower::FrameFlatteningLayoutDisallower): Ditto.
Source/WebKit:
This patch disables frame flattening when async frame scrolling is enabled on iOS, as
otherwise you can not scroll them. Once iframe scrolling is implemented in iOS (bug 149264),
developers and beta testers will be able to check it by enabling "Async Frame Scrolling"
in the "Experimental WebKit Features" menu of Safari iOS.
Test: platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged): Use effectiveFrameFlattening() introduced in
Source/WebCore.
LayoutTests:
Add an iOS test to verify that frame flattening is disabled when async frame scrolling is enabled.
- platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling-expected.txt: Added.
- platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html: Added.