Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 12630df61ee89415d3f76e3f96dc2799ab491ade https://github.com/WebKit/WebKit/commit/12630df61ee89415d3f76e3f96dc2799ab491ade Author: Sihui Liu <sihui_...@apple.com> 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 webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes