OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/cache_storage/cache_storage_manager.h" | 5 #include "content/browser/cache_storage/cache_storage_manager.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
92 } | 92 } |
93 | 93 |
94 // static | 94 // static |
95 scoped_ptr<CacheStorageManager> CacheStorageManager::Create( | 95 scoped_ptr<CacheStorageManager> CacheStorageManager::Create( |
96 CacheStorageManager* old_manager) { | 96 CacheStorageManager* old_manager) { |
97 scoped_ptr<CacheStorageManager> manager(new CacheStorageManager( | 97 scoped_ptr<CacheStorageManager> manager(new CacheStorageManager( |
98 old_manager->root_path(), old_manager->cache_task_runner(), | 98 old_manager->root_path(), old_manager->cache_task_runner(), |
99 old_manager->quota_manager_proxy_.get())); | 99 old_manager->quota_manager_proxy_.get())); |
100 // These values may be NULL, in which case this will be called again later by | 100 // These values may be NULL, in which case this will be called again later by |
101 // the dispatcher host per usual. | 101 // the dispatcher host per usual. |
102 manager->SetBlobParametersForCache(old_manager->url_request_context(), | 102 manager->SetBlobParametersForCache(old_manager->url_request_context_getter(), |
103 old_manager->blob_storage_context()); | 103 old_manager->blob_storage_context()); |
104 return manager.Pass(); | 104 return manager.Pass(); |
105 } | 105 } |
106 | 106 |
107 CacheStorageManager::~CacheStorageManager() { | 107 CacheStorageManager::~CacheStorageManager() { |
108 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 108 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
109 for (CacheStorageMap::iterator it = cache_storage_map_.begin(); | 109 for (CacheStorageMap::iterator it = cache_storage_map_.begin(); |
110 it != cache_storage_map_.end(); ++it) { | 110 it != cache_storage_map_.end(); ++it) { |
111 delete it->second; | 111 delete it->second; |
112 } | 112 } |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 void CacheStorageManager::MatchAllCaches( | 166 void CacheStorageManager::MatchAllCaches( |
167 const GURL& origin, | 167 const GURL& origin, |
168 scoped_ptr<ServiceWorkerFetchRequest> request, | 168 scoped_ptr<ServiceWorkerFetchRequest> request, |
169 const CacheStorageCache::ResponseCallback& callback) { | 169 const CacheStorageCache::ResponseCallback& callback) { |
170 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin); | 170 CacheStorage* cache_storage = FindOrCreateCacheStorage(origin); |
171 | 171 |
172 cache_storage->MatchAllCaches(request.Pass(), callback); | 172 cache_storage->MatchAllCaches(request.Pass(), callback); |
173 } | 173 } |
174 | 174 |
175 void CacheStorageManager::SetBlobParametersForCache( | 175 void CacheStorageManager::SetBlobParametersForCache( |
176 net::URLRequestContext* request_context, | 176 const scoped_refptr<net::URLRequestContextGetter>& request_context_getter, |
177 base::WeakPtr<storage::BlobStorageContext> blob_storage_context) { | 177 base::WeakPtr<storage::BlobStorageContext> blob_storage_context) { |
178 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 178 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
179 DCHECK(cache_storage_map_.empty()); | 179 DCHECK(cache_storage_map_.empty()); |
180 DCHECK(!request_context_ || request_context_ == request_context); | 180 DCHECK(!request_context_getter_ || |
| 181 request_context_getter_.get() == request_context_getter.get()); |
181 DCHECK(!blob_context_ || blob_context_.get() == blob_storage_context.get()); | 182 DCHECK(!blob_context_ || blob_context_.get() == blob_storage_context.get()); |
182 request_context_ = request_context; | 183 request_context_getter_ = request_context_getter; |
183 blob_context_ = blob_storage_context; | 184 blob_context_ = blob_storage_context; |
184 } | 185 } |
185 | 186 |
186 void CacheStorageManager::GetOriginUsage( | 187 void CacheStorageManager::GetOriginUsage( |
187 const GURL& origin_url, | 188 const GURL& origin_url, |
188 const storage::QuotaClient::GetUsageCallback& callback) { | 189 const storage::QuotaClient::GetUsageCallback& callback) { |
189 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 190 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
190 | 191 |
191 if (IsMemoryBacked()) { | 192 if (IsMemoryBacked()) { |
192 int64 sum = 0; | 193 int64 sum = 0; |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 base::Bind(&DeleteOriginDidDeleteDir, callback)); | 286 base::Bind(&DeleteOriginDidDeleteDir, callback)); |
286 } | 287 } |
287 | 288 |
288 CacheStorageManager::CacheStorageManager( | 289 CacheStorageManager::CacheStorageManager( |
289 const base::FilePath& path, | 290 const base::FilePath& path, |
290 const scoped_refptr<base::SequencedTaskRunner>& cache_task_runner, | 291 const scoped_refptr<base::SequencedTaskRunner>& cache_task_runner, |
291 const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy) | 292 const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy) |
292 : root_path_(path), | 293 : root_path_(path), |
293 cache_task_runner_(cache_task_runner), | 294 cache_task_runner_(cache_task_runner), |
294 quota_manager_proxy_(quota_manager_proxy), | 295 quota_manager_proxy_(quota_manager_proxy), |
295 request_context_(NULL), | |
296 weak_ptr_factory_(this) { | 296 weak_ptr_factory_(this) { |
297 if (quota_manager_proxy_.get()) { | 297 if (quota_manager_proxy_.get()) { |
298 quota_manager_proxy_->RegisterClient( | 298 quota_manager_proxy_->RegisterClient( |
299 new CacheStorageQuotaClient(weak_ptr_factory_.GetWeakPtr())); | 299 new CacheStorageQuotaClient(weak_ptr_factory_.GetWeakPtr())); |
300 } | 300 } |
301 } | 301 } |
302 | 302 |
303 CacheStorage* CacheStorageManager::FindOrCreateCacheStorage( | 303 CacheStorage* CacheStorageManager::FindOrCreateCacheStorage( |
304 const GURL& origin) { | 304 const GURL& origin) { |
305 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 305 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
306 DCHECK(request_context_); | 306 DCHECK(request_context_getter_); |
307 CacheStorageMap::const_iterator it = cache_storage_map_.find(origin); | 307 CacheStorageMap::const_iterator it = cache_storage_map_.find(origin); |
308 if (it == cache_storage_map_.end()) { | 308 if (it == cache_storage_map_.end()) { |
309 MigrateOrigin(origin); | 309 MigrateOrigin(origin); |
310 CacheStorage* cache_storage = new CacheStorage( | 310 CacheStorage* cache_storage = new CacheStorage( |
311 ConstructOriginPath(root_path_, origin), IsMemoryBacked(), | 311 ConstructOriginPath(root_path_, origin), IsMemoryBacked(), |
312 cache_task_runner_.get(), request_context_, quota_manager_proxy_, | 312 cache_task_runner_.get(), request_context_getter_, quota_manager_proxy_, |
313 blob_context_, origin); | 313 blob_context_, origin); |
314 // The map owns fetch_stores. | 314 // The map owns fetch_stores. |
315 cache_storage_map_.insert(std::make_pair(origin, cache_storage)); | 315 cache_storage_map_.insert(std::make_pair(origin, cache_storage)); |
316 return cache_storage; | 316 return cache_storage; |
317 } | 317 } |
318 return it->second; | 318 return it->second; |
319 } | 319 } |
320 | 320 |
321 // static | 321 // static |
322 base::FilePath CacheStorageManager::ConstructLegacyOriginPath( | 322 base::FilePath CacheStorageManager::ConstructLegacyOriginPath( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 const base::FilePath& old_path, | 355 const base::FilePath& old_path, |
356 const base::FilePath& new_path) { | 356 const base::FilePath& new_path) { |
357 if (base::PathExists(old_path)) { | 357 if (base::PathExists(old_path)) { |
358 if (!base::PathExists(new_path)) | 358 if (!base::PathExists(new_path)) |
359 base::Move(old_path, new_path); | 359 base::Move(old_path, new_path); |
360 base::DeleteFile(old_path, /*recursive*/ true); | 360 base::DeleteFile(old_path, /*recursive*/ true); |
361 } | 361 } |
362 } | 362 } |
363 | 363 |
364 } // namespace content | 364 } // namespace content |
OLD | NEW |