[webkit-changes] [WebKit/WebKit] 442e87: Add SPI for getting notification when WebsiteDataS...

Sihui noreply at github.com
Tue May 2 13:59:12 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 442e878c2eb585b6df5091e0eeb2cb11d694f000
      https://github.com/WebKit/WebKit/commit/442e878c2eb585b6df5091e0eeb2cb11d694f000
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-05-02 (Tue, 02 May 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm

  Log Message:
  -----------
  Add SPI for getting notification when WebsiteDataStore is removed in network process
https://bugs.webkit.org/show_bug.cgi?id=256065
rdar://problem/108634838

Reviewed by Chris Dumez.

There is a delay between WebsiteDataStore getting destroyed in UI process and network process stopping accessing files
that belong to the WebsiteDataStore. If UI process wants to operate on these files, it has to wait until network process
stops access, to avoid race or corruption. This patch introduces an SPI for client to know when network process finally
stops accessing the files.

API test: WKWebsiteDataStorePrivate.CompletionHandlerForRemovalFromNetworkProcess

* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::destroySession):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::destroySession):
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _setCompletionHandlerForRemovalFromNetworkProcess:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::removeSession):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::networkProcessDidTerminate):
(WebKit::WebsiteDataStore::setCompletionHandlerForRemovalFromNetworkProcess):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list