diff options
Diffstat (limited to 'chrome/browser/sync/glue/bookmark_model_associator.cc')
-rw-r--r-- | chrome/browser/sync/glue/bookmark_model_associator.cc | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/chrome/browser/sync/glue/bookmark_model_associator.cc b/chrome/browser/sync/glue/bookmark_model_associator.cc index ec57895..6e0ba5c 100644 --- a/chrome/browser/sync/glue/bookmark_model_associator.cc +++ b/chrome/browser/sync/glue/bookmark_model_associator.cc @@ -14,6 +14,7 @@ #include "base/utf_string_conversions.h" #include "chrome/browser/bookmarks/bookmark_model.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/sync/api/sync_error.h" #include "chrome/browser/sync/engine/syncapi.h" #include "chrome/browser/sync/glue/bookmark_change_processor.h" #include "chrome/browser/sync/syncable/nigori_util.h" @@ -44,6 +45,9 @@ namespace browser_sync { static const char kBookmarkBarTag[] = "bookmark_bar"; static const char kSyncedBookmarksTag[] = "synced_bookmarks"; static const char kOtherBookmarksTag[] = "other_bookmarks"; +static const char kServerError[] = + "Server did not create top-level nodes. Possibly we are running against " + "an out-of-date server?"; // Bookmark comparer for map of bookmark nodes. class BookmarkComparer { @@ -178,7 +182,7 @@ BookmarkModelAssociator::~BookmarkModelAssociator() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); } -bool BookmarkModelAssociator::DisassociateModels() { +bool BookmarkModelAssociator::DisassociateModels(SyncError* error) { id_map_.clear(); id_map_inverse_.clear(); dirty_associations_sync_ids_.clear(); @@ -315,20 +319,20 @@ bool BookmarkModelAssociator::GetSyncIdForTaggedNode(const std::string& tag, return true; } -bool BookmarkModelAssociator::AssociateModels() { +bool BookmarkModelAssociator::AssociateModels(SyncError* error) { // Try to load model associations from persisted associations first. If that // succeeds, we don't need to run the complex model matching algorithm. if (LoadAssociations()) return true; - DisassociateModels(); + DisassociateModels(error); // We couldn't load model associations from persisted associations. So build // them. - return BuildAssociations(); + return BuildAssociations(error); } -bool BookmarkModelAssociator::BuildAssociations() { +bool BookmarkModelAssociator::BuildAssociations(SyncError* error) { // Algorithm description: // Match up the roots and recursively do the following: // * For each sync node for the current sync parent node, find the best @@ -352,14 +356,12 @@ bool BookmarkModelAssociator::BuildAssociations() { // and Other Bookmarks. if (!AssociateTaggedPermanentNode(bookmark_model_->other_node(), kOtherBookmarksTag)) { - LOG(ERROR) << "Server did not create top-level nodes. Possibly we " - << "are running against an out-of-date server?"; + error->Reset(FROM_HERE, kServerError, model_type()); return false; } if (!AssociateTaggedPermanentNode(bookmark_model_->bookmark_bar_node(), kBookmarkBarTag)) { - LOG(ERROR) << "Server did not create top-level nodes. Possibly we " - << "are running against an out-of-date server?"; + error->Reset(FROM_HERE, kServerError, model_type()); return false; } if (!AssociateTaggedPermanentNode(bookmark_model_->synced_node(), @@ -368,8 +370,7 @@ bool BookmarkModelAssociator::BuildAssociations() { // server if the command line flag is set. CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableSyncedBookmarksFolder)) { - LOG(ERROR) << "Server did not create top-level synced nodes. Possibly " - << "we are running against an out-of-date server?"; + error->Reset(FROM_HERE, kServerError, model_type()); return false; } int64 bookmark_bar_sync_id = GetSyncIdFromChromeId( @@ -399,6 +400,7 @@ bool BookmarkModelAssociator::BuildAssociations() { sync_api::ReadNode sync_parent(&trans); if (!sync_parent.InitByIdLookup(sync_parent_id)) { + error->Reset(FROM_HERE, "Failed to lookup node.", model_type()); return false; } // Only folder nodes are pushed on to the stack. @@ -414,6 +416,7 @@ bool BookmarkModelAssociator::BuildAssociations() { while (sync_child_id != sync_api::kInvalidId) { sync_api::WriteNode sync_child_node(&trans); if (!sync_child_node.InitByIdLookup(sync_child_id)) { + error->Reset(FROM_HERE, "Failed to lookup node.", model_type()); return false; } |