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