Changeset 223169 in webkit
- Timestamp:
- Oct 11, 2017 12:54:37 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r223167 r223169 1 2017-09-27 Frederic Wang <fwang@igalia.com> 2 3 [iOS] Do not flatten frames when async frame scrolling is enabled 4 https://bugs.webkit.org/show_bug.cgi?id=173704 5 6 Reviewed by Simon Fraser. 7 8 Add an iOS test to verify that frame flattening is disabled when async frame scrolling is enabled. 9 10 * platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling-expected.txt: Added. 11 * platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html: Added. 12 1 13 2017-10-10 Ryosuke Niwa <rniwa@webkit.org> 2 14 -
trunk/Source/WebCore/ChangeLog
r223168 r223169 1 2017-09-27 Frederic Wang <fwang@igalia.com> 2 3 [iOS] Do not flatten frames when async frame scrolling is enabled 4 https://bugs.webkit.org/show_bug.cgi?id=173704 5 6 Reviewed by Simon Fraser. 7 8 This patch disables frame flattening when async frame scrolling is enabled on iOS, as 9 otherwise you can not scroll them. Once iframe scrolling is implemented in iOS (bug 149264), 10 developers and beta testers will be able to check it by enabling "Async Frame Scrolling" 11 in the "Experimental WebKit Features" menu of Safari iOS. 12 13 Test: platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html 14 15 * page/FrameView.cpp: 16 (WebCore::FrameView::frameFlatteningEnabled): Use effectiveFrameFlattening() 17 * page/Settings.cpp: 18 (WebCore::Settings::effectiveFrameFlattening): New function to return frameFlattening() or do 19 some exceptions on iOS. 20 * page/Settings.h: Declare effectiveFrameFlattening. 21 * rendering/RenderFrameSet.cpp: 22 (WebCore::RenderFrameSet::flattenFrameSet): Use effectiveFrameFlattening() 23 * rendering/RenderIFrame.cpp: 24 (WebCore::RenderIFrame::flattenFrame): Ditto. 25 * rendering/RenderView.cpp: 26 (WebCore::FrameFlatteningLayoutDisallower::FrameFlatteningLayoutDisallower): Ditto. 27 1 28 2017-10-10 Xabier Rodriguez Calvar <calvaris@igalia.com> 2 29 -
trunk/Source/WebCore/page/FrameView.cpp
r222857 r223169 569 569 bool FrameView::frameFlatteningEnabled() const 570 570 { 571 return frame().settings(). frameFlattening() != FrameFlatteningDisabled;571 return frame().settings().effectiveFrameFlattening() != FrameFlatteningDisabled; 572 572 } 573 573 -
trunk/Source/WebCore/page/Settings.cpp
r223167 r223169 442 442 } 443 443 444 FrameFlattening Settings::effectiveFrameFlattening() 445 { 446 #if PLATFORM(IOS) 447 // On iOS when async frame scrolling is enabled, it does not make sense to use full frame flattening. 448 // In that case, we just consider that frame flattening is disabled. This allows people to test 449 // frame scrolling on iOS by enabling "Async Frame Scrolling" via the Safari menu. 450 if (asyncFrameScrollingEnabled() && frameFlattening() == FrameFlatteningFullyEnabled) 451 return FrameFlatteningDisabled; 452 #endif 453 return frameFlattening(); 454 } 455 444 456 void Settings::setPluginsEnabled(bool arePluginsEnabled) 445 457 { -
trunk/Source/WebCore/page/Settings.h
r223167 r223169 335 335 bool isForcePendingWebGLPolicy() const { return m_forcePendingWebGLPolicy; } 336 336 337 WEBCORE_EXPORT FrameFlattening effectiveFrameFlattening(); 338 337 339 WEBCORE_EXPORT static void setAllowsAnySSLCertificate(bool); 338 340 static bool allowsAnySSLCertificate(); -
trunk/Source/WebCore/rendering/RenderFrameSet.cpp
r218480 r223169 652 652 bool RenderFrameSet::flattenFrameSet() const 653 653 { 654 return settings(). frameFlattening() != FrameFlatteningDisabled;654 return settings().effectiveFrameFlattening() != FrameFlatteningDisabled; 655 655 } 656 656 -
trunk/Source/WebCore/rendering/RenderIFrame.cpp
r218480 r223169 79 79 bool RenderIFrame::flattenFrame() const 80 80 { 81 if (settings(). frameFlattening() == FrameFlatteningDisabled)81 if (settings().effectiveFrameFlattening() == FrameFlatteningDisabled) 82 82 return false; 83 83 … … 90 90 return false; 91 91 // Do not flatten "fullscreen" iframes or they could become larger than the viewport. 92 if (settings(). frameFlattening() <= FrameFlatteningEnabledForNonFullScreenIFrames && isFullScreenIFrame())92 if (settings().effectiveFrameFlattening() <= FrameFlatteningEnabledForNonFullScreenIFrames && isFullScreenIFrame()) 93 93 return false; 94 94 } -
trunk/Source/WebCore/rendering/RenderView.cpp
r222867 r223169 60 60 FrameFlatteningLayoutDisallower(FrameView& frameView) 61 61 : m_frameView(frameView) 62 , m_disallowLayout(frameView.frame().settings(). frameFlattening() != FrameFlatteningDisabled)62 , m_disallowLayout(frameView.frame().settings().effectiveFrameFlattening() != FrameFlatteningDisabled) 63 63 { 64 64 if (m_disallowLayout) -
trunk/Source/WebKit/ChangeLog
r223167 r223169 1 2017-09-27 Frederic Wang <fwang@igalia.com> 2 3 [iOS] Do not flatten frames when async frame scrolling is enabled 4 https://bugs.webkit.org/show_bug.cgi?id=173704 5 6 Reviewed by Simon Fraser. 7 8 This patch disables frame flattening when async frame scrolling is enabled on iOS, as 9 otherwise you can not scroll them. Once iframe scrolling is implemented in iOS (bug 149264), 10 developers and beta testers will be able to check it by enabling "Async Frame Scrolling" 11 in the "Experimental WebKit Features" menu of Safari iOS. 12 13 Test: platform/ios/fast/frames/flattening/iframe-flattening-with-async-frame-scrolling.html 14 15 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 16 (WebKit::WebChromeClient::contentsSizeChanged): Use effectiveFrameFlattening() introduced in 17 Source/WebCore. 18 1 19 2017-10-10 Ryosuke Niwa <rniwa@webkit.org> 2 20 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
r222941 r223169 567 567 void WebChromeClient::contentsSizeChanged(Frame& frame, const IntSize& size) const 568 568 { 569 if (m_page.corePage()->settings(). frameFlattening() == FrameFlatteningDisabled) {569 if (m_page.corePage()->settings().effectiveFrameFlattening() == FrameFlatteningDisabled) { 570 570 WebFrame* largestFrame = findLargestFrameInFrameSet(m_page); 571 571 if (largestFrame != m_cachedFrameSetLargestFrame.get()) {
Note: See TracChangeset
for help on using the changeset viewer.