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

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

Issue 179043005: [GCM] Remove the requirement for manifest key (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove cert Created 6 years, 9 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/registration_request.h" 5 #include "google_apis/gcm/engine/registration_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 "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 10 matching lines...) Expand all
21 21
22 namespace { 22 namespace {
23 23
24 const char kRegistrationURL[] = 24 const char kRegistrationURL[] =
25 "https://android.clients.google.com/c2dm/register3"; 25 "https://android.clients.google.com/c2dm/register3";
26 const char kRegistrationRequestContentType[] = 26 const char kRegistrationRequestContentType[] =
27 "application/x-www-form-urlencoded"; 27 "application/x-www-form-urlencoded";
28 28
29 // Request constants. 29 // Request constants.
30 const char kAppIdKey[] = "app"; 30 const char kAppIdKey[] = "app";
31 const char kCertKey[] = "cert";
32 const char kDeviceIdKey[] = "device"; 31 const char kDeviceIdKey[] = "device";
33 const char kLoginHeader[] = "AidLogin"; 32 const char kLoginHeader[] = "AidLogin";
34 const char kSenderKey[] = "sender"; 33 const char kSenderKey[] = "sender";
35 34
36 // Request validation constants. 35 // Request validation constants.
37 const size_t kMaxSenders = 100; 36 const size_t kMaxSenders = 100;
38 37
39 // Response constants. 38 // Response constants.
40 const char kErrorPrefix[] = "Error="; 39 const char kErrorPrefix[] = "Error=";
41 const char kTokenPrefix[] = "token="; 40 const char kTokenPrefix[] = "token=";
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 UMA_HISTOGRAM_ENUMERATION("GCM.RegistrationRequestStatus", status, 79 UMA_HISTOGRAM_ENUMERATION("GCM.RegistrationRequestStatus", status,
81 RegistrationRequest::STATUS_COUNT); 80 RegistrationRequest::STATUS_COUNT);
82 } 81 }
83 82
84 } // namespace 83 } // namespace
85 84
86 RegistrationRequest::RequestInfo::RequestInfo( 85 RegistrationRequest::RequestInfo::RequestInfo(
87 uint64 android_id, 86 uint64 android_id,
88 uint64 security_token, 87 uint64 security_token,
89 const std::string& app_id, 88 const std::string& app_id,
90 const std::string& cert,
91 const std::vector<std::string>& sender_ids) 89 const std::vector<std::string>& sender_ids)
92 : android_id(android_id), 90 : android_id(android_id),
93 security_token(security_token), 91 security_token(security_token),
94 app_id(app_id), 92 app_id(app_id),
95 cert(cert),
96 sender_ids(sender_ids) { 93 sender_ids(sender_ids) {
97 } 94 }
98 95
99 RegistrationRequest::RequestInfo::~RequestInfo() {} 96 RegistrationRequest::RequestInfo::~RequestInfo() {}
100 97
101 RegistrationRequest::RegistrationRequest( 98 RegistrationRequest::RegistrationRequest(
102 const RequestInfo& request_info, 99 const RequestInfo& request_info,
103 const net::BackoffEntry::Policy& backoff_policy, 100 const net::BackoffEntry::Policy& backoff_policy,
104 const RegistrationCallback& callback, 101 const RegistrationCallback& callback,
105 int max_retry_count, 102 int max_retry_count,
106 scoped_refptr<net::URLRequestContextGetter> request_context_getter) 103 scoped_refptr<net::URLRequestContextGetter> request_context_getter)
107 : callback_(callback), 104 : callback_(callback),
108 request_info_(request_info), 105 request_info_(request_info),
109 backoff_entry_(&backoff_policy), 106 backoff_entry_(&backoff_policy),
110 request_context_getter_(request_context_getter), 107 request_context_getter_(request_context_getter),
111 retries_left_(max_retry_count), 108 retries_left_(max_retry_count),
112 weak_ptr_factory_(this) { 109 weak_ptr_factory_(this) {
113 DCHECK_GE(max_retry_count, 0); 110 DCHECK_GE(max_retry_count, 0);
114 } 111 }
115 112
116 RegistrationRequest::~RegistrationRequest() {} 113 RegistrationRequest::~RegistrationRequest() {}
117 114
118 void RegistrationRequest::Start() { 115 void RegistrationRequest::Start() {
119 DCHECK(!callback_.is_null()); 116 DCHECK(!callback_.is_null());
120 DCHECK(request_info_.android_id != 0UL); 117 DCHECK(request_info_.android_id != 0UL);
121 DCHECK(request_info_.security_token != 0UL); 118 DCHECK(request_info_.security_token != 0UL);
122 DCHECK(!request_info_.cert.empty());
123 DCHECK(0 < request_info_.sender_ids.size() && 119 DCHECK(0 < request_info_.sender_ids.size() &&
124 request_info_.sender_ids.size() <= kMaxSenders); 120 request_info_.sender_ids.size() <= kMaxSenders);
125 121
126 DCHECK(!url_fetcher_.get()); 122 DCHECK(!url_fetcher_.get());
127 url_fetcher_.reset(net::URLFetcher::Create( 123 url_fetcher_.reset(net::URLFetcher::Create(
128 GURL(kRegistrationURL), net::URLFetcher::POST, this)); 124 GURL(kRegistrationURL), net::URLFetcher::POST, this));
129 url_fetcher_->SetRequestContext(request_context_getter_); 125 url_fetcher_->SetRequestContext(request_context_getter_);
130 126
131 std::string android_id = base::Uint64ToString(request_info_.android_id); 127 std::string android_id = base::Uint64ToString(request_info_.android_id);
132 std::string auth_header = 128 std::string auth_header =
133 std::string(net::HttpRequestHeaders::kAuthorization) + ": " + 129 std::string(net::HttpRequestHeaders::kAuthorization) + ": " +
134 kLoginHeader + " " + android_id + ":" + 130 kLoginHeader + " " + android_id + ":" +
135 base::Uint64ToString(request_info_.security_token); 131 base::Uint64ToString(request_info_.security_token);
136 url_fetcher_->SetExtraRequestHeaders(auth_header); 132 url_fetcher_->SetExtraRequestHeaders(auth_header);
137 133
138 std::string body; 134 std::string body;
139 BuildFormEncoding(kAppIdKey, request_info_.app_id, &body); 135 BuildFormEncoding(kAppIdKey, request_info_.app_id, &body);
140 BuildFormEncoding(kCertKey, request_info_.cert, &body);
141 BuildFormEncoding(kDeviceIdKey, android_id, &body); 136 BuildFormEncoding(kDeviceIdKey, android_id, &body);
142 137
143 std::string senders; 138 std::string senders;
144 for (std::vector<std::string>::const_iterator iter = 139 for (std::vector<std::string>::const_iterator iter =
145 request_info_.sender_ids.begin(); 140 request_info_.sender_ids.begin();
146 iter != request_info_.sender_ids.end(); 141 iter != request_info_.sender_ids.end();
147 ++iter) { 142 ++iter) {
148 DCHECK(!iter->empty()); 143 DCHECK(!iter->empty());
149 if (!senders.empty()) 144 if (!senders.empty())
150 senders.append(","); 145 senders.append(",");
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 221 }
227 222
228 status = REACHED_MAX_RETRIES; 223 status = REACHED_MAX_RETRIES;
229 RecordRegistrationStatusToUMA(status); 224 RecordRegistrationStatusToUMA(status);
230 } 225 }
231 226
232 callback_.Run(status, token); 227 callback_.Run(status, token);
233 } 228 }
234 229
235 } // namespace gcm 230 } // namespace gcm
OLDNEW
« no previous file with comments | « google_apis/gcm/engine/registration_request.h ('k') | google_apis/gcm/engine/registration_request_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698