| Index: chrome/browser/services/gcm/gcm_profile_service.cc
|
| diff --git a/chrome/browser/services/gcm/gcm_profile_service.cc b/chrome/browser/services/gcm/gcm_profile_service.cc
|
| index 0539acc212bc5dcee3ad535f239acc9b35705254..c0fc8529a9bf134541b7d173242c18d1c8cdf896 100644
|
| --- a/chrome/browser/services/gcm/gcm_profile_service.cc
|
| +++ b/chrome/browser/services/gcm/gcm_profile_service.cc
|
| @@ -16,6 +16,9 @@
|
| #include "components/gcm_driver/gcm_driver_android.h"
|
| #else
|
| #include "base/bind.h"
|
| +#if defined(OS_CHROMEOS)
|
| +#include "chrome/browser/services/gcm/chromeos_gcm_connection_observer.h"
|
| +#endif
|
| #include "base/files/file_path.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "chrome/browser/services/gcm/gcm_account_tracker.h"
|
| @@ -167,6 +170,11 @@ GCMProfileService::GCMProfileService(
|
| profile_->GetPath().Append(chrome::kGCMStoreDirname),
|
| profile_->GetRequestContext());
|
|
|
| +#ifdef CHROMEOS
|
| + chromeos_connection_observer_.reset(new gcm::ChromeOSGCMConnectionObserver);
|
| + driver_->AddConnectionObserver(chromeos_connection_observer_.get());
|
| +#endif
|
| +
|
| identity_observer_.reset(new IdentityObserver(
|
| profile, static_cast<gcm::GCMDriverDesktop*>(driver_.get())));
|
| }
|
| @@ -202,6 +210,10 @@ void GCMProfileService::Shutdown() {
|
| #if !defined(OS_ANDROID)
|
| identity_observer_.reset();
|
| #endif // !defined(OS_ANDROID)
|
| +#if defined(OS_CHROMEOS)
|
| + driver_->RemoveConnectionObserver(chromeos_connection_observer_.get());
|
| + chromeos_connection_observer_.reset();
|
| +#endif
|
|
|
| if (driver_) {
|
| driver_->Shutdown();
|
|
|