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

Unified Diff: webkit/dom_storage/dom_storage_task_runner.cc

Issue 9689033: Derive DomStorageTaskRunner from base::TaskRunner now that it exists. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/dom_storage/dom_storage_task_runner.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/dom_storage/dom_storage_task_runner.cc
===================================================================
--- webkit/dom_storage/dom_storage_task_runner.cc (revision 126447)
+++ webkit/dom_storage/dom_storage_task_runner.cc (working copy)
@@ -21,47 +21,53 @@
DomStorageTaskRunner::~DomStorageTaskRunner() {
}
-bool DomStorageTaskRunner::PostTask(
+bool DomStorageTaskRunner::PostDelayedTask(
const tracked_objects::Location& from_here,
- const base::Closure& task) {
- return message_loop_->PostTask(from_here, task);
+ const base::Closure& task,
+ base::TimeDelta delay) {
+ return message_loop_->PostDelayedTask(from_here, task, delay);
}
bool DomStorageTaskRunner::PostDelayedTask(
const tracked_objects::Location& from_here,
const base::Closure& task,
- base::TimeDelta delay) {
- return message_loop_->PostDelayedTask(from_here, task, delay);
+ int64 delay_ms) {
+ return PostDelayedTask(
+ from_here, task, base::TimeDelta::FromMilliseconds(delay_ms));
}
+bool DomStorageTaskRunner::RunsTasksOnCurrentThread() const {
+ return true;
+}
+
// DomStorageWorkerPoolTaskRunner
DomStorageWorkerPoolTaskRunner::DomStorageWorkerPoolTaskRunner(
base::SequencedWorkerPool* sequenced_worker_pool,
+ base::SequencedWorkerPool::SequenceToken sequence_token,
base::MessageLoopProxy* delayed_task_loop)
: DomStorageTaskRunner(delayed_task_loop),
sequenced_worker_pool_(sequenced_worker_pool),
- sequence_token_(
- sequenced_worker_pool->GetNamedSequenceToken("dom_storage_token")) {
+ sequence_token_(sequence_token) {
}
DomStorageWorkerPoolTaskRunner::~DomStorageWorkerPoolTaskRunner() {
}
-bool DomStorageWorkerPoolTaskRunner::PostTask(
- const tracked_objects::Location& from_here,
- const base::Closure& task) {
- // 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,
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
-}
-
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 == 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,
+ base::SequencedWorkerPool::SKIP_ON_SHUTDOWN);
+ }
// Post a task to call this->PostTask() after the delay.
return message_loop_->PostDelayedTask(
FROM_HERE,
@@ -81,8 +87,9 @@
const tracked_objects::Location& from_here,
const base::Closure& task,
base::TimeDelta delay) {
- // Don't wait in unit tests.
- return PostTask(from_here, task);
+ // Squash all delays to zero in our mock.
+ return DomStorageTaskRunner::PostDelayedTask(
+ from_here, task, base::TimeDelta());
}
} // namespace dom_storage
« no previous file with comments | « webkit/dom_storage/dom_storage_task_runner.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698