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

Side by Side Diff: content/browser/service_worker/service_worker_database_task_manager.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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_TASK_RUNNER_MANAG ER_
6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_TASK_RUNNER_MANAG ER_
7
8 #include "base/memory/ref_counted.h"
9 #include "content/common/content_export.h"
10
11 namespace base {
12 class SequencedTaskRunner;
13 }
14
15 namespace content {
16
17 // Used to sequence ServiceWorkerDatabase tasks. Vends two task runners: one
18 // that blocks shutdown and one that doesn't. The task runners use the same
19 // sequence token, so no matter which runner you post to, the tasks run in the
20 // order they are posted. This lets you post sequenced tasks with mixed shutdown
21 // behaviors.
22 class ServiceWorkerDatabaseTaskManager {
23 public:
24 virtual ~ServiceWorkerDatabaseTaskManager(){};
25 virtual scoped_ptr<ServiceWorkerDatabaseTaskManager> Clone() = 0;
26 virtual base::SequencedTaskRunner* GetTaskRunner() = 0;
27 virtual base::SequencedTaskRunner* GetShutdownBlockingTaskRunner() = 0;
28 };
29
30 class ServiceWorkerDatabaseTaskManagerImpl
31 : public ServiceWorkerDatabaseTaskManager {
32 public:
33 explicit ServiceWorkerDatabaseTaskManagerImpl(
34 base::SequencedWorkerPool* pool);
35 virtual ~ServiceWorkerDatabaseTaskManagerImpl();
36
37 protected:
38 virtual scoped_ptr<ServiceWorkerDatabaseTaskManager> Clone() override;
39 virtual base::SequencedTaskRunner* GetTaskRunner() override;
40 virtual base::SequencedTaskRunner* GetShutdownBlockingTaskRunner() override;
41
42 private:
43 ServiceWorkerDatabaseTaskManagerImpl(
44 const scoped_refptr<base::SequencedTaskRunner>& task_runner,
45 const scoped_refptr<base::SequencedTaskRunner>&
46 shutdown_blocking_task_runner);
47
48 scoped_refptr<base::SequencedTaskRunner> task_runner_;
49 scoped_refptr<base::SequencedTaskRunner> shutdown_blocking_task_runner_;
50
51 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDatabaseTaskManagerImpl);
52 };
53
54 // Dummy implementation for testing. It vends whatever you give it in the ctor.
55 class CONTENT_EXPORT MockServiceWorkerDatabaseTaskManager
56 : public NON_EXPORTED_BASE(ServiceWorkerDatabaseTaskManager) {
57 public:
58 explicit MockServiceWorkerDatabaseTaskManager(
59 const scoped_refptr<base::SequencedTaskRunner>& task_runner);
60 virtual ~MockServiceWorkerDatabaseTaskManager();
61
62 protected:
63 virtual scoped_ptr<ServiceWorkerDatabaseTaskManager> Clone() override;
64 virtual base::SequencedTaskRunner* GetTaskRunner() override;
65 virtual base::SequencedTaskRunner* GetShutdownBlockingTaskRunner() override;
66
67 private:
68 scoped_refptr<base::SequencedTaskRunner> task_runner_;
69
70 DISALLOW_COPY_AND_ASSIGN(MockServiceWorkerDatabaseTaskManager);
71 };
72
73 } // namespace content
74
75 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_TASK_RUNNER_MA NAGER_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698