| Index: base/sequenced_task_runner.h | 
| diff --git a/base/sequenced_task_runner.h b/base/sequenced_task_runner.h | 
| index 6bb3f2b8717b0bac60c64fa8c7bb6525eec01a44..0bedf2e1b9251190b09dd3a409a4db4689f3e81c 100644 | 
| --- a/base/sequenced_task_runner.h | 
| +++ b/base/sequenced_task_runner.h | 
| @@ -154,6 +154,24 @@ class BASE_EXPORT SequencedTaskRunner : public TaskRunner { | 
| const void* object); | 
| }; | 
|  | 
| +struct BASE_EXPORT OnTaskRunnerDeleter { | 
| +  explicit OnTaskRunnerDeleter(scoped_refptr<SequencedTaskRunner> task_runner); | 
| +  ~OnTaskRunnerDeleter(); | 
| + | 
| +  OnTaskRunnerDeleter(OnTaskRunnerDeleter&&); | 
| +  OnTaskRunnerDeleter& operator=(OnTaskRunnerDeleter&&); | 
| + | 
| +  template <typename T> | 
| +  void operator()(const T* ptr) { | 
| +    if (task_runner_->RunsTasksOnCurrentThread()) | 
| +      delete ptr; | 
| +    else if (ptr) | 
| +      task_runner_->DeleteSoon(FROM_HERE, ptr); | 
| +  } | 
| + | 
| +  scoped_refptr<SequencedTaskRunner> task_runner_; | 
| +}; | 
| + | 
| }  // namespace base | 
|  | 
| #endif  // BASE_SEQUENCED_TASK_RUNNER_H_ | 
|  |