Chromium Code Reviews| 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 |