[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