| Index: google_apis/gcm/gcm_client_impl.cc
|
| diff --git a/google_apis/gcm/gcm_client_impl.cc b/google_apis/gcm/gcm_client_impl.cc
|
| index 9aaa043285e8774c24159866596b7134fad6274b..d7d87e09c400e84896cc166e8881568033d30cc8 100644
|
| --- a/google_apis/gcm/gcm_client_impl.cc
|
| +++ b/google_apis/gcm/gcm_client_impl.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/sequenced_task_runner.h"
|
| +#include "base/strings/string_number_conversions.h"
|
| #include "base/time/default_clock.h"
|
| #include "google_apis/gcm/base/mcs_message.h"
|
| #include "google_apis/gcm/base/mcs_util.h"
|
| @@ -285,32 +286,36 @@ void GCMClientImpl::ResetState() {
|
| }
|
|
|
| void GCMClientImpl::StartCheckin() {
|
| + CheckinRequest::RequestInfo request_info(
|
| + device_checkin_info_.android_id,
|
| + device_checkin_info_.secret,
|
| + std::string(),
|
| + account_ids_,
|
| + chrome_build_proto_);
|
| checkin_request_.reset(
|
| - new CheckinRequest(base::Bind(&GCMClientImpl::OnCheckinCompleted,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| + new CheckinRequest(request_info,
|
| kDefaultBackoffPolicy,
|
| - chrome_build_proto_,
|
| - device_checkin_info_.android_id,
|
| - device_checkin_info_.secret,
|
| - account_ids_,
|
| + base::Bind(&GCMClientImpl::OnCheckinCompleted,
|
| + weak_ptr_factory_.GetWeakPtr()),
|
| url_request_context_getter_));
|
| checkin_request_->Start();
|
| }
|
|
|
| -void GCMClientImpl::OnCheckinCompleted(uint64 android_id,
|
| - uint64 security_token) {
|
| +void GCMClientImpl::OnCheckinCompleted(
|
| + const checkin_proto::AndroidCheckinResponse& checkin_response) {
|
| checkin_request_.reset();
|
|
|
| - CheckinInfo checkin_info;
|
| - checkin_info.android_id = android_id;
|
| - checkin_info.secret = security_token;
|
| -
|
| - if (!checkin_info.IsValid()) {
|
| - // TODO(fgorski): I don't think a retry here will help, we should probalby
|
| + if (!checkin_response.has_android_id() ||
|
| + !checkin_response.has_security_token()) {
|
| + // TODO(fgorski): I don't think a retry here will help, we should probably
|
| // start over. By checking in with (0, 0).
|
| return;
|
| }
|
|
|
| + CheckinInfo checkin_info;
|
| + checkin_info.android_id = checkin_response.android_id();
|
| + checkin_info.secret = checkin_response.security_token();
|
| +
|
| if (state_ == INITIAL_DEVICE_CHECKIN) {
|
| OnFirstTimeDeviceCheckinCompleted(checkin_info);
|
| } else {
|
|
|