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

Reply via email to