[webkit-changes] [WebKit/WebKit] 077c97: [Site Isolation] Isolate web content by site inste...
Alex Christensen
noreply at github.com
Fri Jun 7 10:34:35 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 077c97ef714d93dafae5e73019f1d9899696df8f
https://github.com/WebKit/WebKit/commit/077c97ef714d93dafae5e73019f1d9899696df8f
Author: Alex Christensen <achristensen at apple.com>
Date: 2024-06-07 (Fri, 07 Jun 2024)
Changed paths:
A Source/WebKit/Shared/Site.cpp
A Source/WebKit/Shared/Site.h
M Source/WebKit/Sources.txt
M Source/WebKit/UIProcess/BrowsingContextGroup.cpp
M Source/WebKit/UIProcess/BrowsingContextGroup.h
M Source/WebKit/UIProcess/FrameProcess.cpp
M Source/WebKit/UIProcess/FrameProcess.h
M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
M Source/WebKit/UIProcess/RemotePageProxy.cpp
M Source/WebKit/UIProcess/RemotePageProxy.h
M Source/WebKit/UIProcess/WebFrameProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm
Log Message:
-----------
[Site Isolation] Isolate web content by site instead of RegistrableDomain
https://bugs.webkit.org/show_bug.cgi?id=275233
rdar://128951162
Reviewed by Charlie Wolfe.
If content from http://example.com has an iframe from https://example.com we want those to be
in different processes. We were using RegistrableDomain to separate the content, but to be more
secure in the rare case when content from the same host but different protocols is loaded, we
want to put them in different processes.
* Source/WebKit/Shared/Site.cpp: Copied from Source/WebKit/UIProcess/FrameProcess.cpp.
(WebKit::Site::Site):
(WebKit::Site::hash const):
* Source/WebKit/Shared/Site.h: Copied from Source/WebKit/UIProcess/FrameProcess.h.
(WebKit::Site::protocol const):
(WebKit::Site::host const):
(WebKit::Site::isEmpty const):
(WebKit::Site::Site):
(WebKit::Site::isHashTableDeletedValue const):
(WebKit::Site::Hash::hash):
(WebKit::Site::Hash::equal):
(WTF::HashTraits<WebKit::Site>::emptyValue):
* Source/WebKit/Sources.txt:
* Source/WebKit/UIProcess/BrowsingContextGroup.cpp:
(WebKit::BrowsingContextGroup::ensureProcessForSite):
(WebKit::BrowsingContextGroup::ensureProcessForConnection):
(WebKit::BrowsingContextGroup::processForSite):
(WebKit::BrowsingContextGroup::addFrameProcess):
(WebKit::BrowsingContextGroup::removeFrameProcess):
(WebKit::BrowsingContextGroup::addPage):
(WebKit::BrowsingContextGroup::transitionPageToRemotePage):
(WebKit::BrowsingContextGroup::transitionProvisionalPageToRemotePage):
(WebKit::BrowsingContextGroup::ensureProcessForDomain): Deleted.
(WebKit::BrowsingContextGroup::processForDomain): Deleted.
* Source/WebKit/UIProcess/BrowsingContextGroup.h:
* Source/WebKit/UIProcess/FrameProcess.cpp:
(WebKit::FrameProcess::FrameProcess):
* Source/WebKit/UIProcess/FrameProcess.h:
(WebKit::FrameProcess::site const):
(WebKit::FrameProcess::create):
(WebKit::FrameProcess::domain const): Deleted.
* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):
* Source/WebKit/UIProcess/RemotePageProxy.cpp:
(WebKit::RemotePageProxy::RemotePageProxy):
* Source/WebKit/UIProcess/RemotePageProxy.h:
(WebKit::RemotePageProxy::site const):
(WebKit::RemotePageProxy::domain const): Deleted.
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::prepareForProvisionalLoadInProcess):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::processForSite):
(WebKit::WebPageProxy::processForRegistrableDomain): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::processForNavigationInternal):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::frameTreesMatch):
(TestWebKitAPI::TEST(SiteIsolation, ProtocolProcessSeparation)):
Canonical link: https://commits.webkit.org/279819@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