[webkit-changes] [WebKit/WebKit] 28678c: `Clear-Site-Data: "cache"` HTTP header should clea...

Chris Dumez noreply at github.com
Mon Feb 6 10:28:09 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 28678cd68b668ca4d14eec8a3a1775374f304804
      https://github.com/WebKit/WebKit/commit/28678cd68b668ca4d14eec8a3a1775374f304804
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-02-06 (Mon, 06 Feb 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCache.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCache.h
    M Source/WebKit/NetworkProcess/cache/NetworkCacheKey.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCacheKey.h
    M Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp
    M Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.h

  Log Message:
  -----------
  `Clear-Site-Data: "cache"` HTTP header should clear disk cache more efficiently
https://bugs.webkit.org/show_bug.cgi?id=251768

Reviewed by Antti Koivisto.

`Clear-Site-Data: "cache"` HTTP header should clear disk cache more efficiently.
We will only delete cache entries for a given partition so there is no point in
traversing ALL storage entries. Instead, only traverse entries for the given
partition, which is a lot faster.

This patch adds a new NetworkCache::traverse() function overload which takes in
the cache partition as parameter and only calls the traverseHandler for entries
belonging to this partition. This is cheap and easy to do for our disk cache
implementation since our cache entries as grouped by partition via subfolders.

* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteDataForOrigin):
* Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
* Source/WebKit/NetworkProcess/cache/NetworkCache.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheKey.cpp:
(WebKit::NetworkCache::Key::partitionToPartitionHashAsString):
(WebKit::NetworkCache::Key::computePartitionHash const):
(WebKit::NetworkCache::Key::partitionToPartitionHash):
* Source/WebKit/NetworkProcess/cache/NetworkCacheKey.h:
* Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::traverseInternal):
(WebKit::NetworkCache::Storage::traverse):
* Source/WebKit/NetworkProcess/cache/NetworkCacheStorage.h:

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




More information about the webkit-changes mailing list