| Index: components/offline_pages/offline_page_model_impl.cc
|
| diff --git a/components/offline_pages/offline_page_model_impl.cc b/components/offline_pages/offline_page_model_impl.cc
|
| index 7b9ca4419eb03f3d794c337a13bb5575de34fec7..806d4f0c7f803b5948766ff896c99496a2a843de 100644
|
| --- a/components/offline_pages/offline_page_model_impl.cc
|
| +++ b/components/offline_pages/offline_page_model_impl.cc
|
| @@ -379,22 +379,23 @@ void OfflinePageModelImpl::ClearAll(const base::Closure& callback) {
|
| weak_ptr_factory_.GetWeakPtr(), callback));
|
| }
|
|
|
| -void OfflinePageModelImpl::DeletePagesByURLPredicate(
|
| +void OfflinePageModelImpl::DeleteCachedPagesByURLPredicate(
|
| const UrlPredicate& predicate,
|
| const DeletePageCallback& callback) {
|
| - RunWhenLoaded(base::Bind(&OfflinePageModelImpl::DoDeletePagesByURLPredicate,
|
| - weak_ptr_factory_.GetWeakPtr(), predicate,
|
| - callback));
|
| + RunWhenLoaded(
|
| + base::Bind(&OfflinePageModelImpl::DoDeleteCachedPagesByURLPredicate,
|
| + weak_ptr_factory_.GetWeakPtr(), predicate, callback));
|
| }
|
|
|
| -void OfflinePageModelImpl::DoDeletePagesByURLPredicate(
|
| +void OfflinePageModelImpl::DoDeleteCachedPagesByURLPredicate(
|
| const UrlPredicate& predicate,
|
| const DeletePageCallback& callback) {
|
| DCHECK(is_loaded_);
|
|
|
| std::vector<int64_t> offline_ids;
|
| for (const auto& id_page_pair : offline_pages_) {
|
| - if (predicate.Run(id_page_pair.second.url))
|
| + if (!IsUserRequestedPage(id_page_pair.second) &&
|
| + predicate.Run(id_page_pair.second.url))
|
| offline_ids.push_back(id_page_pair.first);
|
| }
|
| DoDeletePagesByOfflineId(offline_ids, callback);
|
| @@ -1060,6 +1061,12 @@ void OfflinePageModelImpl::PostClearStorageIfNeededTask() {
|
| weak_ptr_factory_.GetWeakPtr())));
|
| }
|
|
|
| +bool OfflinePageModelImpl::IsUserRequestedPage(
|
| + const OfflinePageItem& offline_page) const {
|
| + return (offline_page.client_id.name_space == kAsyncNamespace ||
|
| + offline_page.client_id.name_space == kDownloadNamespace);
|
| +}
|
| +
|
| void OfflinePageModelImpl::RunWhenLoaded(const base::Closure& task) {
|
| if (!is_loaded_) {
|
| delayed_tasks_.push_back(task);
|
|
|