| 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 e048c6880fbd5c1ad72ad9253c468f86aafa973e..307f658f9a957ba5e57e52dc0a2ca72c3ed87aad 100644
|
| --- a/content/browser/service_worker/service_worker_cache_storage.cc
|
| +++ b/content/browser/service_worker/service_worker_cache_storage.cc
|
| @@ -19,6 +19,7 @@
|
| #include "net/base/directory_lister.h"
|
| #include "net/base/net_errors.h"
|
| #include "storage/browser/blob/blob_storage_context.h"
|
| +#include "storage/browser/quota/quota_manager_proxy.h"
|
|
|
| namespace content {
|
|
|
| @@ -34,12 +35,15 @@ class ServiceWorkerCacheStorage::CacheLoader {
|
| typedef base::Callback<void(scoped_ptr<std::vector<std::string> >)>
|
| StringVectorCallback;
|
|
|
| - CacheLoader(base::SequencedTaskRunner* cache_task_runner,
|
| - net::URLRequestContext* request_context,
|
| - base::WeakPtr<storage::BlobStorageContext> blob_context,
|
| - const GURL& origin)
|
| + CacheLoader(
|
| + base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
|
| + base::WeakPtr<storage::BlobStorageContext> blob_context,
|
| + const GURL& origin)
|
| : cache_task_runner_(cache_task_runner),
|
| request_context_(request_context),
|
| + quota_manager_proxy_(quota_manager_proxy),
|
| blob_context_(blob_context),
|
| origin_(origin) {
|
| DCHECK(!origin_.is_empty());
|
| @@ -72,6 +76,7 @@ class ServiceWorkerCacheStorage::CacheLoader {
|
| protected:
|
| scoped_refptr<base::SequencedTaskRunner> cache_task_runner_;
|
| net::URLRequestContext* request_context_;
|
| + scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy_;
|
| base::WeakPtr<storage::BlobStorageContext> blob_context_;
|
| GURL origin_;
|
| };
|
| @@ -83,22 +88,28 @@ class ServiceWorkerCacheStorage::CacheLoader {
|
| class ServiceWorkerCacheStorage::MemoryLoader
|
| : public ServiceWorkerCacheStorage::CacheLoader {
|
| public:
|
| - MemoryLoader(base::SequencedTaskRunner* cache_task_runner,
|
| - net::URLRequestContext* request_context,
|
| - base::WeakPtr<storage::BlobStorageContext> blob_context,
|
| - const GURL& origin)
|
| - : CacheLoader(cache_task_runner, request_context, blob_context, origin) {}
|
| + MemoryLoader(
|
| + base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
|
| + base::WeakPtr<storage::BlobStorageContext> blob_context,
|
| + const GURL& origin)
|
| + : CacheLoader(cache_task_runner,
|
| + request_context,
|
| + quota_manager_proxy,
|
| + blob_context,
|
| + origin) {}
|
|
|
| scoped_refptr<ServiceWorkerCache> CreateServiceWorkerCache(
|
| const std::string& cache_name) override {
|
| - return ServiceWorkerCache::CreateMemoryCache(request_context_,
|
| - blob_context_);
|
| + return ServiceWorkerCache::CreateMemoryCache(
|
| + origin_, request_context_, quota_manager_proxy_, blob_context_);
|
| }
|
|
|
| void CreateCache(const std::string& cache_name,
|
| const CacheCallback& callback) override {
|
| scoped_refptr<ServiceWorkerCache> cache =
|
| - ServiceWorkerCache::CreateMemoryCache(request_context_, blob_context_);
|
| + CreateServiceWorkerCache(cache_name);
|
| cache_refs_.insert(std::make_pair(cache_name, cache));
|
| callback.Run(cache);
|
| }
|
| @@ -134,12 +145,18 @@ class ServiceWorkerCacheStorage::MemoryLoader
|
| class ServiceWorkerCacheStorage::SimpleCacheLoader
|
| : public ServiceWorkerCacheStorage::CacheLoader {
|
| public:
|
| - SimpleCacheLoader(const base::FilePath& origin_path,
|
| - base::SequencedTaskRunner* cache_task_runner,
|
| - net::URLRequestContext* request_context,
|
| - base::WeakPtr<storage::BlobStorageContext> blob_context,
|
| - const GURL& origin)
|
| - : CacheLoader(cache_task_runner, request_context, blob_context, origin),
|
| + SimpleCacheLoader(
|
| + const base::FilePath& origin_path,
|
| + base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
|
| + base::WeakPtr<storage::BlobStorageContext> blob_context,
|
| + const GURL& origin)
|
| + : CacheLoader(cache_task_runner,
|
| + request_context,
|
| + quota_manager_proxy,
|
| + blob_context,
|
| + origin),
|
| origin_path_(origin_path),
|
| weak_ptr_factory_(this) {}
|
|
|
| @@ -148,8 +165,10 @@ class ServiceWorkerCacheStorage::SimpleCacheLoader
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| return ServiceWorkerCache::CreatePersistentCache(
|
| + origin_,
|
| CreatePersistentCachePath(origin_path_, cache_name),
|
| request_context_,
|
| + quota_manager_proxy_,
|
| blob_context_);
|
| }
|
|
|
| @@ -345,6 +364,7 @@ ServiceWorkerCacheStorage::ServiceWorkerCacheStorage(
|
| bool memory_only,
|
| base::SequencedTaskRunner* cache_task_runner,
|
| net::URLRequestContext* request_context,
|
| + const scoped_refptr<storage::QuotaManagerProxy>& quota_manager_proxy,
|
| base::WeakPtr<storage::BlobStorageContext> blob_context,
|
| const GURL& origin)
|
| : initialized_(false),
|
| @@ -353,12 +373,16 @@ ServiceWorkerCacheStorage::ServiceWorkerCacheStorage(
|
| memory_only_(memory_only),
|
| weak_factory_(this) {
|
| if (memory_only)
|
| - cache_loader_.reset(new MemoryLoader(
|
| - cache_task_runner_.get(), request_context, blob_context, origin));
|
| + cache_loader_.reset(new MemoryLoader(cache_task_runner_.get(),
|
| + request_context,
|
| + quota_manager_proxy,
|
| + blob_context,
|
| + origin));
|
| else
|
| cache_loader_.reset(new SimpleCacheLoader(origin_path_,
|
| cache_task_runner_.get(),
|
| request_context,
|
| + quota_manager_proxy,
|
| blob_context,
|
| origin));
|
| }
|
|
|