| Index: base/threading/sequenced_worker_pool.h | 
| diff --git a/base/threading/sequenced_worker_pool.h b/base/threading/sequenced_worker_pool.h | 
| index 1616b8fdd260200b62330e22e173cdb42784f32a..ba0e444210fe0b05e00f231cf2f5157c28621510 100644 | 
| --- a/base/threading/sequenced_worker_pool.h | 
| +++ b/base/threading/sequenced_worker_pool.h | 
| @@ -47,7 +47,8 @@ class SequencedTaskRunner; | 
| //     destruction will be visible to T2. | 
| // | 
| // Example: | 
| -//   SequencedWorkerPool::SequenceToken token = pool.GetSequenceToken(); | 
| +//   SequencedWorkerPool::SequenceToken token = | 
| +//       SequencedWorkerPool::GetSequenceToken(); | 
| //   pool.PostSequencedWorkerTask(token, SequencedWorkerPool::SKIP_ON_SHUTDOWN, | 
| //                                FROM_HERE, base::Bind(...)); | 
| //   pool.PostSequencedWorkerTask(token, SequencedWorkerPool::SKIP_ON_SHUTDOWN, | 
| @@ -163,6 +164,19 @@ class BASE_EXPORT SequencedWorkerPool : public TaskRunner { | 
| // an unsequenced task, returns an invalid SequenceToken. | 
| static SequenceToken GetSequenceTokenForCurrentThread(); | 
|  | 
| +  // Gets a SequencedTaskRunner for the current thread. If the current thread is | 
| +  // running an unsequenced task, a new SequenceToken will be generated and set, | 
| +  // so that the returned SequencedTaskRunner is guaranteed to run tasks after | 
| +  // the current task has finished running. | 
| +  static scoped_refptr<SequencedTaskRunner> | 
| +  GetSequencedTaskRunnerForCurrentThread(); | 
| + | 
| +  // Returns a unique token that can be used to sequence tasks posted to | 
| +  // PostSequencedWorkerTask(). Valid tokens are always nonzero. | 
| +  // TODO(bauerb): Rename this to better differentiate from | 
| +  // GetSequenceTokenForCurrentThread(). | 
| +  static SequenceToken GetSequenceToken(); | 
| + | 
| // Returns the SequencedWorkerPool that owns this thread, or null if the | 
| // current thread is not a SequencedWorkerPool worker thread. | 
| static scoped_refptr<SequencedWorkerPool> GetWorkerPoolForCurrentThread(); | 
| @@ -182,10 +196,6 @@ class BASE_EXPORT SequencedWorkerPool : public TaskRunner { | 
| const std::string& thread_name_prefix, | 
| TestingObserver* observer); | 
|  | 
| -  // Returns a unique token that can be used to sequence tasks posted to | 
| -  // PostSequencedWorkerTask(). Valid tokens are always nonzero. | 
| -  SequenceToken GetSequenceToken(); | 
| - | 
| // Returns the sequence token associated with the given name. Calling this | 
| // function multiple times with the same string will always produce the | 
| // same sequence token. If the name has not been used before, a new token | 
| @@ -310,6 +320,10 @@ class BASE_EXPORT SequencedWorkerPool : public TaskRunner { | 
| // sequence_token. | 
| bool IsRunningSequenceOnCurrentThread(SequenceToken sequence_token) const; | 
|  | 
| +  // Returns true if any thread is currently processing a task with the given | 
| +  // sequence token. Should only be called with a valid sequence token. | 
| +  bool IsRunningSequence(SequenceToken sequence_token) const; | 
| + | 
| // Blocks until all pending tasks are complete. This should only be called in | 
| // unit tests when you want to validate something that should have happened. | 
| // This will not flush delayed tasks; delayed tasks get deleted. | 
|  |