Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: content/browser/service_worker/service_worker_storage.h

Issue 633873002: Service Worker: Respect the "clear on exit" content setting (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@contentsettings
Patch Set: sync Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698