| Index: base/threading/sequenced_worker_pool.h | 
| diff --git a/base/threading/sequenced_worker_pool.h b/base/threading/sequenced_worker_pool.h | 
| index 7e04b071428c838dfcec0faa647f82baf2932045..9e3dd5dac2e5af5dcb43c061a0543e0b1a3aa939 100644 | 
| --- a/base/threading/sequenced_worker_pool.h | 
| +++ b/base/threading/sequenced_worker_pool.h | 
| @@ -126,6 +126,11 @@ class BASE_EXPORT SequencedWorkerPool : public TaskRunner { | 
| return id_ == other.id_; | 
| } | 
|  | 
| +    // Returns false if current thread is executing an unsequenced task. | 
| +    bool IsValid() const { | 
| +      return id_ != 0; | 
| +    } | 
| + | 
| private: | 
| friend class SequencedWorkerPool; | 
|  | 
| @@ -143,6 +148,11 @@ class BASE_EXPORT SequencedWorkerPool : public TaskRunner { | 
| virtual void OnDestruct() = 0; | 
| }; | 
|  | 
| +  // Gets the SequencedToken of the current thread. | 
| +  // If current thread is not a SequencedWorkerPool worker thread or is running | 
| +  // an unsequenced task, returns an invalid SequenceToken. | 
| +  static SequenceToken GetSequenceTokenForCurrentThread(); | 
| + | 
| // When constructing a SequencedWorkerPool, there must be a | 
| // MessageLoop on the current thread unless you plan to deliberately | 
| // leak it. | 
| @@ -159,7 +169,7 @@ class BASE_EXPORT SequencedWorkerPool : public TaskRunner { | 
| TestingObserver* observer); | 
|  | 
| // Returns a unique token that can be used to sequence tasks posted to | 
| -  // PostSequencedWorkerTask(). Valid tokens are alwys nonzero. | 
| +  // PostSequencedWorkerTask(). Valid tokens are always nonzero. | 
| SequenceToken GetSequenceToken(); | 
|  | 
| // Returns the sequence token associated with the given name. Calling this | 
|  |