| Index: content/browser/service_worker/service_worker_storage.h
|
| diff --git a/content/browser/service_worker/service_worker_storage.h b/content/browser/service_worker/service_worker_storage.h
|
| index 4d37c77598386ea4978f557ee8d1f801d1f41e5e..6c2853f46f05dc1d1906d51e42aeacb7c3afe992 100644
|
| --- a/content/browser/service_worker/service_worker_storage.h
|
| +++ b/content/browser/service_worker/service_worker_storage.h
|
| @@ -16,6 +16,7 @@
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "content/browser/service_worker/service_worker_database.h"
|
| +#include "content/browser/service_worker/service_worker_database_task_manager.h"
|
| #include "content/browser/service_worker/service_worker_version.h"
|
| #include "content/common/content_export.h"
|
| #include "content/common/service_worker/service_worker_status_code.h"
|
| @@ -28,6 +29,7 @@ class SingleThreadTaskRunner;
|
|
|
| namespace storage {
|
| class QuotaManagerProxy;
|
| +class SpecialStoragePolicy;
|
| }
|
|
|
| namespace content {
|
| @@ -61,9 +63,10 @@ class CONTENT_EXPORT ServiceWorkerStorage
|
| static scoped_ptr<ServiceWorkerStorage> Create(
|
| const base::FilePath& path,
|
| base::WeakPtr<ServiceWorkerContextCore> context,
|
| - const scoped_refptr<base::SequencedTaskRunner>& database_task_runner,
|
| + scoped_ptr<ServiceWorkerDatabaseTaskManager> database_task_manager,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& disk_cache_thread,
|
| - storage::QuotaManagerProxy* quota_manager_proxy);
|
| + storage::QuotaManagerProxy* quota_manager_proxy,
|
| + storage::SpecialStoragePolicy* special_storage_policy);
|
|
|
| // Used for DeleteAndStartOver. Creates new storage based on |old_storage|.
|
| static scoped_ptr<ServiceWorkerStorage> Create(
|
| @@ -175,6 +178,8 @@ class CONTENT_EXPORT ServiceWorkerStorage
|
| UpdateRegistration);
|
| FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageDiskTest,
|
| CleanupOnRestart);
|
| + FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageDiskTest,
|
| + ClearOnExit);
|
|
|
| struct InitialData {
|
| int64 next_registration_id;
|
| @@ -223,9 +228,10 @@ class CONTENT_EXPORT ServiceWorkerStorage
|
| ServiceWorkerStorage(
|
| const base::FilePath& path,
|
| base::WeakPtr<ServiceWorkerContextCore> context,
|
| - const scoped_refptr<base::SequencedTaskRunner>& database_task_runner,
|
| + scoped_ptr<ServiceWorkerDatabaseTaskManager> database_task_manager,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& disk_cache_thread,
|
| - storage::QuotaManagerProxy* quota_manager_proxy);
|
| + storage::QuotaManagerProxy* quota_manager_proxy,
|
| + storage::SpecialStoragePolicy* special_storage_policy);
|
|
|
| base::FilePath GetDatabasePath();
|
| base::FilePath GetDiskCachePath();
|
| @@ -303,6 +309,8 @@ class CONTENT_EXPORT ServiceWorkerStorage
|
| void DidCollectStaleResources(const std::vector<int64>& stale_resource_ids,
|
| ServiceWorkerDatabase::Status status);
|
|
|
| + void ClearSessionOnlyOrigins();
|
| +
|
| // Static cross-thread helpers.
|
| static void CollectStaleResourcesFromDB(
|
| ServiceWorkerDatabase* database,
|
| @@ -340,6 +348,9 @@ class CONTENT_EXPORT ServiceWorkerStorage
|
| int64 registration_id,
|
| const GURL& origin,
|
| const FindInDBCallback& callback);
|
| + static void DeleteAllDataForOriginsFromDB(
|
| + ServiceWorkerDatabase* database,
|
| + const std::set<GURL>& origins);
|
|
|
| void ScheduleDeleteAndStartOver();
|
| void DidDeleteDatabase(
|
| @@ -374,12 +385,13 @@ class CONTENT_EXPORT ServiceWorkerStorage
|
| base::FilePath path_;
|
| base::WeakPtr<ServiceWorkerContextCore> context_;
|
|
|
| - // Only accessed on |database_task_runner_|.
|
| + // Only accessed using |database_task_manager_|.
|
| scoped_ptr<ServiceWorkerDatabase> database_;
|
|
|
| - scoped_refptr<base::SequencedTaskRunner> database_task_runner_;
|
| + scoped_ptr<ServiceWorkerDatabaseTaskManager> database_task_manager_;
|
| scoped_refptr<base::SingleThreadTaskRunner> disk_cache_thread_;
|
| scoped_refptr<storage::QuotaManagerProxy> quota_manager_proxy_;
|
| + scoped_refptr<storage::SpecialStoragePolicy> special_storage_policy_;
|
| scoped_ptr<ServiceWorkerDiskCache> disk_cache_;
|
| std::deque<int64> purgeable_resource_ids_;
|
| bool is_purge_pending_;
|
|
|