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

Reply via email to