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

Side by Side Diff: components/sync_bookmarks/bookmark_change_processor.cc

Issue 1549993003: Switch to standard integer types in components/, part 4 of 4. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #include "components/sync_bookmarks/bookmark_change_processor.h" 5 #include "components/sync_bookmarks/bookmark_change_processor.h"
6 6
7 #include <stddef.h>
8
7 #include <map> 9 #include <map>
8 #include <stack> 10 #include <stack>
9 #include <vector> 11 #include <vector>
10 12
11 #include "base/location.h" 13 #include "base/location.h"
12 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
13 #include "base/strings/string_number_conversions.h" 15 #include "base/strings/string_number_conversions.h"
14 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
15 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
16 #include "components/bookmarks/browser/bookmark_client.h" 18 #include "components/bookmarks/browser/bookmark_client.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 BookmarkModelAssociator* associator) { 118 BookmarkModelAssociator* associator) {
117 // Remove children. 119 // Remove children.
118 int num_removed = RemoveAllChildNodes(trans, sync_node->GetId(), associator); 120 int num_removed = RemoveAllChildNodes(trans, sync_node->GetId(), associator);
119 // Remove the node itself. 121 // Remove the node itself.
120 RemoveOneSyncNode(sync_node, associator); 122 RemoveOneSyncNode(sync_node, associator);
121 return num_removed + 1; 123 return num_removed + 1;
122 } 124 }
123 125
124 void BookmarkChangeProcessor::RemoveSyncNodeHierarchy( 126 void BookmarkChangeProcessor::RemoveSyncNodeHierarchy(
125 const BookmarkNode* topmost) { 127 const BookmarkNode* topmost) {
126 int64 new_version = syncer::syncable::kInvalidTransactionVersion; 128 int64_t new_version = syncer::syncable::kInvalidTransactionVersion;
127 { 129 {
128 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version); 130 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version);
129 syncer::WriteNode topmost_sync_node(&trans); 131 syncer::WriteNode topmost_sync_node(&trans);
130 if (!model_associator_->InitSyncNodeFromChromeId(topmost->id(), 132 if (!model_associator_->InitSyncNodeFromChromeId(topmost->id(),
131 &topmost_sync_node)) { 133 &topmost_sync_node)) {
132 syncer::SyncError error(FROM_HERE, 134 syncer::SyncError error(FROM_HERE,
133 syncer::SyncError::DATATYPE_ERROR, 135 syncer::SyncError::DATATYPE_ERROR,
134 "Failed to init sync node from chrome node", 136 "Failed to init sync node from chrome node",
135 syncer::BOOKMARKS); 137 syncer::BOOKMARKS);
136 error_handler()->OnSingleDataTypeUnrecoverableError(error); 138 error_handler()->OnSingleDataTypeUnrecoverableError(error);
137 return; 139 return;
138 } 140 }
139 RemoveSyncNodeHierarchy(&trans, &topmost_sync_node, model_associator_); 141 RemoveSyncNodeHierarchy(&trans, &topmost_sync_node, model_associator_);
140 } 142 }
141 143
142 // Don't need to update versions of deleted nodes. 144 // Don't need to update versions of deleted nodes.
143 UpdateTransactionVersion(new_version, bookmark_model_, 145 UpdateTransactionVersion(new_version, bookmark_model_,
144 std::vector<const BookmarkNode*>()); 146 std::vector<const BookmarkNode*>());
145 } 147 }
146 148
147 void BookmarkChangeProcessor::RemoveAllSyncNodes() { 149 void BookmarkChangeProcessor::RemoveAllSyncNodes() {
148 int64 new_version = syncer::syncable::kInvalidTransactionVersion; 150 int64_t new_version = syncer::syncable::kInvalidTransactionVersion;
149 { 151 {
150 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version); 152 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version);
151 153
152 int64 bookmark_bar_node_sync_id = model_associator_->GetSyncIdFromChromeId( 154 int64_t bookmark_bar_node_sync_id =
153 bookmark_model_->bookmark_bar_node()->id()); 155 model_associator_->GetSyncIdFromChromeId(
156 bookmark_model_->bookmark_bar_node()->id());
154 DCHECK_NE(syncer::kInvalidId, bookmark_bar_node_sync_id); 157 DCHECK_NE(syncer::kInvalidId, bookmark_bar_node_sync_id);
155 RemoveAllChildNodes(&trans, bookmark_bar_node_sync_id, model_associator_); 158 RemoveAllChildNodes(&trans, bookmark_bar_node_sync_id, model_associator_);
156 159
157 int64 other_node_sync_id = model_associator_->GetSyncIdFromChromeId( 160 int64_t other_node_sync_id = model_associator_->GetSyncIdFromChromeId(
158 bookmark_model_->other_node()->id()); 161 bookmark_model_->other_node()->id());
159 DCHECK_NE(syncer::kInvalidId, other_node_sync_id); 162 DCHECK_NE(syncer::kInvalidId, other_node_sync_id);
160 RemoveAllChildNodes(&trans, other_node_sync_id, model_associator_); 163 RemoveAllChildNodes(&trans, other_node_sync_id, model_associator_);
161 164
162 // Remove mobile bookmarks node only if it is present. 165 // Remove mobile bookmarks node only if it is present.
163 int64 mobile_node_sync_id = model_associator_->GetSyncIdFromChromeId( 166 int64_t mobile_node_sync_id = model_associator_->GetSyncIdFromChromeId(
164 bookmark_model_->mobile_node()->id()); 167 bookmark_model_->mobile_node()->id());
165 if (mobile_node_sync_id != syncer::kInvalidId) { 168 if (mobile_node_sync_id != syncer::kInvalidId) {
166 RemoveAllChildNodes(&trans, mobile_node_sync_id, model_associator_); 169 RemoveAllChildNodes(&trans, mobile_node_sync_id, model_associator_);
167 } 170 }
168 171
169 // Note: the root node may have additional extra nodes. Currently none of 172 // Note: the root node may have additional extra nodes. Currently none of
170 // them are meant to sync. 173 // them are meant to sync.
171 } 174 }
172 175
173 // Don't need to update versions of deleted nodes. 176 // Don't need to update versions of deleted nodes.
174 UpdateTransactionVersion(new_version, bookmark_model_, 177 UpdateTransactionVersion(new_version, bookmark_model_,
175 std::vector<const BookmarkNode*>()); 178 std::vector<const BookmarkNode*>());
176 } 179 }
177 180
178 // static 181 // static
179 int BookmarkChangeProcessor::RemoveAllChildNodes( 182 int BookmarkChangeProcessor::RemoveAllChildNodes(
180 syncer::WriteTransaction* trans, 183 syncer::WriteTransaction* trans,
181 int64 topmost_sync_id, 184 int64_t topmost_sync_id,
182 BookmarkModelAssociator* associator) { 185 BookmarkModelAssociator* associator) {
183 // Do a DFS and delete all the child sync nodes, use sync id instead of 186 // Do a DFS and delete all the child sync nodes, use sync id instead of
184 // bookmark node ids since the bookmark nodes may already be deleted. 187 // bookmark node ids since the bookmark nodes may already be deleted.
185 // The equivalent recursive version of this iterative DFS: 188 // The equivalent recursive version of this iterative DFS:
186 // remove_all_children(node_id, topmost_node_id): 189 // remove_all_children(node_id, topmost_node_id):
187 // node.initByIdLookup(node_id) 190 // node.initByIdLookup(node_id)
188 // while(node.GetFirstChildId() != syncer::kInvalidId) 191 // while(node.GetFirstChildId() != syncer::kInvalidId)
189 // remove_all_children(node.GetFirstChildId(), topmost_node_id) 192 // remove_all_children(node.GetFirstChildId(), topmost_node_id)
190 // if(node_id != topmost_node_id) 193 // if(node_id != topmost_node_id)
191 // delete node 194 // delete node
192 195
193 int num_removed = 0; 196 int num_removed = 0;
194 std::stack<int64> dfs_sync_id_stack; 197 std::stack<int64_t> dfs_sync_id_stack;
195 // Push the topmost node. 198 // Push the topmost node.
196 dfs_sync_id_stack.push(topmost_sync_id); 199 dfs_sync_id_stack.push(topmost_sync_id);
197 while (!dfs_sync_id_stack.empty()) { 200 while (!dfs_sync_id_stack.empty()) {
198 const int64 sync_node_id = dfs_sync_id_stack.top(); 201 const int64_t sync_node_id = dfs_sync_id_stack.top();
199 syncer::WriteNode node(trans); 202 syncer::WriteNode node(trans);
200 node.InitByIdLookup(sync_node_id); 203 node.InitByIdLookup(sync_node_id);
201 if (!node.GetIsFolder() || node.GetFirstChildId() == syncer::kInvalidId) { 204 if (!node.GetIsFolder() || node.GetFirstChildId() == syncer::kInvalidId) {
202 // All children of the node has been processed, delete the node and 205 // All children of the node has been processed, delete the node and
203 // pop it off the stack. 206 // pop it off the stack.
204 dfs_sync_id_stack.pop(); 207 dfs_sync_id_stack.pop();
205 // Do not delete the topmost node. 208 // Do not delete the topmost node.
206 if (sync_node_id != topmost_sync_id) { 209 if (sync_node_id != topmost_sync_id) {
207 RemoveOneSyncNode(&node, associator); 210 RemoveOneSyncNode(&node, associator);
208 num_removed++; 211 num_removed++;
209 } else { 212 } else {
210 // if we are processing topmost node, all other nodes must be processed 213 // if we are processing topmost node, all other nodes must be processed
211 // the stack should be empty. 214 // the stack should be empty.
212 DCHECK(dfs_sync_id_stack.empty()); 215 DCHECK(dfs_sync_id_stack.empty());
213 } 216 }
214 } else { 217 } else {
215 int64 child_id = node.GetFirstChildId(); 218 int64_t child_id = node.GetFirstChildId();
216 if (child_id != syncer::kInvalidId) { 219 if (child_id != syncer::kInvalidId) {
217 dfs_sync_id_stack.push(child_id); 220 dfs_sync_id_stack.push(child_id);
218 } 221 }
219 } 222 }
220 } 223 }
221 return num_removed; 224 return num_removed;
222 } 225 }
223 226
224 // static 227 // static
225 void BookmarkChangeProcessor::RemoveOneSyncNode( 228 void BookmarkChangeProcessor::RemoveOneSyncNode(
226 syncer::WriteNode* sync_node, 229 syncer::WriteNode* sync_node,
227 BookmarkModelAssociator* associator) { 230 BookmarkModelAssociator* associator) {
228 // This node should have no children. 231 // This node should have no children.
229 DCHECK(!sync_node->HasChildren()); 232 DCHECK(!sync_node->HasChildren());
230 // Remove association and delete the sync node. 233 // Remove association and delete the sync node.
231 associator->Disassociate(sync_node->GetId()); 234 associator->Disassociate(sync_node->GetId());
232 sync_node->Tombstone(); 235 sync_node->Tombstone();
233 } 236 }
234 237
235 void BookmarkChangeProcessor::CreateOrUpdateSyncNode(const BookmarkNode* node) { 238 void BookmarkChangeProcessor::CreateOrUpdateSyncNode(const BookmarkNode* node) {
236 if (!CanSyncNode(node)) { 239 if (!CanSyncNode(node)) {
237 NOTREACHED(); 240 NOTREACHED();
238 return; 241 return;
239 } 242 }
240 243
241 const BookmarkNode* parent = node->parent(); 244 const BookmarkNode* parent = node->parent();
242 int index = node->parent()->GetIndexOf(node); 245 int index = node->parent()->GetIndexOf(node);
243 246
244 int64 new_version = syncer::syncable::kInvalidTransactionVersion; 247 int64_t new_version = syncer::syncable::kInvalidTransactionVersion;
245 int64 sync_id = syncer::kInvalidId; 248 int64_t sync_id = syncer::kInvalidId;
246 { 249 {
247 // Acquire a scoped write lock via a transaction. 250 // Acquire a scoped write lock via a transaction.
248 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version); 251 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version);
249 sync_id = model_associator_->GetSyncIdFromChromeId(node->id()); 252 sync_id = model_associator_->GetSyncIdFromChromeId(node->id());
250 if (sync_id != syncer::kInvalidId) { 253 if (sync_id != syncer::kInvalidId) {
251 UpdateSyncNode( 254 UpdateSyncNode(
252 node, bookmark_model_, &trans, model_associator_, error_handler()); 255 node, bookmark_model_, &trans, model_associator_, error_handler());
253 } else { 256 } else {
254 sync_id = CreateSyncNode(parent, 257 sync_id = CreateSyncNode(parent,
255 bookmark_model_, 258 bookmark_model_,
(...skipping 29 matching lines...) Expand all
285 void BookmarkChangeProcessor::BookmarkNodeAdded(BookmarkModel* model, 288 void BookmarkChangeProcessor::BookmarkNodeAdded(BookmarkModel* model,
286 const BookmarkNode* parent, 289 const BookmarkNode* parent,
287 int index) { 290 int index) {
288 DCHECK(share_handle()); 291 DCHECK(share_handle());
289 const BookmarkNode* node = parent->GetChild(index); 292 const BookmarkNode* node = parent->GetChild(index);
290 if (CanSyncNode(node)) 293 if (CanSyncNode(node))
291 CreateOrUpdateSyncNode(node); 294 CreateOrUpdateSyncNode(node);
292 } 295 }
293 296
294 // static 297 // static
295 int64 BookmarkChangeProcessor::CreateSyncNode(const BookmarkNode* parent, 298 int64_t BookmarkChangeProcessor::CreateSyncNode(
296 BookmarkModel* model, int index, syncer::WriteTransaction* trans, 299 const BookmarkNode* parent,
300 BookmarkModel* model,
301 int index,
302 syncer::WriteTransaction* trans,
297 BookmarkModelAssociator* associator, 303 BookmarkModelAssociator* associator,
298 sync_driver::DataTypeErrorHandler* error_handler) { 304 sync_driver::DataTypeErrorHandler* error_handler) {
299 const BookmarkNode* child = parent->GetChild(index); 305 const BookmarkNode* child = parent->GetChild(index);
300 DCHECK(child); 306 DCHECK(child);
301 307
302 // Create a WriteNode container to hold the new node. 308 // Create a WriteNode container to hold the new node.
303 syncer::WriteNode sync_child(trans); 309 syncer::WriteNode sync_child(trans);
304 310
305 // Actually create the node with the appropriate initial position. 311 // Actually create the node with the appropriate initial position.
306 if (!PlaceSyncNode(CREATE, parent, index, trans, &sync_child, associator)) { 312 if (!PlaceSyncNode(CREATE, parent, index, trans, &sync_child, associator)) {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 return; 356 return;
351 // We shouldn't see changes to the top-level nodes. 357 // We shouldn't see changes to the top-level nodes.
352 if (model->is_permanent_node(node)) { 358 if (model->is_permanent_node(node)) {
353 NOTREACHED() << "Saw update to permanent node!"; 359 NOTREACHED() << "Saw update to permanent node!";
354 return; 360 return;
355 } 361 }
356 CreateOrUpdateSyncNode(node); 362 CreateOrUpdateSyncNode(node);
357 } 363 }
358 364
359 // Static. 365 // Static.
360 int64 BookmarkChangeProcessor::UpdateSyncNode( 366 int64_t BookmarkChangeProcessor::UpdateSyncNode(
361 const BookmarkNode* node, 367 const BookmarkNode* node,
362 BookmarkModel* model, 368 BookmarkModel* model,
363 syncer::WriteTransaction* trans, 369 syncer::WriteTransaction* trans,
364 BookmarkModelAssociator* associator, 370 BookmarkModelAssociator* associator,
365 sync_driver::DataTypeErrorHandler* error_handler) { 371 sync_driver::DataTypeErrorHandler* error_handler) {
366 // Lookup the sync node that's associated with |node|. 372 // Lookup the sync node that's associated with |node|.
367 syncer::WriteNode sync_node(trans); 373 syncer::WriteNode sync_node(trans);
368 if (!associator->InitSyncNodeFromChromeId(node->id(), &sync_node)) { 374 if (!associator->InitSyncNodeFromChromeId(node->id(), &sync_node)) {
369 syncer::SyncError error(FROM_HERE, 375 syncer::SyncError error(FROM_HERE,
370 syncer::SyncError::DATATYPE_ERROR, 376 syncer::SyncError::DATATYPE_ERROR,
(...skipping 22 matching lines...) Expand all
393 399
394 if (!CanSyncNode(child)) 400 if (!CanSyncNode(child))
395 return; 401 return;
396 402
397 // We shouldn't see changes to the top-level nodes. 403 // We shouldn't see changes to the top-level nodes.
398 if (model->is_permanent_node(child)) { 404 if (model->is_permanent_node(child)) {
399 NOTREACHED() << "Saw update to permanent node!"; 405 NOTREACHED() << "Saw update to permanent node!";
400 return; 406 return;
401 } 407 }
402 408
403 int64 new_version = syncer::syncable::kInvalidTransactionVersion; 409 int64_t new_version = syncer::syncable::kInvalidTransactionVersion;
404 { 410 {
405 // Acquire a scoped write lock via a transaction. 411 // Acquire a scoped write lock via a transaction.
406 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version); 412 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version);
407 413
408 // Lookup the sync node that's associated with |child|. 414 // Lookup the sync node that's associated with |child|.
409 syncer::WriteNode sync_node(&trans); 415 syncer::WriteNode sync_node(&trans);
410 if (!model_associator_->InitSyncNodeFromChromeId(child->id(), &sync_node)) { 416 if (!model_associator_->InitSyncNodeFromChromeId(child->id(), &sync_node)) {
411 syncer::SyncError error(FROM_HERE, 417 syncer::SyncError error(FROM_HERE,
412 syncer::SyncError::DATATYPE_ERROR, 418 syncer::SyncError::DATATYPE_ERROR,
413 "Failed to init sync node from chrome node", 419 "Failed to init sync node from chrome node",
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 return; 457 return;
452 } 458 }
453 459
454 BookmarkNodeChanged(model, node); 460 BookmarkNodeChanged(model, node);
455 } 461 }
456 462
457 void BookmarkChangeProcessor::BookmarkNodeChildrenReordered( 463 void BookmarkChangeProcessor::BookmarkNodeChildrenReordered(
458 BookmarkModel* model, const BookmarkNode* node) { 464 BookmarkModel* model, const BookmarkNode* node) {
459 if (!CanSyncNode(node)) 465 if (!CanSyncNode(node))
460 return; 466 return;
461 int64 new_version = syncer::syncable::kInvalidTransactionVersion; 467 int64_t new_version = syncer::syncable::kInvalidTransactionVersion;
462 std::vector<const BookmarkNode*> children; 468 std::vector<const BookmarkNode*> children;
463 { 469 {
464 // Acquire a scoped write lock via a transaction. 470 // Acquire a scoped write lock via a transaction.
465 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version); 471 syncer::WriteTransaction trans(FROM_HERE, share_handle(), &new_version);
466 472
467 // The given node's children got reordered. We need to reorder all the 473 // The given node's children got reordered. We need to reorder all the
468 // children of the corresponding sync node. 474 // children of the corresponding sync node.
469 for (int i = 0; i < node->child_count(); ++i) { 475 for (int i = 0; i < node->child_count(); ++i) {
470 const BookmarkNode* child = node->GetChild(i); 476 const BookmarkNode* child = node->GetChild(i);
471 children.push_back(child); 477 children.push_back(child);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 } 544 }
539 } 545 }
540 return success; 546 return success;
541 } 547 }
542 548
543 // ApplyModelChanges is called by the sync backend after changes have been made 549 // ApplyModelChanges is called by the sync backend after changes have been made
544 // to the sync engine's model. Apply these changes to the browser bookmark 550 // to the sync engine's model. Apply these changes to the browser bookmark
545 // model. 551 // model.
546 void BookmarkChangeProcessor::ApplyChangesFromSyncModel( 552 void BookmarkChangeProcessor::ApplyChangesFromSyncModel(
547 const syncer::BaseTransaction* trans, 553 const syncer::BaseTransaction* trans,
548 int64 model_version, 554 int64_t model_version,
549 const syncer::ImmutableChangeRecordList& changes) { 555 const syncer::ImmutableChangeRecordList& changes) {
550 DCHECK(thread_checker_.CalledOnValidThread()); 556 DCHECK(thread_checker_.CalledOnValidThread());
551 // A note about ordering. Sync backend is responsible for ordering the change 557 // A note about ordering. Sync backend is responsible for ordering the change
552 // records in the following order: 558 // records in the following order:
553 // 559 //
554 // 1. Deletions, from leaves up to parents. 560 // 1. Deletions, from leaves up to parents.
555 // 2. Existing items with synced parents & predecessors. 561 // 2. Existing items with synced parents & predecessors.
556 // 3. New items with synced parents & predecessors. 562 // 3. New items with synced parents & predecessors.
557 // 4. Items with parents & predecessors in the list. 563 // 4. Items with parents & predecessors in the list.
558 // 5. Repeat #4 until all items are in the list. 564 // 5. Repeat #4 until all items are in the list.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 const BookmarkNode* parent = dst->parent(); 636 const BookmarkNode* parent = dst->parent();
631 int index = parent->GetIndexOf(dst); 637 int index = parent->GetIndexOf(dst);
632 if (index > -1) 638 if (index > -1)
633 model->Remove(parent->GetChild(index)); 639 model->Remove(parent->GetChild(index));
634 } 640 }
635 641
636 // A map to keep track of some reordering work we defer until later. 642 // A map to keep track of some reordering work we defer until later.
637 std::multimap<int, const BookmarkNode*> to_reposition; 643 std::multimap<int, const BookmarkNode*> to_reposition;
638 644
639 syncer::ReadNode synced_bookmarks(trans); 645 syncer::ReadNode synced_bookmarks(trans);
640 int64 synced_bookmarks_id = syncer::kInvalidId; 646 int64_t synced_bookmarks_id = syncer::kInvalidId;
641 if (synced_bookmarks.InitByTagLookupForBookmarks(kMobileBookmarksTag) == 647 if (synced_bookmarks.InitByTagLookupForBookmarks(kMobileBookmarksTag) ==
642 syncer::BaseNode::INIT_OK) { 648 syncer::BaseNode::INIT_OK) {
643 synced_bookmarks_id = synced_bookmarks.GetId(); 649 synced_bookmarks_id = synced_bookmarks.GetId();
644 } 650 }
645 651
646 // Continue iterating where the previous loop left off. 652 // Continue iterating where the previous loop left off.
647 for ( ; it != changes.Get().end(); ++it) { 653 for ( ; it != changes.Get().end(); ++it) {
648 const BookmarkNode* dst = 654 const BookmarkNode* dst =
649 model_associator_->GetChromeNodeFromSyncId(it->id); 655 model_associator_->GetChromeNodeFromSyncId(it->id);
650 656
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 model->SetDateAdded( 770 model->SetDateAdded(
765 node, 771 node,
766 base::Time::FromInternalValue(specifics.creation_time_us())); 772 base::Time::FromInternalValue(specifics.creation_time_us()));
767 } 773 }
768 SetBookmarkFavicon(&sync_node, node, model, sync_client); 774 SetBookmarkFavicon(&sync_node, node, model, sync_client);
769 model->SetNodeMetaInfoMap(node, *GetBookmarkMetaInfo(&sync_node)); 775 model->SetNodeMetaInfoMap(node, *GetBookmarkMetaInfo(&sync_node));
770 } 776 }
771 777
772 // static 778 // static
773 void BookmarkChangeProcessor::UpdateTransactionVersion( 779 void BookmarkChangeProcessor::UpdateTransactionVersion(
774 int64 new_version, 780 int64_t new_version,
775 BookmarkModel* model, 781 BookmarkModel* model,
776 const std::vector<const BookmarkNode*>& nodes) { 782 const std::vector<const BookmarkNode*>& nodes) {
777 if (new_version != syncer::syncable::kInvalidTransactionVersion) { 783 if (new_version != syncer::syncable::kInvalidTransactionVersion) {
778 model->SetNodeSyncTransactionVersion(model->root_node(), new_version); 784 model->SetNodeSyncTransactionVersion(model->root_node(), new_version);
779 for (size_t i = 0; i < nodes.size(); ++i) { 785 for (size_t i = 0; i < nodes.size(); ++i) {
780 model->SetNodeSyncTransactionVersion(nodes[i], new_version); 786 model->SetNodeSyncTransactionVersion(nodes[i], new_version);
781 } 787 }
782 } 788 }
783 } 789 }
784 790
(...skipping 25 matching lines...) Expand all
810 DCHECK(parent); 816 DCHECK(parent);
811 817
812 const BookmarkNode* node; 818 const BookmarkNode* node;
813 if (sync_node->GetIsFolder()) { 819 if (sync_node->GetIsFolder()) {
814 node = model->AddFolderWithMetaInfo(parent, index, title, 820 node = model->AddFolderWithMetaInfo(parent, index, title,
815 GetBookmarkMetaInfo(sync_node).get()); 821 GetBookmarkMetaInfo(sync_node).get());
816 } else { 822 } else {
817 // 'creation_time_us' was added in m24. Assume a time of 0 means now. 823 // 'creation_time_us' was added in m24. Assume a time of 0 means now.
818 const sync_pb::BookmarkSpecifics& specifics = 824 const sync_pb::BookmarkSpecifics& specifics =
819 sync_node->GetBookmarkSpecifics(); 825 sync_node->GetBookmarkSpecifics();
820 const int64 create_time_internal = specifics.creation_time_us(); 826 const int64_t create_time_internal = specifics.creation_time_us();
821 base::Time create_time = (create_time_internal == 0) ? 827 base::Time create_time = (create_time_internal == 0) ?
822 base::Time::Now() : base::Time::FromInternalValue(create_time_internal); 828 base::Time::Now() : base::Time::FromInternalValue(create_time_internal);
823 node = model->AddURLWithCreationTimeAndMetaInfo( 829 node = model->AddURLWithCreationTimeAndMetaInfo(
824 parent, index, title, url, create_time, 830 parent, index, title, url, create_time,
825 GetBookmarkMetaInfo(sync_node).get()); 831 GetBookmarkMetaInfo(sync_node).get());
826 if (node) 832 if (node)
827 SetBookmarkFavicon(sync_node, node, model, sync_client); 833 SetBookmarkFavicon(sync_node, node, model, sync_client);
828 } 834 }
829 835
830 return node; 836 return node;
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 updated_specifics.set_icon_url(bookmark_node->icon_url().spec()); 966 updated_specifics.set_icon_url(bookmark_node->icon_url().spec());
961 sync_node->SetBookmarkSpecifics(updated_specifics); 967 sync_node->SetBookmarkSpecifics(updated_specifics);
962 } 968 }
963 } 969 }
964 970
965 bool BookmarkChangeProcessor::CanSyncNode(const BookmarkNode* node) { 971 bool BookmarkChangeProcessor::CanSyncNode(const BookmarkNode* node) {
966 return bookmark_model_->client()->CanSyncNode(node); 972 return bookmark_model_->client()->CanSyncNode(node);
967 } 973 }
968 974
969 } // namespace browser_sync 975 } // namespace browser_sync
OLDNEW
« no previous file with comments | « components/sync_bookmarks/bookmark_change_processor.h ('k') | components/sync_bookmarks/bookmark_data_type_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698