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

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

Issue 535683002: Fix use-after-free in HDDDTC shutdown (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix tests Created 6 years, 3 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: chrome/browser/sync/profile_sync_components_factory_impl.cc
diff --git a/chrome/browser/sync/profile_sync_components_factory_impl.cc b/chrome/browser/sync/profile_sync_components_factory_impl.cc
index b0881df0948a05013780f4b8d5554af81cedb48f..52390b06fd32fca81e5e86cd7c7baacc9ce4d9f9 100644
--- a/chrome/browser/sync/profile_sync_components_factory_impl.cc
+++ b/chrome/browser/sync/profile_sync_components_factory_impl.cc
@@ -27,6 +27,7 @@
#include "chrome/browser/sync/glue/extension_backed_data_type_controller.h"
#include "chrome/browser/sync/glue/extension_data_type_controller.h"
#include "chrome/browser/sync/glue/extension_setting_data_type_controller.h"
+#include "chrome/browser/sync/glue/history_delete_directives_data_type_controller.h"
#include "chrome/browser/sync/glue/local_device_info_provider_impl.h"
#include "chrome/browser/sync/glue/password_data_type_controller.h"
#include "chrome/browser/sync/glue/search_engine_data_type_controller.h"
@@ -106,6 +107,7 @@ using browser_sync::ChromeReportUnrecoverableError;
using browser_sync::ExtensionBackedDataTypeController;
using browser_sync::ExtensionDataTypeController;
using browser_sync::ExtensionSettingDataTypeController;
+using browser_sync::HistoryDeleteDirectivesDataTypeController;
using browser_sync::PasswordDataTypeController;
using browser_sync::SearchEngineDataTypeController;
using browser_sync::SessionDataTypeController;
@@ -215,13 +217,10 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes(
// Delete directive sync is enabled by default. Register unless full history
// sync is disabled.
- if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES)) {
+ if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES) &&
+ !history_disabled) {
pss->RegisterDataTypeController(
- new UIDataTypeController(
- BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
- base::Bind(&ChromeReportUnrecoverableError),
- syncer::HISTORY_DELETE_DIRECTIVES,
- this));
+ new HistoryDeleteDirectivesDataTypeController(this, pss));
}
// Session sync is enabled by default. Register unless explicitly disabled.
@@ -240,7 +239,8 @@ void ProfileSyncComponentsFactoryImpl::RegisterCommonDataTypes(
// Favicon sync is enabled by default. Register unless explicitly disabled.
if (!disabled_types.Has(syncer::FAVICON_IMAGES) &&
- !disabled_types.Has(syncer::FAVICON_TRACKING)) {
+ !disabled_types.Has(syncer::FAVICON_TRACKING) &&
+ !history_disabled) {
// crbug/384552. We disable error uploading for this data types for now.
pss->RegisterDataTypeController(
new UIDataTypeController(
@@ -411,15 +411,13 @@ DataTypeManager* ProfileSyncComponentsFactoryImpl::CreateDataTypeManager(
const DataTypeController::TypeMap* controllers,
const sync_driver::DataTypeEncryptionHandler* encryption_handler,
SyncBackendHost* backend,
- DataTypeManagerObserver* observer,
- sync_driver::DataTypeStatusTable* data_type_status_table) {
+ DataTypeManagerObserver* observer) {
return new DataTypeManagerImpl(base::Bind(ChromeReportUnrecoverableError),
debug_info_listener,
controllers,
encryption_handler,
backend,
- observer,
- data_type_status_table);
+ observer);
}
browser_sync::SyncBackendHost*
« no previous file with comments | « chrome/browser/sync/profile_sync_components_factory_impl.h ('k') | chrome/browser/sync/profile_sync_components_factory_mock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698