[webkit-changes] [WebKit/WebKit] 4735fd: [Navigation] Schedule navigate event until after b...
Rob Buis
noreply at github.com
Sat Aug 24 04:37:58 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4735fd370a76616fd6d29dfdd5e1144a928cdb10
https://github.com/WebKit/WebKit/commit/4735fd370a76616fd6d29dfdd5e1144a928cdb10
Author: Rob Buis <rbuis at 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
More information about the webkit-changes
mailing list