| 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 629ae832a7eff5ed5059477690e95b2f8c4a61b2..60d64a4fa0fb03f3c64fe323231689c9c193c29e 100644
|
| --- a/content/browser/service_worker/service_worker_cache_storage.cc
|
| +++ b/content/browser/service_worker/service_worker_cache_storage.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/sha1.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/strings/string_util.h"
|
| +#include "content/browser/fileapi/chrome_blob_storage_context.h"
|
| #include "content/browser/service_worker/service_worker_cache.h"
|
| #include "content/browser/service_worker/service_worker_cache.pb.h"
|
| #include "content/public/browser/browser_thread.h"
|
| @@ -30,8 +31,12 @@ class ServiceWorkerCacheStorage::CacheLoader
|
| typedef base::Callback<void(scoped_ptr<std::vector<std::string> >)>
|
| StringsCallback;
|
|
|
| - explicit CacheLoader(base::SequencedTaskRunner* cache_task_runner)
|
| - : cache_task_runner_(cache_task_runner) {}
|
| + explicit CacheLoader(base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + ChromeBlobStorageContext* blob_context)
|
| + : cache_task_runner_(cache_task_runner),
|
| + request_context_(request_context),
|
| + blob_context_(blob_context) {}
|
|
|
| // Loads the given cache_name, the cache is NULL if it fails. If the cache
|
| // doesn't exist a new one is created.
|
| @@ -62,14 +67,17 @@ class ServiceWorkerCacheStorage::CacheLoader
|
| virtual void LoadCacheImpl(const std::string&) {}
|
|
|
| scoped_refptr<base::SequencedTaskRunner> cache_task_runner_;
|
| -
|
| + net::URLRequestContext* request_context_;
|
| + ChromeBlobStorageContext* blob_context_;
|
| };
|
|
|
| class ServiceWorkerCacheStorage::MemoryLoader
|
| : public ServiceWorkerCacheStorage::CacheLoader {
|
| public:
|
| - explicit MemoryLoader(base::SequencedTaskRunner* cache_task_runner)
|
| - : CacheLoader(cache_task_runner) {}
|
| + explicit MemoryLoader(base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + ChromeBlobStorageContext* blob_context)
|
| + : CacheLoader(cache_task_runner, request_context, blob_context) {}
|
| virtual void LoadCache(const std::string& cache_name,
|
| const CacheCallback& callback) OVERRIDE {
|
| NOTREACHED();
|
| @@ -78,7 +86,8 @@ class ServiceWorkerCacheStorage::MemoryLoader
|
| virtual void CreateCache(const std::string& cache_name,
|
| const CacheCallback& callback) OVERRIDE {
|
| scoped_ptr<ServiceWorkerCache> cache =
|
| - ServiceWorkerCache::CreateMemoryCache(cache_name);
|
| + ServiceWorkerCache::CreateMemoryCache(
|
| + cache_name, request_context_, blob_context_);
|
| callback.Run(cache.Pass());
|
| }
|
|
|
| @@ -105,8 +114,11 @@ class ServiceWorkerCacheStorage::SimpleCacheLoader
|
| : public ServiceWorkerCacheStorage::CacheLoader {
|
| public:
|
| SimpleCacheLoader(const base::FilePath& origin_path,
|
| - base::SequencedTaskRunner* cache_task_runner)
|
| - : CacheLoader(cache_task_runner), origin_path_(origin_path) {}
|
| + base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + ChromeBlobStorageContext* blob_context)
|
| + : CacheLoader(cache_task_runner, request_context, blob_context),
|
| + origin_path_(origin_path) {}
|
|
|
| virtual void LoadCache(const std::string& cache_name,
|
| const CacheCallback& callback) OVERRIDE {
|
| @@ -151,10 +163,13 @@ class ServiceWorkerCacheStorage::SimpleCacheLoader
|
| callback.Run(scoped_ptr<ServiceWorkerCache>());
|
| return;
|
| }
|
| - base::FilePath cache_path =
|
| - CreatePersistentCachePath(origin_path_, cache_name);
|
| - scoped_ptr<ServiceWorkerCache> cache(
|
| - ServiceWorkerCache::CreatePersistentCache(cache_path, cache_name));
|
| +
|
| + scoped_ptr<ServiceWorkerCache> cache =
|
| + ServiceWorkerCache::CreatePersistentCache(
|
| + CreatePersistentCachePath(origin_path_, cache_name),
|
| + cache_name,
|
| + request_context_,
|
| + blob_context_);
|
| callback.Run(cache.Pass());
|
| }
|
|
|
| @@ -360,15 +375,19 @@ class ServiceWorkerCacheStorage::SimpleCacheLoader
|
| ServiceWorkerCacheStorage::ServiceWorkerCacheStorage(
|
| const base::FilePath& path,
|
| bool memory_only,
|
| - base::SequencedTaskRunner* cache_task_runner)
|
| + base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + ChromeBlobStorageContext* blob_context)
|
| : initialized_(false),
|
| origin_path_(path),
|
| cache_task_runner_(cache_task_runner),
|
| weak_factory_(this) {
|
| if (memory_only)
|
| - cache_loader_ = new MemoryLoader(cache_task_runner_);
|
| + cache_loader_ =
|
| + new MemoryLoader(cache_task_runner_, request_context, blob_context);
|
| else
|
| - cache_loader_ = new SimpleCacheLoader(origin_path_, cache_task_runner_);
|
| + cache_loader_ = new SimpleCacheLoader(
|
| + origin_path_, cache_task_runner_, request_context, blob_context);
|
| }
|
|
|
| ServiceWorkerCacheStorage::~ServiceWorkerCacheStorage() {
|
|
|