Index: content/browser/cache_storage/cache_storage_cache.cc |
diff --git a/content/browser/cache_storage/cache_storage_cache.cc b/content/browser/cache_storage/cache_storage_cache.cc |
index e84e4f473e8d2063c9f55da4ef28640b4eac069c..656baaf5909da288320469178f8bac0e1e7dec8e 100644 |
--- a/content/browser/cache_storage/cache_storage_cache.cc |
+++ b/content/browser/cache_storage/cache_storage_cache.cc |
@@ -938,13 +938,11 @@ void CacheStorageCache::WriteSideDataDidWrite(const ErrorCallback& callback, |
int rv) { |
if (rv != expected_bytes) { |
entry->Doom(); |
- UpdateCacheSize(); |
- callback.Run(CACHE_STORAGE_ERROR_NOT_FOUND); |
+ UpdateCacheSize(base::Bind(callback, CACHE_STORAGE_ERROR_NOT_FOUND)); |
return; |
} |
- UpdateCacheSize(); |
- callback.Run(CACHE_STORAGE_OK); |
+ UpdateCacheSize(base::Bind(callback, CACHE_STORAGE_OK)); |
} |
void CacheStorageCache::Put(const CacheStorageBatchOperation& operation, |
@@ -1126,8 +1124,7 @@ void CacheStorageCache::PutDidWriteHeaders( |
// from the blob into the cache entry. |
if (put_context->response->blob_uuid.empty()) { |
- UpdateCacheSize(); |
- put_context->callback.Run(CACHE_STORAGE_OK); |
+ UpdateCacheSize(base::Bind(put_context->callback, CACHE_STORAGE_OK)); |
return; |
} |
@@ -1168,27 +1165,28 @@ void CacheStorageCache::PutDidWriteBlobToCache( |
return; |
} |
- UpdateCacheSize(); |
- put_context->callback.Run(CACHE_STORAGE_OK); |
+ UpdateCacheSize(base::Bind(put_context->callback, CACHE_STORAGE_OK)); |
} |
-void CacheStorageCache::UpdateCacheSize() { |
+void CacheStorageCache::UpdateCacheSize(const base::Closure& callback) { |
if (backend_state_ != BACKEND_OPEN) |
return; |
// Note that the callback holds a cache handle to keep the cache alive during |
// the operation since this UpdateCacheSize is often run after an operation |
// completes and runs its callback. |
- int rv = backend_->CalculateSizeOfAllEntries(base::Bind( |
- &CacheStorageCache::UpdateCacheSizeGotSize, |
- weak_ptr_factory_.GetWeakPtr(), base::Passed(CreateCacheHandle()))); |
+ int rv = backend_->CalculateSizeOfAllEntries( |
+ base::Bind(&CacheStorageCache::UpdateCacheSizeGotSize, |
+ weak_ptr_factory_.GetWeakPtr(), |
+ base::Passed(CreateCacheHandle()), callback)); |
if (rv != net::ERR_IO_PENDING) |
- UpdateCacheSizeGotSize(CreateCacheHandle(), rv); |
+ UpdateCacheSizeGotSize(CreateCacheHandle(), callback, rv); |
} |
void CacheStorageCache::UpdateCacheSizeGotSize( |
std::unique_ptr<CacheStorageCacheHandle> cache_handle, |
+ const base::Closure& callback, |
int current_cache_size) { |
DCHECK_NE(current_cache_size, CacheStorage::kSizeUnknown); |
int64_t old_cache_size = cache_size_; |
@@ -1202,6 +1200,8 @@ void CacheStorageCache::UpdateCacheSizeGotSize( |
if (cache_observer_) |
cache_observer_->CacheSizeUpdated(this, current_cache_size); |
+ |
+ callback.Run(); |
} |
void CacheStorageCache::Delete(const CacheStorageBatchOperation& operation, |
@@ -1256,8 +1256,7 @@ void CacheStorageCache::DeleteDidQueryCache( |
entry->Doom(); |
} |
- UpdateCacheSize(); |
- callback.Run(CACHE_STORAGE_OK); |
+ UpdateCacheSize(base::Bind(callback, CACHE_STORAGE_OK)); |
} |
void CacheStorageCache::KeysImpl( |