Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 686240cb98d8182dc675f6a2aac9abd2704984ec
https://github.com/WebKit/WebKit/commit/686240cb98d8182dc675f6a2aac9abd2704984ec
Author: Charlie Wolfe <[email protected]>
Date: 2024-05-10 (Fri, 10 May 2024)
Changed paths:
M Source/WebCore/history/HistoryItem.cpp
M Source/WebCore/history/HistoryItem.h
M Source/WebCore/loader/HistoryController.cpp
M Source/WebCore/page/FrameTree.cpp
M Source/WebCore/page/FrameTree.h
M Source/WebCore/testing/Internals.cpp
M Source/WebKit/Shared/SessionState.h
M Source/WebKit/Shared/SessionState.serialization.in
M Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.cpp
M Tools/TestWebKitAPI/Tests/WebKit/WKBackForwardListTests.mm
Log Message:
-----------
Replace unique frame names with frame identifiers in the history controller
https://bugs.webkit.org/show_bug.cgi?id=273995
rdar://127870100
Reviewed by Alex Christensen.
With site isolation, unique frame names should not be used to identify frames.
This patch replaces most
of their usage in the history controller with frame identifiers. We cannot
remove unique frame names from
`HistoryItem` because logic in `FrameLoader::loadURLIntoChildFrame` requires us
to match current frames
with frames from a previous page. Unique frame names are also still used from
session state and history
test output.
This also fixes a bug introduced by 277393@main, where shifting frames after a
navigation could cause
the back/forward list to target an incorrect frame.
* Source/WebCore/history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::HistoryItem::reset):
(WebCore::HistoryItem::addChildItem):
(WebCore::HistoryItem::childItemWithFrameID):
* Source/WebCore/history/HistoryItem.h:
(WebCore::HistoryItem::frameID const):
(WebCore::HistoryItem::setFrameID):
* Source/WebCore/loader/HistoryController.cpp:
(WebCore::HistoryController::initializeItem):
(WebCore::HistoryController::recursiveSetProvisionalItem):
(WebCore::HistoryController::recursiveGoToItem):
* Source/WebCore/page/FrameTree.cpp:
(WebCore::FrameTree::childByFrameID const):
(WebCore::FrameTree::childByUniqueName const): Deleted.
* Source/WebCore/page/FrameTree.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::formControlStateOfPreviousHistoryItem):
(WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
* Source/WebKit/Shared/SessionState.h:
* Source/WebKit/Shared/SessionState.serialization.in:
* Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toFrameState):
(WebKit::applyFrameState):
* Tools/TestWebKitAPI/Tests/WebKit/WKBackForwardListTests.mm:
(TEST(WKBackForwardList, BackForwardListRemoveAndAddSubframes)):
Canonical link: https://commits.webkit.org/278629@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