[webkit-changes] [WebKit/WebKit] 7bc1fa: Allow quota to be set based on disk space
Sihui
noreply at github.com
Sun Mar 19 10:46:11 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7bc1fa58b65a096aac9d4317f074d4318e43b886
https://github.com/WebKit/WebKit/commit/7bc1fa58b65a096aac9d4317f074d4318e43b886
Author: Sihui Liu <sihui_liu at apple.com>
Date: 2023-03-19 (Sun, 19 Mar 2023)
Changed paths:
M Source/WTF/wtf/FileSystem.cpp
M Source/WTF/wtf/FileSystem.h
M Source/WTF/wtf/playstation/FileSystemPlayStation.cpp
M Source/WebKit/NetworkProcess/NetworkSession.cpp
M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
M Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp
M Source/WebKit/NetworkProcess/storage/QuotaManager.cpp
M Source/WebKit/NetworkProcess/storage/QuotaManager.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h
M Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp
M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h
M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm
Log Message:
-----------
Allow quota to be set based on disk space
https://bugs.webkit.org/show_bug.cgi?id=253978
rdar://106769648
Reviewed by Geoffrey Garen.
Make it possible to set origin quota based on disk space. This is achieved by letting client specify a originQuotaRatio,
and using it to compute the quota: originQuota = totalDiskSpace * originQuotaRatio. If originQuotaRatio it is unset, we
will use perOriginStorageQuota for quota. By default, originQuotaRatio is unset.
Also, when quota is set using originQuotaRatio, quota increase will not be allowed (client will not receive delegate
callback about quota is exceeded).
To mitigate fingerprinting issue, StorageManager.estimate() might report a quota that is lower than actual qutoa when
usage is small.
Test: WKWebsiteDataStoreConfiguration.OriginQuotaRatio
* Source/WTF/wtf/FileSystem.cpp:
(WTF::FileSystemImpl::volumeCapacity):
* Source/WTF/wtf/FileSystem.h:
* Source/WTF/wtf/playstation/FileSystemPlayStation.cpp:
(WTF::FileSystemImpl::volumeCapacity):
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::createNetworkStorageManager):
* Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
* Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::create):
(WebKit::NetworkStorageManager::NetworkStorageManager):
(WebKit::NetworkStorageManager::originStorageManager):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::estimate):
* Source/WebKit/NetworkProcess/storage/QuotaManager.cpp:
(WebKit::QuotaManager::handleRequests):
(WebKit::QuotaManager::reportedQuota const):
* Source/WebKit/NetworkProcess/storage/QuotaManager.h:
(WebKit::QuotaManager::create):
(WebKit::QuotaManager::quota const): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
* Source/WebKit/UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration originQuotaRatio]):
(-[_WKWebsiteDataStoreConfiguration setOriginQuotaRatio:]):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::originQuotaRatio):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::originQuotaRatio const):
(WebKit::WebsiteDataStoreConfiguration::setOriginQuotaRatio):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
(-[WKWebsiteDataStoreMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
Canonical link: https://commits.webkit.org/261840@main
More information about the webkit-changes
mailing list