Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: deae73529c4c33d969518fd587cfac3f308d74c9
      
https://github.com/WebKit/WebKit/commit/deae73529c4c33d969518fd587cfac3f308d74c9
  Author: Basuke Suzuki <[email protected]>
  Date:   2025-02-11 (Tue, 11 Feb 2025)

  Changed paths:
    M LayoutTests/http/tests/iframe-monitor/blob-resource.html
    M LayoutTests/http/tests/iframe-monitor/cached-resource.html
    M LayoutTests/http/tests/iframe-monitor/dark-mode.html
    M LayoutTests/http/tests/iframe-monitor/data-url-resource.html
    M LayoutTests/http/tests/iframe-monitor/eligibility.html
    M LayoutTests/http/tests/iframe-monitor/iframe-unload.html
    A 
LayoutTests/http/tests/iframe-monitor/resources/--eligible--/shared-worker.html
    A 
LayoutTests/http/tests/iframe-monitor/resources/--eligible--/shared-worker.js
    M LayoutTests/http/tests/iframe-monitor/resources/monitor-setup.js
    A LayoutTests/http/tests/iframe-monitor/shared-worker-expected.txt
    A LayoutTests/http/tests/iframe-monitor/shared-worker.html
    M LayoutTests/http/tests/iframe-monitor/throttler.html
    M Source/WebCore/loader/ResourceLoaderOptions.h
    M Source/WebCore/loader/WorkerThreadableLoader.cpp
    M Source/WebCore/workers/shared/SharedWorker.cpp
    M Source/WebCore/workers/shared/SharedWorker.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/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/Network/WebLoaderStrategy.cpp
    M 
Source/WebKit/WebProcess/Storage/WebSharedWorkerObjectConnection.messages.in

  Log Message:
  -----------
  [ResourceMonitor] Track network usage of SharedWorker.
https://bugs.webkit.org/show_bug.cgi?id=287464
rdar://142654034

Reviewed by Ben Nham.

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

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

New layout test is added to test this usage.

* LayoutTests/http/tests/iframe-monitor/blob-resource.html: Refactoring
* LayoutTests/http/tests/iframe-monitor/cached-resource.html: Refactoring
* LayoutTests/http/tests/iframe-monitor/dark-mode.html: Refactoring
* LayoutTests/http/tests/iframe-monitor/data-url-resource.html: Refactoring
* LayoutTests/http/tests/iframe-monitor/eligibility.html: Refactoring
* LayoutTests/http/tests/iframe-monitor/iframe-unload.html: Refactoring
* 
LayoutTests/http/tests/iframe-monitor/resources/--eligible--/shared-worker.html:
 Added.
* 
LayoutTests/http/tests/iframe-monitor/resources/--eligible--/shared-worker.js: 
Added.
* LayoutTests/http/tests/iframe-monitor/resources/monitor-setup.js: Refactoring
* LayoutTests/http/tests/iframe-monitor/shared-worker-expected.txt: Added.
* LayoutTests/http/tests/iframe-monitor/shared-worker.html: Added.
* LayoutTests/http/tests/iframe-monitor/throttler.html: Refactoring
* Source/WebCore/loader/ResourceLoaderOptions.h:
* Source/WebCore/loader/WorkerThreadableLoader.cpp:
(WebCore::m_contextIdentifier):
* Source/WebCore/workers/shared/SharedWorker.cpp:
(WebCore::m_resourceMonitor):
(WebCore::SharedWorker::reportNetworkUsage):
* Source/WebCore/workers/shared/SharedWorker.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::bufferingTimerFired):
(WebKit::NetworkResourceLoader::sendBuffer):
(WebKit::NetworkResourceLoader::dataReceivedThroughContentFilter):
(WebKit::NetworkResourceLoader::sendDidReceiveDataMessage):
(WebKit::NetworkResourceLoader::reportNetworkUsageToAllSharedWorkers):
* Source/WebKit/NetworkProcess/NetworkResourceLoader.h:
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServer.cpp:
(WebKit::WebSharedWorkerServer::reportNetworkUsageToAllSharedWorkerClients):
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServer.h:
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp:
(WebKit::WebSharedWorkerServerConnection::reportNetworkUsageToWorkerObject):
* Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.h:
* Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
* Source/WebKit/WebProcess/Storage/WebSharedWorkerObjectConnection.messages.in:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to