Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8b87453fe510be3928eefdb1dc1995632915525c
https://github.com/WebKit/WebKit/commit/8b87453fe510be3928eefdb1dc1995632915525c
Author: Basuke Suzuki <[email protected]>
Date: 2024-12-11 (Wed, 11 Dec 2024)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/contentextensions/ContentExtensionsBackend.cpp
M Source/WebCore/contentextensions/ContentExtensionsBackend.h
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebCore/loader/DocumentLoader.cpp
M Source/WebCore/loader/ResourceLoadInfo.h
M Source/WebCore/loader/ResourceLoader.cpp
M Source/WebCore/loader/ResourceLoader.h
A Source/WebCore/loader/ResourceMonitor.cpp
A Source/WebCore/loader/ResourceMonitor.h
A Source/WebCore/loader/ResourceMonitorChecker.cpp
A Source/WebCore/loader/ResourceMonitorChecker.h
M Source/WebCore/page/LocalFrame.cpp
M Source/WebCore/page/LocalFrame.h
Log Message:
-----------
Introduce iframe resource monitoring.
https://bugs.webkit.org/show_bug.cgi?id=284198
rdar://137691088
Reviewed by Ben Nham.
Introduce new feature to monitor resource usage of iframe and its subresources.
The new class ResourceMonitor is the class to manage resource usage and existing
classes cooperate to send update to the class.
Monitoring is initiated by using ContentExtensionsBackend's ContentRuleList
against
the urls of main frame document and subresources.
The feature is off by default.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForResourceMonitoring):
* Source/WebCore/contentextensions/ContentExtensionsBackend.h:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::resourceMonitor):
(WebCore::Document::setResourceMonitor):
(WebCore::Document::parentResourceMonitor):
* Source/WebCore/dom/Document.h:
* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::shouldEnableResourceMonitor):
(WebCore::DocumentLoader::commitData):
* Source/WebCore/loader/ResourceLoadInfo.h:
(WebCore::ContentExtensions::ResourceLoadInfo::isolatedCopy const):
(WebCore::ContentExtensions::ResourceLoadInfo::isolatedCopy):
* Source/WebCore/loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::didReceiveBuffer):
(WebCore::ResourceLoader::resourceMonitor):
* Source/WebCore/loader/ResourceLoader.h:
* Source/WebCore/loader/ResourceMonitor.cpp: Added.
(WebCore::networkUsageThresholdWithRandomNoise):
(WebCore::ResourceMonitor::create):
(WebCore::ResourceMonitor::ResourceMonitor):
(WebCore::ResourceMonitor::setEligibility):
(WebCore::ResourceMonitor::didReceiveResponse):
(WebCore::ResourceMonitor::addNetworkUsage):
(WebCore::ResourceMonitor::checkNetworkUsageExcessIfNecessary):
(WebCore::ResourceMonitor::protectedFrame const):
(WebCore::ResourceMonitor::parentResourceMonitor const):
* Source/WebCore/loader/ResourceMonitor.h: Added.
* Source/WebCore/loader/ResourceMonitorChecker.cpp: Added.
(WebCore::ResourceMonitorChecker::singleton):
(WebCore::ResourceMonitorChecker::ResourceMonitorChecker):
(WebCore::ResourceMonitorChecker::checkEligibility):
(WebCore::ResourceMonitorChecker::checkEligibilityForTesting):
(WebCore::ResourceMonitorChecker::checkEligibilityWithLock):
(WebCore::ResourceMonitorChecker::setContentRuleList):
* Source/WebCore/loader/ResourceMonitorChecker.h: Added.
* Source/WebCore/page/LocalFrame.cpp:
(WebCore::LocalFrame::networkUsageDidExceedThreshold):
(WebCore::LocalFrame::showResourceMonitoringError):
* Source/WebCore/page/LocalFrame.h:
Canonical link: https://commits.webkit.org/287667@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