Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ce94c4ef89254a3b19fa509575162a069907e1fb
https://github.com/WebKit/WebKit/commit/ce94c4ef89254a3b19fa509575162a069907e1fb
Author: Rob Buis <[email protected]>
Date: 2024-11-05 (Tue, 05 Nov 2024)
Changed paths:
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/currententrychange-event/navigation-back-forward-cross-doc-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-after-detach-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-navigation-back-same-document-in-iframe-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/activation-traverse-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/activation-traverse-then-clobber-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-history-entry/entries-after-cross-document-forward-pruning-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/key-id-back-cross-document-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/no-referrer-dynamic-url-censored-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/sameDocument-after-navigate-restore-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/state-after-navigate-restore-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/return-value/back-204-205-download-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/forward-already-detached-expected.txt
R
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/reload-unload-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/traverseTo-cross-document-preventDefault-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/traverseTo-cross-document-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/traverseTo-navigates-multiple-iframes-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/back-cross-document-event-order-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/transition-cross-document-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/per-entry-events/dispose-cross-document-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/per-entry-events/dispose-for-navigation-in-child-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/scroll-behavior/after-transition-reject-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/scroll-behavior/scroll-after-preventDefault.html
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/state/cross-document-away-and-back-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/navigation-api/updateCurrentEntry-method/cross-document-away-and-back-expected.txt
M Source/WebCore/loader/NavigationScheduler.cpp
M Source/WebCore/page/Navigation.cpp
Log Message:
-----------
[Navigation] Improve cross-document traversal
https://bugs.webkit.org/show_bug.cgi?id=281605
Reviewed by Alex Christensen.
We introduced ScheduledHistoryNavigationByKey to handle traversals by key, but
the implementation was incorrect
for subframes: Page::goToItem only operates on b/f cache history items, so
introduce findBackForwardItemByKey to
find such items for both main frames and subframes.
For subframe traversal we may end up with a new window, in case there is a
previous window we can reuse the previous
window navigation information for same document traversals, for cross document
traversal we fall back to the main algorithm.
Finally, to protect against HistoryItem copies, we compare in more places using
itemSequenceNumber instead of HistoryItem pointers.
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/currententrychange-event/navigation-back-forward-cross-doc-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-destination-after-detach-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigate-navigation-back-same-document-in-iframe-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigate-event/navigation-traverseTo-same-document-preventDefault-multiple-windows.html:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/activation-traverse-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-activation/activation-traverse-then-clobber-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-history-entry/entries-after-cross-document-forward-pruning-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/key-id-back-cross-document-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/no-referrer-dynamic-url-censored-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/sameDocument-after-navigate-restore-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-history-entry/state-after-navigate-restore-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/return-value/back-204-205-download-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/forward-already-detached-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/reload-unload-expected.txt:
Removed.
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/traverseTo-cross-document-preventDefault-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/traverseTo-cross-document-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/traverseTo-navigates-multiple-iframes-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/back-cross-document-event-order-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/ordering-and-transition/transition-cross-document-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/per-entry-events/dispose-cross-document-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/per-entry-events/dispose-for-navigation-in-child-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/scroll-behavior/after-transition-reject-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/scroll-behavior/scroll-after-preventDefault.html:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/state/cross-document-away-and-back-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/navigation-api/updateCurrentEntry-method/cross-document-away-and-back-expected.txt:
* Source/WebCore/loader/NavigationScheduler.cpp:
(WebCore::ScheduledHistoryNavigationByKey::findBackForwardItemByKey):
* Source/WebCore/page/Navigation.cpp:
(WebCore::getEntryIndexOfHistoryItem):
(WebCore::Navigation::initializeForNewWindow):
(WebCore::Navigation::dispatchTraversalNavigateEvent):
Canonical link: https://commits.webkit.org/286180@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes