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

Unified Diff: chrome/browser/services/gcm/push_messaging_service_impl.cc

Issue 938123002: Push API: Add and cleanup UMA logging for unregister/get/delivery. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@incognito
Patch Set: Update tests Created 5 years, 10 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: chrome/browser/services/gcm/push_messaging_service_impl.cc
diff --git a/chrome/browser/services/gcm/push_messaging_service_impl.cc b/chrome/browser/services/gcm/push_messaging_service_impl.cc
index c11dae7ff3c16cb72e0677e0f194dd1a6675310d..86d90ce5416c5e8006b93ad902bf2bf3f8b03413 100644
--- a/chrome/browser/services/gcm/push_messaging_service_impl.cc
+++ b/chrome/browser/services/gcm/push_messaging_service_impl.cc
@@ -59,6 +59,11 @@ namespace gcm {
namespace {
const int kMaxRegistrations = 1000000;
+void RecordDeliveryStatus(content::PushDeliveryStatus status) {
+ UMA_HISTOGRAM_ENUMERATION("PushMessaging.DeliveryStatus",
+ status,
+ content::PUSH_DELIVERY_STATUS_LAST + 1);
+}
Ilya Sherman 2015/02/19 21:01:45 nit: Please leave a blank line after this one.
johnme 2015/02/20 11:34:19 Done.
void RecordUserVisibleStatus(content::PushUserVisibleStatus status) {
UMA_HISTOGRAM_ENUMERATION("PushMessaging.UserVisibleStatus",
status,
@@ -243,7 +248,6 @@ void PushMessagingServiceImpl::DeliverMessageCallback(
int64 service_worker_registration_id,
const GCMClient::IncomingMessage& message,
content::PushDeliveryStatus status) {
- // TODO(mvanouwerkerk): UMA logging.
// TODO(mvanouwerkerk): Show a warning in the developer console of the
// Service Worker corresponding to app_id (and/or on an internals page).
// TODO(mvanouwerkerk): Is there a way to recover from failure?
@@ -265,6 +269,7 @@ void PushMessagingServiceImpl::DeliverMessageCallback(
UnregisterCallback());
break;
}
+ RecordDeliveryStatus(status);
}
void PushMessagingServiceImpl::RequireUserVisibleUX(
@@ -583,12 +588,24 @@ void PushMessagingServiceImpl::DidRegister(
const content::PushMessagingService::RegisterCallback& callback,
const std::string& registration_id,
GCMClient::Result result) {
- content::PushRegistrationStatus status =
- content::PUSH_REGISTRATION_STATUS_SERVICE_ERROR;
- if (result == GCMClient::SUCCESS) {
- status = content::PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE;
- application_id.PersistToDisk(profile_);
- IncreasePushRegistrationCount(1, false /* is_pending */);
+ content::PushRegistrationStatus status;
+ switch (result) {
+ case GCMClient::SUCCESS:
+ status = content::PUSH_REGISTRATION_STATUS_SUCCESS_FROM_PUSH_SERVICE;
+ application_id.PersistToDisk(profile_);
+ IncreasePushRegistrationCount(1, false /* is_pending */);
+ break;
+ case GCMClient::INVALID_PARAMETER:
+ case GCMClient::GCM_DISABLED:
+ case GCMClient::ASYNC_OPERATION_PENDING:
+ case GCMClient::SERVER_ERROR:
+ case GCMClient::UNKNOWN_ERROR:
+ status = content::PUSH_REGISTRATION_STATUS_SERVICE_ERROR;
+ break;
+ case GCMClient::NETWORK_ERROR:
+ case GCMClient::TTL_EXCEEDED:
+ status = content::PUSH_REGISTRATION_STATUS_NETWORK_ERROR;
+ break;
}
RegisterEnd(callback, registration_id, status);
DecreasePushRegistrationCount(1, true /* was_pending */);
@@ -698,28 +715,24 @@ void PushMessagingServiceImpl::DidUnregister(
// Internal calls pass a null callback.
if (!callback.is_null()) {
switch (result) {
- case GCMClient::SUCCESS:
- callback.Run(content::PUSH_UNREGISTRATION_STATUS_SUCCESS_UNREGISTER);
- break;
- case GCMClient::NETWORK_ERROR:
- case GCMClient::TTL_EXCEEDED:
- case GCMClient::ASYNC_OPERATION_PENDING:
- callback.Run(
- retry_on_failure
- ? content::
- PUSH_UNREGISTRATION_STATUS_SUCCESS_WILL_RETRY_NETWORK_ERROR
- : content::PUSH_UNREGISTRATION_STATUS_NETWORK_ERROR);
- break;
- case GCMClient::SERVER_ERROR:
- case GCMClient::INVALID_PARAMETER:
- case GCMClient::GCM_DISABLED:
- case GCMClient::UNKNOWN_ERROR:
- callback.Run(content::PUSH_UNREGISTRATION_STATUS_UNKNOWN_ERROR);
- break;
- default:
- NOTREACHED() << "Unexpected GCMClient::Result value.";
- callback.Run(content::PUSH_UNREGISTRATION_STATUS_UNKNOWN_ERROR);
- break;
+ case GCMClient::SUCCESS:
+ callback.Run(content::PUSH_UNREGISTRATION_STATUS_SUCCESS_UNREGISTERED);
+ break;
+ case GCMClient::INVALID_PARAMETER:
+ case GCMClient::GCM_DISABLED:
+ case GCMClient::ASYNC_OPERATION_PENDING:
+ case GCMClient::SERVER_ERROR:
+ case GCMClient::UNKNOWN_ERROR:
+ callback.Run(content::PUSH_UNREGISTRATION_STATUS_SERVICE_ERROR);
+ break;
+ case GCMClient::NETWORK_ERROR:
+ case GCMClient::TTL_EXCEEDED:
+ callback.Run(
+ retry_on_failure
+ ? content::
+ PUSH_UNREGISTRATION_STATUS_SUCCESS_WILL_RETRY_NETWORK_ERROR
+ : content::PUSH_UNREGISTRATION_STATUS_NETWORK_ERROR);
+ break;
}
}
}

Powered by Google App Engine
This is Rietveld 408576698