Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b4a4fb0135c40fc80a9256ab4e6e31b652856eca
      
https://github.com/WebKit/WebKit/commit/b4a4fb0135c40fc80a9256ab4e6e31b652856eca
  Author: Sihui Liu <[email protected]>
  Date:   2026-04-08 (Wed, 08 Apr 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebsiteDatastore.mm

  Log Message:
  -----------
  NetworkStorageManager should allow all sites for web process that loads 
webarchive
https://bugs.webkit.org/show_bug.cgi?id=311489
rdar://174081815

Reviewed by Chris Dumez.

NetworkStorageManager::m_allowedSitesForConnections tracks sites allowed for 
each web process, and it is used for
site validation in storage messages -- similar to 
NetworkProcess::m_allowedFirstPartiesForCookies used for validating
cookies messages. After enabling validation in NetworkStorageManager, some 
webarchive tests start to fail because web
process gets killed for message check failure in NetworkStorageManager message 
handlers. So, a web process that loads
webarchive can technicaly load from any site by design, and network process 
should skip validation for them -- this is
what happens for cookie messages, see 
NetworkProcess::allowsFirstPartyForCookies. To fix this issue, this patch 
updates
NetworkStorageManager::m_allowedSitesForConnections -- a webarchive process 
connection will now be marked as allowed to
access all sites.

API test: StorageSiteValidation.LoadWebArchive

* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::addAllowedFirstPartyForCookies):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::startReceivingMessageFromConnection):
(WebKit::NetworkStorageManager::updateAllowedSitesForConnectionInternal):
(WebKit::NetworkStorageManager::updateAllowedSitesForConnection):
(WebKit::NetworkStorageManager::isSiteAllowedForConnection const):
(WebKit::NetworkStorageManager::openDatabase):
(WebKit::NetworkStorageManager::addAllowedSitesForConnectionInternal): Deleted.
(WebKit::NetworkStorageManager::addAllowedSitesForConnection): Deleted.
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateDataStoreForWebArchiveLoad):
* Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebsiteDatastore.mm:
(TestWebKitAPI::(StorageSiteValidation, LoadWebArchive)):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to