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() { |