[webkit-changes] [WebKit/WebKit] fb634d: Allow origin to be persisted if it is exempt from ...

Sihui noreply at github.com
Thu May 18 16:23:01 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fb634d8ebf1e903515286602488a23367c6a1e61
      https://github.com/WebKit/WebKit/commit/fb634d8ebf1e903515286602488a23367c6a1e61
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-05-18 (Thu, 18 May 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp
    M Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h
    M Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp
    M Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm

  Log Message:
  -----------
  Allow origin to be persisted if it is exempt from ITP deletion
https://bugs.webkit.org/show_bug.cgi?id=256817
rdar://109379695

Reviewed by Youenn Fablet.

According to spec (https://storage.spec.whatwg.org/#introduction), an origin can request to be persistent with
StorageManager.persist(), which means its data will be exempt from eviction on storage pressure. This patch implements a
rule to decide whether an origin can be persistent.

Test: WKWebsiteDataStoreConfiguration.TotalQuotaRatioWithPersistedDomain

* Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::shouldExemptFromWebsiteDataDeletion const):
(WebKit::ResourceLoadStatisticsStore::domainsExemptFromWebsiteDataDeletion const):
* Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::registrableDomainsExemptFromWebsiteDataDeletion):
* Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::registrableDomainsExemptFromWebsiteDataDeletion):
* Source/WebKit/NetworkProcess/NetworkProcess.h:
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::close):
(WebKit::NetworkStorageManager::fetchRegistrableDomainsForPersist):
(WebKit::NetworkStorageManager::didFetchRegistrableDomainsForPersist):
(WebKit::NetworkStorageManager::persistOrigin):
(WebKit::NetworkStorageManager::persist):
* Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
(TestWebKitAPI::htmlStringForTotalQuotaRatioTest):
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/264220@main




More information about the webkit-changes mailing list