| 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 f4d787050f1a2f70574b8710b053f20349f1e03c..a3eac9486398fe786dd25e4fe748fb5d0e330972 100644
|
| --- a/components/offline_pages/offline_page_model.cc
|
| +++ b/components/offline_pages/offline_page_model.cc
|
| @@ -112,6 +112,23 @@ void OfflinePageModel::SavePage(const GURL& url,
|
| pending_archivers_.push_back(archiver.Pass());
|
| }
|
|
|
| +void OfflinePageModel::MarkPageAccessed(int64 bookmark_id) {
|
| + DCHECK(is_loaded_);
|
| + auto iter = offline_pages_.find(bookmark_id);
|
| + if (iter == offline_pages_.end())
|
| + return;
|
| +
|
| + // Make a copy of the cached item and update it. The cached item should only
|
| + // be updated upon the successful store operation.
|
| + OfflinePageItem offline_page_item = iter->second;
|
| + offline_page_item.last_access_time = base::Time::Now();
|
| + offline_page_item.access_count++;
|
| + store_->AddOrUpdateOfflinePage(
|
| + offline_page_item,
|
| + base::Bind(&OfflinePageModel::OnUpdateOfflinePageDone,
|
| + weak_ptr_factory_.GetWeakPtr(), offline_page_item));
|
| +}
|
| +
|
| void OfflinePageModel::DeletePageByBookmarkId(
|
| int64 bookmark_id,
|
| const DeletePageCallback& callback) {
|
| @@ -216,7 +233,7 @@ void OfflinePageModel::OnCreateArchiveDone(const GURL& requested_url,
|
|
|
| OfflinePageItem offline_page_item(url, bookmark_id, file_path, file_size,
|
| base::Time::Now());
|
| - store_->AddOfflinePage(
|
| + store_->AddOrUpdateOfflinePage(
|
| offline_page_item,
|
| base::Bind(&OfflinePageModel::OnAddOfflinePageDone,
|
| weak_ptr_factory_.GetWeakPtr(), archiver, callback,
|
| @@ -240,6 +257,13 @@ void OfflinePageModel::OnAddOfflinePageDone(OfflinePageArchiver* archiver,
|
| DeletePendingArchiver(archiver);
|
| }
|
|
|
| +void OfflinePageModel::OnUpdateOfflinePageDone(
|
| + const OfflinePageItem& offline_page_item, bool success) {
|
| + // Update the item in the cache only upon success.
|
| + if (success)
|
| + offline_pages_[offline_page_item.bookmark_id] = offline_page_item;
|
| +}
|
| +
|
| void OfflinePageModel::BookmarkModelChanged() {
|
| }
|
|
|
|
|