Changeset 219594 in webkit
- Timestamp:
- Jul 17, 2017, 6:45:59 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r219586 r219594 1 2017-07-17 Timothy Horton <timothy_horton@apple.com> 2 3 Page using safe area constant properties jumps to correct layout after resize 4 https://bugs.webkit.org/show_bug.cgi?id=174598 5 <rdar://problem/33364275> 6 7 Reviewed by Simon Fraser. 8 9 * fast/events/ios/rotation/safe-area-insets-during-safari-type-rotation-expected.txt: Added. 10 * fast/events/ios/rotation/safe-area-insets-during-safari-type-rotation.html: Added. 11 Add a test making sure that dynamic-viewport-update-based rotation 12 updates safe area insets when needed. 13 1 14 2017-07-17 Matt Lewis <jlewis3@apple.com> 2 15 -
trunk/Source/WebKit/ChangeLog
r219588 r219594 1 2017-07-17 Timothy Horton <timothy_horton@apple.com> 2 3 Page using safe area constant properties jumps to correct layout after resize 4 https://bugs.webkit.org/show_bug.cgi?id=174598 5 <rdar://problem/33364275> 6 7 Reviewed by Simon Fraser. 8 9 Test: fast/events/ios/rotation/safe-area-insets-during-safari-type-rotation.html 10 11 * UIProcess/API/Cocoa/WKWebView.mm: 12 (-[WKWebView _beginAnimatedResizeWithUpdates:]): 13 * UIProcess/WebPageProxy.h: 14 * UIProcess/ios/WebPageProxyIOS.mm: 15 (WebKit::WebPageProxy::dynamicViewportSizeUpdate): 16 * WebProcess/WebPage/WebPage.h: 17 * WebProcess/WebPage/WebPage.messages.in: 18 * WebProcess/WebPage/ios/WebPageIOS.mm: 19 (WebKit::WebPage::dynamicViewportSizeUpdate): 20 Plumb unobscured safe area insets through in the dynamicViewportSizeUpdate, 21 like we do in VisibleContentRectUpdate (once again sad that these aren't 22 more similar), so that it will be correct in the during-rotation snapshot, 23 instead of only becoming correct in the first visible content rect update 24 post-rotation. 25 1 26 2017-07-17 Chris Dumez <cdumez@apple.com> 2 27 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
r219526 r219594 4860 4860 CGRect unobscuredRectInContentCoordinates = [self convertRect:futureUnobscuredRectInSelfCoordinates toView:_contentView.get()]; 4861 4861 4862 _page->dynamicViewportSizeUpdate(newMinimumLayoutSize, newMaximumUnobscuredSize, visibleRectInContentCoordinates, unobscuredRectInContentCoordinates, futureUnobscuredRectInSelfCoordinates, targetScale, newOrientation); 4862 UIEdgeInsets unobscuredSafeAreaInsets = [self _computedUnobscuredSafeAreaInset]; 4863 WebCore::FloatBoxExtent unobscuredSafeAreaInsetsExtent(unobscuredSafeAreaInsets.top, unobscuredSafeAreaInsets.right, unobscuredSafeAreaInsets.bottom, unobscuredSafeAreaInsets.left); 4864 4865 _page->dynamicViewportSizeUpdate(newMinimumLayoutSize, newMaximumUnobscuredSize, visibleRectInContentCoordinates, unobscuredRectInContentCoordinates, futureUnobscuredRectInSelfCoordinates, unobscuredSafeAreaInsetsExtent, targetScale, newOrientation); 4863 4866 if (WebKit::DrawingAreaProxy* drawingArea = _page->drawingArea()) 4864 4867 drawingArea->setSize(WebCore::IntSize(newBounds.size), WebCore::IntSize(), WebCore::IntSize()); -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r219340 r219594 500 500 void overflowScrollDidEndScroll(); 501 501 502 void dynamicViewportSizeUpdate(const WebCore::FloatSize& minimumLayoutSize, const WebCore::FloatSize& maximumUnobscuredSize, const WebCore::FloatRect& targetExposedContentRect, const WebCore::FloatRect& targetUnobscuredRect, const WebCore::FloatRect& targetUnobscuredRectInScrollViewCoordinates, double targetScale, int32_t deviceOrientation);502 void dynamicViewportSizeUpdate(const WebCore::FloatSize& minimumLayoutSize, const WebCore::FloatSize& maximumUnobscuredSize, const WebCore::FloatRect& targetExposedContentRect, const WebCore::FloatRect& targetUnobscuredRect, const WebCore::FloatRect& targetUnobscuredRectInScrollViewCoordinates, const WebCore::FloatBoxExtent& unobscuredSafeAreaInsets, double targetScale, int32_t deviceOrientation); 503 503 void synchronizeDynamicViewportUpdate(); 504 504 -
trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
r219340 r219594 288 288 } 289 289 290 void WebPageProxy::dynamicViewportSizeUpdate(const FloatSize& minimumLayoutSize, const WebCore::FloatSize& maximumUnobscuredSize, const FloatRect& targetExposedContentRect, const FloatRect& targetUnobscuredRect, const FloatRect& targetUnobscuredRectInScrollViewCoordinates, double targetScale, int32_t deviceOrientation)290 void WebPageProxy::dynamicViewportSizeUpdate(const FloatSize& minimumLayoutSize, const WebCore::FloatSize& maximumUnobscuredSize, const FloatRect& targetExposedContentRect, const FloatRect& targetUnobscuredRect, const FloatRect& targetUnobscuredRectInScrollViewCoordinates, const WebCore::FloatBoxExtent& unobscuredSafeAreaInsets, double targetScale, int32_t deviceOrientation) 291 291 { 292 292 if (!isValid()) … … 297 297 m_dynamicViewportSizeUpdateWaitingForTarget = true; 298 298 m_dynamicViewportSizeUpdateWaitingForLayerTreeCommit = true; 299 m_process->send(Messages::WebPage::DynamicViewportSizeUpdate(minimumLayoutSize, maximumUnobscuredSize, targetExposedContentRect, targetUnobscuredRect, targetUnobscuredRectInScrollViewCoordinates, targetScale, deviceOrientation, ++m_currentDynamicViewportSizeUpdateID), m_pageID);299 m_process->send(Messages::WebPage::DynamicViewportSizeUpdate(minimumLayoutSize, maximumUnobscuredSize, targetExposedContentRect, targetUnobscuredRect, targetUnobscuredRectInScrollViewCoordinates, unobscuredSafeAreaInsets, targetScale, deviceOrientation, ++m_currentDynamicViewportSizeUpdateID), m_pageID); 300 300 } 301 301 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r219106 r219594 826 826 void setMaximumUnobscuredSize(const WebCore::FloatSize&); 827 827 void setDeviceOrientation(int32_t); 828 void dynamicViewportSizeUpdate(const WebCore::FloatSize& minimumLayoutSize, const WebCore::FloatSize& maximumUnobscuredSize, const WebCore::FloatRect& targetExposedContentRect, const WebCore::FloatRect& targetUnobscuredRect, const WebCore::FloatRect& targetUnobscuredRectInScrollViewCoordinates, double scale, int32_t deviceOrientation, uint64_t dynamicViewportSizeUpdateID);828 void dynamicViewportSizeUpdate(const WebCore::FloatSize& minimumLayoutSize, const WebCore::FloatSize& maximumUnobscuredSize, const WebCore::FloatRect& targetExposedContentRect, const WebCore::FloatRect& targetUnobscuredRect, const WebCore::FloatRect& targetUnobscuredRectInScrollViewCoordinates, const WebCore::FloatBoxExtent& targetUnobscuredSafeAreaInsets, double scale, int32_t deviceOrientation, uint64_t dynamicViewportSizeUpdateID); 829 829 void synchronizeDynamicViewportUpdate(double& newTargetScale, WebCore::FloatPoint& newScrollPosition, uint64_t& nextValidLayerTreeTransactionID); 830 830 std::optional<float> scaleFromUIProcess(const VisibleContentRectUpdateInfo&) const; -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in
r219106 r219594 44 44 SetMaximumUnobscuredSize(WebCore::FloatSize size) 45 45 SetDeviceOrientation(int32_t deviceOrientation) 46 DynamicViewportSizeUpdate(WebCore::FloatSize minimumLayoutSize, WebCore::FloatSize maximumUnobscuredSize, WebCore::FloatRect targetExposedContentRect, WebCore::FloatRect targetUnobscuredRect, WebCore::FloatRect targetUnobscuredRectInScrollViewCoordinates, double scale, int32_t deviceOrientation, uint64_t dynamicViewportSizeUpdateID)46 DynamicViewportSizeUpdate(WebCore::FloatSize minimumLayoutSize, WebCore::FloatSize maximumUnobscuredSize, WebCore::FloatRect targetExposedContentRect, WebCore::FloatRect targetUnobscuredRect, WebCore::FloatRect targetUnobscuredRectInScrollViewCoordinates, WebCore::BoxExtent<float> targetUnobscuredSafeAreaInsets, double scale, int32_t deviceOrientation, uint64_t dynamicViewportSizeUpdateID) 47 47 SynchronizeDynamicViewportUpdate() -> (double newTargetScale, WebCore::FloatPoint newScrollPosition, uint64_t nextValidLayerTreeTransactionID) 48 48 -
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
r219055 r219594 2857 2857 } 2858 2858 2859 void WebPage::dynamicViewportSizeUpdate(const FloatSize& minimumLayoutSize, const WebCore::FloatSize& maximumUnobscuredSize, const FloatRect& targetExposedContentRect, const FloatRect& targetUnobscuredRect, const WebCore::FloatRect& targetUnobscuredRectInScrollViewCoordinates, double targetScale, int32_t deviceOrientation, uint64_t dynamicViewportSizeUpdateID)2859 void WebPage::dynamicViewportSizeUpdate(const FloatSize& minimumLayoutSize, const WebCore::FloatSize& maximumUnobscuredSize, const FloatRect& targetExposedContentRect, const FloatRect& targetUnobscuredRect, const WebCore::FloatRect& targetUnobscuredRectInScrollViewCoordinates, const WebCore::FloatBoxExtent& targetUnobscuredSafeAreaInsets, double targetScale, int32_t deviceOrientation, uint64_t dynamicViewportSizeUpdateID) 2860 2860 { 2861 2861 SetForScope<bool> dynamicSizeUpdateGuard(m_inDynamicSizeUpdate, true); … … 2901 2901 2902 2902 setMaximumUnobscuredSize(maximumUnobscuredSize); 2903 m_page->setUnobscuredSafeAreaInsets(targetUnobscuredSafeAreaInsets); 2903 2904 2904 2905 frameView.updateLayoutAndStyleIfNeededRecursive();
Note:
See TracChangeset
for help on using the changeset viewer.