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

Unified Diff: sync/notifier/gcm_network_channel.cc

Issue 217653002: Cleanup changes in gcm_network_channel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sync/notifier/gcm_network_channel_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sync/notifier/gcm_network_channel.cc
diff --git a/sync/notifier/gcm_network_channel.cc b/sync/notifier/gcm_network_channel.cc
index 3805d0c9508d1f351d87bbb4ad795ece9781f150..484ea057c855740ed1ee7fe43463f06a0455d726 100644
--- a/sync/notifier/gcm_network_channel.cc
+++ b/sync/notifier/gcm_network_channel.cc
@@ -8,7 +8,7 @@
#include "base/sha1.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
-#if !defined(ANDROID)
+#if !defined(OS_ANDROID)
// channel_common.proto defines ANDROID constant that conflicts with Android
// build. At the same time TiclInvalidationService is not used on Android so it
// is safe to exclude these protos from Android build.
@@ -100,53 +100,6 @@ void RecordOutgoingMessageStatus(OutgoingMessageStatus status) {
} // namespace
-GCMNetworkChannelDiagnostic::GCMNetworkChannelDiagnostic(
- GCMNetworkChannel* parent)
- : parent_(parent),
- last_message_empty_echo_token_(false),
- last_post_response_code_(0),
- registration_result_(gcm::GCMClient::UNKNOWN_ERROR),
- sent_messages_count_(0) {}
-
-scoped_ptr<base::DictionaryValue>
-GCMNetworkChannelDiagnostic::CollectDebugData() const {
- scoped_ptr<base::DictionaryValue> status(new base::DictionaryValue);
- status->SetString("GCMNetworkChannel.Channel", "GCM");
- std::string reg_id_hash = base::SHA1HashString(registration_id_);
- status->SetString("GCMNetworkChannel.HashedRegistrationID",
- base::HexEncode(reg_id_hash.c_str(), reg_id_hash.size()));
- status->SetString("GCMNetworkChannel.RegistrationResult",
- GCMClientResultToString(registration_result_));
- status->SetBoolean("GCMNetworkChannel.HadLastMessageEmptyEchoToken",
- last_message_empty_echo_token_);
- status->SetString(
- "GCMNetworkChannel.LastMessageReceivedTime",
- base::TimeFormatShortDateAndTime(last_message_received_time_));
- status->SetInteger("GCMNetworkChannel.LastPostResponseCode",
- last_post_response_code_);
- status->SetInteger("GCMNetworkChannel.SentMessages", sent_messages_count_);
- status->SetInteger("GCMNetworkChannel.ReceivedMessages",
- parent_->GetReceivedMessagesCount());
- return status.Pass();
-}
-
-std::string GCMNetworkChannelDiagnostic::GCMClientResultToString(
- const gcm::GCMClient::Result result) const {
-#define ENUM_CASE(x) case x: return #x; break;
- switch (result) {
- ENUM_CASE(gcm::GCMClient::SUCCESS);
- ENUM_CASE(gcm::GCMClient::NETWORK_ERROR);
- ENUM_CASE(gcm::GCMClient::SERVER_ERROR);
- ENUM_CASE(gcm::GCMClient::TTL_EXCEEDED);
- ENUM_CASE(gcm::GCMClient::UNKNOWN_ERROR);
- ENUM_CASE(gcm::GCMClient::NOT_SIGNED_IN);
- ENUM_CASE(gcm::GCMClient::INVALID_PARAMETER);
- ENUM_CASE(gcm::GCMClient::ASYNC_OPERATION_PENDING);
- }
- NOTREACHED();
- return "";
-}
-
GCMNetworkChannel::GCMNetworkChannel(
scoped_refptr<net::URLRequestContextGetter> request_context_getter,
scoped_ptr<GCMNetworkChannelDelegate> delegate)
@@ -164,22 +117,6 @@ GCMNetworkChannel::~GCMNetworkChannel() {
net::NetworkChangeNotifier::RemoveNetworkChangeObserver(this);
}
-void GCMNetworkChannel::UpdateCredentials(
- const std::string& email,
- const std::string& token) {
- // Do nothing. We get access token by requesting it for every message.
-}
-
-void GCMNetworkChannel::RequestDetailedStatus(
- base::Callback<void(const base::DictionaryValue&)> callback) {
- callback.Run(*diagnostic_info_.CollectDebugData());
-}
-
-void GCMNetworkChannel::ResetRegisterBackoffEntryForTest(
- const net::BackoffEntry::Policy* policy) {
- register_backoff_entry_.reset(new net::BackoffEntry(policy));
-}
-
void GCMNetworkChannel::Register() {
delegate_->Register(base::Bind(&GCMNetworkChannel::OnRegisterComplete,
weak_factory_.GetWeakPtr()));
@@ -235,13 +172,6 @@ void GCMNetworkChannel::SendMessage(const std::string& message) {
}
}
-void GCMNetworkChannel::SetMessageReceiver(
- invalidation::MessageCallback* incoming_receiver) {
- delegate_->SetMessageReceiver(base::Bind(
- &GCMNetworkChannel::OnIncomingMessage, weak_factory_.GetWeakPtr()));
- SyncNetworkChannel::SetMessageReceiver(incoming_receiver);
-}
-
void GCMNetworkChannel::RequestAccessToken() {
DCHECK(CalledOnValidThread());
delegate_->RequestToken(base::Bind(&GCMNetworkChannel::OnGetTokenComplete,
@@ -290,9 +220,39 @@ void GCMNetworkChannel::OnGetTokenComplete(
cached_message_.clear();
}
+void GCMNetworkChannel::OnURLFetchComplete(const net::URLFetcher* source) {
+ DCHECK(CalledOnValidThread());
+ DCHECK_EQ(fetcher_, source);
+ // Free fetcher at the end of function.
+ scoped_ptr<net::URLFetcher> fetcher = fetcher_.Pass();
+
+ net::URLRequestStatus status = fetcher->GetStatus();
+ diagnostic_info_.last_post_response_code_ =
+ status.is_success() ? source->GetResponseCode() : status.error();
+
+ if (status.is_success() &&
+ fetcher->GetResponseCode() == net::HTTP_UNAUTHORIZED) {
+ DVLOG(1) << "URLFetcher failure: HTTP_UNAUTHORIZED";
+ delegate_->InvalidateToken(access_token_);
+ }
+
+ if (!status.is_success() ||
+ (fetcher->GetResponseCode() != net::HTTP_OK &&
+ fetcher->GetResponseCode() != net::HTTP_NO_CONTENT)) {
+ DVLOG(1) << "URLFetcher failure";
+ RecordOutgoingMessageStatus(POST_FAILURE);
+ NotifyStateChange(TRANSIENT_INVALIDATION_ERROR);
+ return;
+ }
+
+ RecordOutgoingMessageStatus(OUTGOING_MESSAGE_SUCCESS);
+ NotifyStateChange(INVALIDATIONS_ENABLED);
+ DVLOG(2) << "URLFetcher success";
+}
+
void GCMNetworkChannel::OnIncomingMessage(const std::string& message,
const std::string& echo_token) {
-#if !defined(ANDROID)
+#if !defined(OS_ANDROID)
if (!echo_token.empty())
echo_token_ = echo_token;
diagnostic_info_.last_message_empty_echo_token_ = echo_token.empty();
@@ -322,36 +282,6 @@ void GCMNetworkChannel::OnIncomingMessage(const std::string& message,
#endif
}
-void GCMNetworkChannel::OnURLFetchComplete(const net::URLFetcher* source) {
- DCHECK(CalledOnValidThread());
- DCHECK_EQ(fetcher_, source);
- // Free fetcher at the end of function.
- scoped_ptr<net::URLFetcher> fetcher = fetcher_.Pass();
-
- net::URLRequestStatus status = fetcher->GetStatus();
- diagnostic_info_.last_post_response_code_ =
- status.is_success() ? source->GetResponseCode() : status.error();
-
- if (status.is_success() &&
- fetcher->GetResponseCode() == net::HTTP_UNAUTHORIZED) {
- DVLOG(1) << "URLFetcher failure: HTTP_UNAUTHORIZED";
- delegate_->InvalidateToken(access_token_);
- }
-
- if (!status.is_success() ||
- (fetcher->GetResponseCode() != net::HTTP_OK &&
- fetcher->GetResponseCode() != net::HTTP_NO_CONTENT)) {
- DVLOG(1) << "URLFetcher failure";
- RecordOutgoingMessageStatus(POST_FAILURE);
- NotifyStateChange(TRANSIENT_INVALIDATION_ERROR);
- return;
- }
-
- RecordOutgoingMessageStatus(OUTGOING_MESSAGE_SUCCESS);
- NotifyStateChange(INVALIDATIONS_ENABLED);
- DVLOG(2) << "URLFetcher success";
-}
-
void GCMNetworkChannel::OnNetworkChanged(
net::NetworkChangeNotifier::ConnectionType connection_type) {
// Network connection is restored. Let's notify cacheinvalidations so it has
@@ -363,7 +293,7 @@ void GCMNetworkChannel::OnNetworkChanged(
GURL GCMNetworkChannel::BuildUrl(const std::string& registration_id) {
DCHECK(!registration_id.empty());
-#if !defined(ANDROID)
+#if !defined(OS_ANDROID)
ipc::invalidation::EndpointId endpoint_id;
endpoint_id.set_c2dm_registration_id(registration_id);
endpoint_id.set_client_key(std::string());
@@ -418,4 +348,73 @@ bool GCMNetworkChannel::Base64DecodeURLSafe(const std::string& input,
return base::Base64Decode(padded_input, output);
}
+void GCMNetworkChannel::SetMessageReceiver(
+ invalidation::MessageCallback* incoming_receiver) {
+ delegate_->SetMessageReceiver(base::Bind(
+ &GCMNetworkChannel::OnIncomingMessage, weak_factory_.GetWeakPtr()));
+ SyncNetworkChannel::SetMessageReceiver(incoming_receiver);
+}
+
+void GCMNetworkChannel::RequestDetailedStatus(
+ base::Callback<void(const base::DictionaryValue&)> callback) {
+ callback.Run(*diagnostic_info_.CollectDebugData());
+}
+
+void GCMNetworkChannel::UpdateCredentials(const std::string& email,
+ const std::string& token) {
+ // Do nothing. We get access token by requesting it for every message.
+}
+
+void GCMNetworkChannel::ResetRegisterBackoffEntryForTest(
+ const net::BackoffEntry::Policy* policy) {
+ register_backoff_entry_.reset(new net::BackoffEntry(policy));
+}
+
+GCMNetworkChannelDiagnostic::GCMNetworkChannelDiagnostic(
+ GCMNetworkChannel* parent)
+ : parent_(parent),
+ last_message_empty_echo_token_(false),
+ last_post_response_code_(0),
+ registration_result_(gcm::GCMClient::UNKNOWN_ERROR),
+ sent_messages_count_(0) {}
+
+scoped_ptr<base::DictionaryValue>
+GCMNetworkChannelDiagnostic::CollectDebugData() const {
+ scoped_ptr<base::DictionaryValue> status(new base::DictionaryValue);
+ status->SetString("GCMNetworkChannel.Channel", "GCM");
+ std::string reg_id_hash = base::SHA1HashString(registration_id_);
+ status->SetString("GCMNetworkChannel.HashedRegistrationID",
+ base::HexEncode(reg_id_hash.c_str(), reg_id_hash.size()));
+ status->SetString("GCMNetworkChannel.RegistrationResult",
+ GCMClientResultToString(registration_result_));
+ status->SetBoolean("GCMNetworkChannel.HadLastMessageEmptyEchoToken",
+ last_message_empty_echo_token_);
+ status->SetString(
+ "GCMNetworkChannel.LastMessageReceivedTime",
+ base::TimeFormatShortDateAndTime(last_message_received_time_));
+ status->SetInteger("GCMNetworkChannel.LastPostResponseCode",
+ last_post_response_code_);
+ status->SetInteger("GCMNetworkChannel.SentMessages", sent_messages_count_);
+ status->SetInteger("GCMNetworkChannel.ReceivedMessages",
+ parent_->GetReceivedMessagesCount());
+ return status.Pass();
+}
+
+std::string GCMNetworkChannelDiagnostic::GCMClientResultToString(
+ const gcm::GCMClient::Result result) const {
+#define ENUM_CASE(x) case x: return #x; break;
+ switch (result) {
+ ENUM_CASE(gcm::GCMClient::SUCCESS);
+ ENUM_CASE(gcm::GCMClient::NETWORK_ERROR);
+ ENUM_CASE(gcm::GCMClient::SERVER_ERROR);
+ ENUM_CASE(gcm::GCMClient::TTL_EXCEEDED);
+ ENUM_CASE(gcm::GCMClient::UNKNOWN_ERROR);
+ ENUM_CASE(gcm::GCMClient::NOT_SIGNED_IN);
+ ENUM_CASE(gcm::GCMClient::INVALID_PARAMETER);
+ ENUM_CASE(gcm::GCMClient::ASYNC_OPERATION_PENDING);
+ }
+ NOTREACHED();
+ return "";
+}
+
} // namespace syncer
« no previous file with comments | « no previous file | sync/notifier/gcm_network_channel_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698