Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 077c97ef714d93dafae5e73019f1d9899696df8f
https://github.com/WebKit/WebKit/commit/077c97ef714d93dafae5e73019f1d9899696df8f
Author: Alex Christensen <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes