Chromium Code Reviews| Index: components/offline_pages/core/prefetch/add_unique_urls_task.cc |
| diff --git a/components/offline_pages/core/prefetch/add_unique_urls_task.cc b/components/offline_pages/core/prefetch/add_unique_urls_task.cc |
| index 58f46a0ed03a00df250c1276d8ed5439ac2aeef2..ad01b8c77212688b67852717dfe1cb9ca12718cb 100644 |
| --- a/components/offline_pages/core/prefetch/add_unique_urls_task.cc |
| +++ b/components/offline_pages/core/prefetch/add_unique_urls_task.cc |
| @@ -4,22 +4,46 @@ |
| #include "components/offline_pages/core/prefetch/add_unique_urls_task.h" |
| +#include <memory> |
| + |
| #include "base/bind.h" |
| +#include "url/gurl.h" |
| namespace offline_pages { |
| AddUniqueUrlsTask::AddUniqueUrlsTask( |
| - PrefetchStore* store, |
| + std::unique_ptr<AddUrlsStoreCommand> add_urls_command, |
| + std::unique_ptr<CleanupZombiesStoreCommand> zombies_cleanup_command, |
| + const std::string& name_space, |
| const std::vector<PrefetchURL>& prefetch_urls) |
| - : prefetch_store_(store), |
| + : add_urls_command_(std::move(add_urls_command)), |
| + zombies_cleanup_command_(std::move(zombies_cleanup_command)), |
| + name_space_(name_space), |
| prefetch_urls_(prefetch_urls), |
| weak_ptr_factory_(this) {} |
| AddUniqueUrlsTask::~AddUniqueUrlsTask() {} |
| void AddUniqueUrlsTask::Run() { |
| - CHECK(prefetch_store_); |
| - TaskComplete(); |
| + add_urls_command_->Execute(name_space_, prefetch_urls_, |
| + base::BindOnce(&AddUniqueUrlsTask::OnUrlsAdded, |
| + weak_ptr_factory_.GetWeakPtr())); |
| +} |
| + |
| +void AddUniqueUrlsTask::OnUrlsAdded(bool success) { |
| + if (success) { |
| + // TODO(carlosk): schedule NWake here if at least one new entry was added to |
| + // the store. |
|
carlosk
2017/06/15 22:29:08
I'll leave this as a TODO right now as it will pro
|
| + std::vector<GURL> urls_to_keep; |
| + for (const PrefetchURL& prefetch_url : prefetch_urls_) |
| + urls_to_keep.push_back(prefetch_url.url); |
| + zombies_cleanup_command_->Execute( |
| + name_space_, urls_to_keep, |
| + base::BindOnce(&AddUniqueUrlsTask::TaskComplete, |
| + weak_ptr_factory_.GetWeakPtr())); |
| + } else { |
| + TaskComplete(); |
| + } |
| } |
| } // namespace offline_pages |