| Index: webkit/dom_storage/dom_storage_task_runner.cc
|
| ===================================================================
|
| --- webkit/dom_storage/dom_storage_task_runner.cc (revision 127613)
|
| +++ webkit/dom_storage/dom_storage_task_runner.cc (working copy)
|
| @@ -40,30 +40,17 @@
|
| return true;
|
| }
|
|
|
| -bool DomStorageTaskRunner::PostNonNestableDelayedTask(
|
| - const tracked_objects::Location& from_here,
|
| - const base::Closure& task,
|
| - base::TimeDelta delay) {
|
| - return PostDelayedTask(from_here, task, delay);
|
| -}
|
| -
|
| -bool DomStorageTaskRunner::PostNonNestableDelayedTask(
|
| - const tracked_objects::Location& from_here,
|
| - const base::Closure& task,
|
| - int64 delay_ms) {
|
| - return PostDelayedTask(
|
| - from_here, task, base::TimeDelta::FromMilliseconds(delay_ms));
|
| -}
|
| -
|
| // DomStorageWorkerPoolTaskRunner
|
|
|
| DomStorageWorkerPoolTaskRunner::DomStorageWorkerPoolTaskRunner(
|
| base::SequencedWorkerPool* sequenced_worker_pool,
|
| - base::SequencedWorkerPool::SequenceToken sequence_token,
|
| + base::SequencedWorkerPool::SequenceToken primary_sequence_token,
|
| + base::SequencedWorkerPool::SequenceToken commit_sequence_token,
|
| base::MessageLoopProxy* delayed_task_loop)
|
| : DomStorageTaskRunner(delayed_task_loop),
|
| sequenced_worker_pool_(sequenced_worker_pool),
|
| - sequence_token_(sequence_token) {
|
| + primary_sequence_token_(primary_sequence_token),
|
| + commit_sequence_token_(commit_sequence_token) {
|
| }
|
|
|
| DomStorageWorkerPoolTaskRunner::~DomStorageWorkerPoolTaskRunner() {
|
| @@ -77,10 +64,8 @@
|
| // with a delay of zero, we detect that usage and avoid the unecessary
|
| // trip thru the message_loop.
|
| if (delay == base::TimeDelta()) {
|
| - // We can skip on shutdown as the destructor of DomStorageArea will ensure
|
| - // that any remaining data is committed to disk.
|
| return sequenced_worker_pool_->PostSequencedWorkerTaskWithShutdownBehavior(
|
| - sequence_token_, from_here, task,
|
| + primary_sequence_token_, from_here, task,
|
| base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
|
| }
|
| // Post a task to call this->PostTask() after the delay.
|
| @@ -91,8 +76,31 @@
|
| delay);
|
| }
|
|
|
| -// MockDomStorageTaskRunner
|
| +bool DomStorageWorkerPoolTaskRunner::PostShutdownBlockingTask(
|
| + const tracked_objects::Location& from_here,
|
| + SequenceID sequence_id,
|
| + const base::Closure& task) {
|
| + base::SequencedWorkerPool::SequenceToken token;
|
| + switch (sequence_id) {
|
| + case PRIMARY_SEQUENCE:
|
| + token = primary_sequence_token_;
|
| + break;
|
| + case COMMIT_SEQUENCE:
|
| + token = commit_sequence_token_;
|
| + break;
|
| + default:
|
| + NOTREACHED();
|
| + }
|
| + return sequenced_worker_pool_->PostSequencedWorkerTaskWithShutdownBehavior(
|
| + token, from_here, task,
|
| + base::SequencedWorkerPool::BLOCK_SHUTDOWN);
|
| +}
|
|
|
| +// MockDomStorageTaskRunner, there is no distinction between
|
| +// shutdown blocking or the commit sequence vs the read sequence
|
| +// in our mock, all tasks are scheduled on the provided message
|
| +// loop. And delay values are all squashed to zero.
|
| +
|
| MockDomStorageTaskRunner::MockDomStorageTaskRunner(
|
| base::MessageLoopProxy* message_loop)
|
| : DomStorageTaskRunner(message_loop) {
|
| @@ -102,9 +110,16 @@
|
| const tracked_objects::Location& from_here,
|
| const base::Closure& task,
|
| base::TimeDelta delay) {
|
| - // Squash all delays to zero in our mock.
|
| return DomStorageTaskRunner::PostDelayedTask(
|
| from_here, task, base::TimeDelta());
|
| }
|
|
|
| +bool MockDomStorageTaskRunner::PostShutdownBlockingTask(
|
| + const tracked_objects::Location& from_here,
|
| + SequenceID sequence_id,
|
| + const base::Closure& task) {
|
| + return DomStorageTaskRunner::PostDelayedTask(
|
| + from_here, task, base::TimeDelta());
|
| +}
|
| +
|
| } // namespace dom_storage
|
|
|