WebKit clients may sometimes modify the contents insets of the view while the user is performing scroll gestures. We should have a delegate method that WebKit can use to ask the host application if any such changes will happen so that we can properly animate to the final window state.
<rdar://problem/21602741>
Created attachment 255883 [details] Patch
Comment on attachment 255883 [details] Patch Given the limited use case, this should start as SPI on WKUIDelegatePrivate.h
Created attachment 256015 [details] Patch
Comment on attachment 256015 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=256015&action=review > Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1474 > + UIEdgeInsets contentInset = [self _computedContentInset]; > + > + id<WKUIDelegatePrivate> uiDelegatePrivate = static_cast<id <WKUIDelegatePrivate>>([self UIDelegate]); > + if ([uiDelegatePrivate respondsToSelector:@selector(_webView:finalObscuredInsetsForScrollView:withVelocity:targetContentOffset:)]) > + contentInset = [uiDelegatePrivate _webView:self finalObscuredInsetsForScrollView:scrollView withVelocity:velocity targetContentOffset:targetContentOffset]; Would be better to use else so we don’t unnecessarily call _computedContentInset every time.
Comment on attachment 256015 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=256015&action=review >> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1474 >> + contentInset = [uiDelegatePrivate _webView:self finalObscuredInsetsForScrollView:scrollView withVelocity:velocity targetContentOffset:targetContentOffset]; > > Would be better to use else so we don’t unnecessarily call _computedContentInset every time. Good idea! Will do.
Committed r186237: <http://trac.webkit.org/changeset/186237>