| Index: base/files/file_path_watcher_kqueue.cc
 | 
| diff --git a/base/files/file_path_watcher_kqueue.cc b/base/files/file_path_watcher_kqueue.cc
 | 
| index 8941d2e419f9a143ec20f4ff3c2a067b8dc0c72e..e15cba7d34151f10816e17f08bbff09b55a5dd61 100644
 | 
| --- a/base/files/file_path_watcher_kqueue.cc
 | 
| +++ b/base/files/file_path_watcher_kqueue.cc
 | 
| @@ -11,6 +11,7 @@
 | 
|  #include "base/files/file_util.h"
 | 
|  #include "base/logging.h"
 | 
|  #include "base/strings/stringprintf.h"
 | 
| +#include "base/thread_task_runner_handle.h"
 | 
|  
 | 
|  // On some platforms these are not defined.
 | 
|  #if !defined(EV_RECEIPT)
 | 
| @@ -327,7 +328,7 @@ bool FilePathWatcherKQueue::Watch(const FilePath& path,
 | 
|    target_ = path;
 | 
|  
 | 
|    MessageLoop::current()->AddDestructionObserver(this);
 | 
| -  io_message_loop_ = base::MessageLoopProxy::current();
 | 
| +  io_task_runner_ = ThreadTaskRunnerHandle::Get();
 | 
|  
 | 
|    kqueue_ = kqueue();
 | 
|    if (kqueue_ == -1) {
 | 
| @@ -356,14 +357,14 @@ bool FilePathWatcherKQueue::Watch(const FilePath& path,
 | 
|  }
 | 
|  
 | 
|  void FilePathWatcherKQueue::Cancel() {
 | 
| -  base::MessageLoopProxy* proxy = io_message_loop_.get();
 | 
| -  if (!proxy) {
 | 
| +  SingleThreadTaskRunner* task_runner = io_task_runner_.get();
 | 
| +  if (!task_runner) {
 | 
|      set_cancelled();
 | 
|      return;
 | 
|    }
 | 
| -  if (!proxy->BelongsToCurrentThread()) {
 | 
| -    proxy->PostTask(FROM_HERE,
 | 
| -                    base::Bind(&FilePathWatcherKQueue::Cancel, this));
 | 
| +  if (!task_runner->BelongsToCurrentThread()) {
 | 
| +    task_runner->PostTask(FROM_HERE,
 | 
| +                          base::Bind(&FilePathWatcherKQueue::Cancel, this));
 | 
|      return;
 | 
|    }
 | 
|    CancelOnMessageLoopThread();
 | 
| @@ -380,7 +381,7 @@ void FilePathWatcherKQueue::CancelOnMessageLoopThread() {
 | 
|      kqueue_ = -1;
 | 
|      std::for_each(events_.begin(), events_.end(), ReleaseEvent);
 | 
|      events_.clear();
 | 
| -    io_message_loop_ = NULL;
 | 
| +    io_task_runner_ = NULL;
 | 
|      MessageLoop::current()->RemoveDestructionObserver(this);
 | 
|      callback_.Reset();
 | 
|    }
 | 
| 
 |