[webkit-changes] [WebKit/WebKit] 45eb38: imported/w3c/web-platform-tests/navigation-api/nav...

Chris Dumez noreply at github.com
Thu Dec 19 14:37:27 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 45eb3846b6f4bdd85e0e7181411942dd4c71960c
      https://github.com/WebKit/WebKit/commit/45eb3846b6f4bdd85e0e7181411942dd4c71960c
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2024-12-19 (Thu, 19 Dec 2024)

  Changed paths:
    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/navigate-event/navigation-traverseTo-navigates-top-and-same-doc-child-and-cross-doc-child-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/back-forward-multiple-frames-expected.txt
    M Source/WebCore/bindings/js/JSDOMPromiseDeferred.h
    M Source/WebCore/loader/HistoryController.cpp
    M Source/WebCore/loader/HistoryController.h
    M Source/WebCore/loader/NavigationScheduler.cpp
    M Source/WebCore/page/Navigation.h
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h

  Log Message:
  -----------
  imported/w3c/web-platform-tests/navigation-api/navigation-methods/back-forward-multiple-frames.html is failing
https://bugs.webkit.org/show_bug.cgi?id=284865

Reviewed by Rob Buis.

When calling `navigation.back()` / `navigation.forward()`, we would call `Page::goToItem()` which
would navigate a single frame. However, per the HTML specification, several frames may get navigated.
In particular, if a frame get navigated within the same document (e.g. fragment navigation), its
descendant frames may get navigated to whatever their URL was when their ancestor last was on this
HistoryItem.

In particular, the "apply the history step" [1] says:
"""
Let changingNavigables be the result of get all navigables whose current session history entry will change or reload given traversable and targetStep.
"""
Which refers to the algorithm at [2] to gather the changing navigables.

[1] https://html.spec.whatwg.org/#apply-the-history-step
[2] https://html.spec.whatwg.org/#get-all-navigables-whose-current-session-history-entry-will-change-or-reload

* 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-navigates-top-and-same-doc-child-and-cross-doc-child-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/navigation-api/navigation-methods/back-forward-multiple-frames-expected.txt:
Rebaseline tests that are now passing or running further.

* Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:
(WebCore::DeferredPromise::wasRejected const):
* Source/WebCore/loader/HistoryController.cpp:
(WebCore::HistoryController::goToItem):
(WebCore::HistoryController::goToItemForNavigationAPI):
(WebCore::HistoryController::recursiveGatherFramesToNavigate):
(WebCore::HistoryController::recursiveSetProvisionalItem):
(WebCore::HistoryController::itemsAreClones):
(WebCore::HistoryController::itemsAreClones const): Deleted.
* Source/WebCore/loader/HistoryController.h:
* Source/WebCore/loader/NavigationScheduler.cpp:
* Source/WebCore/page/Navigation.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::goToItemForNavigationAPI):
* Source/WebCore/page/Page.h:

Canonical link: https://commits.webkit.org/288123@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