| Index: base/task.cc | 
| diff --git a/base/task.cc b/base/task.cc | 
| index d33f3e1a884fafa6013628150344b0c3d13ad394..e4da5474a0098d852963c1ca5c1b350ffa306d37 100644 | 
| --- a/base/task.cc | 
| +++ b/base/task.cc | 
| @@ -1,4 +1,4 @@ | 
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved. | 
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. | 
| // Use of this source code is governed by a BSD-style license that can be | 
| // found in the LICENSE file. | 
|  | 
| @@ -15,3 +15,23 @@ CancelableTask::CancelableTask() { | 
|  | 
| CancelableTask::~CancelableTask() { | 
| } | 
| + | 
| +namespace base { | 
| + | 
| +ScopedTaskRunner::ScopedTaskRunner(Task* task) : task_(task) { | 
| +} | 
| + | 
| +ScopedTaskRunner::~ScopedTaskRunner() { | 
| +  if (task_) { | 
| +    task_->Run(); | 
| +    delete task_; | 
| +  } | 
| +} | 
| + | 
| +Task* ScopedTaskRunner::Release() { | 
| +  Task* tmp = task_; | 
| +  task_ = NULL; | 
| +  return tmp; | 
| +} | 
| + | 
| +}  // namespace base | 
|  |