Changeset 252125 in webkit
- Timestamp:
- Nov 5, 2019 10:41:51 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r252123 r252125 1 2019-11-05 Chris Dumez <cdumez@apple.com> 2 3 [iOS] Scroll position does not get restored when doing a history navigation while the reader view is shown 4 https://bugs.webkit.org/show_bug.cgi?id=203871 5 <rdar://problem/56564603> 6 7 Reviewed by Tim Horton. 8 9 Previously, attempts to restore the scroll position on the web view while it is being dynamically resized 10 would get ignored. Instead, we now delay restoring the scroll position until after the view is resized. 11 12 * UIProcess/API/Cocoa/WKWebView.mm: 13 (-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]): 14 (-[WKWebView _restorePageStateToUnobscuredCenter:scale:]): 15 1 16 2019-11-05 Kate Cheney <katherine_cheney@apple.com> 2 17 -
trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
r251956 r252125 2190 2190 - (void)_restorePageScrollPosition:(Optional<WebCore::FloatPoint>)scrollPosition scrollOrigin:(WebCore::FloatPoint)scrollOrigin previousObscuredInset:(WebCore::FloatBoxExtent)obscuredInsets scale:(double)scale 2191 2191 { 2192 if (_dynamicViewportUpdateMode != WebKit::DynamicViewportUpdateMode::NotResizing) 2192 if (_dynamicViewportUpdateMode != WebKit::DynamicViewportUpdateMode::NotResizing) { 2193 // Defer scroll position restoration until after the current resize completes. 2194 RetainPtr<WKWebView> retainedSelf = self; 2195 _callbacksDeferredDuringResize.append([retainedSelf, scrollPosition, scrollOrigin, obscuredInsets, scale] { 2196 [retainedSelf _restorePageScrollPosition:scrollPosition scrollOrigin:scrollOrigin previousObscuredInset:obscuredInsets scale:scale]; 2197 }); 2193 2198 return; 2199 } 2194 2200 2195 2201 if (![self usesStandardContentView]) … … 2208 2214 - (void)_restorePageStateToUnobscuredCenter:(Optional<WebCore::FloatPoint>)center scale:(double)scale 2209 2215 { 2210 if (_dynamicViewportUpdateMode != WebKit::DynamicViewportUpdateMode::NotResizing) 2216 if (_dynamicViewportUpdateMode != WebKit::DynamicViewportUpdateMode::NotResizing) { 2217 // Defer scroll position restoration until after the current resize completes. 2218 RetainPtr<WKWebView> retainedSelf = self; 2219 _callbacksDeferredDuringResize.append([retainedSelf, center, scale] { 2220 [retainedSelf _restorePageStateToUnobscuredCenter:center scale:scale]; 2221 }); 2211 2222 return; 2223 } 2212 2224 2213 2225 if (![self usesStandardContentView]) -
trunk/Tools/ChangeLog
r252087 r252125 1 2019-11-05 Chris Dumez <cdumez@apple.com> 2 3 [iOS] Scroll position does not get restored when doing a history navigation while the reader view is shown 4 https://bugs.webkit.org/show_bug.cgi?id=203871 5 <rdar://problem/56564603> 6 7 Reviewed by Tim Horton. 8 9 Add API test coverage. 10 11 * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: 12 * TestWebKitAPI/Tests/WebKit/simple-tall.html: 13 * TestWebKitAPI/Tests/WebKitCocoa/RestoreScrollPosition.mm: Added. 14 (TestWebKitAPI::TEST): 15 1 16 2019-11-05 Jonathan Bedard <jbedard@apple.com> 2 17 -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r252060 r252125 244 244 46E66A901F0D75590026D83C /* WKWebViewDiagnosticLogging.mm in Sources */ = {isa = PBXBuildFile; fileRef = 46E66A8F1F0D75590026D83C /* WKWebViewDiagnosticLogging.mm */; }; 245 245 46E816F81E79E29C00375ADC /* RestoreStateAfterTermination.mm in Sources */ = {isa = PBXBuildFile; fileRef = 46E816F71E79E29100375ADC /* RestoreStateAfterTermination.mm */; }; 246 46EBD8472372320F00223A6E /* RestoreScrollPosition.mm in Sources */ = {isa = PBXBuildFile; fileRef = 46EBD846237231E600223A6E /* RestoreScrollPosition.mm */; }; 246 247 4909EE3A2D09480C88982D56 /* Markable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EC79F168BE454E579E417B05 /* Markable.cpp */; }; 247 248 4BFDFFA71314776C0061F24B /* HitTestResultNodeHandle_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BFDFFA61314776C0061F24B /* HitTestResultNodeHandle_Bundle.cpp */; }; … … 1766 1767 46E66A8F1F0D75590026D83C /* WKWebViewDiagnosticLogging.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WKWebViewDiagnosticLogging.mm; sourceTree = "<group>"; }; 1767 1768 46E816F71E79E29100375ADC /* RestoreStateAfterTermination.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RestoreStateAfterTermination.mm; sourceTree = "<group>"; }; 1769 46EBD846237231E600223A6E /* RestoreScrollPosition.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RestoreScrollPosition.mm; sourceTree = "<group>"; }; 1768 1770 4A410F4B19AF7BD6002EBAB5 /* UserMedia.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UserMedia.cpp; sourceTree = "<group>"; }; 1769 1771 4A410F4D19AF7BEF002EBAB5 /* getUserMedia.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = getUserMedia.html; sourceTree = "<group>"; }; … … 2946 2948 5CCB10E02134579D00AC5AF0 /* ResponsivenessTimer.mm */, 2947 2949 5CCB10DD2134579C00AC5AF0 /* ResponsivenessTimerDoesntFireEarly.mm */, 2950 46EBD846237231E600223A6E /* RestoreScrollPosition.mm */, 2948 2951 5CCB10DE2134579D00AC5AF0 /* RestoreSessionStateWithoutNavigation.mm */, 2949 2952 A180C0F91EE67DF000468F47 /* RunOpenPanel.mm */, … … 4790 4793 512C4C9E20EAA40D004945EA /* ResponsivenessTimerCrash.mm in Sources */, 4791 4794 5CCB10E2213457D500AC5AF0 /* ResponsivenessTimerDoesntFireEarly.mm in Sources */, 4795 46EBD8472372320F00223A6E /* RestoreScrollPosition.mm in Sources */, 4792 4796 83B6DE6F1EE75221001E792F /* RestoreSessionState.cpp in Sources */, 4793 4797 7CCE7F111A411AE600447C4C /* RestoreSessionStateContainingFormData.cpp in Sources */, -
trunk/Tools/TestWebKitAPI/Tests/WebKit/simple-tall.html
r103302 r252125 1 <meta name='viewport' content='width=device-width, initial-scale=1'> 1 2 <!DOCTYPE html> 2 3 <html>
Note: See TracChangeset
for help on using the changeset viewer.