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

Unified Diff: google_apis/gcm/engine/registration_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 jianli's 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 side-by-side diff with in-line comments
Download patch
Index: google_apis/gcm/engine/registration_request.cc
diff --git a/google_apis/gcm/engine/registration_request.cc b/google_apis/gcm/engine/registration_request.cc
index 287732a76803e1d4f50398a3a8b6d0310e1f6c18..ccb89eeb0ac41d36db1146c3aa4f6327aeadd5a1 100644
--- a/google_apis/gcm/engine/registration_request.cc
+++ b/google_apis/gcm/engine/registration_request.cc
@@ -33,7 +33,8 @@ const char kRegistrationRequestContentType[] =
"application/x-www-form-urlencoded";
// Request constants.
-const char kAppIdKey[] = "app";
+const char kCategoryKey[] = "app";
+const char kSubtypeKey[] = "X-subtype";
const char kDeviceIdKey[] = "device";
const char kLoginHeader[] = "AidLogin";
@@ -75,10 +76,15 @@ bool ShouldRetryWithStatus(RegistrationRequest::Status status) {
RegistrationRequest::RequestInfo::RequestInfo(uint64_t android_id,
uint64_t security_token,
- const std::string& app_id)
- : android_id(android_id), security_token(security_token), app_id(app_id) {
+ const std::string& category,
+ const std::string& subtype)
+ : android_id(android_id),
+ security_token(security_token),
+ category(category),
+ subtype(subtype) {
DCHECK(android_id != 0UL);
DCHECK(security_token != 0UL);
+ DCHECK(!category.empty());
}
RegistrationRequest::RequestInfo::~RequestInfo() {}
@@ -129,10 +135,10 @@ void RegistrationRequest::Start() {
std::string body;
BuildRequestBody(&body);
- DVLOG(1) << "Performing registration for: " << request_info_.app_id;
+ DVLOG(1) << "Performing registration for: " << request_info_.app_id();
DVLOG(1) << "Registration request: " << body;
url_fetcher_->SetUploadData(kRegistrationRequestContentType, body);
- recorder_->RecordRegistrationSent(request_info_.app_id, source_to_record_);
+ recorder_->RecordRegistrationSent(request_info_.app_id(), source_to_record_);
request_start_time_ = base::TimeTicks::Now();
url_fetcher_->Start();
}
@@ -148,7 +154,10 @@ void RegistrationRequest::BuildRequestHeaders(std::string* extra_headers) {
}
void RegistrationRequest::BuildRequestBody(std::string* body) {
- BuildFormEncoding(kAppIdKey, request_info_.app_id, body);
+ BuildFormEncoding(kCategoryKey, request_info_.category, body);
+ if (!request_info_.subtype.empty())
Nicolas Zea 2016/08/17 20:54:09 nit: make this an if/else?
johnme 2016/08/18 17:43:21 |subtype| is an additional field that is sent if n
+ BuildFormEncoding(kSubtypeKey, request_info_.subtype, body);
+
BuildFormEncoding(kDeviceIdKey,
base::Uint64ToString(request_info_.android_id),
body);
@@ -163,15 +172,12 @@ void RegistrationRequest::RetryWithBackoff() {
url_fetcher_.reset();
backoff_entry_.InformOfRequest(false);
- DVLOG(1) << "Delaying GCM registration of app: "
- << request_info_.app_id << ", for "
- << backoff_entry_.GetTimeUntilRelease().InMilliseconds()
+ DVLOG(1) << "Delaying GCM registration of app: " << request_info_.app_id()
+ << ", for " << backoff_entry_.GetTimeUntilRelease().InMilliseconds()
<< " milliseconds.";
recorder_->RecordRegistrationRetryDelayed(
- request_info_.app_id,
- source_to_record_,
- backoff_entry_.GetTimeUntilRelease().InMilliseconds(),
- retries_left_ + 1);
+ request_info_.app_id(), source_to_record_,
+ backoff_entry_.GetTimeUntilRelease().InMilliseconds(), retries_left_ + 1);
DCHECK(!weak_ptr_factory_.HasWeakPtrs());
base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
FROM_HERE,
@@ -223,10 +229,8 @@ RegistrationRequest::Status RegistrationRequest::ParseResponse(
void RegistrationRequest::OnURLFetchComplete(const net::URLFetcher* source) {
std::string token;
Status status = ParseResponse(source, &token);
- recorder_->RecordRegistrationResponse(
- request_info_.app_id,
- source_to_record_,
- status);
+ recorder_->RecordRegistrationResponse(request_info_.app_id(),
+ source_to_record_, status);
DCHECK(custom_request_handler_.get());
custom_request_handler_->ReportUMAs(
@@ -241,10 +245,8 @@ void RegistrationRequest::OnURLFetchComplete(const net::URLFetcher* source) {
}
status = REACHED_MAX_RETRIES;
- recorder_->RecordRegistrationResponse(
- request_info_.app_id,
- source_to_record_,
- status);
+ recorder_->RecordRegistrationResponse(request_info_.app_id(),
+ source_to_record_, status);
// Only REACHED_MAX_RETRIES is reported because the function will skip
// reporting count and time when status is not SUCCESS.

Powered by Google App Engine
This is Rietveld 408576698