| Index: components/gcm_driver/gcm_client_impl.cc | 
| diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc | 
| index fa968a0e9a08a6a24202f7d4bc21a828762ecc8d..2b750038a6ff753fa303076028670b07e89de704 100644 | 
| --- a/components/gcm_driver/gcm_client_impl.cc | 
| +++ b/components/gcm_driver/gcm_client_impl.cc | 
| @@ -16,6 +16,7 @@ | 
| #include "base/strings/stringprintf.h" | 
| #include "base/time/default_clock.h" | 
| #include "components/gcm_driver/gcm_backoff_policy.h" | 
| +#include "components/timer/alarm_timer.h" | 
| #include "google_apis/gcm/base/encryptor.h" | 
| #include "google_apis/gcm/base/mcs_message.h" | 
| #include "google_apis/gcm/base/mcs_util.h" | 
| @@ -192,12 +193,16 @@ scoped_ptr<MCSClient> GCMInternalsBuilder::BuildMCSClient( | 
| ConnectionFactory* connection_factory, | 
| GCMStore* gcm_store, | 
| GCMStatsRecorder* recorder) { | 
| -  return make_scoped_ptr<MCSClient>( | 
| -      new MCSClient(version, | 
| -                    clock, | 
| -                    connection_factory, | 
| -                    gcm_store, | 
| -                    recorder)); | 
| +  scoped_ptr<MCSClient> client( | 
| +      new MCSClient(version, clock, connection_factory, gcm_store, recorder)); | 
| + | 
| +#if defined(OS_CHROMEOS) | 
| +  client->SetHeartbeatTimer( | 
| +      make_scoped_ptr(new timer::AlarmTimer(true, /* retain user task */ | 
| +                                            false /* non-repeating */))); | 
| +#endif | 
| + | 
| +  return client.Pass(); | 
| } | 
|  | 
| scoped_ptr<ConnectionFactory> GCMInternalsBuilder::BuildConnectionFactory( | 
|  |