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

Unified Diff: trunk/src/chrome/browser/sync/profile_sync_components_factory_impl.cc

Issue 465113002: Revert 288557 "[Sync] Use OnSingleDataTypeUnrecoverableError for..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: trunk/src/chrome/browser/sync/profile_sync_components_factory_impl.cc
===================================================================
--- trunk/src/chrome/browser/sync/profile_sync_components_factory_impl.cc (revision 289111)
+++ trunk/src/chrome/browser/sync/profile_sync_components_factory_impl.cc (working copy)
@@ -179,6 +179,24 @@
#endif
}
+void ProfileSyncComponentsFactoryImpl::DisableBrokenType(
+ syncer::ModelType type,
+ const tracked_objects::Location& from_here,
+ const std::string& message) {
+ ProfileSyncService* p = ProfileSyncServiceFactory::GetForProfile(profile_);
+ syncer::SyncError error(
+ from_here, syncer::SyncError::DATATYPE_ERROR, message, type);
+ p->DisableDatatype(error);
+}
+
+DataTypeController::DisableTypeCallback
+ProfileSyncComponentsFactoryImpl::MakeDisableCallbackFor(
+ syncer::ModelType type) {
+ return base::Bind(&ProfileSyncComponentsFactoryImpl::DisableBrokenType,
+ weak_factory_.GetWeakPtr(),
+ type);
+}
+
void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes(
syncer::ModelTypeSet disabled_types,
syncer::ModelTypeSet enabled_types,
@@ -187,14 +205,16 @@
// disabled.
if (!disabled_types.Has(syncer::AUTOFILL)) {
pss->RegisterDataTypeController(
- new AutofillDataTypeController(this, profile_));
+ new AutofillDataTypeController(
+ this, profile_, MakeDisableCallbackFor(syncer::AUTOFILL)));
}
// Autofill profile sync is enabled by default. Register unless explicitly
// disabled.
if (!disabled_types.Has(syncer::AUTOFILL_PROFILE)) {
pss->RegisterDataTypeController(
- new AutofillProfileDataTypeController(this, profile_));
+ new AutofillProfileDataTypeController(
+ this, profile_, MakeDisableCallbackFor(syncer::AUTOFILL_PROFILE)));
}
// Bookmark sync is enabled by default. Register unless explicitly
@@ -219,20 +239,23 @@
new UIDataTypeController(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
base::Bind(&ChromeReportUnrecoverableError),
+ MakeDisableCallbackFor(syncer::HISTORY_DELETE_DIRECTIVES),
syncer::HISTORY_DELETE_DIRECTIVES,
this));
}
// Session sync is enabled by default. Register unless explicitly disabled.
if (!disabled_types.Has(syncer::PROXY_TABS)) {
- pss->RegisterDataTypeController(new ProxyDataTypeController(
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
- syncer::PROXY_TABS));
+ pss->RegisterDataTypeController(new ProxyDataTypeController(
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
+ syncer::PROXY_TABS));
pss->RegisterDataTypeController(
- new SessionDataTypeController(this,
- profile_,
- pss->GetSyncedWindowDelegatesGetter(),
- pss->GetLocalDeviceInfoProvider()));
+ new SessionDataTypeController(
+ this,
+ profile_,
+ pss->GetSyncedWindowDelegatesGetter(),
+ pss->GetLocalDeviceInfoProvider(),
+ MakeDisableCallbackFor(syncer::SESSIONS)));
}
// Favicon sync is enabled by default. Register unless explicitly disabled.
@@ -242,12 +265,14 @@
new UIDataTypeController(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
base::Bind(&ChromeReportUnrecoverableError),
+ MakeDisableCallbackFor(syncer::FAVICON_IMAGES),
syncer::FAVICON_IMAGES,
this));
pss->RegisterDataTypeController(
new UIDataTypeController(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
base::Bind(&ChromeReportUnrecoverableError),
+ MakeDisableCallbackFor(syncer::FAVICON_TRACKING),
syncer::FAVICON_TRACKING,
this));
}
@@ -256,7 +281,8 @@
// disabled.
if (!disabled_types.Has(syncer::PASSWORDS)) {
pss->RegisterDataTypeController(
- new PasswordDataTypeController(this, profile_));
+ new PasswordDataTypeController(
+ this, profile_, MakeDisableCallbackFor(syncer::PASSWORDS)));
}
// Article sync is disabled by default. Register only if explicitly enabled.
@@ -265,6 +291,7 @@
new UIDataTypeController(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
base::Bind(&ChromeReportUnrecoverableError),
+ MakeDisableCallbackFor(syncer::ARTICLES),
syncer::ARTICLES,
this));
}
@@ -272,16 +299,19 @@
#if defined(ENABLE_MANAGED_USERS)
pss->RegisterDataTypeController(
new SupervisedUserSyncDataTypeController(
+ MakeDisableCallbackFor(syncer::SUPERVISED_USER_SETTINGS),
syncer::SUPERVISED_USER_SETTINGS,
this,
profile_));
pss->RegisterDataTypeController(
new SupervisedUserSyncDataTypeController(
+ MakeDisableCallbackFor(syncer::SUPERVISED_USERS),
syncer::SUPERVISED_USERS,
this,
profile_));
pss->RegisterDataTypeController(
new SupervisedUserSyncDataTypeController(
+ MakeDisableCallbackFor(syncer::SUPERVISED_USER_SHARED_SETTINGS),
syncer::SUPERVISED_USER_SHARED_SETTINGS,
this,
profile_));
@@ -296,14 +326,17 @@
// disabled.
if (!disabled_types.Has(syncer::APPS)) {
pss->RegisterDataTypeController(
- new ExtensionDataTypeController(syncer::APPS, this, profile_));
+ new ExtensionDataTypeController(syncer::APPS, this, profile_,
+ MakeDisableCallbackFor(syncer::APPS)));
}
// Extension sync is enabled by default. Register unless explicitly
// disabled.
if (!disabled_types.Has(syncer::EXTENSIONS)) {
pss->RegisterDataTypeController(
- new ExtensionDataTypeController(syncer::EXTENSIONS, this, profile_));
+ new ExtensionDataTypeController(
+ syncer::EXTENSIONS, this, profile_,
+ MakeDisableCallbackFor(syncer::EXTENSIONS)));
}
// Preference sync is enabled by default. Register unless explicitly
@@ -313,6 +346,7 @@
new UIDataTypeController(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
base::Bind(&ChromeReportUnrecoverableError),
+ MakeDisableCallbackFor(syncer::PREFERENCES),
syncer::PREFERENCES,
this));
}
@@ -322,6 +356,7 @@
new UIDataTypeController(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
base::Bind(&ChromeReportUnrecoverableError),
+ MakeDisableCallbackFor(syncer::PRIORITY_PREFERENCES),
syncer::PRIORITY_PREFERENCES,
this));
}
@@ -330,7 +365,8 @@
// Theme sync is enabled by default. Register unless explicitly disabled.
if (!disabled_types.Has(syncer::THEMES)) {
pss->RegisterDataTypeController(
- new ThemeDataTypeController(this, profile_));
+ new ThemeDataTypeController(this, profile_,
+ MakeDisableCallbackFor(syncer::THEMES)));
}
#endif
@@ -338,21 +374,26 @@
// disabled.
if (!disabled_types.Has(syncer::SEARCH_ENGINES)) {
pss->RegisterDataTypeController(
- new SearchEngineDataTypeController(this, profile_));
+ new SearchEngineDataTypeController(
+ this, profile_, MakeDisableCallbackFor(syncer::SEARCH_ENGINES)));
}
// Extension setting sync is enabled by default. Register unless explicitly
// disabled.
if (!disabled_types.Has(syncer::EXTENSION_SETTINGS)) {
- pss->RegisterDataTypeController(new ExtensionSettingDataTypeController(
- syncer::EXTENSION_SETTINGS, this, profile_));
+ pss->RegisterDataTypeController(
+ new ExtensionSettingDataTypeController(
+ syncer::EXTENSION_SETTINGS, this, profile_,
+ MakeDisableCallbackFor(syncer::EXTENSION_SETTINGS)));
}
// App setting sync is enabled by default. Register unless explicitly
// disabled.
if (!disabled_types.Has(syncer::APP_SETTINGS)) {
- pss->RegisterDataTypeController(new ExtensionSettingDataTypeController(
- syncer::APP_SETTINGS, this, profile_));
+ pss->RegisterDataTypeController(
+ new ExtensionSettingDataTypeController(
+ syncer::APP_SETTINGS, this, profile_,
+ MakeDisableCallbackFor(syncer::APP_SETTINGS)));
}
#if defined(ENABLE_APP_LIST)
@@ -361,6 +402,7 @@
new UIDataTypeController(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
base::Bind(&ChromeReportUnrecoverableError),
+ MakeDisableCallbackFor(syncer::APP_LIST),
syncer::APP_LIST,
this));
}
@@ -371,6 +413,7 @@
if (enabled_types.Has(syncer::SYNCED_NOTIFICATIONS)) {
pss->RegisterDataTypeController(
new ExtensionBackedDataTypeController(
+ MakeDisableCallbackFor(syncer::SYNCED_NOTIFICATIONS),
syncer::SYNCED_NOTIFICATIONS,
"", // TODO(dewittj): pass the extension hash here.
this,
@@ -378,6 +421,7 @@
pss->RegisterDataTypeController(
new ExtensionBackedDataTypeController(
+ MakeDisableCallbackFor(syncer::SYNCED_NOTIFICATION_APP_INFO),
syncer::SYNCED_NOTIFICATION_APP_INFO,
"", // TODO(dewittj): pass the extension hash here.
this,
@@ -392,6 +436,7 @@
new UIDataTypeController(
BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
base::Bind(&ChromeReportUnrecoverableError),
+ MakeDisableCallbackFor(syncer::DICTIONARY),
syncer::DICTIONARY,
this));
}

Powered by Google App Engine
This is Rietveld 408576698