Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: 83f14e90b328a352631c69ca361b3d6181e3c0c8
      
https://github.com/WebKit/WebKit/commit/83f14e90b328a352631c69ca361b3d6181e3c0c8
  Author: Sihui Liu <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M Source/WTF/Scripts/GeneratePreferences.rb
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
    M 
Source/WebKit/Scripts/PreferencesTemplates/SharedPreferencesForWebProcess.cpp.erb
    M 
Source/WebKit/Scripts/PreferencesTemplates/SharedPreferencesForWebProcess.h.erb
    M 
Source/WebKit/Scripts/PreferencesTemplates/SharedPreferencesForWebProcess.serialization.in.erb
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm

  Log Message:
  -----------
  Cherry-pick fca31e67e9f6. https://bugs.webkit.org/show_bug.cgi?id=311535

    Skip site validation in WebStorage messages if StorageBlockingPolicy is 
AllowAll
    rdar://174127236
    https://bugs.webkit.org/show_bug.cgi?id=311535

    Reviewed by Chris Dumez.

    In current implementation, when StorageBlockingPolicy is AllowAll, 
third-party context will use non-partitioned storage
    for WebStorage. For example, apple.com iframe embedded in webkit.org will 
have access to the same WebStorage data as
    apple.com loaded in main frame. However, 
NetworkStorageManager::m_allowedSitesForConnections only records sites of
    first-party context -- if a web process loads webkit.org that has an 
apple.com iframe, the web process will only have
    access to webkit.org, but not apple.com; and when the process asks for data 
of apple.com, the process can get killed for
    failing site validation.

    To fix this, we may have UI process also send third-party context sites to 
network process; but StorageBlockingPolicy
    AllowAll is not a common configuration (default value is BlockThirdParty), 
and this information will be only used for
    WebStorage (other types all use partitioned storage). Therefore, this patch 
simply disables the validation in this case.

    To make sure network process can check for StorageBlockingPolicy (which is 
uint32_t instead of bool), this patch also
    modifies script that generates SharedPreferencesForWebProcess to support 
type uint32_t. With this change, some web
    inspector tests like 
WKWebExtensionAPIDevTools.MessagePassingFromPanelToDevToolsBackground start to 
hit debug assertion
    in WebExtensionContext::loadInspectorBackgroundPage. The direct cause is 
extension inspector background page no longer
    uses same web process as web inspector page, and the root cause is their 
shared preferences don't match -- inspector
    page uses AllowAll blocking policy, while extension page uses default 
BlockThirdParty policy, which causes the
    hasSameGPUAndNetworkProcessPreferencesAs check in 
WebProcessPool::createWebPage to fail, even though the two pages are
    marked as related page. To fix this, make sure the extension page also uses 
the AllowAll policy.

    API test: StorageSiteValidation.StorageBlockingPolicyAllowAll

    * Source/WTF/Scripts/GeneratePreferences.rb:
    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
    (WebKit::NetworkStorageManager::canConnectionAccessSiteForWebStorage const):
    (WebKit::NetworkStorageManager::connectToStorageArea):
    (WebKit::NetworkStorageManager::cancelConnectToStorageArea):
    (WebKit::NetworkStorageManager::disconnectFromStorageArea):
    (WebKit::NetworkStorageManager::setItem):
    (WebKit::NetworkStorageManager::removeItem):
    (WebKit::NetworkStorageManager::clear):
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
    * 
Source/WebKit/Scripts/PreferencesTemplates/SharedPreferencesForWebProcess.cpp.erb:
    * 
Source/WebKit/Scripts/PreferencesTemplates/SharedPreferencesForWebProcess.h.erb:
    * 
Source/WebKit/Scripts/PreferencesTemplates/SharedPreferencesForWebProcess.serialization.in.erb:
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
    (WebKit::WebExtensionContext::webViewConfiguration):
    * Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebsiteDatastore.mm:
    (TestWebKitAPI::(StorageSiteValidation, StorageBlockingPolicyAllowAll)):

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

    Canonical link: https://commits.webkit.org/[email protected]

Canonical link: https://commits.webkit.org/305877.1078@webkitglib/2.52


  Commit: 8f6234b49fd57c0f0578814b964223fc46cfaebd
      
https://github.com/WebKit/WebKit/commit/8f6234b49fd57c0f0578814b964223fc46cfaebd
  Author: Sihui Liu <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 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/WebKitCocoa/WKWebsiteDatastore.mm

  Log Message:
  -----------
  Cherry-pick b4a4fb0135c4. https://bugs.webkit.org/show_bug.cgi?id=311489

    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

    Canonical link: https://commits.webkit.org/[email protected]

Canonical link: https://commits.webkit.org/305877.1079@webkitglib/2.52


  Commit: a01e0f7b65c37c43b74102cebf0c787f6d6c5d8e
      
https://github.com/WebKit/WebKit/commit/a01e0f7b65c37c43b74102cebf0c787f6d6c5d8e
  Author: Sihui Liu <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp

  Log Message:
  -----------
  Cherry-pick deb934129d18. https://bugs.webkit.org/show_bug.cgi?id=312920

    Update allowed sites for connection on work queue before processing messages
    https://bugs.webkit.org/show_bug.cgi?id=312920
    rdar://175266853

    Reviewed by Per Arne Vollan.

    In current implementation, startReceivingMessageFromConnection registers 
the connection as a work queue message receiver
    on the main thread, then dispatches updateAllowedSitesForConnection 
separately. This creates a race where messages from
    the connection could arrive on the work queue before the allowed sites list 
was populated, causing site validation
    checks to fail.

    To fix this, move the allowed sites update into the same work queue 
dispatch block that initializes the connection's
    preferences, ensuring the allowed sites are set before any messages are 
processed.

    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
    (WebKit::NetworkStorageManager::startReceivingMessageFromConnection):

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

    Canonical link: https://commits.webkit.org/[email protected]

Canonical link: https://commits.webkit.org/305877.1080@webkitglib/2.52


  Commit: ccc3a9284a283e68ad97757691216d1762ef3230
      
https://github.com/WebKit/WebKit/commit/ccc3a9284a283e68ad97757691216d1762ef3230
  Author: Sihui Liu <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h

  Log Message:
  -----------
  Cherry-pick 19b0c2ec06ff. https://bugs.webkit.org/show_bug.cgi?id=312926

    Add site validation to StorageManager and FileSystem message handlers
    https://bugs.webkit.org/show_bug.cgi?id=312926
    rdar://175269987

    Reviewed by Chris Dumez.

    Ensure web process actually has access to site included in StorageManager 
and FileSystem requests sent to network
    process.

    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
    (WebKit::NetworkStorageManager::persisted):
    (WebKit::NetworkStorageManager::persist):
    (WebKit::NetworkStorageManager::estimate):
    (WebKit::NetworkStorageManager::fileSystemGetDirectory):
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:

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

    Canonical link: https://commits.webkit.org/[email protected]

Canonical link: https://commits.webkit.org/305877.1081@webkitglib/2.52


  Commit: 796ddbcb877586dfa7c68f1fcc445a02dfc8cbec
      
https://github.com/WebKit/WebKit/commit/796ddbcb877586dfa7c68f1fcc445a02dfc8cbec
  Author: Sihui Liu <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

  Log Message:
  -----------
  Cherry-pick b2b34862739c. https://bugs.webkit.org/show_bug.cgi?id=312926

    Enable storage site validation
    rdar://172706201

    Reviewed by Chris Dumez.

    Enable WebsiteDataStore::m_storageSiteValidationEnabled by default so 
NetworkStorageManager validates the site on
    messages it receives.

    Replace MESSAGE_CHECK with STORAGE_MESSAGE_CHECK for site validation 
checks. STORAGE_MESSAGE_CHECK generates a simulated
    crash and returns an error instead of terminating the sender process. This 
blocks storage access from compromised
    processes while allowing us to monitor for false positives before upgrading 
to MESSAGE_CHECK.

    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
    (WebKit::NetworkStorageManager::persisted):
    (WebKit::NetworkStorageManager::persist):
    (WebKit::NetworkStorageManager::estimate):
    (WebKit::NetworkStorageManager::fileSystemGetDirectory):
    (WebKit::NetworkStorageManager::connectToStorageArea):
    (WebKit::NetworkStorageManager::cancelConnectToStorageArea):
    (WebKit::NetworkStorageManager::disconnectFromStorageArea):
    (WebKit::NetworkStorageManager::setItem):
    (WebKit::NetworkStorageManager::removeItem):
    (WebKit::NetworkStorageManager::clear):
    (WebKit::NetworkStorageManager::openDBRequestCancelled):
    (WebKit::NetworkStorageManager::deleteDatabase):
    (WebKit::NetworkStorageManager::databaseConnectionClosed):
    (WebKit::NetworkStorageManager::getAllDatabaseNamesAndVersions):
    (WebKit::NetworkStorageManager::cacheStorageOpenCache):
    (WebKit::NetworkStorageManager::cacheStorageRemoveCache):
    (WebKit::NetworkStorageManager::cacheStorageAllCaches):
    (WebKit::NetworkStorageManager::cacheStorageReference):
    (WebKit::NetworkStorageManager::cacheStorageDereference):
    (WebKit::NetworkStorageManager::lockCacheStorage):
    (WebKit::NetworkStorageManager::unlockCacheStorage):
    (WebKit::NetworkStorageManager::cacheStorageRetrieveRecords):
    (WebKit::NetworkStorageManager::cacheStorageRemoveRecords):
    (WebKit::NetworkStorageManager::cacheStoragePutRecords):
    (WebKit::NetworkStorageManager::cacheStorageClearMemoryRepresentation):
    * Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:

    Identifier: 305413.905@safari-7624-branch

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1082@webkitglib/2.52


  Commit: 8dc28fa584c15149ed4a40497f8b93f18ca1c133
      
https://github.com/WebKit/WebKit/commit/8dc28fa584c15149ed4a40497f8b93f18ca1c133
  Author: Sihui Liu <[email protected]>
  Date:   2026-08-10 (Mon, 10 Aug 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp
    M Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.h
    M Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.h
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
    M Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/OriginStorageManager.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm

  Log Message:
  -----------
  Cherry-pick [email protected] (9945ade1f70a). 
https://bugs.webkit.org/show_bug.cgi?id=312926

Unreviewed backport.

    Validate connection access to FileSystem storage with 
FileSystemHandleIdentifier
    rdar://176773267

    Reviewed by Chris Dumez.

    Many FileSystem-related messages sent to NetworkStorageManager only carries 
FileSystemHandleIdentifier when asking to
    operate on FileSystem storage, and NetworkStorageManager does not check 
whether the sender process actually has access
    to requested handle. This lets a compromised process forge 
FileSystemHandleIdentifier and access data from other
    origins. To fix it, this patch stores the origin in 
FileSystemStorageManager and adding an origin accessor to
    FileSystemStorageHandle, so that NetworkStorageManager can run 
isSiteAllowedForConnection in FileSystem-related message
    handlers.

    API test: IPCTestingAPI.FileSystemForgedHandleIdentifierRejected

    * Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:
    (WebKit::FileSystemStorageHandle::origin const):
    * Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.h:
    * Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.cpp:
    (WebKit::FileSystemStorageManager::create):
    (WebKit::FileSystemStorageManager::FileSystemStorageManager):
    * Source/WebKit/NetworkProcess/storage/FileSystemStorageManager.h:
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
    (WebKit::NetworkStorageManager::fileSystemGetDirectory):
    (WebKit::NetworkStorageManager::closeHandle):
    (WebKit::NetworkStorageManager::isSameEntry):
    (WebKit::NetworkStorageManager::move):
    (WebKit::NetworkStorageManager::getFileHandle):
    (WebKit::NetworkStorageManager::getDirectoryHandle):
    (WebKit::NetworkStorageManager::removeEntry):
    (WebKit::NetworkStorageManager::resolve):
    (WebKit::NetworkStorageManager::getFile):
    (WebKit::NetworkStorageManager::createSyncAccessHandle):
    (WebKit::NetworkStorageManager::closeSyncAccessHandle):
    (WebKit::NetworkStorageManager::requestNewCapacityForSyncAccessHandle):
    (WebKit::NetworkStorageManager::createWritable):
    (WebKit::NetworkStorageManager::closeWritable):
    (WebKit::NetworkStorageManager::executeCommandForWritable):
    (WebKit::NetworkStorageManager::getHandleNames):
    (WebKit::NetworkStorageManager::getHandle):
    (WebKit::NetworkStorageManager::canConnectionAccessFileSystemHandle const):
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
    * Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:
    (WebKit::OriginStorageManager::StorageBucket::fileSystemStorageManager):
    (WebKit::OriginStorageManager::fileSystemStorageManager):
    * Source/WebKit/NetworkProcess/storage/OriginStorageManager.h:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
    (function):
    ((IPCTestingAPI, FileSystemForgedHandleIdentifierRejected)):
    (CGColorInNSSecureCoding)): Deleted.
    (NSURLWithBaseURLInNSSecureCoding)): Deleted.

    Identifier: [email protected]

Canonical link: https://commits.webkit.org/305877.1083@webkitglib/2.52


Compare: https://github.com/WebKit/WebKit/compare/a90706fe4a1b...8dc28fa584c1

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

Reply via email to