| Index: components/offline_pages/offline_page_model.cc
|
| diff --git a/components/offline_pages/offline_page_model.cc b/components/offline_pages/offline_page_model.cc
|
| index 7f4b60c139732de21e127b328f02147cd22f4c43..b2d67ae1e9eafcaa23d39bf9f724baef296c3327 100644
|
| --- a/components/offline_pages/offline_page_model.cc
|
| +++ b/components/offline_pages/offline_page_model.cc
|
| @@ -283,6 +283,22 @@ void OfflinePageModel::ClearAll(const base::Closure& callback) {
|
| callback));
|
| }
|
|
|
| +void OfflinePageModel::ClearWithURLPredicate(
|
| + const base::Callback<bool(const GURL&)> predicate,
|
| + const base::Closure& callback) {
|
| + DCHECK(is_loaded_);
|
| +
|
| + std::vector<int64_t> bookmark_ids;
|
| + for (const auto& id_page_pair : offline_pages_) {
|
| + if (predicate.Run(GURL(id_page_pair.second.url)))
|
| + bookmark_ids.push_back(id_page_pair.first);
|
| + }
|
| + DeletePagesByBookmarkId(
|
| + bookmark_ids,
|
| + base::Bind(&OfflinePageModel::OnRemoveAllFilesDoneForClearAll,
|
| + weak_ptr_factory_.GetWeakPtr(), callback));
|
| +}
|
| +
|
| bool OfflinePageModel::HasOfflinePages() const {
|
| DCHECK(is_loaded_);
|
| // Check that at least one page is not marked for deletion. Because we have
|
|
|