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

Unified Diff: components/offline_pages/offline_page_model_impl.cc

Issue 2275833002: [Offline Pages] Don't remove user-requested pages when deleting cache. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments. Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
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);
« no previous file with comments | « components/offline_pages/offline_page_model_impl.h ('k') | components/offline_pages/offline_page_model_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698