[webkit-changes] [WebKit/WebKit] 27518d: Replace `BackForwardListItemState` and `PageState`...
Charlie Wolfe
noreply at github.com
Fri Sep 27 11:45:31 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 27518d2b3bd254cc214ee42996408757ef113bf3
https://github.com/WebKit/WebKit/commit/27518d2b3bd254cc214ee42996408757ef113bf3
Author: Charlie Wolfe <charliew at apple.com>
Date: 2024-09-27 (Fri, 27 Sep 2024)
Changed paths:
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Shared/SessionState.h
M Source/WebKit/Shared/SessionState.serialization.in
M Source/WebKit/Shared/WebBackForwardListItem.cpp
M Source/WebKit/Shared/WebBackForwardListItem.h
M Source/WebKit/Shared/WebPageCreationParameters.h
M Source/WebKit/Shared/WebPageCreationParameters.serialization.in
M Source/WebKit/UIProcess/API/Cocoa/WKBackForwardListItem.mm
M Source/WebKit/UIProcess/API/glib/WebKitWebViewSessionState.cpp
M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
M Source/WebKit/UIProcess/ProvisionalPageProxy.h
M Source/WebKit/UIProcess/WebBackForwardList.cpp
M Source/WebKit/UIProcess/WebBackForwardList.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.messages.in
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.h
M Source/WebKit/UIProcess/WebProcessProxy.messages.in
M Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm
M Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp
M Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.cpp
M Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.h
M Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp
M Source/WebKit/WebProcess/WebPage/WebHistoryItemClient.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
Log Message:
-----------
Replace `BackForwardListItemState` and `PageState` with `FrameState`
https://bugs.webkit.org/show_bug.cgi?id=280382
rdar://136722797
Reviewed by Alex Christensen.
Currently, history item trees are stored in the web process and referenced by the UI process using the
`BackForwardItemIdentifier` attached to the main frame’s history item. With site isolation, web
processes should be able to commit history state to the UI process for only the frames they host. The UI
process should be able manage and store the history item state per frame, rather than by page. To prepare
for this, we should move away from using `BackForwardListItemState` and `PageState`, and instead only use
`FrameState`. `snapshot` on `BackForwardListItemState` is only accessed by the UI process, so it can be
moved to `WebBackForwardListItem`.
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* Source/WebKit/Shared/SessionState.h:
* Source/WebKit/Shared/SessionState.serialization.in:
* Source/WebKit/Shared/WebBackForwardListItem.cpp:
(WebKit::WebBackForwardListItem::create):
(WebKit::WebBackForwardListItem::WebBackForwardListItem):
(WebKit::WebBackForwardListItem::~WebBackForwardListItem):
(WebKit::WebBackForwardListItem::itemIsInSameDocument const):
(WebKit::WebBackForwardListItem::itemIsClone):
* Source/WebKit/Shared/WebBackForwardListItem.h:
(WebKit::WebBackForwardListItem::itemID const):
(WebKit::WebBackForwardListItem::setMainFrameState):
(WebKit::WebBackForwardListItem::mainFrameState const):
(WebKit::WebBackForwardListItem::originalURL const):
(WebKit::WebBackForwardListItem::url const):
(WebKit::WebBackForwardListItem::title const):
(WebKit::WebBackForwardListItem::wasCreatedByJSWithoutUserInteraction const):
(WebKit::WebBackForwardListItem::snapshot const):
(WebKit::WebBackForwardListItem::setSnapshot):
(WebKit::WebBackForwardListItem::itemState): Deleted.
(WebKit::WebBackForwardListItem::setPageState): Deleted.
(WebKit::WebBackForwardListItem::pageState const): Deleted.
* Source/WebKit/Shared/WebPageCreationParameters.h:
* Source/WebKit/Shared/WebPageCreationParameters.serialization.in:
* Source/WebKit/UIProcess/API/Cocoa/WKBackForwardListItem.mm:
(-[WKBackForwardListItem _scrollPosition]):
* Source/WebKit/UIProcess/API/glib/WebKitWebViewSessionState.cpp:
(encodeMainFrameState):
(encodeBackForwardListItemState):
(decodeBackForwardListItemStateV1):
(decodeBackForwardListItemState):
(encodePageState): Deleted.
* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::backForwardAddItem):
* Source/WebKit/UIProcess/ProvisionalPageProxy.h:
* Source/WebKit/UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backForwardListState const):
(WebKit::WebBackForwardList::restoreFromState):
(WebKit::WebBackForwardList::filteredItemStates const):
(WebKit::WebBackForwardList::itemStates const):
* Source/WebKit/UIProcess/WebBackForwardList.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::backForwardAddItem):
(WebKit::WebPageProxy::backForwardAddItemShared):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::updateBackForwardItem):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/UIProcess/WebProcessProxy.messages.in:
* Source/WebKit/UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
* Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::encodeSessionHistory):
(WebKit::decodeSessionHistoryEntry):
(WebKit::decodeSessionHistoryEntries):
* Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toFrameState):
(WebKit::applyFrameState):
(WebKit::toHistoryItem):
(WebKit::toBackForwardListItemState): Deleted.
* Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.h:
* Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::addItem):
* Source/WebKit/WebProcess/WebPage/WebHistoryItemClient.cpp:
(WebKit::WebHistoryItemClient::historyItemChanged):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::restoreSessionInternal):
(WebKit::WebPage::restoreSession):
(WebKit::WebPage::updateBackForwardListForReattach):
(WebKit::WebPage::setCurrentHistoryItemForReattach):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
Canonical link: https://commits.webkit.org/284374@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list