Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: dcd18c28da6d7a531587b1646dad132a02b55284
https://github.com/WebKit/WebKit/commit/dcd18c28da6d7a531587b1646dad132a02b55284
Author: Basuke Suzuki <[email protected]>
Date: 2025-01-28 (Tue, 28 Jan 2025)
Changed paths:
M LayoutTests/TestExpectations
A LayoutTests/http/tests/iframe-monitor/eligibility-expected.txt
A LayoutTests/http/tests/iframe-monitor/eligibility.html
A LayoutTests/http/tests/iframe-monitor/iframe-unload-expected.txt
A LayoutTests/http/tests/iframe-monitor/iframe-unload.html
A LayoutTests/http/tests/iframe-monitor/resources/generate-byte.py
A LayoutTests/http/tests/iframe-monitor/resources/iframe--eligible--.html
A LayoutTests/http/tests/iframe-monitor/resources/iframe--eligible--2.html
A LayoutTests/http/tests/iframe-monitor/resources/iframe-not-eligible.html
A LayoutTests/http/tests/iframe-monitor/resources/iframe-not-eligible2.html
A LayoutTests/http/tests/iframe-monitor/resources/monitor-setup.js
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WebCore/dom/Document.h
M Source/WebCore/loader/ResourceMonitor.cpp
M Source/WebCore/loader/ResourceMonitor.h
M Source/WebCore/loader/ResourceMonitorChecker.cpp
M Source/WebCore/loader/ResourceMonitorChecker.h
M Source/WebCore/loader/ResourceMonitorThrottler.cpp
M Source/WebCore/loader/ResourceMonitorThrottler.h
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/UIProcess/API/C/WKContext.cpp
M Source/WebKit/UIProcess/API/C/WKContext.h
M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessPool.h
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.h
M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
M Source/WebKit/WebProcess/WebProcess.cpp
M Source/WebKit/WebProcess/WebProcess.h
M Source/WebKit/WebProcess/WebProcess.messages.in
M Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl
M Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
M Tools/WebKitTestRunner/InjectedBundle/TestRunner.h
M Tools/WebKitTestRunner/TestController.cpp
M Tools/WebKitTestRunner/TestController.h
Log Message:
-----------
Add layout tests for ResourceMonitor
https://bugs.webkit.org/show_bug.cgi?id=286318
rdar://141840408
Reviewed by Ben Nham.
Add minimum layout tests for ResourceMonitor. This covers following basic cases
for iframes:
- Not be eligible for monitoring and uses small amount of load.
- Not be eligible for monitoring and uses big amount of load.
- Be eligible for monitoring and uses big amount of load.
- Be eligible for monitoring and uses small amount of load.
For easy and consistent testing, add functions to set various conditions for
monitoring and
connect them to Internals and TestRunner. Also needs to
* LayoutTests/TestExpectations:
* LayoutTests/http/tests/iframe-monitor/eligibility-expected.txt: Added.
* LayoutTests/http/tests/iframe-monitor/eligibility.html: Added.
* LayoutTests/http/tests/iframe-monitor/iframe-unload-expected.txt: Added.
* LayoutTests/http/tests/iframe-monitor/iframe-unload.html: Added.
* LayoutTests/http/tests/iframe-monitor/resources/generate-byte.py: Added.
* LayoutTests/http/tests/iframe-monitor/resources/iframe--eligible--.html:
Added.
* LayoutTests/http/tests/iframe-monitor/resources/iframe--eligible--2.html:
Added.
* LayoutTests/http/tests/iframe-monitor/resources/iframe-not-eligible.html:
Added.
* LayoutTests/http/tests/iframe-monitor/resources/iframe-not-eligible2.html:
Added.
* LayoutTests/http/tests/iframe-monitor/resources/monitor-setup.js: Added.
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebCore/dom/Document.h:
(WebCore::Document::shouldSkipResourceMonitorThrottling const):
(WebCore::Document::setShouldSkipResourceMonitorThrottling):
* Source/WebCore/loader/ResourceMonitor.cpp:
(WebCore::ResourceMonitor::ResourceMonitor):
(WebCore::ResourceMonitor::setEligibility):
(WebCore::ResourceMonitor::checkNetworkUsageExcessIfNecessary):
(WebCore::networkUsageThresholdWithRandomNoise): Deleted.
* Source/WebCore/loader/ResourceMonitor.h:
* Source/WebCore/loader/ResourceMonitorChecker.cpp:
(WebCore::networkUsageThresholdWithRandomNoise):
(WebCore::ResourceMonitorChecker::checkEligibility):
(WebCore::ResourceMonitorChecker::setNetworkUsageThreshold):
* Source/WebCore/loader/ResourceMonitorChecker.h:
* Source/WebCore/loader/ResourceMonitorThrottler.cpp:
(WebCore::ResourceMonitorThrottler::setCountPerDuration):
* Source/WebCore/loader/ResourceMonitorThrottler.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::setResourceMonitorNetworkUsageThreshold):
(WebCore::Internals::shouldSkipResourceMonitorThrottling const):
(WebCore::Internals::setShouldSkipResourceMonitorThrottling):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/UIProcess/API/C/WKContext.cpp:
(WKContextSetResourceMonitorURLsForTesting):
* Source/WebKit/UIProcess/API/C/WKContext.h:
* Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::createCompiledContentRuleList):
(WebKit::WebProcessPool::platformLoadResourceMonitorRuleList):
(WebKit::WebProcessPool::platformCompileResourceMonitorRuleList):
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::loadOrUpdateResourceMonitorRuleList):
(WebKit::WebProcessPool::setResourceMonitorURLsForTesting):
(WebKit::WebProcessPool::platformLoadResourceMonitorRuleList):
(WebKit::WebProcessPool::platformCompileResourceMonitorRuleList):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestResourceMonitorRuleLists):
(WebKit::WebProcessProxy::setResourceMonitorRuleListsIfRequired):
(WebKit::WebProcessProxy::setResourceMonitorRuleLists):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::didExceedNetworkUsageThreshold):
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setResourceMonitorContentRuleListAsync):
* Source/WebKit/WebProcess/WebProcess.h:
* Source/WebKit/WebProcess/WebProcess.messages.in:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setResourceMonitorList):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
(WTR::TestRunner::canModifyResourceMonitorList const):
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::didReceiveAsyncMessageFromInjectedBundle):
(WTR::TestController::setResourceMonitorList):
* Tools/WebKitTestRunner/TestController.h:
Canonical link: https://commits.webkit.org/289467@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