Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(932)

Side by Side Diff: google_apis/gcm/engine/checkin_request.cc

Issue 378643002: [GCM] Check-in with signed in accounts associates device to user (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Update to the code to prevent test crashes. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "google_apis/gcm/engine/checkin_request.h" 5 #include "google_apis/gcm/engine/checkin_request.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "google_apis/gcm/monitoring/gcm_stats_recorder.h" 10 #include "google_apis/gcm/monitoring/gcm_stats_recorder.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 recorder->RecordCheckinFailure(GetCheckinRequestStatusString(status), 73 recorder->RecordCheckinFailure(GetCheckinRequestStatusString(status),
74 will_retry); 74 will_retry);
75 } 75 }
76 } 76 }
77 77
78 } // namespace 78 } // namespace
79 79
80 CheckinRequest::RequestInfo::RequestInfo( 80 CheckinRequest::RequestInfo::RequestInfo(
81 uint64 android_id, 81 uint64 android_id,
82 uint64 security_token, 82 uint64 security_token,
83 const std::map<std::string, std::string>& account_tokens,
83 const std::string& settings_digest, 84 const std::string& settings_digest,
84 const checkin_proto::ChromeBuildProto& chrome_build_proto) 85 const checkin_proto::ChromeBuildProto& chrome_build_proto)
85 : android_id(android_id), 86 : android_id(android_id),
86 security_token(security_token), 87 security_token(security_token),
88 account_tokens(account_tokens),
87 settings_digest(settings_digest), 89 settings_digest(settings_digest),
88 chrome_build_proto(chrome_build_proto) { 90 chrome_build_proto(chrome_build_proto) {
89 } 91 }
90 92
91 CheckinRequest::RequestInfo::~RequestInfo() {} 93 CheckinRequest::RequestInfo::~RequestInfo() {}
92 94
93 CheckinRequest::CheckinRequest( 95 CheckinRequest::CheckinRequest(
94 const GURL& checkin_url, 96 const GURL& checkin_url,
95 const RequestInfo& request_info, 97 const RequestInfo& request_info,
96 const net::BackoffEntry::Policy& backoff_policy, 98 const net::BackoffEntry::Policy& backoff_policy,
(...skipping 23 matching lines...) Expand all
120 request.set_digest(request_info_.settings_digest); 122 request.set_digest(request_info_.settings_digest);
121 123
122 checkin_proto::AndroidCheckinProto* checkin = request.mutable_checkin(); 124 checkin_proto::AndroidCheckinProto* checkin = request.mutable_checkin();
123 checkin->mutable_chrome_build()->CopyFrom(request_info_.chrome_build_proto); 125 checkin->mutable_chrome_build()->CopyFrom(request_info_.chrome_build_proto);
124 #if defined(CHROME_OS) 126 #if defined(CHROME_OS)
125 checkin->set_type(checkin_proto::DEVICE_CHROME_OS); 127 checkin->set_type(checkin_proto::DEVICE_CHROME_OS);
126 #else 128 #else
127 checkin->set_type(checkin_proto::DEVICE_CHROME_BROWSER); 129 checkin->set_type(checkin_proto::DEVICE_CHROME_BROWSER);
128 #endif 130 #endif
129 131
132 // Pack a map of email -> token mappings into a repeated field, where odd
133 // entries are email addresses, while even ones are respective OAuth2 tokens.
134 for (std::map<std::string, std::string>::const_iterator iter =
135 request_info_.account_tokens.begin();
136 iter != request_info_.account_tokens.end();
137 ++iter) {
138 request.add_account_cookie(iter->first);
139 request.add_account_cookie(iter->second);
140 }
141
130 std::string upload_data; 142 std::string upload_data;
131 CHECK(request.SerializeToString(&upload_data)); 143 CHECK(request.SerializeToString(&upload_data));
132 144
133 url_fetcher_.reset( 145 url_fetcher_.reset(
134 net::URLFetcher::Create(checkin_url_, net::URLFetcher::POST, this)); 146 net::URLFetcher::Create(checkin_url_, net::URLFetcher::POST, this));
135 url_fetcher_->SetRequestContext(request_context_getter_); 147 url_fetcher_->SetRequestContext(request_context_getter_);
136 url_fetcher_->SetUploadData(kRequestContentType, upload_data); 148 url_fetcher_->SetUploadData(kRequestContentType, upload_data);
137 recorder_->RecordCheckinInitiated(request_info_.android_id); 149 recorder_->RecordCheckinInitiated(request_info_.android_id);
138 request_start_time_ = base::TimeTicks::Now(); 150 request_start_time_ = base::TimeTicks::Now();
139 url_fetcher_->Start(); 151 url_fetcher_->Start();
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 224
213 RecordCheckinStatusAndReportUMA(SUCCESS, recorder_, false); 225 RecordCheckinStatusAndReportUMA(SUCCESS, recorder_, false);
214 UMA_HISTOGRAM_COUNTS("GCM.CheckinRetryCount", 226 UMA_HISTOGRAM_COUNTS("GCM.CheckinRetryCount",
215 backoff_entry_.failure_count()); 227 backoff_entry_.failure_count());
216 UMA_HISTOGRAM_TIMES("GCM.CheckinCompleteTime", 228 UMA_HISTOGRAM_TIMES("GCM.CheckinCompleteTime",
217 base::TimeTicks::Now() - request_start_time_); 229 base::TimeTicks::Now() - request_start_time_);
218 callback_.Run(response_proto); 230 callback_.Run(response_proto);
219 } 231 }
220 232
221 } // namespace gcm 233 } // namespace gcm
OLDNEW
« no previous file with comments | « google_apis/gcm/engine/checkin_request.h ('k') | google_apis/gcm/engine/checkin_request_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698