[webkit-changes] [WebKit/WebKit] 6a9117: Generate serialization of SecurityOriginData again

Alex Christensen noreply at github.com
Fri Feb 17 11:15:34 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6a91176c19ddd21a298d2ba6adb64fbf427a6953
      https://github.com/WebKit/WebKit/commit/6a91176c19ddd21a298d2ba6adb64fbf427a6953
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-02-17 (Fri, 17 Feb 2023)

  Changed paths:
    M LayoutTests/storage/indexeddb/getdatabases-expected.txt
    M LayoutTests/storage/indexeddb/getdatabases-private-expected.txt
    M LayoutTests/storage/indexeddb/resources/getdatabases.js
    M Source/WTF/wtf/CrossThreadCopier.h
    M Source/WTF/wtf/Forward.h
    M Source/WTF/wtf/Markable.h
    M Source/WebCore/Modules/badge/BadgeClient.h
    M Source/WebCore/Modules/indexeddb/client/IDBConnectionToServerDelegate.h
    M Source/WebCore/Modules/permissions/PermissionController.h
    M Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.h
    M Source/WebCore/Modules/webauthn/AuthenticatorCoordinatorClient.h
    M Source/WebCore/Modules/webdatabase/Database.h
    M Source/WebCore/Modules/webdatabase/DatabaseContext.h
    M Source/WebCore/Modules/webdatabase/DatabaseManager.h
    M Source/WebCore/Modules/webdatabase/DatabaseManagerClient.h
    M Source/WebCore/Modules/webdatabase/DatabaseTracker.h
    M Source/WebCore/Modules/webxr/WebXRSystem.h
    M Source/WebCore/inspector/agents/InspectorDatabaseAgent.cpp
    M Source/WebCore/loader/CrossOriginEmbedderPolicy.h
    M Source/WebCore/loader/cache/MemoryCache.cpp
    M Source/WebCore/page/ChromeClient.h
    M Source/WebCore/page/ClientOrigin.h
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/Quirks.h
    M Source/WebCore/page/SecurityOrigin.cpp
    M Source/WebCore/page/SecurityOrigin.h
    M Source/WebCore/page/SecurityOriginData.cpp
    M Source/WebCore/page/SecurityOriginData.h
    M Source/WebCore/page/csp/ContentSecurityPolicySource.h
    M Source/WebCore/platform/RegistrableDomain.h
    M Source/WebCore/platform/WebCorePersistentCoders.cpp
    M Source/WebCore/platform/WebCorePersistentCoders.h
    M Source/WebCore/platform/graphics/MediaPlayer.h
    M Source/WebCore/platform/network/CredentialStorage.cpp
    M Source/WebCore/platform/network/NetworkStorageSession.cpp
    M Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm
    M Source/WebCore/platform/xr/PlatformXR.h
    M Source/WebCore/storage/StorageArea.h
    M Source/WebCore/workers/service/ServiceWorkerProvider.h
    M Source/WebCore/workers/service/ServiceWorkerRegistrationKey.cpp
    M Source/WebCore/workers/service/server/SWServer.cpp
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
    M Source/WebKit/GPUProcess/GPUProcess.h
    M Source/WebKit/GPUProcess/GPUProcess.messages.in
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M Source/WebKit/NetworkProcess/NetworkSession.h
    M Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.h
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in
    M Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp
    M Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp
    M Source/WebKit/NetworkProcess/cache/CacheStorageEngineCaches.cpp
    M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
    M Source/WebKit/NetworkProcess/storage/LocalStorageManager.h
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/Platform/IPC/DaemonCoders.cpp
    M Source/WebKit/Platform/IPC/DaemonCoders.h
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
    M Source/WebKit/Shared/API/c/WKSecurityOriginRef.cpp
    M Source/WebKit/Shared/Authentication/AuthenticationManager.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/Shared/XR/XRDeviceProxy.h
    M Source/WebKit/UIProcess/API/APIFrameInfo.h
    M Source/WebKit/UIProcess/API/APINavigationClient.h
    M Source/WebKit/UIProcess/API/APIUIClient.h
    M Source/WebKit/UIProcess/API/C/WKFrameInfoRef.cpp
    M Source/WebKit/UIProcess/API/C/WKPage.cpp
    M Source/WebKit/UIProcess/API/Cocoa/WKFrameInfo.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKSecurityOrigin.mm
    M Source/WebKit/UIProcess/API/Cocoa/_WKFrameTreeNode.mm
    M Source/WebKit/UIProcess/API/glib/WebKitSecurityOrigin.cpp
    M Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm
    M Source/WebKit/UIProcess/Cocoa/NavigationState.h
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in
    M Source/WebKit/UIProcess/UserContent/WebScriptMessageHandler.h
    M Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.h
    M Source/WebKit/UIProcess/WebAuthentication/WebAuthenticationRequestData.h
    M Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp
    M Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h
    M Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/UIProcess/WebPermissionControllerProxy.h
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/UIProcess/WebProcessProxy.messages.in
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataRecord.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreClient.h
    M Source/WebKit/UIProcess/XR/PlatformXRCoordinator.h
    M Source/WebKit/UIProcess/XR/PlatformXRSystem.h
    M Source/WebKit/UIProcess/XR/PlatformXRSystem.messages.in
    M Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDecider.h
    M Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm
    M Source/WebKit/WebProcess/MediaCache/WebMediaKeyStorageManager.h
    M Source/WebKit/WebProcess/Network/NetworkProcessConnection.h
    M Source/WebKit/WebProcess/Storage/WebSWOriginTable.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebPermissionController.h
    M Source/WebKit/WebProcess/WebCoreSupport/WebPermissionController.messages.in
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/XR/PlatformXRSystemProxy.h
    M Source/WebKit/webpushd/WebPushDaemon.h
    M Source/WebKitLegacy/Storage/StorageTracker.h
    M Source/WebKitLegacy/Storage/WebStorageNamespaceProvider.h

  Log Message:
  -----------
  Generate serialization of SecurityOriginData again
https://bugs.webkit.org/show_bug.cgi?id=252284

Reviewed by Chris Dumez.

In 260214 at main Matt made a SecurityOriginData either a tuple of protocol/host/port
or an identifier of its opaque origin.  To serialize the data in a clean way,
we need to make its data a variant of the tuple or the opaque origin.

Changing the hash function changed the order of hash tables which changed the layout
test results of storage/indexeddb/getdatabases.html like it did in 250093 at main

* Source/WTF/wtf/CrossThreadCopier.h:
* Source/WTF/wtf/Forward.h:
* Source/WTF/wtf/Markable.h:
* Source/WebCore/inspector/agents/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::didOpenDatabase):
* Source/WebCore/loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::removeResourcesWithOrigin):
* Source/WebCore/page/ClientOrigin.h:
(WebCore::ClientOrigin::clientRegistrableDomain const):
* Source/WebCore/page/Quirks.cpp:
(WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):
* Source/WebCore/page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::initializeShared):
(WebCore::SecurityOrigin::isSameOriginDomain const):
(WebCore::SecurityOrigin::canDisplay const):
(WebCore::SecurityOrigin::isSameOriginAs const):
(WebCore::SecurityOrigin::isPotentiallyTrustworthy const):
(WebCore::SecurityOrigin::domainForCachePartition const):
(WebCore::SecurityOrigin::toString const):
(WebCore::SecurityOrigin::create):
(WebCore::SecurityOrigin::equal const):
* Source/WebCore/page/SecurityOrigin.h:
(WebCore::SecurityOrigin::protocol const):
(WebCore::SecurityOrigin::host const):
(WebCore::SecurityOrigin::port const):
(WebCore::SecurityOrigin::isHTTPFamily const):
* Source/WebCore/page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::toString const):
(WebCore::SecurityOriginData::databaseIdentifier const):
(WebCore::SecurityOriginData::isolatedCopy const):
(WebCore::SecurityOriginData::isolatedCopy):
(WebCore::operator==):
* Source/WebCore/page/SecurityOriginData.h:
(WebCore::SecurityOriginData::Tuple::operator== const):
(WebCore::SecurityOriginData::Tuple::isolatedCopy const):
(WebCore::SecurityOriginData::SecurityOriginData):
(WebCore::SecurityOriginData::createOpaque):
(WebCore::SecurityOriginData::protocol const):
(WebCore::SecurityOriginData::host const):
(WebCore::SecurityOriginData::port const):
(WebCore::SecurityOriginData::isNull const):
(WebCore::SecurityOriginData::isOpaque const):
(WebCore::SecurityOriginData::isHashTableDeletedValue const):
(WebCore::add):
(WebCore::SecurityOriginData::encode const): Deleted.
(WebCore::SecurityOriginData::decode): Deleted.
* Source/WebCore/platform/RegistrableDomain.h:
(WebCore::RegistrableDomain::RegistrableDomain):
(WebCore::RegistrableDomain::matches const):
* Source/WebCore/platform/WebCorePersistentCoders.cpp:
(WTF::Persistence::Coder<WebCore::SecurityOriginData>::encode):
* Source/WebCore/platform/network/CredentialStorage.cpp:
(WebCore::CredentialStorage::removeCredentialsWithOrigin):
* Source/WebCore/platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::deleteCookies):
* Source/WebCore/platform/network/mac/CredentialStorageMac.mm:
(WebCore::CredentialStorage::removeSessionCredentialsWithOrigins):
* Source/WebCore/workers/service/ServiceWorkerRegistrationKey.cpp:
(WebCore::ServiceWorkerRegistrationKey::firstPartyForCookies const):
(WebCore::ServiceWorkerRegistrationKey::toDatabaseKey const):
* Source/WebCore/workers/service/server/SWServer.cpp:
(WebCore::SWServer::addRegistration):
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::removeFromScopeToRegistrationMap):
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteDataForOrigin):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::filterForRegistrableDomains):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp:
(WebKit::WebSharedWorkerServerConnection::requestSharedWorker):
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerToContextConnection.cpp:
(WebKit::WebSharedWorkerServerToContextConnection::launchSharedWorker):
* Source/WebKit/NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::storeOrigin):
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::createWebSocketTask):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::deleteDataForRegistrableDomains):
* Source/WebKit/Platform/IPC/DaemonCoders.cpp:
(WebKit::Daemon::void>::encode):
* Source/WebKit/Scripts/webkit/messages.py:
(serialized_identifiers):
(headers_for_type):
* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::serializedIdentifiers):
* Source/WebKit/Shared/API/c/WKSecurityOriginRef.cpp:
(WKSecurityOriginCopyProtocol):
(WKSecurityOriginCopyHost):
(WKSecurityOriginGetPort):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/API/C/WKFrameInfoRef.cpp:
(WKFrameInfoCopySecurityOrigin):
* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* Source/WebKit/UIProcess/API/Cocoa/WKFrameInfo.mm:
(-[WKFrameInfo securityOrigin]):
* Source/WebKit/UIProcess/API/Cocoa/WKSecurityOrigin.mm:
(-[WKSecurityOrigin protocol]):
(-[WKSecurityOrigin host]):
(-[WKSecurityOrigin port]):
* Source/WebKit/UIProcess/API/Cocoa/_WKFrameTreeNode.mm:
(-[_WKFrameTreeNode securityOrigin]):
* Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm:
(WebKit::applicationVisibleNameFromOrigin):
(WebKit::alertMessageText):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::requestStorageSpace):
* Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:
(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::displayNameForOrigin):
(WebKit::WebsiteDataRecord::matches const):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply):

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




More information about the webkit-changes mailing list