Index: content/browser/dom_storage/dom_storage_task_runner.cc |
diff --git a/content/browser/dom_storage/dom_storage_task_runner.cc b/content/browser/dom_storage/dom_storage_task_runner.cc |
index c0d00d55d6e5f29342a512d6197e8b8e893e6e06..21eb54dfc9f379c401b85ca2bd558e21f1e59f16 100644 |
--- a/content/browser/dom_storage/dom_storage_task_runner.cc |
+++ b/content/browser/dom_storage/dom_storage_task_runner.cc |
@@ -4,6 +4,8 @@ |
#include "content/browser/dom_storage/dom_storage_task_runner.h" |
+#include <utility> |
+ |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
#include "base/location.h" |
@@ -15,20 +17,12 @@ namespace content { |
// DOMStorageWorkerPoolTaskRunner |
DOMStorageWorkerPoolTaskRunner::DOMStorageWorkerPoolTaskRunner( |
- base::SequencedWorkerPool* sequenced_worker_pool, |
- base::SequencedWorkerPool::SequenceToken primary_sequence_token, |
- base::SequencedWorkerPool::SequenceToken commit_sequence_token, |
- base::SingleThreadTaskRunner* delayed_task_task_runner) |
- : task_runner_(delayed_task_task_runner), |
- sequenced_worker_pool_(sequenced_worker_pool), |
- primary_sequence_token_(primary_sequence_token), |
- commit_sequence_token_(commit_sequence_token) { |
- primary_sequence_checker_.DetachFromSequence(); |
- commit_sequence_checker_.DetachFromSequence(); |
-} |
+ scoped_refptr<base::SequencedTaskRunner> primary_sequence, |
+ scoped_refptr<base::SequencedTaskRunner> commit_sequence) |
+ : primary_sequence_(std::move(primary_sequence)), |
+ commit_sequence_(std::move(commit_sequence)) {} |
-DOMStorageWorkerPoolTaskRunner::~DOMStorageWorkerPoolTaskRunner() { |
-} |
+DOMStorageWorkerPoolTaskRunner::~DOMStorageWorkerPoolTaskRunner() = default; |
bool DOMStorageWorkerPoolTaskRunner::RunsTasksOnCurrentThread() const { |
// It is valid for an implementation to always return true. |
@@ -39,61 +33,39 @@ bool DOMStorageWorkerPoolTaskRunner::PostDelayedTask( |
const tracked_objects::Location& from_here, |
const base::Closure& task, |
base::TimeDelta delay) { |
- // Note base::TaskRunner implements PostTask in terms of PostDelayedTask |
- // with a delay of zero, we detect that usage and avoid the unecessary |
- // trip thru the message loop. |
- if (delay.is_zero()) { |
- return sequenced_worker_pool_->PostSequencedWorkerTaskWithShutdownBehavior( |
- primary_sequence_token_, from_here, task, |
- base::SequencedWorkerPool::BLOCK_SHUTDOWN); |
- } |
- // Post a task to call this->PostTask() after the delay. |
- return task_runner_->PostDelayedTask( |
- FROM_HERE, |
- base::Bind(base::IgnoreResult(&DOMStorageWorkerPoolTaskRunner::PostTask), |
- this, from_here, task), |
- delay); |
+ return primary_sequence_->PostDelayedTask(from_here, task, delay); |
} |
bool DOMStorageWorkerPoolTaskRunner::PostShutdownBlockingTask( |
const tracked_objects::Location& from_here, |
SequenceID sequence_id, |
const base::Closure& task) { |
- return sequenced_worker_pool_->PostSequencedWorkerTaskWithShutdownBehavior( |
- IDtoToken(sequence_id), from_here, task, |
- base::SequencedWorkerPool::BLOCK_SHUTDOWN); |
+ return GetSequencedTaskRunner(sequence_id)->PostTask(from_here, task); |
} |
void DOMStorageWorkerPoolTaskRunner::AssertIsRunningOnPrimarySequence() const { |
- DCHECK(primary_sequence_checker_.CalledOnValidSequence()); |
+ DCHECK(primary_sequence_->RunsTasksOnCurrentThread()); |
} |
void DOMStorageWorkerPoolTaskRunner::AssertIsRunningOnCommitSequence() const { |
- DCHECK(commit_sequence_checker_.CalledOnValidSequence()); |
+ DCHECK(commit_sequence_->RunsTasksOnCurrentThread()); |
} |
scoped_refptr<base::SequencedTaskRunner> |
DOMStorageWorkerPoolTaskRunner::GetSequencedTaskRunner(SequenceID sequence_id) { |
- return sequenced_worker_pool_->GetSequencedTaskRunner(IDtoToken(sequence_id)); |
-} |
- |
-base::SequencedWorkerPool::SequenceToken |
-DOMStorageWorkerPoolTaskRunner::IDtoToken(SequenceID id) const { |
- if (id == PRIMARY_SEQUENCE) |
- return primary_sequence_token_; |
- DCHECK_EQ(COMMIT_SEQUENCE, id); |
- return commit_sequence_token_; |
+ if (sequence_id == PRIMARY_SEQUENCE) |
+ return primary_sequence_; |
+ DCHECK_EQ(COMMIT_SEQUENCE, sequence_id); |
+ return commit_sequence_; |
} |
// MockDOMStorageTaskRunner |
MockDOMStorageTaskRunner::MockDOMStorageTaskRunner( |
- base::SingleThreadTaskRunner* task_runner) |
- : task_runner_(task_runner) { |
-} |
+ scoped_refptr<base::SequencedTaskRunner> task_runner) |
+ : task_runner_(std::move(task_runner)) {} |
-MockDOMStorageTaskRunner::~MockDOMStorageTaskRunner() { |
-} |
+MockDOMStorageTaskRunner::~MockDOMStorageTaskRunner() = default; |
bool MockDOMStorageTaskRunner::RunsTasksOnCurrentThread() const { |
return task_runner_->RunsTasksOnCurrentThread(); |