| Index: content/browser/service_worker/service_worker_cache_storage.cc
|
| diff --git a/content/browser/service_worker/service_worker_cache_storage.cc b/content/browser/service_worker/service_worker_cache_storage.cc
|
| index 758a124acee71d97c1c8380975cb709347f8a693..1fd5b76ceca04b7ee1a795c2e60eb1efcabab6cb 100644
|
| --- a/content/browser/service_worker/service_worker_cache_storage.cc
|
| +++ b/content/browser/service_worker/service_worker_cache_storage.cc
|
| @@ -376,6 +376,33 @@ void ServiceWorkerCacheStorage::CreateCache(
|
| callback));
|
| }
|
|
|
| +void ServiceWorkerCacheStorage::OpenCache(
|
| + const std::string& cache_name,
|
| + const CacheAndErrorCallback& callback) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| +
|
| + if (!initialized_) {
|
| + LazyInit(base::Bind(&ServiceWorkerCacheStorage::OpenCache,
|
| + weak_factory_.GetWeakPtr(),
|
| + cache_name,
|
| + callback));
|
| + return;
|
| + }
|
| +
|
| + scoped_refptr<ServiceWorkerCache> cache = GetLoadedCache(cache_name);
|
| + if (cache.get()) {
|
| + callback.Run(cache, CACHE_STORAGE_ERROR_NO_ERROR);
|
| + return;
|
| + }
|
| +
|
| + cache_loader_->CreateCache(
|
| + cache_name,
|
| + base::Bind(&ServiceWorkerCacheStorage::CreateCacheDidCreateCache,
|
| + weak_factory_.GetWeakPtr(),
|
| + cache_name,
|
| + callback));
|
| +}
|
| +
|
| void ServiceWorkerCacheStorage::GetCache(
|
| const std::string& cache_name,
|
| const CacheAndErrorCallback& callback) {
|
|
|