[webkit-changes] [WebKit/WebKit] ab04d9: [ResourceMonitor] Track network usage of ServiceWo...

Basuke Suzuki noreply at github.com
Thu Feb 27 15:03:36 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ab04d94a385b7bf463155ce2fc89193bd317310f
      https://github.com/WebKit/WebKit/commit/ab04d94a385b7bf463155ce2fc89193bd317310f
  Author: Basuke Suzuki <basuke at apple.com>
  Date:   2025-02-27 (Thu, 27 Feb 2025)

  Changed paths:
    M LayoutTests/http/tests/iframe-monitor/resources/--eligible--/iframe2.html
    A LayoutTests/http/tests/iframe-monitor/resources/--eligible--/service-worker-setup.js
    A LayoutTests/http/tests/iframe-monitor/resources/--eligible--/service-worker.html
    A LayoutTests/http/tests/iframe-monitor/resources/--eligible--/service-worker.js
    A LayoutTests/http/tests/iframe-monitor/resources/--eligible--/unregister-service-worker.html
    A LayoutTests/http/tests/iframe-monitor/resources/--eligible--/using-1k.html
    A LayoutTests/http/tests/iframe-monitor/resources/--eligible--/using-6k.html
    R LayoutTests/http/tests/iframe-monitor/shared-worker-expected.txt
    R LayoutTests/http/tests/iframe-monitor/shared-worker.html
    A LayoutTests/http/tests/iframe-monitor/workers/service-worker-expected.txt
    A LayoutTests/http/tests/iframe-monitor/workers/service-worker-not-count-twice-expected.txt
    A LayoutTests/http/tests/iframe-monitor/workers/service-worker-not-count-twice.html
    A LayoutTests/http/tests/iframe-monitor/workers/service-worker.html
    A LayoutTests/http/tests/iframe-monitor/workers/shared-worker-expected.txt
    A LayoutTests/http/tests/iframe-monitor/workers/shared-worker.html
    M Source/WebCore/Headers.cmake
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/loader/ResourceLoaderOptions.h
    M Source/WebCore/loader/WorkerThreadableLoader.cpp
    A Source/WebCore/workers/FetchingWorkerIdentifier.h
    M Source/WebCore/workers/service/SWClientConnection.cpp
    M Source/WebCore/workers/service/SWClientConnection.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/WebCore/workers/shared/SharedWorkerObjectConnection.cpp
    M Source/WebCore/workers/shared/SharedWorkerObjectConnection.h
    M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp
    M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h
    M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.h
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h
    M Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp
    M Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServer.h
    M Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp
    M Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in
    M Source/WebKit/WebProcess/Storage/WebSharedWorkerObjectConnection.messages.in

  Log Message:
  -----------
  [ResourceMonitor] Track network usage of ServiceWorker.
https://bugs.webkit.org/show_bug.cgi?id=287506
rdar://144586530

Reviewed by Youenn Fablet.

We don't track network usage of ServiceWorker registered by iframe and also there's no direct connection
between ServiceWorker and iframe right now. To monitor network usage, send IPC message to report
network usage of ServiceWorker to all connected iframe document.

To make this happen:
1. Add new parameter, `workerIdentifier` in NetworkResourceLoadParameters.
2. Report network usage of the ServiceWorker from NetworkResourceLoader to connected ServiceWorker clients.
3. Tell ResourceMonitor to treate those usage as part of the resource usage of iframe.

* LayoutTests/http/tests/iframe-monitor/resources/--eligible--/iframe2.html:
* LayoutTests/http/tests/iframe-monitor/resources/--eligible--/service-worker-setup.js: Added.
(async waitForState):
* LayoutTests/http/tests/iframe-monitor/resources/--eligible--/service-worker.html: Added.
* LayoutTests/http/tests/iframe-monitor/resources/--eligible--/service-worker.js: Added.
(async e):
* LayoutTests/http/tests/iframe-monitor/resources/--eligible--/unregister-service-worker.html: Added.
* LayoutTests/http/tests/iframe-monitor/resources/--eligible--/using-1k.html: Added.
* LayoutTests/http/tests/iframe-monitor/resources/--eligible--/using-6k.html: Added.
* LayoutTests/http/tests/iframe-monitor/shared-worker.html: Removed.
* LayoutTests/http/tests/iframe-monitor/workers/service-worker-expected.txt: Added.
* LayoutTests/http/tests/iframe-monitor/workers/service-worker-not-count-twice-expected.txt: Added.
* LayoutTests/http/tests/iframe-monitor/workers/service-worker-not-count-twice.html: Added.
* LayoutTests/http/tests/iframe-monitor/workers/service-worker.html: Added.
* LayoutTests/http/tests/iframe-monitor/workers/shared-worker-expected.txt: Renamed from LayoutTests/http/tests/iframe-monitor/shared-worker-expected.txt.
* LayoutTests/http/tests/iframe-monitor/workers/shared-worker.html: Added.
* Source/WebCore/Headers.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/loader/ResourceLoaderOptions.h:
* Source/WebCore/loader/WorkerThreadableLoader.cpp:
(WebCore::m_contextIdentifier):
* Source/WebCore/workers/FetchingWorkerIdentifier.h: Added.
* Source/WebCore/workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::reportNetworkUsageToWorkerClient):
* Source/WebCore/workers/service/SWClientConnection.h:
* Source/WebCore/workers/service/server/SWServer.cpp:
(WebCore::SWServer::reportNetworkUsageToAllWorkerClients):
* Source/WebCore/workers/service/server/SWServer.h:
* Source/WebCore/workers/service/server/SWServerToContextConnection.h:
* Source/WebCore/workers/shared/SharedWorkerObjectConnection.cpp:
(WebCore::SharedWorkerObjectConnection::reportNetworkUsageToWorkerObject):
* Source/WebCore/workers/shared/SharedWorkerObjectConnection.h:
* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h:
* Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.serialization.in:
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::sendDidReceiveDataMessage):
(WebKit::NetworkResourceLoader::updateBytesTransferredOverNetwork):
(WebKit::NetworkResourceLoader::reportNetworkUsageToAllSharedWorkerObjects):
(WebKit::NetworkResourceLoader::reportNetworkUsageToAllServiceWorkerClients):
(WebKit::NetworkResourceLoader::reportNetworkUsageToAllSharedWorkers): Deleted.
* Source/WebKit/NetworkProcess/NetworkResourceLoader.h:
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h:
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::reportNetworkUsageToWorkerClient):
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:
(WebKit::WebSharedWorkerServer::reportNetworkUsageToAllSharedWorkerObjects):
(WebKit::WebSharedWorkerServer::reportNetworkUsageToAllSharedWorkerClients): Deleted.
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServer.h:
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp:
(WebKit::WebSharedWorkerServerConnection::reportNetworkUsageToWorkerObject):
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h:
* Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in:
* Source/WebKit/WebProcess/Storage/WebSharedWorkerObjectConnection.messages.in:

Canonical link: https://commits.webkit.org/291262@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