Chromium Code Reviews| Index: google_apis/gcm/engine/heartbeat_manager.cc |
| diff --git a/google_apis/gcm/engine/heartbeat_manager.cc b/google_apis/gcm/engine/heartbeat_manager.cc |
| index 8ac70b841b90f5a200f28b8a82fba47f674e4674..032e58ec0e40121e89f66094de97de8d9c104a9b 100644 |
| --- a/google_apis/gcm/engine/heartbeat_manager.cc |
| +++ b/google_apis/gcm/engine/heartbeat_manager.cc |
| @@ -4,6 +4,7 @@ |
| #include "google_apis/gcm/engine/heartbeat_manager.h" |
| +#include <limits> |
| #include <utility> |
| #include "base/callback.h" |
| @@ -166,6 +167,7 @@ void HeartbeatManager::OnHeartbeatTriggered() { |
| } |
| void HeartbeatManager::RestartTimer() { |
| + int interval_ms = std::numeric_limits<int>::max(); |
|
Nicolas Zea
2016/03/03 00:19:43
Why not initialize to heartbeat_interval_ms_?
fgorski
2016/03/03 17:10:35
Done.
|
| if (!waiting_for_ack_) { |
| // Recalculate the timer interval based network type. |
|
Nicolas Zea
2016/03/03 00:19:43
nit: based network type -> based on network type
fgorski
2016/03/03 17:10:35
Done.
|
| // Server interval takes precedence over client interval, even if the latter |
| @@ -176,29 +178,30 @@ void HeartbeatManager::RestartTimer() { |
| } else if (HasClientHeartbeatInterval()) { |
| // Client interval might have been adjusted up, which should only take |
| // effect during a reconnection. |
| - if (client_interval_ms_ < heartbeat_interval_ms_ || |
| + if (client_interval_ms_ <= heartbeat_interval_ms_ || |
| heartbeat_interval_ms_ == 0) { |
| heartbeat_interval_ms_ = client_interval_ms_; |
| } |
| } else { |
| heartbeat_interval_ms_ = GetDefaultHeartbeatInterval(); |
| } |
| + interval_ms = heartbeat_interval_ms_; |
| DVLOG(1) << "Sending next heartbeat in " |
| - << heartbeat_interval_ms_ << " ms."; |
| + << interval_ms << " ms."; |
| } else { |
| - heartbeat_interval_ms_ = kHeartbeatAckDefaultMs; |
| + // Not updating the value of heartbeat_interval_ms_ when waitign for ack. |
|
sjoe
2016/03/02 23:46:08
waitign -> waiting
fgorski
2016/03/03 17:10:35
Done.
|
| + interval_ms = kHeartbeatAckDefaultMs; |
| DVLOG(1) << "Resetting timer for ack with " |
| - << heartbeat_interval_ms_ << " ms interval."; |
| + << interval_ms << " ms interval."; |
| } |
| heartbeat_expected_time_ = |
| - base::Time::Now() + |
| - base::TimeDelta::FromMilliseconds(heartbeat_interval_ms_); |
| + base::Time::Now() + base::TimeDelta::FromMilliseconds(interval_ms); |
| heartbeat_timer_->Start(FROM_HERE, |
| - base::TimeDelta::FromMilliseconds( |
| - heartbeat_interval_ms_), |
| - base::Bind(&HeartbeatManager::OnHeartbeatTriggered, |
| - weak_ptr_factory_.GetWeakPtr())); |
| + base::TimeDelta::FromMilliseconds( |
| + interval_ms), |
| + base::Bind(&HeartbeatManager::OnHeartbeatTriggered, |
| + weak_ptr_factory_.GetWeakPtr())); |
| #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
| // Windows, Mac, Android, iOS, and Chrome OS all provide a way to be notified |