| 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 a4d63b2595aa929393db9452dd9373ae7f60891c..dc88f3a48dff7e1a37f2c909f35a41206e3dbd7c 100644
|
| --- a/components/offline_pages/offline_page_model_impl.cc
|
| +++ b/components/offline_pages/offline_page_model_impl.cc
|
| @@ -17,9 +17,11 @@
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/threading/thread_task_runner_handle.h"
|
| #include "base/time/time.h"
|
| +#include "components/bookmarks/browser/bookmark_node.h"
|
| #include "components/offline_pages/archive_manager.h"
|
| #include "components/offline_pages/client_namespace_constants.h"
|
| #include "components/offline_pages/client_policy_controller.h"
|
| +#include "components/offline_pages/offline_page_bookmark_observer.h"
|
| #include "components/offline_pages/offline_page_item.h"
|
| #include "components/offline_pages/offline_page_storage_manager.h"
|
| #include "url/gurl.h"
|
| @@ -255,6 +257,7 @@ OfflinePageModelImpl::OfflinePageModelImpl(
|
| is_loaded_(false),
|
| policy_controller_(new ClientPolicyController()),
|
| archive_manager_(new ArchiveManager(archives_dir, task_runner)),
|
| + bookmark_observer_(new OfflinePageBookmarkObserver(this)),
|
| weak_ptr_factory_(this) {
|
| archive_manager_->EnsureArchivesDirCreated(
|
| base::Bind(&OfflinePageModelImpl::OnEnsureArchivesDirCreatedDone,
|
| @@ -1068,6 +1071,27 @@ void OfflinePageModelImpl::PostClearStorageIfNeededTask() {
|
| weak_ptr_factory_.GetWeakPtr())));
|
| }
|
|
|
| +void OfflinePageModelImpl::ExpireRemovedBookmarkPage(
|
| + const bookmarks::BookmarkNode* node) {
|
| + ClientId client_id(kBookmarkNamespace, std::to_string(node->id()));
|
| + GetOfflineIdsForClientId(
|
| + client_id, base::Bind(&OfflinePageModelImpl::DoExpireRemovedBookmarkPages,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| +}
|
| +
|
| +void OfflinePageModelImpl::DoExpireRemovedBookmarkPages(
|
| + const std::vector<int64_t>& offline_ids) {
|
| + ExpirePages(offline_ids, base::Time::Now(),
|
| + base::Bind(&OfflinePageModelImpl::OnRemovedBookmarkPagesExpired,
|
| + weak_ptr_factory_.GetWeakPtr()));
|
| +}
|
| +
|
| +void OfflinePageModelImpl::OnRemovedBookmarkPagesExpired(bool result) {}
|
| +
|
| +OfflinePageBookmarkObserver* OfflinePageModelImpl::GetBookmarkObserver() {
|
| + return bookmark_observer_.get();
|
| +}
|
| +
|
| void OfflinePageModelImpl::RunWhenLoaded(const base::Closure& task) {
|
| if (!is_loaded_) {
|
| delayed_tasks_.push_back(task);
|
|
|