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

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: self review 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 scoped_refptr<base::SequencedWorkerPool> pool_;
michaeln 2014/10/16 01:15:04 May not need the pool_ data member, the Clone meth
falken 2014/10/16 02:04:51 Good point also, done.
44 scoped_refptr<base::SequencedTaskRunner> task_runner_;
45 scoped_refptr<base::SequencedTaskRunner> shutdown_blocking_task_runner_;
46
47 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDatabaseTaskManagerImpl);
48 };
49
50 // Dummy implementation for testing. It vends whatever you give it in the ctor.
51 class CONTENT_EXPORT MockServiceWorkerDatabaseTaskManager
52 : public ServiceWorkerDatabaseTaskManager {
53 public:
54 explicit MockServiceWorkerDatabaseTaskManager(
55 const scoped_refptr<base::SequencedTaskRunner>& task_runner);
56 virtual ~MockServiceWorkerDatabaseTaskManager();
57
58 protected:
59 virtual scoped_ptr<ServiceWorkerDatabaseTaskManager> Clone() override;
60 virtual base::SequencedTaskRunner* GetTaskRunner() override;
61 virtual base::SequencedTaskRunner* GetShutdownBlockingTaskRunner() override;
62
63 private:
64 scoped_refptr<base::SequencedTaskRunner> task_runner_;
65
66 DISALLOW_COPY_AND_ASSIGN(MockServiceWorkerDatabaseTaskManager);
67 };
68
69 } // namespace content
70
71 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_DATABASE_TASK_RUNNER_MA NAGER_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698