[webkit-changes] [WebKit/WebKit] 20d85c: Add WebProcess initial implementation of backgroun...

youennf noreply at github.com
Tue Feb 21 05:00:31 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 20d85cda31cf7607c143a7a0f9608fa794f1fcf4
      https://github.com/WebKit/WebKit/commit/20d85cda31cf7607c143a7a0f9608fa794f1fcf4
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-02-21 (Tue, 21 Feb 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/abort.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/content-security-policy.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/fetch-uploads.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/fetch.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/get-ids.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/get.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/match.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/mixed-content-and-allowed-schemes.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/port-blocking.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/background-fetch/update-ui.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/fetch/private-network-access/service-worker-background-fetch.https.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/workers/service/SWClientConnection.cpp
    M Source/WebCore/workers/service/SWClientConnection.h
    M Source/WebCore/workers/service/WorkerSWClientConnection.cpp
    M Source/WebCore/workers/service/WorkerSWClientConnection.h
    M Source/WebCore/workers/service/background-fetch/BackgroundFetchManager.cpp
    M Source/WebCore/workers/service/background-fetch/BackgroundFetchManager.h
    M Source/WebCore/workers/service/background-fetch/BackgroundFetchRegistration.cpp
    M Source/WebCore/workers/service/background-fetch/BackgroundFetchRegistration.h
    M Source/WebCore/workers/service/server/SWServer.cpp
    M Source/WebCore/workers/service/server/SWServer.h
    M Source/WebCore/workers/service/server/SWServerToContextConnection.h
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    A Source/WebKit/WebProcess/Storage/RetrieveRecordResponseBodyCallbackIdentifier.h
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.h
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in

  Log Message:
  -----------
  Add WebProcess initial implementation of background fetch
https://bugs.webkit.org/show_bug.cgi?id=252036
rdar://problem/105262330

Reviewed by Chris Dumez.

Implement BackgroundFetchManager and BackgroundFetchRegistration by using SWClientConnection new functions.
Implement IPC plmubing up to SWServer.

* LayoutTests/imported/w3c/web-platform-tests/background-fetch/abort.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/content-security-policy.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/fetch-uploads.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/fetch.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/get-ids.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/get.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/match.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/mixed-content-and-allowed-schemes.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/port-blocking.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/background-fetch/update-ui.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/fetch/private-network-access/service-worker-background-fetch.https.window-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::fromScriptExecutionContext):
(WebCore::SWClientConnection::updateBackgroundFetchRegistration):
* Source/WebCore/workers/service/SWClientConnection.h:
* Source/WebCore/workers/service/WorkerSWClientConnection.cpp:
(WebCore::WorkerSWClientConnection::~WorkerSWClientConnection):
(WebCore::WorkerSWClientConnection::subscribeToPushService):
(WebCore::WorkerSWClientConnection::unsubscribeFromPushService):
(WebCore::WorkerSWClientConnection::getPushSubscription):
(WebCore::WorkerSWClientConnection::getPushPermissionState):
(WebCore::WorkerSWClientConnection::getNotifications):
(WebCore::WorkerSWClientConnection::startBackgroundFetch):
(WebCore::WorkerSWClientConnection::backgroundFetchInformation):
(WebCore::WorkerSWClientConnection::backgroundFetchIdentifiers):
(WebCore::WorkerSWClientConnection::abortBackgroundFetch):
(WebCore::WorkerSWClientConnection::matchBackgroundFetch):
(WebCore::toCrossThreadData):
(WebCore::fromCrossThreadData):
(WebCore::WorkerSWClientConnection::retrieveRecordResponse):
(WebCore::WorkerSWClientConnection::retrieveRecordResponseBody):
* Source/WebCore/workers/service/WorkerSWClientConnection.h:
* Source/WebCore/workers/service/background-fetch/BackgroundFetchManager.cpp:
(WebCore::BackgroundFetchManager::BackgroundFetchManager):
(WebCore::buildBackgroundFetchRequests):
(WebCore::BackgroundFetchManager::backgroundFetchRegistrationInstance):
(WebCore::BackgroundFetchManager::fetch):
(WebCore::BackgroundFetchManager::get):
(WebCore::BackgroundFetchManager::getIds):
* Source/WebCore/workers/service/background-fetch/BackgroundFetchManager.h:
(WebCore::BackgroundFetchManager::existingBackgroundFetchRegistration):
* Source/WebCore/workers/service/background-fetch/BackgroundFetchRecordInformation.h:
* Source/WebCore/workers/service/background-fetch/BackgroundFetchRegistration.cpp:
(WebCore::BackgroundFetchRegistration::updateIfExisting):
(WebCore::BackgroundFetchRegistration::abort):
(WebCore::requestFromInfo):
(WebCore::createRecord):
(WebCore::BackgroundFetchRegistration::match):
(WebCore::BackgroundFetchRegistration::matchAll):
* Source/WebCore/workers/service/background-fetch/BackgroundFetchRegistration.h:
* Source/WebCore/workers/service/server/SWServer.cpp:
(WebCore::SWServer::Connection::startBackgroundFetch):
(WebCore::SWServer::Connection::backgroundFetchInformation):
(WebCore::SWServer::Connection::backgroundFetchIdentifiers):
(WebCore::SWServer::Connection::abortBackgroundFetch):
(WebCore::SWServer::Connection::matchBackgroundFetch):
(WebCore::SWServer::Connection::retrieveRecordResponse):
(WebCore::SWServer::Connection::retrieveRecordResponseBody):
* Source/WebCore/workers/service/server/SWServer.h:
* Source/WebCore/workers/service/server/SWServerToContextConnection.h:
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::controlClient):
(WebKit::WebSWServerConnection::createFetchTask):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):
(WebKit::WebSWServerConnection::clientURLFromIdentifier):
(WebKit::WebSWServerConnection::scheduleUnregisterJobInServer):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerConnection::registerServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):
(WebKit::WebSWServerConnection::updateThrottleState):
(WebKit::WebSWServerConnection::subscribeToPushService):
(WebKit::WebSWServerConnection::unsubscribeFromPushService):
(WebKit::WebSWServerConnection::getPushSubscription):
(WebKit::WebSWServerConnection::getPushPermissionState):
(WebKit::WebSWServerConnection::contextConnectionCreated):
(WebKit::WebSWServerConnection::fetchTaskTimedOut):
(WebKit::WebSWServerConnection::gatherClientData):
(WebKit::WebSWServerConnection::updateBackgroundFetchRegistration):
(WebKit::WebSWServerConnection::retrieveRecordResponseBody):
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h:
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
* Source/WebKit/Scripts/webkit/messages.py:
(serialized_identifiers):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Storage/RetrieveRecordResponseBodyCallbackIdentifier.h: Added.
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::callExceptionOrResultCallback):
(WebKit::WebSWClientConnection::subscribeToPushService):
(WebKit::WebSWClientConnection::unsubscribeFromPushService):
(WebKit::WebSWClientConnection::getPushSubscription):
(WebKit::WebSWClientConnection::getNavigationPreloadState):
(WebKit::WebSWClientConnection::startBackgroundFetch):
(WebKit::WebSWClientConnection::backgroundFetchInformation):
(WebKit::WebSWClientConnection::backgroundFetchIdentifiers):
(WebKit::WebSWClientConnection::abortBackgroundFetch):
(WebKit::WebSWClientConnection::matchBackgroundFetch):
(WebKit::WebSWClientConnection::retrieveRecordResponse):
(WebKit::WebSWClientConnection::retrieveRecordResponseBody):
(WebKit::WebSWClientConnection::notifyRecordResponseBodyChunk):
(WebKit::WebSWClientConnection::notifyRecordResponseBodyEnd):
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.h:
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in:

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




More information about the webkit-changes mailing list