| Index: components/dom_distiller/core/dom_distiller_service.cc | 
| diff --git a/components/dom_distiller/core/dom_distiller_service.cc b/components/dom_distiller/core/dom_distiller_service.cc | 
| index bb31c6a0abda138e4b437bad00628d5db291c7da..3e1f7249868efac1e5c0bf6b0044cb0cdbcd4e5d 100644 | 
| --- a/components/dom_distiller/core/dom_distiller_service.cc | 
| +++ b/components/dom_distiller/core/dom_distiller_service.cc | 
| @@ -8,6 +8,7 @@ | 
|  | 
| #include "base/guid.h" | 
| #include "base/location.h" | 
| +#include "base/memory/ptr_util.h" | 
| #include "base/single_thread_task_runner.h" | 
| #include "base/threading/thread_task_runner_handle.h" | 
| #include "components/dom_distiller/core/distilled_content_store.h" | 
| @@ -215,9 +216,9 @@ bool DomDistillerService::GetOrCreateTaskTrackerForUrl( | 
| } | 
|  | 
| TaskTracker* DomDistillerService::GetTaskTrackerForUrl(const GURL& url) const { | 
| -  for (TaskList::const_iterator it = tasks_.begin(); it != tasks_.end(); ++it) { | 
| +  for (auto it = tasks_.begin(); it != tasks_.end(); ++it) { | 
| if ((*it)->HasUrl(url)) { | 
| -      return *it; | 
| +      return (*it).get(); | 
| } | 
| } | 
| return nullptr; | 
| @@ -226,9 +227,9 @@ TaskTracker* DomDistillerService::GetTaskTrackerForUrl(const GURL& url) const { | 
| TaskTracker* DomDistillerService::GetTaskTrackerForEntry( | 
| const ArticleEntry& entry) const { | 
| const std::string& entry_id = entry.entry_id(); | 
| -  for (TaskList::const_iterator it = tasks_.begin(); it != tasks_.end(); ++it) { | 
| +  for (auto it = tasks_.begin(); it != tasks_.end(); ++it) { | 
| if ((*it)->HasEntryId(entry_id)) { | 
| -      return *it; | 
| +      return (*it).get(); | 
| } | 
| } | 
| return nullptr; | 
| @@ -248,16 +249,19 @@ bool DomDistillerService::GetOrCreateTaskTrackerForEntry( | 
| TaskTracker* DomDistillerService::CreateTaskTracker(const ArticleEntry& entry) { | 
| TaskTracker::CancelCallback cancel_callback = | 
| base::Bind(&DomDistillerService::CancelTask, base::Unretained(this)); | 
| -  TaskTracker* tracker = | 
| -      new TaskTracker(entry, cancel_callback, content_store_.get()); | 
| -  tasks_.push_back(tracker); | 
| -  return tracker; | 
| +  tasks_.push_back(base::MakeUnique<TaskTracker>(entry, cancel_callback, | 
| +                                                 content_store_.get())); | 
| +  return tasks_.back().get(); | 
| } | 
|  | 
| void DomDistillerService::CancelTask(TaskTracker* task) { | 
| -  TaskList::iterator it = std::find(tasks_.begin(), tasks_.end(), task); | 
| +  auto it = std::find_if(tasks_.begin(), tasks_.end(), | 
| +                         [task](const std::unique_ptr<TaskTracker>& t) { | 
| +                           return task == t.get(); | 
| +                         }); | 
| if (it != tasks_.end()) { | 
| -    tasks_.weak_erase(it); | 
| +    it->release(); | 
| +    tasks_.erase(it); | 
| base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, task); | 
| } | 
| } | 
|  |