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

Side by Side Diff: components/offline_pages/core/prefetch/add_unique_urls_task.cc

Issue 2920083002: Prefetching: Introduce store commands abstractions to be used by tasks. (Closed)
Patch Set: Added TODO for NWake Created 3 years, 6 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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/offline_pages/core/prefetch/add_unique_urls_task.h" 5 #include "components/offline_pages/core/prefetch/add_unique_urls_task.h"
6 6
7 #include <memory>
8
7 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "url/gurl.h"
8 11
9 namespace offline_pages { 12 namespace offline_pages {
10 13
11 AddUniqueUrlsTask::AddUniqueUrlsTask( 14 AddUniqueUrlsTask::AddUniqueUrlsTask(
12 PrefetchStore* store, 15 std::unique_ptr<AddUrlsStoreCommand> add_urls_command,
16 std::unique_ptr<CleanupZombiesStoreCommand> zombies_cleanup_command,
17 const std::string& name_space,
13 const std::vector<PrefetchURL>& prefetch_urls) 18 const std::vector<PrefetchURL>& prefetch_urls)
14 : prefetch_store_(store), 19 : add_urls_command_(std::move(add_urls_command)),
20 zombies_cleanup_command_(std::move(zombies_cleanup_command)),
21 name_space_(name_space),
15 prefetch_urls_(prefetch_urls), 22 prefetch_urls_(prefetch_urls),
16 weak_ptr_factory_(this) {} 23 weak_ptr_factory_(this) {}
17 24
18 AddUniqueUrlsTask::~AddUniqueUrlsTask() {} 25 AddUniqueUrlsTask::~AddUniqueUrlsTask() {}
19 26
20 void AddUniqueUrlsTask::Run() { 27 void AddUniqueUrlsTask::Run() {
21 CHECK(prefetch_store_); 28 add_urls_command_->Execute(name_space_, prefetch_urls_,
22 TaskComplete(); 29 base::BindOnce(&AddUniqueUrlsTask::OnUrlsAdded,
30 weak_ptr_factory_.GetWeakPtr()));
31 }
32
33 void AddUniqueUrlsTask::OnUrlsAdded(bool success) {
34 if (success) {
35 // TODO(carlosk): schedule NWake here if at least one new entry was added to
36 // the store.
carlosk 2017/06/15 22:29:08 I'll leave this as a TODO right now as it will pro
37 std::vector<GURL> urls_to_keep;
38 for (const PrefetchURL& prefetch_url : prefetch_urls_)
39 urls_to_keep.push_back(prefetch_url.url);
40 zombies_cleanup_command_->Execute(
41 name_space_, urls_to_keep,
42 base::BindOnce(&AddUniqueUrlsTask::TaskComplete,
43 weak_ptr_factory_.GetWeakPtr()));
44 } else {
45 TaskComplete();
46 }
23 } 47 }
24 48
25 } // namespace offline_pages 49 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698