[webkit-changes] [WebKit/WebKit] 5a9cae: Add support for Background Fetch persistent storage
youennf
noreply at github.com
Wed Mar 1 01:40:50 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5a9caebbb042cd1aebc44514f8a6bdf036f3478b
https://github.com/WebKit/WebKit/commit/5a9caebbb042cd1aebc44514f8a6bdf036f3478b
Author: Youenn Fablet <youennf at gmail.com>
Date: 2023-03-01 (Wed, 01 Mar 2023)
Changed paths:
A LayoutTests/http/wpt/background-fetch/background-fetch-persistency.window-expected.txt
A LayoutTests/http/wpt/background-fetch/background-fetch-persistency.window.html
A LayoutTests/http/wpt/background-fetch/background-fetch-persistency.window.js
A LayoutTests/http/wpt/background-fetch/resources/trickle.py
M LayoutTests/http/wpt/background-fetch/sw.js
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/Headers.cmake
M Source/WebCore/platform/WebCorePersistentCoders.cpp
M Source/WebCore/platform/WebCorePersistentCoders.h
M Source/WebCore/workers/service/ServiceWorkerRegistrationKey.cpp
M Source/WebCore/workers/service/ServiceWorkerRegistrationKey.h
M Source/WebCore/workers/service/background-fetch/BackgroundFetch.cpp
M Source/WebCore/workers/service/background-fetch/BackgroundFetch.h
M Source/WebCore/workers/service/background-fetch/BackgroundFetchEngine.cpp
M Source/WebCore/workers/service/background-fetch/BackgroundFetchEngine.h
M Source/WebKit/NetworkProcess/NetworkSession.cpp
M Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreImpl.cpp
M Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreImpl.h
A Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreManager.cpp
A Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreManager.h
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
M Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/OriginStorageManager.h
M Source/WebKit/Shared/WebsiteData/WebsiteData.cpp
M Source/WebKit/Shared/WebsiteData/WebsiteDataType.h
M Source/WebKit/Shared/WebsiteData/WebsiteDataType.serialization.in
M Source/WebKit/Sources.txt
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
Log Message:
-----------
Add support for Background Fetch persistent storage
https://bugs.webkit.org/show_bug.cgi?id=252831
rdar://problem/105835505
Reviewed by Sihui Liu.
Implement BackgroundFetchStoreImpl by introducing BackgroundFetchStoreManager which is responsible for reading and writing files.
BackgroundFetchStoreManager runs in NetworkStorageManager work queue and is created by OriginStorageManager.
We introduce a helper routine to get a BackgroundFetchStoreManager from its NetworkStorageManager from main thread via a Function.
We introduce a way to push stored background fetches to BackgroundFetchEngine when loading a given BackgroundFetchStoreManager.
Covered by LayoutTests/http/wpt/background-fetch/background-fetch-persistency.window.html.
* LayoutTests/http/wpt/background-fetch/background-fetch-persistency.window-expected.txt: Added.
* LayoutTests/http/wpt/background-fetch/background-fetch-persistency.window.html: Added.
* LayoutTests/http/wpt/background-fetch/background-fetch-persistency.window.js: Added.
(promise_test.async t):
* LayoutTests/http/wpt/background-fetch/resources/trickle.py: Added.
(main):
* LayoutTests/http/wpt/background-fetch/sw.js:
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/Headers.cmake:
* Source/WebCore/platform/WebCorePersistentCoders.cpp:
(WTF::Persistence::Coder<WebCore::ImageResource>::encode):
(WTF::Persistence::Coder<WebCore::ImageResource>::decode):
* Source/WebCore/platform/WebCorePersistentCoders.h:
* Source/WebCore/workers/service/ServiceWorkerRegistrationKey.cpp:
(WebCore::ServiceWorkerRegistrationKey::clientOrigin const):
* Source/WebCore/workers/service/ServiceWorkerRegistrationKey.h:
* Source/WebCore/workers/service/background-fetch/BackgroundFetch.cpp:
(WebCore::BackgroundFetch::BackgroundFetch):
(WebCore::BackgroundFetch::didFinishRecord):
(WebCore::BackgroundFetch::recordIsCompleted):
(WebCore::BackgroundFetch::Record::didFinish):
(WebCore::BackgroundFetch::doStore):
(WebCore::BackgroundFetch::createFromStore):
* Source/WebCore/workers/service/background-fetch/BackgroundFetch.h:
(WebCore::BackgroundFetch::registrationKey const):
(WebCore::BackgroundFetch::setRecords):
* Source/WebCore/workers/service/background-fetch/BackgroundFetchEngine.cpp:
(WebCore::BackgroundFetchEngine::addFetchFromStore):
* Source/WebCore/workers/service/background-fetch/BackgroundFetchEngine.h:
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createBackgroundFetchStore):
* Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreImpl.cpp:
(WebKit::BackgroundFetchStoreImpl::BackgroundFetchStoreImpl):
(WebKit::BackgroundFetchStoreImpl::getFilename):
(WebKit::BackgroundFetchStoreImpl::initializeFetches):
(WebKit::BackgroundFetchStoreImpl::clearFetch):
(WebKit::BackgroundFetchStoreImpl::clearAllFetches):
(WebKit::BackgroundFetchStoreImpl::storeFetch):
(WebKit::BackgroundFetchStoreImpl::storeFetchResponseBodyChunk):
(WebKit::BackgroundFetchStoreImpl::retrieveResponseBody):
* Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreImpl.h:
(WebKit::BackgroundFetchStoreImpl::create):
* Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreManager.cpp: Added.
(WebKit::shouldUseFileMapping):
(WebKit::BackgroundFetchStoreManager::createNewStorageIdentifier):
(WebKit::BackgroundFetchStoreManager::BackgroundFetchStoreManager):
(WebKit::BackgroundFetchStoreManager::~BackgroundFetchStoreManager):
(WebKit::BackgroundFetchStoreManager::initializeFetches):
(WebKit::BackgroundFetchStoreManager::clearFetch):
(WebKit::BackgroundFetchStoreManager::clearAllFetches):
(WebKit::BackgroundFetchStoreManager::storeFetch):
(WebKit::createFetchResponseBodyFile):
(WebKit::BackgroundFetchStoreManager::storeFetchResponseBodyChunk):
(WebKit::BackgroundFetchStoreManager::retrieveResponseBody):
* Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreManager.h: Added.
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::dispatchTaskToBackgroundFetchManager):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::toStorageType const):
(WebKit::OriginStorageManager::StorageBucket::toStorageIdentifier const):
(WebKit::OriginStorageManager::StorageBucket::backgroundFetchManager):
(WebKit::OriginStorageManager::StorageBucket::resolvedBackgroundFetchStoragePath):
(WebKit::OriginStorageManager::StorageBucket::resolvedPath):
(WebKit::OriginStorageManager::backgroundFetchManager):
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.h:
* Source/WebKit/Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::ownerProcess):
* Source/WebKit/Shared/WebsiteData/WebsiteDataType.h:
* Source/WebKit/Shared/WebsiteData/WebsiteDataType.serialization.in:
* Source/WebKit/Sources.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
Canonical link: https://commits.webkit.org/260990@main
More information about the webkit-changes
mailing list