Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 91c8c8744db1506c01a913220608cc3d33a75a09 https://github.com/WebKit/WebKit/commit/91c8c8744db1506c01a913220608cc3d33a75a09 Author: Chris Dumez <cdu...@apple.com> Date: 2023-01-24 (Tue, 24 Jan 2023)
Changed paths: M Source/WebCore/loader/FrameLoader.cpp M Source/WebCore/loader/HistoryController.cpp M Tools/TestWebKitAPI/Tests/WebKit/WKBackForwardListTests.mm Log Message: ----------- Cherry-pick 252432.826@safari-7614-branch (baca9afc289e). rdar://104600755 Properly mark history items added without user gesture https://bugs.webkit.org/show_bug.cgi?id=247909 rdar://100579077 Reviewed by Geoffrey Garen. We recently introduced logic to mark history items as "created by JavaScript without a user gesture" so that those could be skipped when the user navigates back/forward via the browser UI. However, which history items we marked with such flag was a little unexpected and didn't quite match what Chrome did to address the same problem. In particular, if on URL1 and then calling `pushState(null, null, 'a')` in JS without a user gesture. We would previously mark the HistoryItem for URL1 as created without a user gesture, instead of marking the one for URL1#a. URL1#a is the actual HistoryItem created by JS so it makes more sense to mark this one (which also matches Chrome's behavior). * Source/WebCore/loader/FrameLoader.cpp: (WebCore::FrameLoader::loadInSameDocument): * Source/WebCore/loader/HistoryController.cpp: (WebCore::FrameLoader::HistoryController::pushState): * Tools/TestWebKitAPI/Tests/WebKit/WKBackForwardList.mm: (TEST): Canonical link: https://commits.webkit.org/252432.826@safari-7614-branch Canonical link: https://commits.webkit.org/259319@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes