Title: [168568] trunk/Source/WebKit2
- Revision
- 168568
- Author
- [email protected]
- Date
- 2014-05-09 19:09:03 -0700 (Fri, 09 May 2014)
Log Message
[iOS][WK2] Reset the scroll position on the first frame after didCommitLoad
https://bugs.webkit.org/show_bug.cgi?id=132765
Reviewed by Tim Horton.
Since WebCore does not update our scroll view on load, we need to do that ourself.
In case where we need to restore the state from the history, RemoteLayerTreeDrawingAreaProxy
will always invoke the scrolling after didCommitLayerTree() (since r167916).
Consequently, it is now safe again to reset the scroll position ourself on the first frame.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLoadForMainFrame]):
(-[WKWebView _didCommitLayerTree:WebKit::]):
* UIProcess/API/Cocoa/WKWebViewInternal.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _didCommitLoadForMainFrame]):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (168567 => 168568)
--- trunk/Source/WebKit2/ChangeLog 2014-05-10 01:53:20 UTC (rev 168567)
+++ trunk/Source/WebKit2/ChangeLog 2014-05-10 02:09:03 UTC (rev 168568)
@@ -1,3 +1,23 @@
+2014-05-09 Benjamin Poulain <[email protected]>
+
+ [iOS][WK2] Reset the scroll position on the first frame after didCommitLoad
+ https://bugs.webkit.org/show_bug.cgi?id=132765
+
+ Reviewed by Tim Horton.
+
+ Since WebCore does not update our scroll view on load, we need to do that ourself.
+
+ In case where we need to restore the state from the history, RemoteLayerTreeDrawingAreaProxy
+ will always invoke the scrolling after didCommitLayerTree() (since r167916).
+ Consequently, it is now safe again to reset the scroll position ourself on the first frame.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _didCommitLoadForMainFrame]):
+ (-[WKWebView _didCommitLayerTree:WebKit::]):
+ * UIProcess/API/Cocoa/WKWebViewInternal.h:
+ * UIProcess/ios/WKContentView.mm:
+ (-[WKContentView _didCommitLoadForMainFrame]):
+
2014-05-09 Anders Carlsson <[email protected]>
Update availability macros
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (168567 => 168568)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2014-05-10 01:53:20 UTC (rev 168567)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2014-05-10 02:09:03 UTC (rev 168568)
@@ -114,6 +114,7 @@
UIView *_extendedBackgroundLayerTopInset;
UIView *_extendedBackgroundLayerBottomInset;
+ BOOL _needsResetViewStateAfterCommitLoadForMainFrame;
BOOL _isAnimatingResize;
CATransform3D _resizeAnimationTransformAdjustments;
RetainPtr<UIView> _resizeAnimationView;
@@ -456,6 +457,11 @@
_extendedBackgroundLayerBottomInset.backgroundColor = uiBackgroundColor.get();
}
+- (void)_didCommitLoadForMainFrame
+{
+ _needsResetViewStateAfterCommitLoadForMainFrame = YES;
+}
+
- (void)_didCommitLayerTree:(const WebKit::RemoteLayerTreeTransaction&)layerTreeTransaction
{
if (_customContentView)
@@ -477,6 +483,11 @@
if (_gestureController)
_gestureController->setRenderTreeSize(layerTreeTransaction.renderTreeSize());
+
+ if (_needsResetViewStateAfterCommitLoadForMainFrame) {
+ _needsResetViewStateAfterCommitLoadForMainFrame = NO;
+ [_scrollView setContentOffset:CGPointMake(-_obscuredInsets.left, -_obscuredInsets.top)];
+ }
}
- (void)_dynamicViewportUpdateChangedTargetToScale:(double)newScale position:(CGPoint)newScrollPosition
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h (168567 => 168568)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h 2014-05-10 01:53:20 UTC (rev 168567)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h 2014-05-10 02:09:03 UTC (rev 168568)
@@ -58,6 +58,7 @@
}
#if PLATFORM(IOS)
+- (void)_didCommitLoadForMainFrame;
- (void)_didCommitLayerTree:(const WebKit::RemoteLayerTreeTransaction&)layerTreeTransaction;
- (void)_dynamicViewportUpdateChangedTargetToScale:(double)newScale position:(CGPoint)newScrollPosition;
Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm (168567 => 168568)
--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm 2014-05-10 01:53:20 UTC (rev 168567)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm 2014-05-10 02:09:03 UTC (rev 168568)
@@ -443,6 +443,7 @@
- (void)_didCommitLoadForMainFrame
{
[self _stopAssistingNode];
+ [_webView _didCommitLoadForMainFrame];
}
- (void)_didCommitLayerTree:(const WebKit::RemoteLayerTreeTransaction&)layerTreeTransaction
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes