Index: content/browser/service_worker/service_worker_database_task_manager.cc |
diff --git a/content/browser/service_worker/service_worker_database_task_manager.cc b/content/browser/service_worker/service_worker_database_task_manager.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..876c04eee386512e6c5206ce9fcd2853f0e66449 |
--- /dev/null |
+++ b/content/browser/service_worker/service_worker_database_task_manager.cc |
@@ -0,0 +1,71 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/sequenced_task_runner.h" |
+#include "base/threading/sequenced_worker_pool.h" |
+#include "content/browser/service_worker/service_worker_database_task_manager.h" |
+ |
+namespace content { |
+ |
+namespace { |
+ |
+const char kServiceWorkerDatabaseTaskSequenceTokenName[] = |
+ "service-worker-database-task-token"; |
+ |
+} // namespace |
+ |
+ServiceWorkerDatabaseTaskManagerImpl::ServiceWorkerDatabaseTaskManagerImpl( |
+ base::SequencedWorkerPool* pool) |
+ : pool_(pool) { |
+ base::SequencedWorkerPool::SequenceToken token = |
+ pool->GetNamedSequenceToken(kServiceWorkerDatabaseTaskSequenceTokenName); |
michaeln
2014/10/16 01:15:04
In the existing code, each swcontext uses a unique
falken
2014/10/16 02:04:51
Good point! Done.
|
+ task_runner_ = pool_->GetSequencedTaskRunner(token); |
+ shutdown_blocking_task_runner_ = |
+ pool_->GetSequencedTaskRunnerWithShutdownBehavior( |
+ token, base::SequencedWorkerPool::BLOCK_SHUTDOWN); |
+} |
+ |
+ServiceWorkerDatabaseTaskManagerImpl::~ServiceWorkerDatabaseTaskManagerImpl() { |
+} |
+ |
+scoped_ptr<ServiceWorkerDatabaseTaskManager> |
+ServiceWorkerDatabaseTaskManagerImpl::Clone() { |
+ return make_scoped_ptr(new ServiceWorkerDatabaseTaskManagerImpl(pool_.get())); |
+} |
+ |
+base::SequencedTaskRunner* |
+ServiceWorkerDatabaseTaskManagerImpl::GetTaskRunner() { |
+ return task_runner_.get(); |
+} |
+ |
+base::SequencedTaskRunner* |
+ServiceWorkerDatabaseTaskManagerImpl::GetShutdownBlockingTaskRunner() { |
+ return shutdown_blocking_task_runner_.get(); |
+} |
+ |
+MockServiceWorkerDatabaseTaskManager::MockServiceWorkerDatabaseTaskManager( |
+ const scoped_refptr<base::SequencedTaskRunner>& task_runner) |
+ : task_runner_(task_runner) { |
+} |
+ |
+MockServiceWorkerDatabaseTaskManager::~MockServiceWorkerDatabaseTaskManager() { |
+} |
+ |
+scoped_ptr<ServiceWorkerDatabaseTaskManager> |
+MockServiceWorkerDatabaseTaskManager::Clone() { |
+ return make_scoped_ptr( |
+ new MockServiceWorkerDatabaseTaskManager(task_runner_)); |
+} |
+ |
+base::SequencedTaskRunner* |
+MockServiceWorkerDatabaseTaskManager::GetTaskRunner() { |
+ return task_runner_.get(); |
+} |
+ |
+base::SequencedTaskRunner* |
+MockServiceWorkerDatabaseTaskManager::GetShutdownBlockingTaskRunner() { |
+ return task_runner_.get(); |
+} |
+ |
+} // namespace content |