Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 442e878c2eb585b6df5091e0eeb2cb11d694f000
      
https://github.com/WebKit/WebKit/commit/442e878c2eb585b6df5091e0eeb2cb11d694f000
  Author: Sihui Liu <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to