Changeset 267123 in webkit


Ignore:
Timestamp:
Sep 15, 2020 5:57:08 PM (4 years ago)
Author:
commit-queue@webkit.org
Message:

Move local storage sync SPI from WebProcessPool to WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=216581

Patch by Alex Christensen <achristensen@webkit.org> on 2020-09-15
Reviewed by Geoffrey Garen.

Source/WebKit:

This move is needed for https://bugs.webkit.org/show_bug.cgi?id=216041
We no longer need to sync the legacy private browsing storage because it is no longer used by WebKitTestRunner. Thank goodness.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::clearLegacyPrivateBrowsingLocalStorage): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSyncLocalStorage): Deleted.
(WKContextClearLegacyPrivateBrowsingLocalStorage): Deleted.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSyncLocalStorage):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::syncLocalStorage): Deleted.
(WebKit::WebProcessPool::clearLegacyPrivateBrowsingLocalStorage): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::syncLocalStorage):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::clearLocalStorage):
(WTR::TestController::syncLocalStorage):

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r267122 r267123  
     12020-09-15  Alex Christensen  <achristensen@webkit.org>
     2
     3        Move local storage sync SPI from WebProcessPool to WebsiteDataStore
     4        https://bugs.webkit.org/show_bug.cgi?id=216581
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        This move is needed for https://bugs.webkit.org/show_bug.cgi?id=216041
     9        We no longer need to sync the legacy private browsing storage because it is no longer used by WebKitTestRunner.  Thank goodness.
     10
     11        * NetworkProcess/NetworkProcess.cpp:
     12        (WebKit::NetworkProcess::clearLegacyPrivateBrowsingLocalStorage): Deleted.
     13        * NetworkProcess/NetworkProcess.h:
     14        * NetworkProcess/NetworkProcess.messages.in:
     15        * UIProcess/API/C/WKContext.cpp:
     16        (WKContextSyncLocalStorage): Deleted.
     17        (WKContextClearLegacyPrivateBrowsingLocalStorage): Deleted.
     18        * UIProcess/API/C/WKContextPrivate.h:
     19        * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
     20        (WKWebsiteDataStoreSyncLocalStorage):
     21        * UIProcess/API/C/WKWebsiteDataStoreRef.h:
     22        * UIProcess/WebProcessPool.cpp:
     23        (WebKit::WebProcessPool::syncLocalStorage): Deleted.
     24        (WebKit::WebProcessPool::clearLegacyPrivateBrowsingLocalStorage): Deleted.
     25        * UIProcess/WebProcessPool.h:
     26        * UIProcess/WebsiteData/WebsiteDataStore.cpp:
     27        (WebKit::WebsiteDataStore::syncLocalStorage):
     28        * UIProcess/WebsiteData/WebsiteDataStore.h:
     29
    1302020-09-15  Alex Christensen  <achristensen@webkit.org>
    231
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.cpp

    r267091 r267123  
    24492449}
    24502450
    2451 void NetworkProcess::clearLegacyPrivateBrowsingLocalStorage()
    2452 {
    2453     if (m_storageManagerSet->contains(PAL::SessionID::legacyPrivateSessionID()))
    2454         m_storageManagerSet->deleteLocalStorageModifiedSince(PAL::SessionID::legacyPrivateSessionID(), -WallTime::infinity(), []() { });
    2455 }
    2456 
    24572451void NetworkProcess::resetQuota(PAL::SessionID sessionID, CompletionHandler<void()>&& completionHandler)
    24582452{
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.h

    r267091 r267123  
    302302
    303303    void syncLocalStorage(CompletionHandler<void()>&&);
    304     void clearLegacyPrivateBrowsingLocalStorage();
    305304
    306305    void resetQuota(PAL::SessionID, CompletionHandler<void()>&&);
  • trunk/Source/WebKit/NetworkProcess/NetworkProcess.messages.in

    r267091 r267123  
    165165    SetCacheStorageParameters(PAL::SessionID sessionID, String cacheStorageDirectory, WebKit::SandboxExtension::Handle handle);
    166166
    167     SyncLocalStorage() -> () Synchronous
    168     ClearLegacyPrivateBrowsingLocalStorage()
     167    SyncLocalStorage() -> () Async
    169168
    170169    StoreAdClickAttribution(PAL::SessionID sessionID, WebCore::AdClickAttribution adClickAttribution)
  • trunk/Source/WebKit/UIProcess/API/C/WKContext.cpp

    r267122 r267123  
    621621}
    622622
    623 void WKContextSyncLocalStorage(WKContextRef contextRef, void* context, WKContextSyncLocalStorageCallback callback)
    624 {
    625     WebKit::toImpl(contextRef)->syncLocalStorage([context, callback] {
    626         if (callback)
    627             callback(context);
    628     });
    629 }
    630 
    631 void WKContextClearLegacyPrivateBrowsingLocalStorage(WKContextRef contextRef, void* context, WKContextClearLegacyPrivateBrowsingLocalStorageCallback callback)
    632 {
    633     WebKit::toImpl(contextRef)->clearLegacyPrivateBrowsingLocalStorage([context, callback] {
    634         if (callback)
    635             callback(context);
    636     });
    637 }
    638 
    639623void WKContextSetUseSeparateServiceWorkerProcess(WKContextRef contextRef, bool useSeparateServiceWorkerProcess)
    640624{
  • trunk/Source/WebKit/UIProcess/API/C/WKContextPrivate.h

    r267091 r267123  
    105105WK_EXPORT void WKContextClearCurrentModifierStateForTesting(WKContextRef context);
    106106
    107 typedef void (*WKContextSyncLocalStorageCallback)(void* functionContext);
    108 WK_EXPORT void WKContextSyncLocalStorage(WKContextRef contextRef, void* context, WKContextSyncLocalStorageCallback callback);
    109 
    110 typedef void (*WKContextClearLegacyPrivateBrowsingLocalStorageCallback)(void* functionContext);
    111 WK_EXPORT void WKContextClearLegacyPrivateBrowsingLocalStorage(WKContextRef contextRef, void* context, WKContextClearLegacyPrivateBrowsingLocalStorageCallback callback);
    112 
    113107WK_EXPORT void WKContextSetUseSeparateServiceWorkerProcess(WKContextRef context, bool forceServiceWorkerProcess);
    114108
  • trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp

    r267122 r267123  
    138138}
    139139
     140void WKWebsiteDataStoreSyncLocalStorage(WKWebsiteDataStoreRef dataStore, void* context, WKWebsiteDataStoreSyncLocalStorageCallback callback)
     141{
     142    WebKit::toImpl(dataStore)->syncLocalStorage([context, callback] {
     143        if (callback)
     144            callback(context);
     145    });
     146}
     147
    140148WKHTTPCookieStoreRef WKWebsiteDataStoreGetHTTPCookieStore(WKWebsiteDataStoreRef dataStoreRef)
    141149{
  • trunk/Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h

    r267122 r267123  
    191191WK_EXPORT void WKWebsiteDataStoreReinitializeAppBoundDomains(WKWebsiteDataStoreRef dataStoreRef);
    192192
     193typedef void (*WKWebsiteDataStoreSyncLocalStorageCallback)(void* functionContext);
     194WK_EXPORT void WKWebsiteDataStoreSyncLocalStorage(WKWebsiteDataStoreRef dataStore, void* context, WKWebsiteDataStoreSyncLocalStorageCallback callback);
     195
    193196typedef void (*WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcessFunction)(void* functionContext);
    194197WK_EXPORT void WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcess(WKWebsiteDataStoreRef dataStoreRef, WKStringRef bundleIdentifier, void* context, WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcessFunction completionHandler);
  • trunk/Source/WebKit/UIProcess/WebProcessPool.cpp

    r267122 r267123  
    18161816}
    18171817
    1818 void WebProcessPool::syncLocalStorage(CompletionHandler<void()>&& completionHandler)
    1819 {
    1820     sendSyncToNetworkingProcess(Messages::NetworkProcess::SyncLocalStorage(), Messages::NetworkProcess::SyncLocalStorage::Reply());
    1821     completionHandler();
    1822 }
    1823 
    1824 void WebProcessPool::clearLegacyPrivateBrowsingLocalStorage(CompletionHandler<void()>&& completionHandler)
    1825 {
    1826     if (m_networkProcess)
    1827         m_networkProcess->send(Messages::NetworkProcess::ClearLegacyPrivateBrowsingLocalStorage(), 0);
    1828     completionHandler();
    1829 }
    1830 
    18311818void WebProcessPool::allowSpecificHTTPSCertificateForHost(const WebCertificateInfo* certificate, const String& host)
    18321819{
  • trunk/Source/WebKit/UIProcess/WebProcessPool.h

    r267122 r267123  
    326326
    327327    void flushCookies(const PAL::SessionID&, CompletionHandler<void()>&&);
    328     void syncLocalStorage(CompletionHandler<void()>&& callback);
    329     void clearLegacyPrivateBrowsingLocalStorage(CompletionHandler<void()>&& callback);
    330328
    331329    void setShouldMakeNextWebProcessLaunchFailForTesting(bool value) { m_shouldMakeNextWebProcessLaunchFailForTesting = value; }
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp

    r267122 r267123  
    19851985#endif // ENABLE(RESOURCE_LOAD_STATISTICS)
    19861986
     1987void WebsiteDataStore::syncLocalStorage(CompletionHandler<void()>&& completionHandler)
     1988{
     1989    auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler));
     1990    for (auto& processPool : processPools()) {
     1991        if (auto* networkProcess = processPool->networkProcess())
     1992            networkProcess->sendWithAsyncReply(Messages::NetworkProcess::SyncLocalStorage(), [callbackAggregator] { });
     1993    }
     1994}
     1995
    19871996void WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources(Seconds seconds, CompletionHandler<void()>&& completionHandler)
    19881997{
  • trunk/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

    r267122 r267123  
    212212    void useExplicitITPState() { m_isItpStateExplicitlySet = true; }
    213213#endif
     214    void syncLocalStorage(CompletionHandler<void()>&&);
    214215    void setCacheMaxAgeCapForPrevalentResources(Seconds, CompletionHandler<void()>&&);
    215216    void resetCacheMaxAgeCapForPrevalentResources(CompletionHandler<void()>&&);
  • trunk/Tools/ChangeLog

    r267122 r267123  
     12020-09-15  Alex Christensen  <achristensen@webkit.org>
     2
     3        Move local storage sync SPI from WebProcessPool to WebsiteDataStore
     4        https://bugs.webkit.org/show_bug.cgi?id=216581
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * WebKitTestRunner/TestController.cpp:
     9        (WTR::TestController::clearLocalStorage):
     10        (WTR::TestController::syncLocalStorage):
     11
    1122020-09-15  Alex Christensen  <achristensen@webkit.org>
    213
  • trunk/Tools/WebKitTestRunner/TestController.cpp

    r267122 r267123  
    33623362    WKWebsiteDataStoreRemoveLocalStorage(websiteDataStore(), &context, StorageVoidCallback);
    33633363    runUntil(context.done, noTimeout);
    3364 
    3365     StorageVoidCallbackContext legacyContext(*this);
    3366     WKContextClearLegacyPrivateBrowsingLocalStorage(platformContext(), &legacyContext, StorageVoidCallback);
    3367     runUntil(legacyContext.done, noTimeout);
    33683364}
    33693365
     
    33713367{
    33723368    StorageVoidCallbackContext context(*this);
    3373     WKContextSyncLocalStorage(platformContext(), &context, StorageVoidCallback);
     3369    WKWebsiteDataStoreSyncLocalStorage(TestController::websiteDataStore(), &context, StorageVoidCallback);
    33743370    runUntil(context.done, noTimeout);
    33753371}
Note: See TracChangeset for help on using the changeset viewer.