| Index: content/browser/service_worker/service_worker_cache_storage.h
|
| diff --git a/content/browser/service_worker/service_worker_cache_storage.h b/content/browser/service_worker/service_worker_cache_storage.h
|
| index fd198ff25841564ed5ea919dee679e9b36c78f21..e15a0f716b2e2fac64c42cdd45f53de4ee1b5bb4 100644
|
| --- a/content/browser/service_worker/service_worker_cache_storage.h
|
| +++ b/content/browser/service_worker/service_worker_cache_storage.h
|
| @@ -34,13 +34,6 @@ namespace content {
|
| // on the IO thread.
|
| class CONTENT_EXPORT ServiceWorkerCacheStorage {
|
| public:
|
| - // TODO(jkarlin): Convert this (and everything that uses it) to int64_t so
|
| - // that we don't run out of id space.
|
| - typedef int32_t CacheID;
|
| -
|
| - // The CacheID returned on failed cache operations.
|
| - const static int kInvalidCacheID;
|
| -
|
| enum CacheStorageError {
|
| CACHE_STORAGE_ERROR_NO_ERROR,
|
| CACHE_STORAGE_ERROR_NOT_IMPLEMENTED,
|
| @@ -51,7 +44,8 @@ class CONTENT_EXPORT ServiceWorkerCacheStorage {
|
| };
|
|
|
| typedef base::Callback<void(bool, CacheStorageError)> BoolAndErrorCallback;
|
| - typedef base::Callback<void(int, CacheStorageError)> CacheAndErrorCallback;
|
| + typedef base::Callback<void(const scoped_refptr<ServiceWorkerCache>&,
|
| + CacheStorageError)> CacheAndErrorCallback;
|
| typedef base::Callback<void(const std::vector<std::string>&,
|
| CacheStorageError)> StringsAndErrorCallback;
|
|
|
| @@ -93,12 +87,13 @@ class CONTENT_EXPORT ServiceWorkerCacheStorage {
|
| class MemoryLoader;
|
| class SimpleCacheLoader;
|
| class CacheLoader;
|
| - struct CacheContext;
|
|
|
| - typedef std::map<CacheID, CacheContext*> CacheMap;
|
| - typedef std::map<std::string, CacheID> NameMap;
|
| + typedef std::map<std::string, base::WeakPtr<ServiceWorkerCache> > CacheMap;
|
|
|
| - CacheContext* GetLoadedCache(const std::string& cache_name) const;
|
| + // Return a ServiceWorkerCache for the given name if the name is known. If the
|
| + // ServiceWorkerCache has been deleted, creates a new one.
|
| + scoped_refptr<ServiceWorkerCache> GetLoadedCache(
|
| + const std::string& cache_name);
|
|
|
| // Initializer and its callback are below.
|
| void LazyInit(const base::Closure& closure);
|
| @@ -106,16 +101,16 @@ class CONTENT_EXPORT ServiceWorkerCacheStorage {
|
| const base::Closure& callback,
|
| scoped_ptr<std::vector<std::string> > indexed_cache_names);
|
|
|
| - CacheContext* AddCacheToMaps(const std::string& cache_name,
|
| - scoped_ptr<ServiceWorkerCache> cache);
|
| + void AddCacheToMap(const std::string& cache_name,
|
| + base::WeakPtr<ServiceWorkerCache> cache);
|
|
|
| // The CreateCache callbacks are below.
|
| - void CreateCacheDidCreateCache(const std::string& cache_name,
|
| - const CacheAndErrorCallback& callback,
|
| - scoped_ptr<ServiceWorkerCache> cache);
|
| + void CreateCacheDidCreateCache(
|
| + const std::string& cache_name,
|
| + const CacheAndErrorCallback& callback,
|
| + const scoped_refptr<ServiceWorkerCache>& cache);
|
| void CreateCacheDidWriteIndex(const CacheAndErrorCallback& callback,
|
| - base::WeakPtr<ServiceWorkerCache> cache,
|
| - CacheID id,
|
| + const scoped_refptr<ServiceWorkerCache>& cache,
|
| bool success);
|
|
|
| // The DeleteCache callbacks are below.
|
| @@ -131,14 +126,8 @@ class CONTENT_EXPORT ServiceWorkerCacheStorage {
|
| // The list of operations waiting on initialization.
|
| std::vector<base::Closure> init_callbacks_;
|
|
|
| - // The map of CacheIDs to their CacheContext objects. Owns the CacheContext
|
| - // object. The CacheIDs are used by JavaScript to reference a
|
| - // ServiceWorkerCache.
|
| + // The map of cache names to ServiceWorkerCache objects.
|
| CacheMap cache_map_;
|
| - CacheID next_cache_id_; // The next CacheID to use in cache_map_
|
| -
|
| - // The map of cache names to their integer ids.
|
| - NameMap name_map_;
|
|
|
| // The file path for this CacheStorage.
|
| base::FilePath origin_path_;
|
| @@ -146,6 +135,9 @@ class CONTENT_EXPORT ServiceWorkerCacheStorage {
|
| // The TaskRunner to run file IO on.
|
| scoped_refptr<base::SequencedTaskRunner> cache_task_runner_;
|
|
|
| + // Whether or not to store data in disk or memory.
|
| + bool memory_only_;
|
| +
|
| // Performs backend specific operations (memory vs disk).
|
| scoped_ptr<CacheLoader> cache_loader_;
|
|
|
|
|