Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 31cf39eea5b44aaacf7a745ca14eb2703d2e8799
      
https://github.com/WebKit/WebKit/commit/31cf39eea5b44aaacf7a745ca14eb2703d2e8799
  Author: Charlie Wolfe <charl...@apple.com>
  Date:   2025-03-05 (Wed, 05 Mar 2025)

  Changed paths:
    M Source/WebKit/UIProcess/WebBackForwardList.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKBackForwardListTests.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm

  Log Message:
  -----------
  REGRESSION(288409@main): Session restore may treat a child frame’s state as 
the main frame
https://bugs.webkit.org/show_bug.cgi?id=289142
rdar://146207266

Reviewed by Pascoe.

After 288409@main, history state is only constructed for navigating frames. If 
a navigation occurs in a
child frame, the UI process reconstructs the history state for the entire frame 
tree. However, when
retrieving and restoring session state, this reconstruction can fail for child 
frame navigations because
frame IDs will have changed after session restoration.

For now, when outputting session state, we should include the entire frame tree 
for each navigation. This
should restore the previous session restore behavior from before 288409@main.

* Source/WebKit/UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backForwardListState const):
(WebKit::WebBackForwardList::restoreFromState):
* Tools/TestWebKitAPI/Tests/WebKit/WKBackForwardListTests.mm:
(TEST(WKBackForwardList, GoBackToPageAfterNavigatingIframeAndRestoringSession)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::TEST(SiteIsolation, 
DISABLED_NavigateIframeSameOriginBackForwardAfterSessionRestore)):
(TestWebKitAPI::TEST(SiteIsolation, 
DISABLED_NavigateIframeCrossOriginBackForwardAfterSessionRestore)):
(TestWebKitAPI::TEST(SiteIsolation, 
NavigateIframeSameOriginBackForwardAfterSessionRestore)): Deleted.
(TestWebKitAPI::TEST(SiteIsolation, 
NavigateIframeCrossOriginBackForwardAfterSessionRestore)): Deleted.

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

Reply via email to