Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4735fd370a76616fd6d29dfdd5e1144a928cdb10 https://github.com/WebKit/WebKit/commit/4735fd370a76616fd6d29dfdd5e1144a928cdb10 Author: Rob Buis <rb...@igalia.com> Date: 2024-08-24 (Sat, 24 Aug 2024)
Changed paths: M LayoutTests/TestExpectations M LayoutTests/imported/w3c/web-platform-tests/navigation-api/currententrychange-event/navigation-back-forward-same-doc-expected.txt M LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-getState-back-forward-expected.txt M LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/entries-after-bfcache-in-iframe-expected.txt M LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/back-forward-multiple-frames-expected.txt M LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/forward-to-pruned-entry-expected.txt M LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document-before-navigate-event-expected.txt M LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/traverseTo-repeated-expected.txt M LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/currententrychange-before-popstate-intercept-expected.txt M LayoutTests/imported/w3c/web-platform-tests/navigation-api/state/same-document-away-and-back-navigation-api-expected.txt M Source/WebCore/loader/NavigationScheduler.cpp M Source/WebCore/loader/NavigationScheduler.h M Source/WebCore/page/Navigation.cpp M Source/WebCore/page/Navigation.h Log Message: ----------- [Navigation] Schedule navigate event until after back/forward/traverseTo https://bugs.webkit.org/show_bug.cgi?id=276546 Reviewed by Alex Christensen. The traverse is supposed to use the session history traversal queue [1]. WebKit does not seem to have this data structure implemented, but seeing history.back() etc. should work similarly as navigation.back(), we can emulate that and use NavigationScheduler, which puts the navigation on a timer. [1] https://html.spec.whatwg.org/multipage/nav-history-apis.html#performing-a-navigation-api-traversal (Step 12) * LayoutTests/TestExpectations: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/currententrychange-event/navigation-back-forward-same-doc-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-getState-back-forward-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/entries-after-bfcache-in-iframe-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/back-forward-multiple-frames-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/forward-to-pruned-entry-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document-before-navigate-event-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/traverseTo-repeated-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/currententrychange-before-popstate-intercept-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/navigation-api/state/same-document-away-and-back-navigation-api-expected.txt: * Source/WebCore/loader/NavigationScheduler.cpp: (WebCore::ScheduledHistoryNavigationByKey::ScheduledHistoryNavigationByKey): (WebCore::ScheduledHistoryNavigationByKey::~ScheduledHistoryNavigationByKey): (WebCore::NavigationScheduler::scheduleHistoryNavigationByKey): * Source/WebCore/loader/NavigationScheduler.h: * Source/WebCore/page/Navigation.cpp: (WebCore::Navigation::performTraversal): (WebCore::Navigation::traverseTo): (WebCore::Navigation::back): (WebCore::Navigation::forward): (WebCore::Navigation::abortOngoingNavigation): * Source/WebCore/page/Navigation.h: Canonical link: https://commits.webkit.org/282699@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes