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