| Index: chrome/browser/sync/glue/theme_model_associator.cc
|
| diff --git a/chrome/browser/sync/glue/theme_model_associator.cc b/chrome/browser/sync/glue/theme_model_associator.cc
|
| index 069baef5e244bbd0323f6318ed2de28ef6bfa70b..5521de4c671881becf62638e17c3aa6fc2ab01fd 100644
|
| --- a/chrome/browser/sync/glue/theme_model_associator.cc
|
| +++ b/chrome/browser/sync/glue/theme_model_associator.cc
|
| @@ -32,19 +32,22 @@ static const char kNoThemesFolderError[] =
|
| } // namespace
|
|
|
| ThemeModelAssociator::ThemeModelAssociator(
|
| - ProfileSyncService* sync_service)
|
| - : sync_service_(sync_service) {
|
| + ProfileSyncService* sync_service,
|
| + DataTypeErrorHandler* error_handler)
|
| + : sync_service_(sync_service),
|
| + error_handler_(error_handler) {
|
| DCHECK(sync_service_);
|
| }
|
|
|
| ThemeModelAssociator::~ThemeModelAssociator() {}
|
|
|
| -bool ThemeModelAssociator::AssociateModels(SyncError* error) {
|
| +SyncError ThemeModelAssociator::AssociateModels() {
|
| sync_api::WriteTransaction trans(FROM_HERE, sync_service_->GetUserShare());
|
| sync_api::ReadNode root(&trans);
|
| if (!root.InitByTagLookup(kThemesTag)) {
|
| - error->Reset(FROM_HERE, kNoThemesFolderError, model_type());
|
| - return false;
|
| + return error_handler_->CreateAndUploadError(FROM_HERE,
|
| + kNoThemesFolderError,
|
| + model_type());
|
| }
|
|
|
| Profile* profile = sync_service_->profile();
|
| @@ -66,10 +69,10 @@ bool ThemeModelAssociator::AssociateModels(SyncError* error) {
|
| sync_api::WriteNode node(&trans);
|
| if (!node.InitUniqueByCreation(syncable::THEMES, root,
|
| kCurrentThemeClientTag)) {
|
| - error->Reset(FROM_HERE,
|
| - "Could not create current theme node.",
|
| - model_type());
|
| - return false;
|
| + return error_handler_->CreateAndUploadError(
|
| + FROM_HERE,
|
| + "Could not create current theme node.",
|
| + model_type());
|
| }
|
| node.SetIsFolder(false);
|
| node.SetTitle(UTF8ToWide(kCurrentThemeNodeTitle));
|
| @@ -77,12 +80,12 @@ bool ThemeModelAssociator::AssociateModels(SyncError* error) {
|
| GetThemeSpecificsFromCurrentTheme(profile, &theme_specifics);
|
| node.SetThemeSpecifics(theme_specifics);
|
| }
|
| - return true;
|
| + return SyncError();
|
| }
|
|
|
| -bool ThemeModelAssociator::DisassociateModels(SyncError* error) {
|
| +SyncError ThemeModelAssociator::DisassociateModels() {
|
| // We don't maintain any association state, so nothing to do.
|
| - return true;
|
| + return SyncError();
|
| }
|
|
|
| bool ThemeModelAssociator::SyncModelHasUserCreatedNodes(bool* has_nodes) {
|
|
|