[webkit-changes] [WebKit/WebKit] b4877c: Add WKWebsiteDataStore SPI to restore Local Storag...
Rupin Mittal
noreply at github.com
Tue Dec 10 16:31:09 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b4877c19e09871c820b1b3aa103cff506defec42
https://github.com/WebKit/WebKit/commit/b4877c19e09871c820b1b3aa103cff506defec42
Author: Rupin Mittal <rupin at apple.com>
Date: 2024-12-10 (Tue, 10 Dec 2024)
Changed paths:
M Source/WebKit/NetworkProcess/NetworkProcess.cpp
M Source/WebKit/NetworkProcess/NetworkProcess.h
M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
M Source/WebKit/NetworkProcess/storage/LocalStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/LocalStorageManager.h
M Source/WebKit/NetworkProcess/storage/MemoryStorageArea.cpp
M Source/WebKit/NetworkProcess/storage/MemoryStorageArea.h
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
M Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp
M Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.h
M Source/WebKit/NetworkProcess/storage/StorageAreaBase.h
M Source/WebKit/Shared/WebsiteData/WebsiteDataType.h
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/RestoreLocalStorage.mm
Log Message:
-----------
Add WKWebsiteDataStore SPI to restore Local Storage data
https://bugs.webkit.org/show_bug.cgi?id=284091
rdar://141009843
Reviewed by Sihui Liu, Chris Dumez, and Brady Eidson.
Some clients may want to restore the local storage of ephemeral
data stores. (For example, Safari restoring the local storage of
private browsing tabs).
The restoration process will have two parts:
1. Client fetches the local storage data from WebKit and holds onto it.
2. Client gives back the data to WebKit to restore it.
The first part (fetch) has already landed: https://commits.webkit.org/287349@main.
This patch adds an SPI (which will eventually go through API
review) that does the second part of the restoration (restore).
The SPI works for both ephemeral and persistent data stores,
so there is an API test for each.
The SPI also works for both first party storage and for third party
storage, so there are API tests for each.
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::restoreLocalStorage):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/NetworkProcess/storage/LocalStorageManager.cpp:
(WebKit::LocalStorageManager::ensureLocalStorageArea):
(WebKit::LocalStorageManager::connectToLocalStorageArea):
(WebKit::LocalStorageManager::ensureTransientLocalStorageArea):
(WebKit::LocalStorageManager::connectToTransientLocalStorageArea):
(WebKit::LocalStorageManager::populateStorageArea):
(WebKit::LocalStorageManager::protectedLocalStorageArea const): Deleted.
* Source/WebKit/NetworkProcess/storage/LocalStorageManager.h:
* Source/WebKit/NetworkProcess/storage/MemoryStorageArea.cpp:
(WebKit::MemoryStorageArea::setItem):
* Source/WebKit/NetworkProcess/storage/MemoryStorageArea.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::fetchLocalStorage):
(WebKit::NetworkStorageManager::restoreLocalStorage):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.cpp:
(WebKit::SQLiteStorageArea::setItem):
* Source/WebKit/NetworkProcess/storage/SQLiteStorageArea.h:
* Source/WebKit/NetworkProcess/storage/StorageAreaBase.h:
* Source/WebKit/Shared/WebsiteData/WebsiteDataType.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(filterSupportedTypes):
(-[WKWebsiteDataStore _fetchDataOfTypes:completionHandler:]):
(-[WKWebsiteDataStore _restoreData:completionHandler:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchLocalStorage):
(WebKit::NetworkProcessProxy::restoreLocalStorage):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchLocalStorage):
(WebKit::WebsiteDataStore::restoreLocalStorage):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/RestoreLocalStorage.mm:
(testRestoreLocalStorage):
(TEST(WebKit, RestoreLocalStorageFromPersistentDataStore)):
(TEST(WebKit, RestoreLocalStorageFromEphemeralDataStore)):
(item):
(RestoreLocalStorageFromPersistentDataStoreThirdPartyIFrame)):
(RestoreLocalStorageFromEphemeralDataStoreThirdPartyIFrame)):
(testFetchLocalStorage): Deleted.
(TEST(WebKit, FetchLocalStorageFromPersistentDataStore)): Deleted.
(TEST(WebKit, FetchLocalStorageFromEphemeralDataStore)): Deleted.
(setItem): Deleted.
(FetchLocalStorageFromPersistentDataStoreThirdPartyIFrame)): Deleted.
(FetchLocalStorageFromEphemeralDataStoreThirdPartyIFrame)): Deleted.
Canonical link: https://commits.webkit.org/287641@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list