[webkit-changes] [WebKit/WebKit] 0df986: Plumb Blob partitioning pref to Blob Registry

Matthew Finkel noreply at github.com
Thu Mar 16 20:54:40 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0df98689c59d069de39d9ddb7e7fe403bf15070e
      https://github.com/WebKit/WebKit/commit/0df98689c59d069de39d9ddb7e7fe403bf15070e
  Author: Matthew Finkel <sysrqb at apple.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/platform/network/BlobRegistryImpl.h
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M Source/WebKit/NetworkProcess/NetworkSession.cpp
    M Source/WebKit/NetworkProcess/NetworkSession.h
    M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
    M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

  Log Message:
  -----------
  Plumb Blob partitioning pref to Blob Registry
https://bugs.webkit.org/show_bug.cgi?id=251139
rdar://104635569

Reviewed by Chris Dumez.

In this patch we introduce a new WebPreference that controls whether or not the
blob registry enables partitioning. The Network process (and NetworkSession, in
particular) do not know about preferences on all ports, so we add a new
NetworkSession creation parameter and IPC message that updates the
NetworkProcess with the current preference state. We perform this update on
webpage creation and destruction, and NetworkSession creation.

However, disabling the preference does not necessarily disable partitioning. If
any of the existing pages have partitioning enabled, then partitioning remains
enabled. Partitioning is disabled when all existing pages' preferences have the
preference disabled.

Tested manually with MiniBrowser

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/platform/network/BlobRegistryImpl.h:
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setBlobRegistryTopOriginPartitioningEnabled const):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::m_shouldAcceptInsecureCertificatesForWebSockets):
(WebKit::NetworkSession::setBlobRegistryTopOriginPartitioningEnabled):
* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::setBlobRegistryTopOriginPartitioningEnabled):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::updateBlobRegistryPartitioningState const):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::isBlobRegistryPartitioningEnabled const):
(WebKit::WebsiteDataStore::parameters):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:

Canonical link: https://commits.webkit.org/261783@main




More information about the webkit-changes mailing list