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

Side by Side Diff: chrome/browser/sync/glue/bookmark_change_processor.h

Issue 865163003: bookmarks: Move BookmarkNode into 'bookmarks' namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: enhanced_bookmarks fix Created 5 years, 10 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_SYNC_GLUE_BOOKMARK_CHANGE_PROCESSOR_H_ 5 #ifndef CHROME_BROWSER_SYNC_GLUE_BOOKMARK_CHANGE_PROCESSOR_H_
6 #define CHROME_BROWSER_SYNC_GLUE_BOOKMARK_CHANGE_PROCESSOR_H_ 6 #define CHROME_BROWSER_SYNC_GLUE_BOOKMARK_CHANGE_PROCESSOR_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 28 matching lines...) Expand all
39 BookmarkModelAssociator* model_associator, 39 BookmarkModelAssociator* model_associator,
40 sync_driver::DataTypeErrorHandler* error_handler); 40 sync_driver::DataTypeErrorHandler* error_handler);
41 ~BookmarkChangeProcessor() override; 41 ~BookmarkChangeProcessor() override;
42 42
43 // bookmarks::BookmarkModelObserver: 43 // bookmarks::BookmarkModelObserver:
44 // BookmarkModel -> sync API model change application. 44 // BookmarkModel -> sync API model change application.
45 void BookmarkModelLoaded(bookmarks::BookmarkModel* model, 45 void BookmarkModelLoaded(bookmarks::BookmarkModel* model,
46 bool ids_reassigned) override; 46 bool ids_reassigned) override;
47 void BookmarkModelBeingDeleted(bookmarks::BookmarkModel* model) override; 47 void BookmarkModelBeingDeleted(bookmarks::BookmarkModel* model) override;
48 void BookmarkNodeMoved(bookmarks::BookmarkModel* model, 48 void BookmarkNodeMoved(bookmarks::BookmarkModel* model,
49 const BookmarkNode* old_parent, 49 const bookmarks::BookmarkNode* old_parent,
50 int old_index, 50 int old_index,
51 const BookmarkNode* new_parent, 51 const bookmarks::BookmarkNode* new_parent,
52 int new_index) override; 52 int new_index) override;
53 void BookmarkNodeAdded(bookmarks::BookmarkModel* model, 53 void BookmarkNodeAdded(bookmarks::BookmarkModel* model,
54 const BookmarkNode* parent, 54 const bookmarks::BookmarkNode* parent,
55 int index) override; 55 int index) override;
56 void BookmarkNodeRemoved(bookmarks::BookmarkModel* model, 56 void BookmarkNodeRemoved(bookmarks::BookmarkModel* model,
57 const BookmarkNode* parent, 57 const bookmarks::BookmarkNode* parent,
58 int index, 58 int index,
59 const BookmarkNode* node, 59 const bookmarks::BookmarkNode* node,
60 const std::set<GURL>& removed_urls) override; 60 const std::set<GURL>& removed_urls) override;
61 void BookmarkAllUserNodesRemoved(bookmarks::BookmarkModel* model, 61 void BookmarkAllUserNodesRemoved(bookmarks::BookmarkModel* model,
62 const std::set<GURL>& removed_urls) override; 62 const std::set<GURL>& removed_urls) override;
63 void BookmarkNodeChanged(bookmarks::BookmarkModel* model, 63 void BookmarkNodeChanged(bookmarks::BookmarkModel* model,
64 const BookmarkNode* node) override; 64 const bookmarks::BookmarkNode* node) override;
65 void BookmarkMetaInfoChanged(bookmarks::BookmarkModel* model, 65 void BookmarkMetaInfoChanged(bookmarks::BookmarkModel* model,
66 const BookmarkNode* node) override; 66 const bookmarks::BookmarkNode* node) override;
67 void BookmarkNodeFaviconChanged(bookmarks::BookmarkModel* model, 67 void BookmarkNodeFaviconChanged(bookmarks::BookmarkModel* model,
68 const BookmarkNode* node) override; 68 const bookmarks::BookmarkNode* node) override;
69 void BookmarkNodeChildrenReordered(bookmarks::BookmarkModel* model, 69 void BookmarkNodeChildrenReordered(
70 const BookmarkNode* node) override; 70 bookmarks::BookmarkModel* model,
71 const bookmarks::BookmarkNode* node) override;
71 72
72 // The change processor implementation, responsible for applying changes from 73 // The change processor implementation, responsible for applying changes from
73 // the sync model to the bookmarks model. 74 // the sync model to the bookmarks model.
74 void ApplyChangesFromSyncModel( 75 void ApplyChangesFromSyncModel(
75 const syncer::BaseTransaction* trans, 76 const syncer::BaseTransaction* trans,
76 int64 model_version, 77 int64 model_version,
77 const syncer::ImmutableChangeRecordList& changes) override; 78 const syncer::ImmutableChangeRecordList& changes) override;
78 79
79 // The following methods are static and hence may be invoked at any time, and 80 // The following methods are static and hence may be invoked at any time, and
80 // do not depend on having a running ChangeProcessor. 81 // do not depend on having a running ChangeProcessor.
81 82
82 // Updates the title, URL, creation time and favicon of the bookmark |node| 83 // Updates the title, URL, creation time and favicon of the bookmark |node|
83 // with data taken from the |sync_node| sync node. 84 // with data taken from the |sync_node| sync node.
84 static void UpdateBookmarkWithSyncData(const syncer::BaseNode& sync_node, 85 static void UpdateBookmarkWithSyncData(const syncer::BaseNode& sync_node,
85 bookmarks::BookmarkModel* model, 86 bookmarks::BookmarkModel* model,
86 const BookmarkNode* node, 87 const bookmarks::BookmarkNode* node,
87 Profile* profile); 88 Profile* profile);
88 89
89 // Creates a bookmark node under the given parent node from the given sync 90 // Creates a bookmark node under the given parent node from the given sync
90 // node. Returns the newly created node. The created node is placed at the 91 // node. Returns the newly created node. The created node is placed at the
91 // specified index among the parent's children. 92 // specified index among the parent's children.
92 static const BookmarkNode* CreateBookmarkNode(syncer::BaseNode* sync_node, 93 static const bookmarks::BookmarkNode* CreateBookmarkNode(
93 const BookmarkNode* parent, 94 syncer::BaseNode* sync_node,
94 bookmarks::BookmarkModel* model, 95 const bookmarks::BookmarkNode* parent,
95 Profile* profile, 96 bookmarks::BookmarkModel* model,
96 int index); 97 Profile* profile,
98 int index);
97 99
98 // Sets the favicon of the given bookmark node from the given sync node. 100 // Sets the favicon of the given bookmark node from the given sync node.
99 // Returns whether the favicon was set in the bookmark node. 101 // Returns whether the favicon was set in the bookmark node.
100 // |profile| is the profile that contains the HistoryService and BookmarkModel 102 // |profile| is the profile that contains the HistoryService and BookmarkModel
101 // for the bookmark in question. 103 // for the bookmark in question.
102 static bool SetBookmarkFavicon(const syncer::BaseNode* sync_node, 104 static bool SetBookmarkFavicon(const syncer::BaseNode* sync_node,
103 const BookmarkNode* bookmark_node, 105 const bookmarks::BookmarkNode* bookmark_node,
104 bookmarks::BookmarkModel* model, 106 bookmarks::BookmarkModel* model,
105 Profile* profile); 107 Profile* profile);
106 108
107 // Applies the 1x favicon |bitmap_data| and |icon_url| to |bookmark_node|. 109 // Applies the 1x favicon |bitmap_data| and |icon_url| to |bookmark_node|.
108 // |profile| is the profile that contains the HistoryService and BookmarkModel 110 // |profile| is the profile that contains the HistoryService and BookmarkModel
109 // for the bookmark in question. 111 // for the bookmark in question.
110 static void ApplyBookmarkFavicon( 112 static void ApplyBookmarkFavicon(
111 const BookmarkNode* bookmark_node, 113 const bookmarks::BookmarkNode* bookmark_node,
112 Profile* profile, 114 Profile* profile,
113 const GURL& icon_url, 115 const GURL& icon_url,
114 const scoped_refptr<base::RefCountedMemory>& bitmap_data); 116 const scoped_refptr<base::RefCountedMemory>& bitmap_data);
115 117
116 // Sets the favicon of the given sync node from the given bookmark node. 118 // Sets the favicon of the given sync node from the given bookmark node.
117 static void SetSyncNodeFavicon(const BookmarkNode* bookmark_node, 119 static void SetSyncNodeFavicon(const bookmarks::BookmarkNode* bookmark_node,
118 bookmarks::BookmarkModel* model, 120 bookmarks::BookmarkModel* model,
119 syncer::WriteNode* sync_node); 121 syncer::WriteNode* sync_node);
120 122
121 // Treat the |index|th child of |parent| as a newly added node, and create a 123 // Treat the |index|th child of |parent| as a newly added node, and create a
122 // corresponding node in the sync domain using |trans|. All properties 124 // corresponding node in the sync domain using |trans|. All properties
123 // will be transferred to the new node. A node corresponding to |parent| 125 // will be transferred to the new node. A node corresponding to |parent|
124 // must already exist and be associated for this call to succeed. Returns 126 // must already exist and be associated for this call to succeed. Returns
125 // the ID of the just-created node, or if creation fails, kInvalidID. 127 // the ID of the just-created node, or if creation fails, kInvalidID.
126 static int64 CreateSyncNode(const BookmarkNode* parent, 128 static int64 CreateSyncNode(const bookmarks::BookmarkNode* parent,
127 bookmarks::BookmarkModel* model, 129 bookmarks::BookmarkModel* model,
128 int index, 130 int index,
129 syncer::WriteTransaction* trans, 131 syncer::WriteTransaction* trans,
130 BookmarkModelAssociator* associator, 132 BookmarkModelAssociator* associator,
131 sync_driver::DataTypeErrorHandler* error_handler); 133 sync_driver::DataTypeErrorHandler* error_handler);
132 134
133 // Update |bookmark_node|'s sync node. 135 // Update |bookmark_node|'s sync node.
134 static int64 UpdateSyncNode(const BookmarkNode* bookmark_node, 136 static int64 UpdateSyncNode(const bookmarks::BookmarkNode* bookmark_node,
135 bookmarks::BookmarkModel* model, 137 bookmarks::BookmarkModel* model,
136 syncer::WriteTransaction* trans, 138 syncer::WriteTransaction* trans,
137 BookmarkModelAssociator* associator, 139 BookmarkModelAssociator* associator,
138 sync_driver::DataTypeErrorHandler* error_handler); 140 sync_driver::DataTypeErrorHandler* error_handler);
139 141
140 // Update transaction version of |model| and |nodes| to |new_version| if 142 // Update transaction version of |model| and |nodes| to |new_version| if
141 // it's valid. 143 // it's valid.
142 static void UpdateTransactionVersion( 144 static void UpdateTransactionVersion(
143 int64 new_version, 145 int64 new_version,
144 bookmarks::BookmarkModel* model, 146 bookmarks::BookmarkModel* model,
145 const std::vector<const BookmarkNode*>& nodes); 147 const std::vector<const bookmarks::BookmarkNode*>& nodes);
146 148
147 protected: 149 protected:
148 void StartImpl() override; 150 void StartImpl() override;
149 151
150 private: 152 private:
151 enum MoveOrCreate { 153 enum MoveOrCreate {
152 MOVE, 154 MOVE,
153 CREATE, 155 CREATE,
154 }; 156 };
155 157
156 // Retrieves the meta info from the given sync node. 158 // Retrieves the meta info from the given sync node.
157 static scoped_ptr<BookmarkNode::MetaInfoMap> GetBookmarkMetaInfo( 159 static scoped_ptr<bookmarks::BookmarkNode::MetaInfoMap> GetBookmarkMetaInfo(
158 const syncer::BaseNode* sync_node); 160 const syncer::BaseNode* sync_node);
159 161
160 // Sets the meta info of the given sync node from the given bookmark node. 162 // Sets the meta info of the given sync node from the given bookmark node.
161 static void SetSyncNodeMetaInfo(const BookmarkNode* node, 163 static void SetSyncNodeMetaInfo(const bookmarks::BookmarkNode* node,
162 syncer::WriteNode* sync_node); 164 syncer::WriteNode* sync_node);
163 165
164 // Helper function used to fix the position of a sync node so that it matches 166 // Helper function used to fix the position of a sync node so that it matches
165 // the position of a corresponding bookmark model node. |parent| and 167 // the position of a corresponding bookmark model node. |parent| and
166 // |index| identify the bookmark model position. |dst| is the node whose 168 // |index| identify the bookmark model position. |dst| is the node whose
167 // position is to be fixed. If |operation| is CREATE, treat |dst| as an 169 // position is to be fixed. If |operation| is CREATE, treat |dst| as an
168 // uncreated node and set its position via InitByCreation(); otherwise, 170 // uncreated node and set its position via InitByCreation(); otherwise,
169 // |dst| is treated as an existing node, and its position will be set via 171 // |dst| is treated as an existing node, and its position will be set via
170 // SetPosition(). |trans| is the transaction to which |dst| belongs. Returns 172 // SetPosition(). |trans| is the transaction to which |dst| belongs. Returns
171 // false on failure. 173 // false on failure.
172 static bool PlaceSyncNode(MoveOrCreate operation, 174 static bool PlaceSyncNode(MoveOrCreate operation,
173 const BookmarkNode* parent, 175 const bookmarks::BookmarkNode* parent,
174 int index, 176 int index,
175 syncer::WriteTransaction* trans, 177 syncer::WriteTransaction* trans,
176 syncer::WriteNode* dst, 178 syncer::WriteNode* dst,
177 BookmarkModelAssociator* associator); 179 BookmarkModelAssociator* associator);
178 180
179 // Copy properties (but not position) from |src| to |dst|. 181 // Copy properties (but not position) from |src| to |dst|.
180 static void UpdateSyncNodeProperties(const BookmarkNode* src, 182 static void UpdateSyncNodeProperties(const bookmarks::BookmarkNode* src,
181 bookmarks::BookmarkModel* model, 183 bookmarks::BookmarkModel* model,
182 syncer::WriteNode* dst); 184 syncer::WriteNode* dst);
183 185
184 // Helper function to encode a bookmark's favicon into raw PNG data. 186 // Helper function to encode a bookmark's favicon into raw PNG data.
185 static void EncodeFavicon(const BookmarkNode* src, 187 static void EncodeFavicon(const bookmarks::BookmarkNode* src,
186 bookmarks::BookmarkModel* model, 188 bookmarks::BookmarkModel* model,
187 scoped_refptr<base::RefCountedMemory>* dst); 189 scoped_refptr<base::RefCountedMemory>* dst);
188 190
189 // Remove |sync_node|. It should not have any children 191 // Remove |sync_node|. It should not have any children
190 void RemoveOneSyncNode(syncer::WriteNode* sync_node); 192 void RemoveOneSyncNode(syncer::WriteNode* sync_node);
191 193
192 // Remove all sync nodes, except the permanent nodes. 194 // Remove all sync nodes, except the permanent nodes.
193 void RemoveAllSyncNodes(); 195 void RemoveAllSyncNodes();
194 196
195 // Remove all children of the bookmark node with bookmark node id: 197 // Remove all children of the bookmark node with bookmark node id:
196 // |topmost_node_id|. 198 // |topmost_node_id|.
197 void RemoveAllChildNodes(syncer::WriteTransaction* trans, 199 void RemoveAllChildNodes(syncer::WriteTransaction* trans,
198 const int64& topmost_node_id); 200 const int64& topmost_node_id);
199 201
200 // Remove all the sync nodes associated with |node| and its children. 202 // Remove all the sync nodes associated with |node| and its children.
201 void RemoveSyncNodeHierarchy(const BookmarkNode* node); 203 void RemoveSyncNodeHierarchy(const bookmarks::BookmarkNode* node);
202 204
203 // Creates or updates a sync node associated with |node|. 205 // Creates or updates a sync node associated with |node|.
204 void CreateOrUpdateSyncNode(const BookmarkNode* node); 206 void CreateOrUpdateSyncNode(const bookmarks::BookmarkNode* node);
205 207
206 // Returns false if |node| should not be synced. 208 // Returns false if |node| should not be synced.
207 bool CanSyncNode(const BookmarkNode* node); 209 bool CanSyncNode(const bookmarks::BookmarkNode* node);
208 210
209 // The bookmark model we are processing changes from. Non-NULL when 211 // The bookmark model we are processing changes from. Non-NULL when
210 // |running_| is true. 212 // |running_| is true.
211 bookmarks::BookmarkModel* bookmark_model_; 213 bookmarks::BookmarkModel* bookmark_model_;
212 214
213 Profile* profile_; 215 Profile* profile_;
214 216
215 // The two models should be associated according to this ModelAssociator. 217 // The two models should be associated according to this ModelAssociator.
216 BookmarkModelAssociator* model_associator_; 218 BookmarkModelAssociator* model_associator_;
217 219
218 DISALLOW_COPY_AND_ASSIGN(BookmarkChangeProcessor); 220 DISALLOW_COPY_AND_ASSIGN(BookmarkChangeProcessor);
219 }; 221 };
220 222
221 } // namespace browser_sync 223 } // namespace browser_sync
222 224
223 #endif // CHROME_BROWSER_SYNC_GLUE_BOOKMARK_CHANGE_PROCESSOR_H_ 225 #endif // CHROME_BROWSER_SYNC_GLUE_BOOKMARK_CHANGE_PROCESSOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698