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

Side by Side Diff: components/offline_pages/offline_page_bookmark_bridge.cc

Issue 1904613005: [Offline pages] Removing bookmarks dependency from offline pages component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix unit tests compilation Created 4 years, 8 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "components/offline_pages/offline_page_bookmark_bridge.h"
6
7 #include "base/bind.h"
8 #include "base/logging.h"
9 #include "base/strings/string_number_conversions.h"
10 #include "components/bookmarks/browser/base_bookmark_model_observer.h"
11 #include "components/bookmarks/browser/bookmark_node.h"
12 #include "components/offline_pages/offline_page_item.h"
13 #include "components/offline_pages/offline_page_model.h"
14
15 namespace offline_pages {
16
17 namespace {
18 void EmptyDeleteCallback(OfflinePageModel::DeletePageResult /* result */) {}
19 }
20
21 OfflinePageBookmarkBridge::OfflinePageBookmarkBridge(
22 OfflinePageModel* model,
23 bookmarks::BookmarkModel* bookmark_model)
24 : offline_model_(model), bookmark_model_(bookmark_model) {}
25
26 void OfflinePageBookmarkBridge::BookmarkModelChanged() {}
27
28 void OfflinePageBookmarkBridge::BookmarkNodeAdded(
29 bookmarks::BookmarkModel* model,
30 const bookmarks::BookmarkNode* parent,
31 int index) {
32 DCHECK_EQ(model, bookmark_model_);
33 const bookmarks::BookmarkNode* node = parent->GetChild(index);
34 DCHECK(node);
35 ClientId client_id(BOOKMARK_NAMESPACE, base::Int64ToString(node->id()));
36 std::vector<int64_t> ids = offline_model_->GetOfflineIdsForClientId(
37 client_id, true /* include_deleted */);
38
39 for (const auto& id : ids)
40 offline_model_->UndoPageDeletion(id);
41 }
42
43 void OfflinePageBookmarkBridge::BookmarkNodeRemoved(
44 bookmarks::BookmarkModel* model,
45 const bookmarks::BookmarkNode* parent,
46 int old_index,
47 const bookmarks::BookmarkNode* node,
48 const std::set<GURL>& removed_urls) {
49 DCHECK_EQ(model, bookmark_model_);
50 ClientId client_id;
51 client_id.name_space = BOOKMARK_NAMESPACE;
52 client_id.id = base::Int64ToString(node->id());
53 std::vector<int64_t> ids =
54 offline_model_->GetOfflineIdsForClientId(client_id);
55 offline_model_->MarkPagesForDeletion(ids, base::Bind(&EmptyDeleteCallback));
56 }
57
58 void OfflinePageBookmarkBridge::BookmarkNodeChanged(
59 bookmarks::BookmarkModel* model,
60 const bookmarks::BookmarkNode* node) {
61 DCHECK_EQ(model, bookmark_model_);
62 // BookmarkNodeChanged could be triggered if title or URL gets changed. If
63 // the latter, we need to invalidate the offline copy.
64 ClientId client_id;
65 client_id.name_space = BOOKMARK_NAMESPACE;
66 client_id.id = base::Int64ToString(node->id());
67 std::vector<int64_t> ids =
68 offline_model_->GetOfflineIdsForClientId(client_id);
69 std::vector<int64_t> ids_to_delete;
70 for (const auto& id : ids) {
71 const OfflinePageItem* page = offline_model_->GetPageByOfflineId(id);
72 if (page != nullptr && page->url != node->url())
73 ids_to_delete.push_back(id);
74 }
75 offline_model_->DeletePagesByOfflineId(ids_to_delete,
76 base::Bind(&EmptyDeleteCallback));
77 }
78
79 void OfflinePageBookmarkBridge::BookmarkModelBeingDeleted(
80 bookmarks::BookmarkModel* model) {
81 DCHECK_EQ(model, bookmark_model_);
82 delete this;
83 }
84
85 } // namespace offline_pages
OLDNEW
« no previous file with comments | « components/offline_pages/offline_page_bookmark_bridge.h ('k') | components/offline_pages/offline_page_metadata_store_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698