Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/offline_page_model_impl.h" | 5 #include "components/offline_pages/offline_page_model_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 372 | 372 |
| 373 std::vector<int64_t> offline_ids; | 373 std::vector<int64_t> offline_ids; |
| 374 for (const auto& id_page_pair : offline_pages_) | 374 for (const auto& id_page_pair : offline_pages_) |
| 375 offline_ids.push_back(id_page_pair.first); | 375 offline_ids.push_back(id_page_pair.first); |
| 376 DeletePagesByOfflineId( | 376 DeletePagesByOfflineId( |
| 377 offline_ids, | 377 offline_ids, |
| 378 base::Bind(&OfflinePageModelImpl::OnRemoveAllFilesDoneForClearAll, | 378 base::Bind(&OfflinePageModelImpl::OnRemoveAllFilesDoneForClearAll, |
| 379 weak_ptr_factory_.GetWeakPtr(), callback)); | 379 weak_ptr_factory_.GetWeakPtr(), callback)); |
| 380 } | 380 } |
| 381 | 381 |
| 382 void OfflinePageModelImpl::DeletePagesByURLPredicate( | 382 void OfflinePageModelImpl::DeleteCachedPagesByURLPredicate( |
| 383 const UrlPredicate& predicate, | 383 const UrlPredicate& predicate, |
| 384 const DeletePageCallback& callback) { | 384 const DeletePageCallback& callback) { |
| 385 RunWhenLoaded(base::Bind(&OfflinePageModelImpl::DoDeletePagesByURLPredicate, | 385 RunWhenLoaded( |
| 386 weak_ptr_factory_.GetWeakPtr(), predicate, | 386 base::Bind(&OfflinePageModelImpl::DoDeleteCachedPagesByURLPredicate, |
| 387 callback)); | 387 weak_ptr_factory_.GetWeakPtr(), predicate, callback)); |
| 388 } | 388 } |
| 389 | 389 |
| 390 void OfflinePageModelImpl::DoDeletePagesByURLPredicate( | 390 void OfflinePageModelImpl::DoDeleteCachedPagesByURLPredicate( |
| 391 const UrlPredicate& predicate, | 391 const UrlPredicate& predicate, |
| 392 const DeletePageCallback& callback) { | 392 const DeletePageCallback& callback) { |
| 393 DCHECK(is_loaded_); | 393 DCHECK(is_loaded_); |
| 394 | 394 |
| 395 std::vector<int64_t> offline_ids; | 395 std::vector<int64_t> offline_ids; |
| 396 for (const auto& id_page_pair : offline_pages_) { | 396 for (const auto& id_page_pair : offline_pages_) { |
| 397 if (predicate.Run(id_page_pair.second.url)) | 397 if (!IsPageUserRequested(id_page_pair.second) && |
| 398 predicate.Run(id_page_pair.second.url)) | |
| 398 offline_ids.push_back(id_page_pair.first); | 399 offline_ids.push_back(id_page_pair.first); |
| 399 } | 400 } |
| 400 DoDeletePagesByOfflineId(offline_ids, callback); | 401 DoDeletePagesByOfflineId(offline_ids, callback); |
| 401 } | 402 } |
| 402 | 403 |
| 403 void OfflinePageModelImpl::HasPages(const std::string& name_space, | 404 void OfflinePageModelImpl::HasPages(const std::string& name_space, |
| 404 const HasPagesCallback& callback) { | 405 const HasPagesCallback& callback) { |
| 405 RunWhenLoaded(base::Bind(&OfflinePageModelImpl::HasPagesAfterLoadDone, | 406 RunWhenLoaded(base::Bind(&OfflinePageModelImpl::HasPagesAfterLoadDone, |
| 406 weak_ptr_factory_.GetWeakPtr(), name_space, | 407 weak_ptr_factory_.GetWeakPtr(), name_space, |
| 407 callback)); | 408 callback)); |
| (...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1053 } | 1054 } |
| 1054 | 1055 |
| 1055 void OfflinePageModelImpl::PostClearStorageIfNeededTask() { | 1056 void OfflinePageModelImpl::PostClearStorageIfNeededTask() { |
| 1056 base::ThreadTaskRunnerHandle::Get()->PostTask( | 1057 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 1057 FROM_HERE, base::Bind(&OfflinePageModelImpl::ClearStorageIfNeeded, | 1058 FROM_HERE, base::Bind(&OfflinePageModelImpl::ClearStorageIfNeeded, |
| 1058 weak_ptr_factory_.GetWeakPtr(), | 1059 weak_ptr_factory_.GetWeakPtr(), |
| 1059 base::Bind(&OfflinePageModelImpl::OnStorageCleared, | 1060 base::Bind(&OfflinePageModelImpl::OnStorageCleared, |
| 1060 weak_ptr_factory_.GetWeakPtr()))); | 1061 weak_ptr_factory_.GetWeakPtr()))); |
| 1061 } | 1062 } |
| 1062 | 1063 |
| 1064 bool OfflinePageModelImpl::IsPageUserRequested( | |
|
fgorski
2016/08/24 16:22:03
IsUserRequestedPage
romax
2016/08/24 17:26:22
Done.
| |
| 1065 const OfflinePageItem& offline_page) const { | |
| 1066 return (offline_page.client_id.name_space == kAsyncNamespace || | |
| 1067 offline_page.client_id.name_space == kDownloadNamespace); | |
| 1068 } | |
| 1069 | |
| 1063 void OfflinePageModelImpl::RunWhenLoaded(const base::Closure& task) { | 1070 void OfflinePageModelImpl::RunWhenLoaded(const base::Closure& task) { |
| 1064 if (!is_loaded_) { | 1071 if (!is_loaded_) { |
| 1065 delayed_tasks_.push_back(task); | 1072 delayed_tasks_.push_back(task); |
| 1066 return; | 1073 return; |
| 1067 } | 1074 } |
| 1068 | 1075 |
| 1069 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task); | 1076 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, task); |
| 1070 } | 1077 } |
| 1071 | 1078 |
| 1072 } // namespace offline_pages | 1079 } // namespace offline_pages |
| OLD | NEW |