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

Side by Side Diff: chrome/browser/sync/glue/bookmark_model_associator.cc

Issue 9570055: [Sync] Add support for associating a new Synced Bookmarks node. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase, address comments Created 8 years, 9 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 | Annotate | Revision Log
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 #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 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 if (BookmarkChangeProcessor::SetBookmarkFavicon( 459 if (BookmarkChangeProcessor::SetBookmarkFavicon(
460 &sync_child_node, child_node, bookmark_model_)) { 460 &sync_child_node, child_node, bookmark_model_)) {
461 BookmarkChangeProcessor::SetSyncNodeFavicon( 461 BookmarkChangeProcessor::SetSyncNodeFavicon(
462 child_node, bookmark_model_, &sync_child_node); 462 child_node, bookmark_model_, &sync_child_node);
463 } 463 }
464 } else { 464 } else {
465 // Create a new bookmark node for the sync node. 465 // Create a new bookmark node for the sync node.
466 child_node = BookmarkChangeProcessor::CreateBookmarkNode( 466 child_node = BookmarkChangeProcessor::CreateBookmarkNode(
467 &sync_child_node, parent_node, bookmark_model_, index); 467 &sync_child_node, parent_node, bookmark_model_, index);
468 if (!child_node) { 468 if (!child_node) {
469 error->Reset(FROM_HERE, 469 // This can happen if a sync bookmark node doesn't have a valid url.
470 "Failed to create bookmark node with title " + 470 // As far as we can tell, it appears this can only happen if something
471 sync_child_node.GetTitle() + " and url " + 471 // interrupts association. For now, we just ignore the bookmark.
472 sync_child_node.GetURL().possibly_invalid_spec(), 472 LOG(ERROR) << "Failed to create bookmark node with title "
473 model_type()); 473 << sync_child_node.GetTitle() << " and url "
474 return false; 474 << sync_child_node.GetURL().possibly_invalid_spec();
475 } 475 }
476 } 476 }
477 Associate(child_node, sync_child_id); 477 if (child_node) {
478 Associate(child_node, sync_child_id);
479 }
478 if (sync_child_node.GetIsFolder()) 480 if (sync_child_node.GetIsFolder())
479 dfs_stack.push(sync_child_id); 481 dfs_stack.push(sync_child_id);
480 482
481 sync_child_id = sync_child_node.GetSuccessorId(); 483 sync_child_id = sync_child_node.GetSuccessorId();
482 ++index; 484 ++index;
483 } 485 }
484 486
485 // At this point all the children nodes of the parent sync node have 487 // At this point all the children nodes of the parent sync node have
486 // corresponding children in the parent bookmark node and they are all in 488 // corresponding children in the parent bookmark node and they are all in
487 // the right positions: from 0 to index - 1. 489 // the right positions: from 0 to index - 1.
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 bool BookmarkModelAssociator::CryptoReadyIfNecessary() { 644 bool BookmarkModelAssociator::CryptoReadyIfNecessary() {
643 // We only access the cryptographer while holding a transaction. 645 // We only access the cryptographer while holding a transaction.
644 sync_api::ReadTransaction trans(FROM_HERE, user_share_); 646 sync_api::ReadTransaction trans(FROM_HERE, user_share_);
645 const syncable::ModelTypeSet encrypted_types = 647 const syncable::ModelTypeSet encrypted_types =
646 sync_api::GetEncryptedTypes(&trans); 648 sync_api::GetEncryptedTypes(&trans);
647 return !encrypted_types.Has(syncable::BOOKMARKS) || 649 return !encrypted_types.Has(syncable::BOOKMARKS) ||
648 trans.GetCryptographer()->is_ready(); 650 trans.GetCryptographer()->is_ready();
649 } 651 }
650 652
651 } // namespace browser_sync 653 } // namespace browser_sync
OLDNEW
« no previous file with comments | « chrome/browser/sync/glue/bookmark_change_processor.cc ('k') | chrome/browser/sync/test/integration/bookmarks_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698