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

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

Issue 2111973002: Add support for GCM subtypes to desktop Instance ID implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@iid9push
Patch Set: Address review comments Created 4 years, 4 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
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/unregistration_request.h" 5 #include "google_apis/gcm/engine/unregistration_request.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 11 matching lines...) Expand all
22 #include "net/url_request/url_request_context_getter.h" 22 #include "net/url_request/url_request_context_getter.h"
23 #include "net/url_request/url_request_status.h" 23 #include "net/url_request/url_request_status.h"
24 24
25 namespace gcm { 25 namespace gcm {
26 26
27 namespace { 27 namespace {
28 28
29 const char kRequestContentType[] = "application/x-www-form-urlencoded"; 29 const char kRequestContentType[] = "application/x-www-form-urlencoded";
30 30
31 // Request constants. 31 // Request constants.
32 const char kAppIdKey[] = "app"; 32 const char kCategoryKey[] = "app";
33 const char kSubtypeKey[] = "X-subtype";
33 const char kDeleteKey[] = "delete"; 34 const char kDeleteKey[] = "delete";
34 const char kDeleteValue[] = "true"; 35 const char kDeleteValue[] = "true";
35 const char kDeviceIdKey[] = "device"; 36 const char kDeviceIdKey[] = "device";
36 const char kLoginHeader[] = "AidLogin"; 37 const char kLoginHeader[] = "AidLogin";
37 38
38 } // namespace 39 } // namespace
39 40
40 UnregistrationRequest::RequestInfo::RequestInfo(uint64_t android_id, 41 UnregistrationRequest::RequestInfo::RequestInfo(
41 uint64_t security_token, 42 uint64_t android_id,
42 const std::string& app_id) 43 uint64_t security_token,
43 : android_id(android_id), security_token(security_token), app_id(app_id) { 44 const std::string& app_id,
45 bool use_subtype,
46 const std::string& category_for_subtypes)
47 : android_id(android_id),
48 security_token(security_token),
49 app_id(app_id),
50 use_subtype(use_subtype),
51 category_for_subtypes(category_for_subtypes) {
44 DCHECK(android_id != 0UL); 52 DCHECK(android_id != 0UL);
45 DCHECK(security_token != 0UL); 53 DCHECK(security_token != 0UL);
46 } 54 }
47 55
48 UnregistrationRequest::RequestInfo::~RequestInfo() {} 56 UnregistrationRequest::RequestInfo::~RequestInfo() {}
49 57
50 UnregistrationRequest::CustomRequestHandler::CustomRequestHandler() {} 58 UnregistrationRequest::CustomRequestHandler::CustomRequestHandler() {}
51 59
52 UnregistrationRequest::CustomRequestHandler::~CustomRequestHandler() {} 60 UnregistrationRequest::CustomRequestHandler::~CustomRequestHandler() {}
53 61
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 url_fetcher_->Start(); 110 url_fetcher_->Start();
103 } 111 }
104 112
105 void UnregistrationRequest::BuildRequestHeaders(std::string* extra_headers) { 113 void UnregistrationRequest::BuildRequestHeaders(std::string* extra_headers) {
106 net::HttpRequestHeaders headers; 114 net::HttpRequestHeaders headers;
107 headers.SetHeader( 115 headers.SetHeader(
108 net::HttpRequestHeaders::kAuthorization, 116 net::HttpRequestHeaders::kAuthorization,
109 std::string(kLoginHeader) + " " + 117 std::string(kLoginHeader) + " " +
110 base::Uint64ToString(request_info_.android_id) + ":" + 118 base::Uint64ToString(request_info_.android_id) + ":" +
111 base::Uint64ToString(request_info_.security_token)); 119 base::Uint64ToString(request_info_.security_token));
112 headers.SetHeader(kAppIdKey, request_info_.app_id);
113 *extra_headers = headers.ToString(); 120 *extra_headers = headers.ToString();
114 } 121 }
115 122
116 void UnregistrationRequest::BuildRequestBody(std::string* body) { 123 void UnregistrationRequest::BuildRequestBody(std::string* body) {
117 BuildFormEncoding(kAppIdKey, request_info_.app_id, body); 124 if (request_info_.use_subtype) {
125 BuildFormEncoding(kCategoryKey, request_info_.category_for_subtypes, body);
126 BuildFormEncoding(kSubtypeKey, request_info_.app_id, body);
127 } else {
128 BuildFormEncoding(kCategoryKey, request_info_.app_id, body);
129 }
130
118 BuildFormEncoding(kDeviceIdKey, 131 BuildFormEncoding(kDeviceIdKey,
119 base::Uint64ToString(request_info_.android_id), 132 base::Uint64ToString(request_info_.android_id),
120 body); 133 body);
121 BuildFormEncoding(kDeleteKey, kDeleteValue, body); 134 BuildFormEncoding(kDeleteKey, kDeleteValue, body);
122 135
123 DCHECK(custom_request_handler_.get()); 136 DCHECK(custom_request_handler_.get());
124 custom_request_handler_->BuildRequestBody(body); 137 custom_request_handler_->BuildRequestBody(body);
125 } 138 }
126 139
127 UnregistrationRequest::Status UnregistrationRequest::ParseResponse( 140 UnregistrationRequest::Status UnregistrationRequest::ParseResponse(
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 custom_request_handler_->ReportUMAs(status, 0, base::TimeDelta()); 217 custom_request_handler_->ReportUMAs(status, 0, base::TimeDelta());
205 } 218 }
206 219
207 // status == SUCCESS || INVALID_PARAMETERS || UNKNOWN_ERROR || 220 // status == SUCCESS || INVALID_PARAMETERS || UNKNOWN_ERROR ||
208 // REACHED_MAX_RETRIES 221 // REACHED_MAX_RETRIES
209 222
210 callback_.Run(status); 223 callback_.Run(status);
211 } 224 }
212 225
213 } // namespace gcm 226 } // namespace gcm
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698