Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 599ebf193f70af81c0b0c9cf6ce78a658d78a7f4
      
https://github.com/WebKit/WebKit/commit/599ebf193f70af81c0b0c9cf6ce78a658d78a7f4
  Author: Charlie Wolfe <[email protected]>
  Date:   2024-09-16 (Mon, 16 Sep 2024)

  Changed paths:
    M Source/WebCore/loader/HistoryController.cpp
    M Source/WebCore/page/FrameTree.cpp
    M Source/WebCore/page/FrameTree.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm

  Log Message:
  -----------
  [Site Isolation] Iframes with multiple ascendants in different processes 
cannot be navigated back or forward
https://bugs.webkit.org/show_bug.cgi?id=279752
rdar://136059631

Reviewed by Alex Christensen.

When a history item tree is created in a web process, we initialize history 
items only for local frames.
Including empty history items for remote frames breaks the history tree 
traversal during back or forward
navigation, so we should just exclude them.

`FrameTree::childByFrameID()` now needs to search beyond immediate children, as 
there may be several
remote child frames above a local frame that were not included in the history 
tree.

* Source/WebCore/loader/HistoryController.cpp:
(WebCore::HistoryController::createItemTree):
(WebCore::HistoryController::recursiveSetProvisionalItem):
(WebCore::HistoryController::recursiveGoToItem):
* Source/WebCore/page/FrameTree.cpp:
(WebCore::FrameTree::descendantByFrameID const):
(WebCore::FrameTree::firstLocalChild const):
(WebCore::FrameTree::nextLocalSibling const):
(WebCore::FrameTree::childByFrameID const): Deleted.
* Source/WebCore/page/FrameTree.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::TEST(SiteIsolation, NavigateNestedRootFramesBackForward)):

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