| 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 ffffebf48bb45c76d3f5caf7627647a43309ba4d..8551163f806c54a6fe58242115908ff2d8d4840f 100644
|
| --- a/content/browser/service_worker/service_worker_cache_storage.cc
|
| +++ b/content/browser/service_worker/service_worker_cache_storage.cc
|
| @@ -17,6 +17,7 @@
|
| #include "content/public/browser/browser_thread.h"
|
| #include "net/base/directory_lister.h"
|
| #include "net/base/net_errors.h"
|
| +#include "webkit/browser/blob/blob_storage_context.h"
|
|
|
| namespace content {
|
|
|
| @@ -30,8 +31,13 @@ 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) {}
|
| + CacheLoader(
|
| + base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + base::WeakPtr<webkit_blob::BlobStorageContext> 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,13 +68,18 @@ class ServiceWorkerCacheStorage::CacheLoader
|
| virtual void LoadCacheImpl(const std::string&) {}
|
|
|
| scoped_refptr<base::SequencedTaskRunner> cache_task_runner_;
|
| + net::URLRequestContext* request_context_;
|
| + base::WeakPtr<webkit_blob::BlobStorageContext> blob_context_;
|
| };
|
|
|
| class ServiceWorkerCacheStorage::MemoryLoader
|
| : public ServiceWorkerCacheStorage::CacheLoader {
|
| public:
|
| - explicit MemoryLoader(base::SequencedTaskRunner* cache_task_runner)
|
| - : CacheLoader(cache_task_runner) {}
|
| + MemoryLoader(
|
| + base::SequencedTaskRunner* cache_task_runner,
|
| + net::URLRequestContext* request_context,
|
| + base::WeakPtr<webkit_blob::BlobStorageContext> blob_context)
|
| + : CacheLoader(cache_task_runner, request_context, blob_context) {}
|
| virtual void LoadCache(const std::string& cache_name,
|
| const CacheCallback& callback) OVERRIDE {
|
| NOTREACHED();
|
| @@ -77,7 +88,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());
|
| }
|
|
|
| @@ -104,8 +116,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,
|
| + base::WeakPtr<webkit_blob::BlobStorageContext> 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 {
|
| @@ -150,10 +165,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());
|
| }
|
|
|
| @@ -359,15 +377,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,
|
| + base::WeakPtr<webkit_blob::BlobStorageContext> 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() {
|
|
|