Chromium Code Reviews| Index: content/browser/service_worker/service_worker_cache_storage_manager.cc |
| diff --git a/content/browser/service_worker/service_worker_cache_storage_manager.cc b/content/browser/service_worker/service_worker_cache_storage_manager.cc |
| index b8ae678dcc38b1bd8c31806720da017d3c7325b1..b2398b4853ba480142b1080a85c797b94bf4b0fe 100644 |
| --- a/content/browser/service_worker/service_worker_cache_storage_manager.cc |
| +++ b/content/browser/service_worker/service_worker_cache_storage_manager.cc |
| @@ -50,8 +50,14 @@ ServiceWorkerCacheStorageManager::Create( |
| scoped_ptr<ServiceWorkerCacheStorageManager> |
| ServiceWorkerCacheStorageManager::Create( |
| ServiceWorkerCacheStorageManager* old_manager) { |
| - return make_scoped_ptr(new ServiceWorkerCacheStorageManager( |
| - old_manager->root_path(), old_manager->cache_task_runner())); |
| + scoped_ptr<ServiceWorkerCacheStorageManager> manager( |
| + new ServiceWorkerCacheStorageManager(old_manager->root_path(), |
| + old_manager->cache_task_runner())); |
| + // These values may be NULL, in which case this will be called again later by |
| + // the dispatcher host per usual. |
| + manager->SetBlobParametersForCache(old_manager->url_request_context(), |
| + old_manager->blob_storage_context()); |
| + return manager.Pass(); |
| } |
| ServiceWorkerCacheStorageManager::~ServiceWorkerCacheStorageManager() { |
| @@ -119,16 +125,29 @@ void ServiceWorkerCacheStorageManager::EnumerateCaches( |
| cache_storage->EnumerateCaches(callback); |
| } |
| +void ServiceWorkerCacheStorageManager::SetBlobParametersForCache( |
| + net::URLRequestContext* request_context, |
| + base::WeakPtr<webkit_blob::BlobStorageContext> blob_storage_context) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + DCHECK(cache_storage_map_.empty()); |
| + |
| + request_context_ = request_context; |
| + blob_context_ = blob_storage_context; |
|
michaeln
2014/08/13 00:11:28
if these already have values, should we DCHECK equ
jkarlin
2014/08/13 00:34:41
It's potentially possible for them to be assigned
michaeln
2014/08/13 02:03:37
They won't go from somevalue to NULL, that deletea
jkarlin
2014/08/13 12:12:02
Done.
|
| +} |
| + |
| ServiceWorkerCacheStorageManager::ServiceWorkerCacheStorageManager( |
| const base::FilePath& path, |
| base::SequencedTaskRunner* cache_task_runner) |
| - : root_path_(path), cache_task_runner_(cache_task_runner) { |
| + : root_path_(path), |
| + cache_task_runner_(cache_task_runner), |
| + request_context_(NULL) { |
| } |
| ServiceWorkerCacheStorage* |
| ServiceWorkerCacheStorageManager::FindOrCreateServiceWorkerCacheManager( |
| const GURL& origin) { |
| DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| + DCHECK(request_context_); |
| ServiceWorkerCacheStorageMap::const_iterator it = |
| cache_storage_map_.find(origin); |
| @@ -137,7 +156,9 @@ ServiceWorkerCacheStorageManager::FindOrCreateServiceWorkerCacheManager( |
| ServiceWorkerCacheStorage* cache_storage = |
| new ServiceWorkerCacheStorage(ConstructOriginPath(root_path_, origin), |
| memory_only, |
| - cache_task_runner_); |
| + cache_task_runner_, |
| + request_context_, |
| + blob_context_); |
| // The map owns fetch_stores. |
| cache_storage_map_.insert(std::make_pair(origin, cache_storage)); |
| return cache_storage; |