| Index: google_apis/gcm/engine/checkin_request.cc
|
| diff --git a/google_apis/gcm/engine/checkin_request.cc b/google_apis/gcm/engine/checkin_request.cc
|
| index 94a6fc9e38ac8d8d27f9a7cdd0c69f5cd413695b..7addbebcad04b8ebe81bf7e6ec0e5ed2274335cb 100644
|
| --- a/google_apis/gcm/engine/checkin_request.cc
|
| +++ b/google_apis/gcm/engine/checkin_request.cc
|
| @@ -46,21 +46,30 @@ void RecordCheckinStatusToUMA(CheckinRequestStatus status) {
|
|
|
| } // namespace
|
|
|
| -CheckinRequest::CheckinRequest(
|
| - const CheckinRequestCallback& callback,
|
| - const net::BackoffEntry::Policy& backoff_policy,
|
| - const checkin_proto::ChromeBuildProto& chrome_build_proto,
|
| +CheckinRequest::RequestInfo::RequestInfo(
|
| uint64 android_id,
|
| uint64 security_token,
|
| + const std::string& settings_digest,
|
| const std::vector<std::string>& account_ids,
|
| + const checkin_proto::ChromeBuildProto& chrome_build_proto)
|
| + : android_id(android_id),
|
| + security_token(security_token),
|
| + settings_digest(settings_digest),
|
| + account_ids(account_ids),
|
| + chrome_build_proto(chrome_build_proto) {
|
| +}
|
| +
|
| +CheckinRequest::RequestInfo::~RequestInfo() {}
|
| +
|
| +CheckinRequest::CheckinRequest(
|
| + const RequestInfo& request_info,
|
| + const net::BackoffEntry::Policy& backoff_policy,
|
| + const CheckinRequestCallback& callback,
|
| net::URLRequestContextGetter* request_context_getter)
|
| : request_context_getter_(request_context_getter),
|
| callback_(callback),
|
| backoff_entry_(&backoff_policy),
|
| - chrome_build_proto_(chrome_build_proto),
|
| - android_id_(android_id),
|
| - security_token_(security_token),
|
| - account_ids_(account_ids),
|
| + request_info_(request_info),
|
| weak_ptr_factory_(this) {
|
| }
|
|
|
| @@ -70,21 +79,24 @@ void CheckinRequest::Start() {
|
| DCHECK(!url_fetcher_.get());
|
|
|
| checkin_proto::AndroidCheckinRequest request;
|
| - request.set_id(android_id_);
|
| - request.set_security_token(security_token_);
|
| + request.set_id(request_info_.android_id);
|
| + request.set_security_token(request_info_.security_token);
|
| request.set_user_serial_number(kDefaultUserSerialNumber);
|
| request.set_version(kRequestVersionValue);
|
| + if (!request_info_.settings_digest.empty())
|
| + request.set_digest(request_info_.settings_digest);
|
|
|
| checkin_proto::AndroidCheckinProto* checkin = request.mutable_checkin();
|
| - checkin->mutable_chrome_build()->CopyFrom(chrome_build_proto_);
|
| + checkin->mutable_chrome_build()->CopyFrom(request_info_.chrome_build_proto);
|
| #if defined(CHROME_OS)
|
| checkin->set_type(checkin_proto::DEVICE_CHROME_OS);
|
| #else
|
| checkin->set_type(checkin_proto::DEVICE_CHROME_BROWSER);
|
| #endif
|
|
|
| - for (std::vector<std::string>::const_iterator iter = account_ids_.begin();
|
| - iter != account_ids_.end();
|
| + for (std::vector<std::string>::const_iterator iter =
|
| + request_info_.account_ids.begin();
|
| + iter != request_info_.account_ids.end();
|
| ++iter) {
|
| request.add_account_cookie("[" + *iter + "]");
|
| }
|
| @@ -141,7 +153,7 @@ void CheckinRequest::OnURLFetchComplete(const net::URLFetcher* source) {
|
| << response_status << ". Checkin failed.";
|
| RecordCheckinStatusToUMA(response_status == net::HTTP_BAD_REQUEST ?
|
| HTTP_BAD_REQUEST : HTTP_UNAUTHORIZED);
|
| - callback_.Run(0,0);
|
| + callback_.Run(response_proto);
|
| return;
|
| }
|
|
|
| @@ -167,7 +179,7 @@ void CheckinRequest::OnURLFetchComplete(const net::URLFetcher* source) {
|
| }
|
|
|
| RecordCheckinStatusToUMA(SUCCESS);
|
| - callback_.Run(response_proto.android_id(), response_proto.security_token());
|
| + callback_.Run(response_proto);
|
| }
|
|
|
| } // namespace gcm
|
|
|