⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 244162 in webkit


Ignore:
Timestamp:
Apr 10, 2019, 3:59:14 PM (7 years ago)
Author:
youenn@apple.com
Message:

Clear Cache Storage structures before removing all related files
https://bugs.webkit.org/show_bug.cgi?id=196650

Reviewed by Alex Christensen.

Previously, we were clearing files in parallel to clearing the internal CacheStorage structures.
To make things more deterministic, clear files/folders directly
after CachesStorage structures have finished being cleared.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::clearAllCaches):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r244161 r244162  
     12019-04-10  Youenn Fablet  <youenn@apple.com>
     2
     3        Clear Cache Storage structures before removing all related files
     4        https://bugs.webkit.org/show_bug.cgi?id=196650
     5
     6        Reviewed by Alex Christensen.
     7
     8        Previously, we were clearing files in parallel to clearing the internal CacheStorage structures.
     9        To make things more deterministic, clear files/folders directly
     10        after CachesStorage structures have finished being cleared.
     11
     12        * NetworkProcess/cache/CacheStorageEngine.cpp:
     13        (WebKit::CacheStorage::Engine::clearAllCaches):
     14        (WebKit::CacheStorage::Engine::clearCachesForOrigin):
     15
    1162019-04-10  Alex Christensen  <achristensen@webkit.org>
    217
  • trunk/Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp

    r243339 r244162  
    524524    ASSERT(RunLoop::isMain());
    525525
    526     auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler));
     526    auto callbackAggregator = CallbackAggregator::create([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
     527        if (!this->shouldPersist())
     528            return;
     529       
     530        this->clearAllCachesFromDisk(WTFMove(completionHandler));
     531    });
    527532
    528533    for (auto& caches : m_caches.values())
    529534        caches->clear([callbackAggregator = callbackAggregator.copyRef()] { });
    530 
    531     if (!shouldPersist())
    532         return;
    533 
    534     clearAllCachesFromDisk([callbackAggregator = WTFMove(callbackAggregator)] { });
    535535}
    536536
     
    552552    ASSERT(RunLoop::isMain());
    553553
    554     auto callbackAggregator = CallbackAggregator::create(WTFMove(completionHandler));
     554    auto callbackAggregator = CallbackAggregator::create([this, protectedThis = makeRef(*this), origin, completionHandler = WTFMove(completionHandler)]() mutable {
     555        if (!this->shouldPersist())
     556            return;
     557
     558        this->clearCachesForOriginFromDisk(origin, [completionHandler = WTFMove(completionHandler)]() mutable {
     559            completionHandler();
     560        });
     561    });
    555562
    556563    for (auto& keyValue : m_caches) {
     
    558565            keyValue.value->clear([callbackAggregator = callbackAggregator.copyRef()] { });
    559566    }
    560 
    561     if (!shouldPersist())
    562         return;
    563 
    564     clearCachesForOriginFromDisk(origin, [callbackAggregator = WTFMove(callbackAggregator)] { });
    565567}
    566568
Note: See TracChangeset for help on using the changeset viewer.