OLD | NEW |
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 "chrome/browser/sync/glue/bookmark_model_associator.h" | 5 #include "chrome/browser/sync/glue/bookmark_model_associator.h" |
6 | 6 |
7 #include <stack> | 7 #include <stack> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 BookmarkNode::BOOKMARK_BAR, | 239 BookmarkNode::BOOKMARK_BAR, |
240 BookmarkNode::OTHER_NODE, | 240 BookmarkNode::OTHER_NODE, |
241 BookmarkNode::MOBILE, | 241 BookmarkNode::MOBILE, |
242 }; | 242 }; |
243 for (size_t i = 0; i < arraysize(bookmark_node_types); ++i) { | 243 for (size_t i = 0; i < arraysize(bookmark_node_types); ++i) { |
244 int64 id = bookmark_model_->PermanentNode(bookmark_node_types[i])->id(); | 244 int64 id = bookmark_model_->PermanentNode(bookmark_node_types[i])->id(); |
245 bookmark_model_->SetPermanentNodeVisible( | 245 bookmark_model_->SetPermanentNodeVisible( |
246 bookmark_node_types[i], | 246 bookmark_node_types[i], |
247 id_map_.find(id) != id_map_.end()); | 247 id_map_.find(id) != id_map_.end()); |
248 } | 248 } |
| 249 |
| 250 // Note: the root node may have additional extra nodes. Currently their |
| 251 // visibility is not affected by sync. |
249 } | 252 } |
250 | 253 |
251 syncer::SyncError BookmarkModelAssociator::DisassociateModels() { | 254 syncer::SyncError BookmarkModelAssociator::DisassociateModels() { |
252 id_map_.clear(); | 255 id_map_.clear(); |
253 id_map_inverse_.clear(); | 256 id_map_inverse_.clear(); |
254 dirty_associations_sync_ids_.clear(); | 257 dirty_associations_sync_ids_.clear(); |
255 return syncer::SyncError(); | 258 return syncer::SyncError(); |
256 } | 259 } |
257 | 260 |
258 int64 BookmarkModelAssociator::GetSyncIdFromChromeId(const int64& node_id) { | 261 int64 BookmarkModelAssociator::GetSyncIdFromChromeId(const int64& node_id) { |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 | 459 |
457 if (!AssociateTaggedPermanentNode(bookmark_model_->mobile_node(), | 460 if (!AssociateTaggedPermanentNode(bookmark_model_->mobile_node(), |
458 kMobileBookmarksTag) && | 461 kMobileBookmarksTag) && |
459 expect_mobile_bookmarks_folder_) { | 462 expect_mobile_bookmarks_folder_) { |
460 return unrecoverable_error_handler_->CreateAndUploadError( | 463 return unrecoverable_error_handler_->CreateAndUploadError( |
461 FROM_HERE, | 464 FROM_HERE, |
462 "Mobile bookmarks node not found", | 465 "Mobile bookmarks node not found", |
463 model_type()); | 466 model_type()); |
464 } | 467 } |
465 | 468 |
| 469 // Note: the root node may have additional extra nodes. Currently none of |
| 470 // them are meant to sync. |
| 471 |
466 int64 bookmark_bar_sync_id = GetSyncIdFromChromeId( | 472 int64 bookmark_bar_sync_id = GetSyncIdFromChromeId( |
467 bookmark_model_->bookmark_bar_node()->id()); | 473 bookmark_model_->bookmark_bar_node()->id()); |
468 DCHECK_NE(bookmark_bar_sync_id, syncer::kInvalidId); | 474 DCHECK_NE(bookmark_bar_sync_id, syncer::kInvalidId); |
469 int64 other_bookmarks_sync_id = GetSyncIdFromChromeId( | 475 int64 other_bookmarks_sync_id = GetSyncIdFromChromeId( |
470 bookmark_model_->other_node()->id()); | 476 bookmark_model_->other_node()->id()); |
471 DCHECK_NE(other_bookmarks_sync_id, syncer::kInvalidId); | 477 DCHECK_NE(other_bookmarks_sync_id, syncer::kInvalidId); |
472 int64 mobile_bookmarks_sync_id = GetSyncIdFromChromeId( | 478 int64 mobile_bookmarks_sync_id = GetSyncIdFromChromeId( |
473 bookmark_model_->mobile_node()->id()); | 479 bookmark_model_->mobile_node()->id()); |
474 if (expect_mobile_bookmarks_folder_) { | 480 if (expect_mobile_bookmarks_folder_) { |
475 DCHECK_NE(syncer::kInvalidId, mobile_bookmarks_sync_id); | 481 DCHECK_NE(syncer::kInvalidId, mobile_bookmarks_sync_id); |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
608 if (bk_delete_journals.empty()) | 614 if (bk_delete_journals.empty()) |
609 return 0; | 615 return 0; |
610 size_t num_journals_unmatched = bk_delete_journals.size(); | 616 size_t num_journals_unmatched = bk_delete_journals.size(); |
611 | 617 |
612 // Check bookmark model from top to bottom. | 618 // Check bookmark model from top to bottom. |
613 std::stack<const BookmarkNode*> dfs_stack; | 619 std::stack<const BookmarkNode*> dfs_stack; |
614 dfs_stack.push(bookmark_model_->bookmark_bar_node()); | 620 dfs_stack.push(bookmark_model_->bookmark_bar_node()); |
615 dfs_stack.push(bookmark_model_->other_node()); | 621 dfs_stack.push(bookmark_model_->other_node()); |
616 if (expect_mobile_bookmarks_folder_) | 622 if (expect_mobile_bookmarks_folder_) |
617 dfs_stack.push(bookmark_model_->mobile_node()); | 623 dfs_stack.push(bookmark_model_->mobile_node()); |
| 624 // Note: the root node may have additional extra nodes. Currently none of |
| 625 // them are meant to sync. |
618 | 626 |
619 // Remember folders that match delete journals in first pass but don't delete | 627 // Remember folders that match delete journals in first pass but don't delete |
620 // them in case there are bookmarks left under them. After non-folder | 628 // them in case there are bookmarks left under them. After non-folder |
621 // bookmarks are removed in first pass, recheck the folders in reverse order | 629 // bookmarks are removed in first pass, recheck the folders in reverse order |
622 // to remove empty ones. | 630 // to remove empty ones. |
623 FolderInfoList folders_matched; | 631 FolderInfoList folders_matched; |
624 while (!dfs_stack.empty()) { | 632 while (!dfs_stack.empty()) { |
625 const BookmarkNode* parent = dfs_stack.top(); | 633 const BookmarkNode* parent = dfs_stack.top(); |
626 dfs_stack.pop(); | 634 dfs_stack.pop(); |
627 | 635 |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
775 syncer::SyncError::PERSISTENCE_ERROR, | 783 syncer::SyncError::PERSISTENCE_ERROR, |
776 message, | 784 message, |
777 syncer::BOOKMARKS); | 785 syncer::BOOKMARKS); |
778 } | 786 } |
779 } | 787 } |
780 } | 788 } |
781 return syncer::SyncError(); | 789 return syncer::SyncError(); |
782 } | 790 } |
783 | 791 |
784 } // namespace browser_sync | 792 } // namespace browser_sync |
OLD | NEW |