Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 45eb3846b6f4bdd85e0e7181411942dd4c71960c
      
https://github.com/WebKit/WebKit/commit/45eb3846b6f4bdd85e0e7181411942dd4c71960c
  Author: Chris Dumez <[email protected]>
  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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to