Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fd156dff97eb3b90c5ffb095d3b0b61b6efe20a1 https://github.com/WebKit/WebKit/commit/fd156dff97eb3b90c5ffb095d3b0b61b6efe20a1 Author: Alex Christensen <achristen...@apple.com> Date: 2024-03-02 (Sat, 02 Mar 2024)
Changed paths: M LayoutTests/platform/mac-site-isolation/TestExpectations M Source/WebKit/Sources.txt M Source/WebKit/UIProcess/AuxiliaryProcessProxy.h M Source/WebKit/UIProcess/BrowsingContextGroup.cpp M Source/WebKit/UIProcess/BrowsingContextGroup.h A Source/WebKit/UIProcess/FrameProcess.cpp A Source/WebKit/UIProcess/FrameProcess.h M Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp M Source/WebKit/UIProcess/ProvisionalFrameProxy.h M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/ProvisionalPageProxy.h M Source/WebKit/UIProcess/RemotePageProxy.cpp M Source/WebKit/UIProcess/RemotePageProxy.h R Source/WebKit/UIProcess/RemotePageProxyState.h M Source/WebKit/UIProcess/SuspendedPageProxy.cpp M Source/WebKit/UIProcess/SuspendedPageProxy.h M Source/WebKit/UIProcess/WebFrameProxy.cpp M Source/WebKit/UIProcess/WebFrameProxy.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebPageProxyInternals.h M Source/WebKit/UIProcess/WebProcessPool.cpp M Source/WebKit/UIProcess/WebProcessPool.h M Source/WebKit/WebKit.xcodeproj/project.pbxproj M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm Log Message: ----------- Clean up site isolation process selection logic, take 2 https://bugs.webkit.org/show_bug.cgi?id=270390 rdar://123936252 Reviewed by Charlie Wolfe. This re-lands 275551@main but with two important changes: 1. I retain the preferences().siteIsolationEnabled() check when finding processNavigatingFrom to make it so there is no change in behavior with site isolation off. I verified this fixes the three API tests that were broken by 275551@main. 2. I skip some site isolation layout tests that start timing out or asserting because the logic isn't quite right when opening a new page but severing the opener relationship with something like an anchor tag with target=_blank. This will be fixed in a future PR. * LayoutTests/platform/mac-site-isolation/TestExpectations: * Source/WebKit/Sources.txt: * Source/WebKit/UIProcess/AuxiliaryProcessProxy.h: * Source/WebKit/UIProcess/BrowsingContextGroup.cpp: (WebKit::BrowsingContextGroup::ensureProcessForDomain): (WebKit::BrowsingContextGroup::processForDomain): (WebKit::BrowsingContextGroup::addFrameProcess): (WebKit::BrowsingContextGroup::removeFrameProcess): (WebKit::BrowsingContextGroup::addPage): (WebKit::BrowsingContextGroup::removePage): (WebKit::BrowsingContextGroup::forEachRemotePage): (WebKit::BrowsingContextGroup::remotePageInProcess): (WebKit::BrowsingContextGroup::takeRemotePageInProcessForProvisionalPage): (WebKit::BrowsingContextGroup::transitionPageToRemotePage): (WebKit::BrowsingContextGroup::addProcessForDomain): Deleted. * Source/WebKit/UIProcess/BrowsingContextGroup.h: * Source/WebKit/UIProcess/FrameProcess.cpp: Renamed from Source/WebKit/UIProcess/RemotePageProxyState.h. (WebKit::FrameProcess::FrameProcess): (WebKit::FrameProcess::~FrameProcess): * Source/WebKit/UIProcess/FrameProcess.h: Copied from Source/WebKit/UIProcess/BrowsingContextGroup.h. (WebKit::FrameProcess::domain const): (WebKit::FrameProcess::process const): (WebKit::FrameProcess::process): (WebKit::FrameProcess::create): * Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp: (WebKit::ProvisionalFrameProxy::ProvisionalFrameProxy): (WebKit::ProvisionalFrameProxy::takeFrameProcess): (WebKit::ProvisionalFrameProxy::process const): (WebKit::ProvisionalFrameProxy::takeRemotePageProxy): Deleted. * Source/WebKit/UIProcess/ProvisionalFrameProxy.h: (WebKit::ProvisionalFrameProxy::process const): Deleted. * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::ProvisionalPageProxy): (WebKit::ProvisionalPageProxy::~ProvisionalPageProxy): (WebKit::ProvisionalPageProxy::process): (WebKit::ProvisionalPageProxy::protectedProcess): (WebKit::ProvisionalPageProxy::setNavigation): (WebKit::ProvisionalPageProxy::cancel): (WebKit::ProvisionalPageProxy::initializeWebPage): (WebKit::ProvisionalPageProxy::loadData): (WebKit::ProvisionalPageProxy::loadRequest): (WebKit::ProvisionalPageProxy::goToBackForwardItem): (WebKit::ProvisionalPageProxy::didCreateMainFrame): (WebKit::ProvisionalPageProxy::didPerformClientRedirect): (WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame): (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame): (WebKit::ProvisionalPageProxy::didCommitLoadForFrame): (WebKit::ProvisionalPageProxy::didNavigateWithNavigationData): (WebKit::ProvisionalPageProxy::didChangeProvisionalURLForFrame): (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync): (WebKit::ProvisionalPageProxy::decidePolicyForResponse): (WebKit::ProvisionalPageProxy::didPerformServerRedirect): (WebKit::ProvisionalPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): (WebKit::ProvisionalPageProxy::startURLSchemeTask): (WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync): (WebKit::ProvisionalPageProxy::logDiagnosticMessageFromWebProcess): (WebKit::ProvisionalPageProxy::logDiagnosticMessageWithEnhancedPrivacyFromWebProcess): (WebKit::ProvisionalPageProxy::logDiagnosticMessageWithValueDictionaryFromWebProcess): (WebKit::ProvisionalPageProxy::backForwardAddItem): (WebKit::ProvisionalPageProxy::didDestroyNavigation): (WebKit::ProvisionalPageProxy::contentFilterDidBlockLoadForFrame): (WebKit::ProvisionalPageProxy::messageSenderConnection const): (WebKit::ProvisionalPageProxy::sendMessage): (WebKit::ProvisionalPageProxy::sendMessageWithAsyncReply): * Source/WebKit/UIProcess/ProvisionalPageProxy.h: (WebKit::ProvisionalPageProxy::browsingContextGroup): (WebKit::ProvisionalPageProxy::takeRemotePageProxyState): Deleted. (WebKit::ProvisionalPageProxy::process): Deleted. * Source/WebKit/UIProcess/RemotePageProxy.cpp: (WebKit::RemotePageProxy::RemotePageProxy): (WebKit::RemotePageProxy::processDidTerminate): (WebKit::RemotePageProxy::~RemotePageProxy): (WebKit::RemotePageProxy::addFrame): Deleted. (WebKit::RemotePageProxy::removeFrame): Deleted. * Source/WebKit/UIProcess/RemotePageProxy.h: (WebKit::RemotePageProxy::create): Deleted. * Source/WebKit/UIProcess/SuspendedPageProxy.cpp: (WebKit::SuspendedPageProxy::SuspendedPageProxy): (WebKit::SuspendedPageProxy::sendToAllProcesses): * Source/WebKit/UIProcess/SuspendedPageProxy.h: * Source/WebKit/UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::WebFrameProxy): (WebKit::WebFrameProxy::process const): (WebKit::WebFrameProxy::processID const): (WebKit::WebFrameProxy::didCreateSubframe): (WebKit::WebFrameProxy::prepareForProvisionalNavigationInProcess): (WebKit::WebFrameProxy::commitProvisionalFrame): (WebKit::WebFrameProxy::setProcess): (WebKit::WebFrameProxy::remoteProcessDidTerminate): (WebKit::WebFrameProxy::webPageIDInCurrentProcess): (WebKit::WebFrameProxy::rootFrame): (WebKit::WebFrameProxy::remotePageProxy const): Deleted. * Source/WebKit/UIProcess/WebFrameProxy.h: (WebKit::WebFrameProxy::create): (WebKit::WebFrameProxy::frameProcess const): (WebKit::WebFrameProxy::process const): Deleted. (WebKit::WebFrameProxy::setProcess): Deleted. * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::suspendCurrentPageIfPossible): (WebKit::WebPageProxy::swapToProvisionalPage): (WebKit::WebPageProxy::close): (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::receivedNavigationActionPolicyDecision): (WebKit::WebPageProxy::commitProvisionalPage): (WebKit::WebPageProxy::continueNavigationInNewProcess): (WebKit::WebPageProxy::getAllFrameTrees): (WebKit::WebPageProxy::forceRepaint): (WebKit::WebPageProxy::didCreateMainFrame): (WebKit::WebPageProxy::updateRemoteFrameSize): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::forEachWebContentProcess): (WebKit::WebPageProxy::createRemoteSubframesInOtherProcesses): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::callAfterNextPresentationUpdate): (WebKit::WebPageProxy::processForRegistrableDomain): (WebKit::WebPageProxy::mainFrameOrOpenerDomain const): (WebKit::WebPageProxy::webPageIDInProcessForDomain const): (WebKit::WebPageProxy::sendToWebPage): (WebKit::WebPageProxy::addRemotePageProxy): Deleted. (WebKit::WebPageProxy::removeRemotePageProxy): Deleted. (WebKit::WebPageProxy::remotePageProxyForRegistrableDomain const): Deleted. (WebKit::WebPageProxy::setRemotePageProxyInOpenerProcess): Deleted. (WebKit::WebPageProxy::takeRemotePageProxyInOpenerProcessIfDomainEquals): Deleted. (WebKit::WebPageProxy::removeOpenedRemotePageProxy): Deleted. (WebKit::WebPageProxy::takeOpenedRemotePageProxyIfDomainEquals): Deleted. (WebKit::WebPageProxy::addOpenedRemotePageProxy): Deleted. * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebPageProxyInternals.h: * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::processForNavigation): * Source/WebKit/UIProcess/WebProcessPool.h: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: * Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm: (TestWebKitAPI::indentation): (TestWebKitAPI::printTree): (TestWebKitAPI::checkFrameTreesInProcesses): (TestWebKitAPI::findFramePID): (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/275592@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