WebKit Bugzilla
Attachment 373751 Details for
Bug 199637
: [iOS WK2] Use Optional<> for two data members of WKWebView
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-199637-20190709132645.patch (text/plain), 6.98 KB, created by
Simon Fraser (smfr)
on 2019-07-09 13:26:46 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Simon Fraser (smfr)
Created:
2019-07-09 13:26:46 PDT
Size:
6.98 KB
patch
obsolete
>Subversion Revision: 247263 >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 830b611e8b96f94c47b598b89fa2ad8787005ccb..b09976b1a5a887b0d7096aa5e5a90463ff3118fa 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,26 @@ >+2019-07-09 Simon Fraser <simon.fraser@apple.com> >+ >+ [iOS WK2] Use Optional<> for two data members of WKWebView >+ https://bugs.webkit.org/show_bug.cgi?id=199637 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Use Optional<CGSize> to replace _overridesViewLayoutSize/_viewLayoutSizeOverride >+ and _overridesMaximumUnobscuredSize/_maximumUnobscuredSizeOverride. >+ >+ No behavior change. >+ >+ * UIProcess/API/Cocoa/WKWebView.mm: >+ (-[WKWebView activeViewLayoutSize:]): >+ (-[WKWebView _frameOrBoundsChanged]): >+ (activeMaximumUnobscuredSize): >+ (-[WKWebView _minimumLayoutSizeOverride]): >+ (-[WKWebView _setViewLayoutSizeOverride:]): >+ (-[WKWebView _maximumUnobscuredSizeOverride]): >+ (-[WKWebView _setMaximumUnobscuredSizeOverride:]): >+ (-[WKWebView _beginAnimatedResizeWithUpdates:]): >+ (-[WKWebView _clearOverrideLayoutParameters]): >+ > 2019-07-09 Alex Christensen <achristensen@webkit.org> > > UserData::decode should return false when decoding an unrecognized type >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >index 9c247d66ceac34b07e885e426356b52570868f95..527fe0ec913aed2ae1ce320c5c97a786feb0e77a 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >@@ -283,12 +283,11 @@ @implementation WKWebView { > RetainPtr<WKFullScreenWindowController> _fullScreenWindowController; > #endif > >- BOOL _overridesViewLayoutSize; >- CGSize _viewLayoutSizeOverride; >+ Optional<CGSize> _viewLayoutSizeOverride; > Optional<WebCore::FloatSize> _lastSentViewLayoutSize; >- BOOL _overridesMaximumUnobscuredSize; >- CGSize _maximumUnobscuredSizeOverride; >+ Optional<CGSize> _maximumUnobscuredSizeOverride; > Optional<WebCore::FloatSize> _lastSentMaximumUnobscuredSize; >+ > CGRect _inputViewBounds; > CGFloat _viewportMetaTagWidth; > BOOL _viewportMetaTagWidthWasExplicit; >@@ -2868,8 +2867,8 @@ - (UIEdgeInsets)_scrollViewSystemContentInset > > - (WebCore::FloatSize)activeViewLayoutSize:(const CGRect&)bounds > { >- if (_overridesViewLayoutSize) >- return WebCore::FloatSize(_viewLayoutSizeOverride); >+ if (_viewLayoutSizeOverride) >+ return WebCore::FloatSize(_viewLayoutSizeOverride.value()); > > #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 110000 > return WebCore::FloatSize(UIEdgeInsetsInsetRect(CGRectMake(0, 0, bounds.size.width, bounds.size.height), self._scrollViewSystemContentInset).size); >@@ -2912,9 +2911,9 @@ - (void)_frameOrBoundsChanged > [_scrollView setFrame:bounds]; > > if (_dynamicViewportUpdateMode == WebKit::DynamicViewportUpdateMode::NotResizing) { >- if (!_overridesViewLayoutSize) >+ if (!_viewLayoutSizeOverride) > [self _dispatchSetViewLayoutSize:[self activeViewLayoutSize:self.bounds]]; >- if (!_overridesMaximumUnobscuredSize) >+ if (!_maximumUnobscuredSizeOverride) > [self _dispatchSetMaximumUnobscuredSize:WebCore::FloatSize(bounds.size)]; > > BOOL sizeChanged = NO; >@@ -3177,7 +3176,7 @@ - (void)_didStartProvisionalLoadForMainFrame > > static WebCore::FloatSize activeMaximumUnobscuredSize(WKWebView *webView, const CGRect& bounds) > { >- return WebCore::FloatSize(webView->_overridesMaximumUnobscuredSize ? webView->_maximumUnobscuredSizeOverride : bounds.size); >+ return WebCore::FloatSize(webView->_maximumUnobscuredSizeOverride.valueOr(bounds.size)); > } > > static int32_t activeOrientation(WKWebView *webView) >@@ -5917,20 +5916,19 @@ - (void)removeFromSuperview > } > #endif > >+// Deprecated SPI. > - (CGSize)_minimumLayoutSizeOverride > { >- ASSERT(_overridesViewLayoutSize); >- return _viewLayoutSizeOverride; >+ ASSERT(_viewLayoutSizeOverride); >+ return _viewLayoutSizeOverride.valueOr(CGSizeZero); > } > > - (void)_setViewLayoutSizeOverride:(CGSize)viewLayoutSizeOverride > { >- _overridesViewLayoutSize = YES; > _viewLayoutSizeOverride = viewLayoutSizeOverride; > > if (_dynamicViewportUpdateMode == WebKit::DynamicViewportUpdateMode::NotResizing) > [self _dispatchSetViewLayoutSize:WebCore::FloatSize(viewLayoutSizeOverride)]; >- > } > > - (UIEdgeInsets)_obscuredInsets >@@ -6020,16 +6018,16 @@ - (void)_clearInterfaceOrientationOverride > _interfaceOrientationOverride = UIInterfaceOrientationPortrait; > } > >+// Deprecated SPI > - (CGSize)_maximumUnobscuredSizeOverride > { >- ASSERT(_overridesMaximumUnobscuredSize); >- return _maximumUnobscuredSizeOverride; >+ ASSERT(_maximumUnobscuredSizeOverride); >+ return _maximumUnobscuredSizeOverride.valueOr(CGSizeZero); > } > > - (void)_setMaximumUnobscuredSizeOverride:(CGSize)size > { > ASSERT(size.width <= self.bounds.size.width && size.height <= self.bounds.size.height); >- _overridesMaximumUnobscuredSize = YES; > _maximumUnobscuredSizeOverride = size; > > if (_dynamicViewportUpdateMode == WebKit::DynamicViewportUpdateMode::NotResizing) >@@ -6095,13 +6093,13 @@ - (void)_beginAnimatedResizeWithUpdates:(void (^)(void))updateBlock > CGRect futureUnobscuredRectInSelfCoordinates = UIEdgeInsetsInsetRect(newBounds, _obscuredInsets); > CGRect contentViewBounds = [_contentView bounds]; > >- ASSERT_WITH_MESSAGE(!(_overridesViewLayoutSize && newViewLayoutSize.isEmpty()), "Clients controlling the layout size should maintain a valid layout size to minimize layouts."); >+ ASSERT_WITH_MESSAGE(!(_viewLayoutSizeOverride && newViewLayoutSize.isEmpty()), "Clients controlling the layout size should maintain a valid layout size to minimize layouts."); > if (CGRectIsEmpty(newBounds) || newViewLayoutSize.isEmpty() || CGRectIsEmpty(futureUnobscuredRectInSelfCoordinates) || CGRectIsEmpty(contentViewBounds)) { > [self _cancelAnimatedResize]; > [self _frameOrBoundsChanged]; >- if (_overridesViewLayoutSize) >+ if (_viewLayoutSizeOverride) > [self _dispatchSetViewLayoutSize:newViewLayoutSize]; >- if (_overridesMaximumUnobscuredSize) >+ if (_maximumUnobscuredSizeOverride) > [self _dispatchSetMaximumUnobscuredSize:WebCore::FloatSize(newMaximumUnobscuredSize)]; > if (_overridesInterfaceOrientation) > [self _dispatchSetDeviceOrientation:newOrientation]; >@@ -6308,11 +6306,8 @@ - (void)_overrideLayoutParametersWithMinimumLayoutSize:(CGSize)minimumLayoutSize > > - (void)_clearOverrideLayoutParameters > { >- _overridesViewLayoutSize = NO; >- _viewLayoutSizeOverride = CGSizeZero; >- >- _overridesMaximumUnobscuredSize = NO; >- _maximumUnobscuredSizeOverride = CGSizeZero; >+ _viewLayoutSizeOverride = WTF::nullopt; >+ _maximumUnobscuredSizeOverride = WTF::nullopt; > } > > static WTF::Optional<WebCore::ViewportArguments> viewportArgumentsFromDictionary(NSDictionary<NSString *, NSString *> *viewportArgumentPairs, bool viewportFitEnabled)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 199637
: 373751