Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 12630df61ee89415d3f76e3f96dc2799ab491ade
https://github.com/WebKit/WebKit/commit/12630df61ee89415d3f76e3f96dc2799ab491ade
Author: Sihui Liu <[email protected]>
Date: 2023-10-19 (Thu, 19 Oct 2023)
Changed paths:
M LayoutTests/http/tests/IndexedDB/storage-limit-1.https.html
M LayoutTests/http/tests/IndexedDB/storage-limit-2.https.html
M LayoutTests/http/tests/IndexedDB/storage-limit.https.html
M LayoutTests/http/wpt/cache-storage/cache-quota-add.any.js
M LayoutTests/http/wpt/cache-storage/cache-quota-after-restart.any.js
M LayoutTests/http/wpt/cache-storage/cache-quota.any.js
M LayoutTests/http/wpt/cache-storage/quota-third-party.https.html
M
LayoutTests/storage/filesystemaccess/sync-access-handle-storage-limit-worker.html
M LayoutTests/storage/indexeddb/resources/request-size-estimate.js
M LayoutTests/storage/indexeddb/resources/storage-limit.js
M Source/WebKit/NetworkProcess/NetworkProcess.cpp
M Source/WebKit/NetworkProcess/NetworkProcess.h
M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
M Source/WebKit/NetworkProcess/storage/OriginQuotaManager.cpp
M Source/WebKit/NetworkProcess/storage/OriginQuotaManager.h
M Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/OriginStorageManager.h
M Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp
M Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
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
M Tools/WebKitTestRunner/TestInvocation.cpp
Log Message:
-----------
Enable calculating quota based on disk space in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=263323
rdar://117139033
Reviewed by Youenn Fablet.
When originQuotaRatio and totalQuotaRatio of WebsiteDataStoreConfiguration are
non-null, quota is calculated based on
disk space and ratio values. Since 263250@main, these values are non-null by
default, which means WebKit apps by default
have quota calculated based on disk space instead of using a fixed quota value.
To ensure quota-related tests run correctly, WebKitTestRunner currently still
uses fixed quota, by explicitly setting
originQuotaRatio and totalQuotaRatio to null (see
TestController::configureWebsiteDataStoreTemporaryDirectories). This
is not ideal as WebKit has different behavior in different quota mechanisms.
For example, when origin quota is reached,
in old mechanism (fixed quota), WebKit ask clients whether to increase quota
before proceeding with storage task; in new
mechanism (quota calculated based on disk space), task will fail directly. This
difference has impacted our performance
testing (run-perf-tests) -- in old mechanism, many IPCs may be sent when the
storage is big. To make WebKitTestRunner
test the new default behavior, this patch makes originQuotaRatio and
totalQuotaRatio in WebKitTestRunner non-null.
Some layout tests rely on the old quota mechanism. For example, they may want
to check if quota error can be correctly
thrown and handled with a small amount of data. To keep those tests working,
this patch adds
TestRunner::setOriginQuotaRatioEnabled that allows a test to ask for old quota
mechanism: when originQuotaRatioEnabled
is false, network process uses fixed quota. originQuotaRatioEnabled is reset to
true between tests to make sure old
quota mechanism are only used for tests that needs it.
* LayoutTests/http/tests/IndexedDB/storage-limit-1.https.html:
* LayoutTests/http/tests/IndexedDB/storage-limit-2.https.html:
* LayoutTests/http/tests/IndexedDB/storage-limit.https.html:
* LayoutTests/http/wpt/cache-storage/cache-quota-add.any.js:
* LayoutTests/http/wpt/cache-storage/cache-quota-after-restart.any.js:
* LayoutTests/http/wpt/cache-storage/cache-quota.any.js:
* LayoutTests/http/wpt/cache-storage/quota-third-party.https.html:
*
LayoutTests/storage/filesystemaccess/sync-access-handle-storage-limit-worker.html:
* LayoutTests/storage/indexeddb/resources/request-size-estimate.js:
* LayoutTests/storage/indexeddb/resources/storage-limit.js:
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setOriginQuotaRatioEnabledForTesting):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::originQuotaManagerParameters):
(WebKit::NetworkStorageManager::originStorageManager):
(WebKit::NetworkStorageManager::setOriginQuotaRatioEnabledForTesting):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/OriginQuotaManager.cpp:
(WebKit::OriginQuotaManager::create):
(WebKit::OriginQuotaManager::OriginQuotaManager):
(WebKit::OriginQuotaManager::updateParametersForTesting):
* Source/WebKit/NetworkProcess/storage/OriginQuotaManager.h:
(WebKit::OriginQuotaManager::create): Deleted.
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::createQuotaManager):
(WebKit::OriginStorageManager::OriginStorageManager):
(WebKit::OriginStorageManager::quotaManager):
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.h:
* Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetOriginQuotaRatioEnabled):
* Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h:
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setOriginQuotaRatioEnabledForTesting):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
* Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setOriginQuotaRatioEnabled):
* Tools/WebKitTestRunner/InjectedBundle/TestRunner.h:
* Tools/WebKitTestRunner/TestController.cpp:
(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::setOriginQuotaRatioEnabled):
* Tools/WebKitTestRunner/TestController.h:
* Tools/WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
Canonical link: https://commits.webkit.org/269553@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes