Chromium Code Reviews| 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 242ade295c21c5ffb70575f1147708045042b194..1304b70b6ae7efb1c81a90cdae87c1c12c30eba9 100644 |
| --- a/components/offline_pages/offline_page_model.cc |
| +++ b/components/offline_pages/offline_page_model.cc |
| @@ -253,7 +253,13 @@ void OfflinePageModel::ClearAll(const base::Closure& callback) { |
| bool OfflinePageModel::HasOfflinePages() const { |
| DCHECK(is_loaded_); |
| - return !offline_pages_.empty(); |
| + // Check that at least one page is not marked for deletion. Because we have |
| + // pages marked for deletion, we cannot simply invert result of |empty()|. |
| + for (const auto& iter : offline_pages_) { |
|
Michael Courage
2015/11/25 19:00:58
optional nit: seems like there's a pretty even spl
fgorski
2015/11/25 19:27:26
Done.
|
| + if (!iter.second.IsMarkedForDeletion()) |
| + return true; |
| + } |
| + return false; |
| } |
| const std::vector<OfflinePageItem> OfflinePageModel::GetAllPages() const { |
| @@ -283,7 +289,9 @@ const std::vector<OfflinePageItem> OfflinePageModel::GetPagesToCleanUp() const { |
| const OfflinePageItem* OfflinePageModel::GetPageByBookmarkId( |
| int64 bookmark_id) const { |
| const auto iter = offline_pages_.find(bookmark_id); |
| - return iter != offline_pages_.end() ? &(iter->second) : nullptr; |
| + return iter != offline_pages_.end() && !iter->second.IsMarkedForDeletion() |
| + ? &(iter->second) |
| + : nullptr; |
| } |
| const OfflinePageItem* OfflinePageModel::GetPageByOfflineURL( |
| @@ -291,8 +299,10 @@ const OfflinePageItem* OfflinePageModel::GetPageByOfflineURL( |
| for (auto iter = offline_pages_.begin(); |
| iter != offline_pages_.end(); |
| ++iter) { |
| - if (iter->second.GetOfflineURL() == offline_url) |
| + if (iter->second.GetOfflineURL() == offline_url && |
| + !iter->second.IsMarkedForDeletion()) { |
| return &(iter->second); |
| + } |
| } |
| return nullptr; |
| } |
| @@ -301,8 +311,9 @@ const OfflinePageItem* OfflinePageModel::GetPageByOnlineURL( |
| const GURL& online_url) const { |
| for (auto iter = offline_pages_.begin(); iter != offline_pages_.end(); |
| ++iter) { |
| - if (iter->second.url == online_url) |
| + if (iter->second.url == online_url && !iter->second.IsMarkedForDeletion()) { |
| return &(iter->second); |
| + } |
| } |
| return nullptr; |
| } |