OLD | NEW |
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 "base/base64.h" | 5 #include "base/base64.h" |
6 #include "base/i18n/time_formatting.h" | 6 #include "base/i18n/time_formatting.h" |
7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
8 #include "base/sha1.h" | 8 #include "base/sha1.h" |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); | 118 net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this); |
119 } | 119 } |
120 | 120 |
121 void GCMNetworkChannel::Register() { | 121 void GCMNetworkChannel::Register() { |
122 delegate_->Register(base::Bind(&GCMNetworkChannel::OnRegisterComplete, | 122 delegate_->Register(base::Bind(&GCMNetworkChannel::OnRegisterComplete, |
123 weak_factory_.GetWeakPtr())); | 123 weak_factory_.GetWeakPtr())); |
124 } | 124 } |
125 | 125 |
126 void GCMNetworkChannel::OnRegisterComplete( | 126 void GCMNetworkChannel::OnRegisterComplete( |
127 const std::string& registration_id, | 127 const std::string& registration_id, |
128 gcm::GCMClient::Result result) { | 128 gcm::Result result) { |
129 DCHECK(CalledOnValidThread()); | 129 DCHECK(CalledOnValidThread()); |
130 if (result == gcm::GCMClient::SUCCESS) { | 130 if (result == gcm::RESULT_SUCCESS) { |
131 DCHECK(!registration_id.empty()); | 131 DCHECK(!registration_id.empty()); |
132 DVLOG(2) << "Got registration_id"; | 132 DVLOG(2) << "Got registration_id"; |
133 register_backoff_entry_->Reset(); | 133 register_backoff_entry_->Reset(); |
134 registration_id_ = registration_id; | 134 registration_id_ = registration_id; |
135 if (!cached_message_.empty()) | 135 if (!cached_message_.empty()) |
136 RequestAccessToken(); | 136 RequestAccessToken(); |
137 } else { | 137 } else { |
138 DVLOG(2) << "Register failed: " << result; | 138 DVLOG(2) << "Register failed: " << result; |
139 // Retry in case of transient error. | 139 // Retry in case of transient error. |
140 switch (result) { | 140 switch (result) { |
141 case gcm::GCMClient::NETWORK_ERROR: | 141 case gcm::RESULT_NETWORK_ERROR: |
142 case gcm::GCMClient::SERVER_ERROR: | 142 case gcm::RESULT_SERVER_ERROR: |
143 case gcm::GCMClient::TTL_EXCEEDED: | 143 case gcm::RESULT_TTL_EXCEEDED: |
144 case gcm::GCMClient::UNKNOWN_ERROR: { | 144 case gcm::RESULT_UNKNOWN_ERROR: { |
145 register_backoff_entry_->InformOfRequest(false); | 145 register_backoff_entry_->InformOfRequest(false); |
146 base::MessageLoop::current()->PostDelayedTask( | 146 base::MessageLoop::current()->PostDelayedTask( |
147 FROM_HERE, | 147 FROM_HERE, |
148 base::Bind(&GCMNetworkChannel::Register, | 148 base::Bind(&GCMNetworkChannel::Register, |
149 weak_factory_.GetWeakPtr()), | 149 weak_factory_.GetWeakPtr()), |
150 register_backoff_entry_->GetTimeUntilRelease()); | 150 register_backoff_entry_->GetTimeUntilRelease()); |
151 break; | 151 break; |
152 } | 152 } |
153 default: | 153 default: |
154 break; | 154 break; |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 void GCMNetworkChannel::ResetRegisterBackoffEntryForTest( | 377 void GCMNetworkChannel::ResetRegisterBackoffEntryForTest( |
378 const net::BackoffEntry::Policy* policy) { | 378 const net::BackoffEntry::Policy* policy) { |
379 register_backoff_entry_.reset(new net::BackoffEntry(policy)); | 379 register_backoff_entry_.reset(new net::BackoffEntry(policy)); |
380 } | 380 } |
381 | 381 |
382 GCMNetworkChannelDiagnostic::GCMNetworkChannelDiagnostic( | 382 GCMNetworkChannelDiagnostic::GCMNetworkChannelDiagnostic( |
383 GCMNetworkChannel* parent) | 383 GCMNetworkChannel* parent) |
384 : parent_(parent), | 384 : parent_(parent), |
385 last_message_empty_echo_token_(false), | 385 last_message_empty_echo_token_(false), |
386 last_post_response_code_(0), | 386 last_post_response_code_(0), |
387 registration_result_(gcm::GCMClient::UNKNOWN_ERROR), | 387 registration_result_(gcm::RESULT_UNKNOWN_ERROR), |
388 sent_messages_count_(0) {} | 388 sent_messages_count_(0) {} |
389 | 389 |
390 scoped_ptr<base::DictionaryValue> | 390 scoped_ptr<base::DictionaryValue> |
391 GCMNetworkChannelDiagnostic::CollectDebugData() const { | 391 GCMNetworkChannelDiagnostic::CollectDebugData() const { |
392 scoped_ptr<base::DictionaryValue> status(new base::DictionaryValue); | 392 scoped_ptr<base::DictionaryValue> status(new base::DictionaryValue); |
393 status->SetString("GCMNetworkChannel.Channel", "GCM"); | 393 status->SetString("GCMNetworkChannel.Channel", "GCM"); |
394 std::string reg_id_hash = base::SHA1HashString(registration_id_); | 394 std::string reg_id_hash = base::SHA1HashString(registration_id_); |
395 status->SetString("GCMNetworkChannel.HashedRegistrationID", | 395 status->SetString("GCMNetworkChannel.HashedRegistrationID", |
396 base::HexEncode(reg_id_hash.c_str(), reg_id_hash.size())); | 396 base::HexEncode(reg_id_hash.c_str(), reg_id_hash.size())); |
397 status->SetString("GCMNetworkChannel.RegistrationResult", | 397 status->SetString("GCMNetworkChannel.RegistrationResult", |
398 GCMClientResultToString(registration_result_)); | 398 GCMClientResultToString(registration_result_)); |
399 status->SetBoolean("GCMNetworkChannel.HadLastMessageEmptyEchoToken", | 399 status->SetBoolean("GCMNetworkChannel.HadLastMessageEmptyEchoToken", |
400 last_message_empty_echo_token_); | 400 last_message_empty_echo_token_); |
401 status->SetString( | 401 status->SetString( |
402 "GCMNetworkChannel.LastMessageReceivedTime", | 402 "GCMNetworkChannel.LastMessageReceivedTime", |
403 base::TimeFormatShortDateAndTime(last_message_received_time_)); | 403 base::TimeFormatShortDateAndTime(last_message_received_time_)); |
404 status->SetInteger("GCMNetworkChannel.LastPostResponseCode", | 404 status->SetInteger("GCMNetworkChannel.LastPostResponseCode", |
405 last_post_response_code_); | 405 last_post_response_code_); |
406 status->SetInteger("GCMNetworkChannel.SentMessages", sent_messages_count_); | 406 status->SetInteger("GCMNetworkChannel.SentMessages", sent_messages_count_); |
407 status->SetInteger("GCMNetworkChannel.ReceivedMessages", | 407 status->SetInteger("GCMNetworkChannel.ReceivedMessages", |
408 parent_->GetReceivedMessagesCount()); | 408 parent_->GetReceivedMessagesCount()); |
409 return status.Pass(); | 409 return status.Pass(); |
410 } | 410 } |
411 | 411 |
412 std::string GCMNetworkChannelDiagnostic::GCMClientResultToString( | 412 std::string GCMNetworkChannelDiagnostic::GCMClientResultToString( |
413 const gcm::GCMClient::Result result) const { | 413 const gcm::Result result) const { |
414 #define ENUM_CASE(x) case x: return #x; break; | 414 #define ENUM_CASE(x) case x: return #x; break; |
415 switch (result) { | 415 switch (result) { |
416 ENUM_CASE(gcm::GCMClient::SUCCESS); | 416 ENUM_CASE(gcm::RESULT_SUCCESS); |
417 ENUM_CASE(gcm::GCMClient::NETWORK_ERROR); | 417 ENUM_CASE(gcm::RESULT_NETWORK_ERROR); |
418 ENUM_CASE(gcm::GCMClient::SERVER_ERROR); | 418 ENUM_CASE(gcm::RESULT_SERVER_ERROR); |
419 ENUM_CASE(gcm::GCMClient::TTL_EXCEEDED); | 419 ENUM_CASE(gcm::RESULT_TTL_EXCEEDED); |
420 ENUM_CASE(gcm::GCMClient::UNKNOWN_ERROR); | 420 ENUM_CASE(gcm::RESULT_UNKNOWN_ERROR); |
421 ENUM_CASE(gcm::GCMClient::NOT_SIGNED_IN); | 421 ENUM_CASE(gcm::RESULT_NOT_SIGNED_IN); |
422 ENUM_CASE(gcm::GCMClient::INVALID_PARAMETER); | 422 ENUM_CASE(gcm::RESULT_INVALID_PARAMETER); |
423 ENUM_CASE(gcm::GCMClient::ASYNC_OPERATION_PENDING); | 423 ENUM_CASE(gcm::RESULT_ASYNC_OPERATION_PENDING); |
424 } | 424 } |
425 NOTREACHED(); | 425 NOTREACHED(); |
426 return ""; | 426 return ""; |
427 } | 427 } |
428 | 428 |
429 } // namespace syncer | 429 } // namespace syncer |
OLD | NEW |