Index: chrome/browser/sync/glue/sync_backend_host.cc |
diff --git a/chrome/browser/sync/glue/sync_backend_host.cc b/chrome/browser/sync/glue/sync_backend_host.cc |
index 96382dd54689b63ce39853679b4b66a265f73970..d86bdaed7ca1d96b01b496c1643640f4461e1fed 100644 |
--- a/chrome/browser/sync/glue/sync_backend_host.cc |
+++ b/chrome/browser/sync/glue/sync_backend_host.cc |
@@ -26,6 +26,7 @@ |
#include "chrome/browser/sync/glue/bridged_sync_notifier.h" |
#include "chrome/browser/sync/glue/change_processor.h" |
#include "chrome/browser/sync/glue/chrome_encryptor.h" |
+#include "chrome/browser/sync/glue/chrome_sync_notification_bridge.h" |
#include "chrome/browser/sync/glue/sync_backend_registrar.h" |
#include "chrome/browser/sync/invalidations/invalidator_storage.h" |
#include "chrome/browser/sync/sync_prefs.h" |
@@ -292,7 +293,6 @@ SyncBackendHost::SyncBackendHost( |
weak_ptr_factory_.GetWeakPtr())), |
initialization_state_(NOT_ATTEMPTED), |
sync_prefs_(sync_prefs), |
- chrome_sync_notification_bridge_(profile_), |
sync_notifier_factory_( |
ParseNotifierOptions(*CommandLine::ForCurrentProcess(), |
profile_->GetRequestContext()), |
@@ -308,7 +308,6 @@ SyncBackendHost::SyncBackendHost(Profile* profile) |
profile_(profile), |
name_("Unknown"), |
initialization_state_(NOT_ATTEMPTED), |
- chrome_sync_notification_bridge_(profile_), |
sync_notifier_factory_( |
ParseNotifierOptions(*CommandLine::ForCurrentProcess(), |
profile_->GetRequestContext()), |
@@ -378,6 +377,10 @@ void SyncBackendHost::Initialize( |
if (!sync_thread_.Start()) |
return; |
+ chrome_sync_notification_bridge_.reset( |
+ new ChromeSyncNotificationBridge( |
+ profile_, sync_thread_.message_loop_proxy())); |
+ |
frontend_ = frontend; |
DCHECK(frontend); |
@@ -408,7 +411,7 @@ void SyncBackendHost::Initialize( |
base::Bind(&MakeHttpBridgeFactory, |
make_scoped_refptr(profile_->GetRequestContext())), |
credentials, |
- &chrome_sync_notification_bridge_, |
+ chrome_sync_notification_bridge_.get(), |
&sync_notifier_factory_, |
sync_manager_factory, |
delete_sync_data_folder, |
@@ -585,6 +588,7 @@ void SyncBackendHost::Shutdown(bool sync_disabled) { |
registrar_.reset(); |
frontend_ = NULL; |
+ chrome_sync_notification_bridge_.reset(); |
core_ = NULL; // Releases reference to core_. |
} |
@@ -756,7 +760,7 @@ void SyncBackendHost::FinishConfigureDataTypesOnFrontendLoop( |
// Update |chrome_sync_notification_bridge_|'s enabled types here as it has |
// to happen on the UI thread. |
- chrome_sync_notification_bridge_.UpdateEnabledTypes(configured_types); |
+ chrome_sync_notification_bridge_->UpdateEnabledTypes(configured_types); |
// Notify SyncManager (especially the notification listener) about new types. |
sync_thread_.message_loop()->PostTask(FROM_HERE, |