Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(518)

Side by Side Diff: components/dom_distiller/core/dom_distiller_service.cc

Issue 2712413002: Remove ScopedVector in //components/dom_distiller/ (Closed)
Patch Set: Remove ScopedVector in //components/dom_distiller/ Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/dom_distiller/core/dom_distiller_service.h" 5 #include "components/dom_distiller/core/dom_distiller_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/guid.h" 9 #include "base/guid.h"
10 #include "base/location.h" 10 #include "base/location.h"
11 #include "base/memory/ptr_util.h"
11 #include "base/single_thread_task_runner.h" 12 #include "base/single_thread_task_runner.h"
12 #include "base/threading/thread_task_runner_handle.h" 13 #include "base/threading/thread_task_runner_handle.h"
13 #include "components/dom_distiller/core/distilled_content_store.h" 14 #include "components/dom_distiller/core/distilled_content_store.h"
14 #include "components/dom_distiller/core/dom_distiller_store.h" 15 #include "components/dom_distiller/core/dom_distiller_store.h"
15 #include "components/dom_distiller/core/proto/distilled_article.pb.h" 16 #include "components/dom_distiller/core/proto/distilled_article.pb.h"
16 #include "components/dom_distiller/core/task_tracker.h" 17 #include "components/dom_distiller/core/task_tracker.h"
17 #include "url/gurl.h" 18 #include "url/gurl.h"
18 19
19 namespace dom_distiller { 20 namespace dom_distiller {
20 21
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 if (*task_tracker) { 209 if (*task_tracker) {
209 return false; 210 return false;
210 } 211 }
211 212
212 ArticleEntry skeleton_entry = CreateSkeletonEntryForUrl(url); 213 ArticleEntry skeleton_entry = CreateSkeletonEntryForUrl(url);
213 *task_tracker = CreateTaskTracker(skeleton_entry); 214 *task_tracker = CreateTaskTracker(skeleton_entry);
214 return true; 215 return true;
215 } 216 }
216 217
217 TaskTracker* DomDistillerService::GetTaskTrackerForUrl(const GURL& url) const { 218 TaskTracker* DomDistillerService::GetTaskTrackerForUrl(const GURL& url) const {
218 for (TaskList::const_iterator it = tasks_.begin(); it != tasks_.end(); ++it) { 219 for (auto it = tasks_.begin(); it != tasks_.end(); ++it) {
219 if ((*it)->HasUrl(url)) { 220 if ((*it)->HasUrl(url)) {
220 return *it; 221 return (*it).get();
221 } 222 }
222 } 223 }
223 return nullptr; 224 return nullptr;
224 } 225 }
225 226
226 TaskTracker* DomDistillerService::GetTaskTrackerForEntry( 227 TaskTracker* DomDistillerService::GetTaskTrackerForEntry(
227 const ArticleEntry& entry) const { 228 const ArticleEntry& entry) const {
228 const std::string& entry_id = entry.entry_id(); 229 const std::string& entry_id = entry.entry_id();
229 for (TaskList::const_iterator it = tasks_.begin(); it != tasks_.end(); ++it) { 230 for (auto it = tasks_.begin(); it != tasks_.end(); ++it) {
230 if ((*it)->HasEntryId(entry_id)) { 231 if ((*it)->HasEntryId(entry_id)) {
231 return *it; 232 return (*it).get();
232 } 233 }
233 } 234 }
234 return nullptr; 235 return nullptr;
235 } 236 }
236 237
237 bool DomDistillerService::GetOrCreateTaskTrackerForEntry( 238 bool DomDistillerService::GetOrCreateTaskTrackerForEntry(
238 const ArticleEntry& entry, 239 const ArticleEntry& entry,
239 TaskTracker** task_tracker) { 240 TaskTracker** task_tracker) {
240 *task_tracker = GetTaskTrackerForEntry(entry); 241 *task_tracker = GetTaskTrackerForEntry(entry);
241 if (!*task_tracker) { 242 if (!*task_tracker) {
242 *task_tracker = CreateTaskTracker(entry); 243 *task_tracker = CreateTaskTracker(entry);
243 return true; 244 return true;
244 } 245 }
245 return false; 246 return false;
246 } 247 }
247 248
248 TaskTracker* DomDistillerService::CreateTaskTracker(const ArticleEntry& entry) { 249 TaskTracker* DomDistillerService::CreateTaskTracker(const ArticleEntry& entry) {
249 TaskTracker::CancelCallback cancel_callback = 250 TaskTracker::CancelCallback cancel_callback =
250 base::Bind(&DomDistillerService::CancelTask, base::Unretained(this)); 251 base::Bind(&DomDistillerService::CancelTask, base::Unretained(this));
251 TaskTracker* tracker = 252 tasks_.push_back(base::MakeUnique<TaskTracker>(entry, cancel_callback,
252 new TaskTracker(entry, cancel_callback, content_store_.get()); 253 content_store_.get()));
253 tasks_.push_back(tracker); 254 return tasks_.back().get();
254 return tracker;
255 } 255 }
256 256
257 void DomDistillerService::CancelTask(TaskTracker* task) { 257 void DomDistillerService::CancelTask(TaskTracker* task) {
258 TaskList::iterator it = std::find(tasks_.begin(), tasks_.end(), task); 258 auto it = std::find_if(tasks_.begin(), tasks_.end(),
259 [task](const std::unique_ptr<TaskTracker>& t) {
260 return task == t.get();
261 });
259 if (it != tasks_.end()) { 262 if (it != tasks_.end()) {
260 tasks_.weak_erase(it); 263 it->release();
264 tasks_.erase(it);
261 base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, task); 265 base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, task);
262 } 266 }
263 } 267 }
264 268
265 void DomDistillerService::AddDistilledPageToList( 269 void DomDistillerService::AddDistilledPageToList(
266 const ArticleEntry& entry, 270 const ArticleEntry& entry,
267 const DistilledArticleProto* article_proto, 271 const DistilledArticleProto* article_proto,
268 bool distillation_succeeded) { 272 bool distillation_succeeded) {
269 DCHECK(IsEntryValid(entry)); 273 DCHECK(IsEntryValid(entry));
270 if (store_ && distillation_succeeded) { 274 if (store_ && distillation_succeeded) {
(...skipping 16 matching lines...) Expand all
287 if (store_) { 291 if (store_) {
288 store_->RemoveObserver(observer); 292 store_->RemoveObserver(observer);
289 } 293 }
290 } 294 }
291 295
292 DistilledPagePrefs* DomDistillerService::GetDistilledPagePrefs() { 296 DistilledPagePrefs* DomDistillerService::GetDistilledPagePrefs() {
293 return distilled_page_prefs_.get(); 297 return distilled_page_prefs_.get();
294 } 298 }
295 299
296 } // namespace dom_distiller 300 } // namespace dom_distiller
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698