Index: components/gcm_driver/gcm_client_impl.cc |
diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc |
index bd44af2c7a28b9843ef1b504b8618534dac6cb39..731a724bb45b1d14c6436deb434393f2a3de98d2 100644 |
--- a/components/gcm_driver/gcm_client_impl.cc |
+++ b/components/gcm_driver/gcm_client_impl.cc |
@@ -82,6 +82,7 @@ enum ResetStoreError { |
const char kGCMScope[] = "GCM"; |
const int kMaxRegistrationRetries = 5; |
const int kMaxUnregistrationRetries = 5; |
+const char kDeletedCountKey[] = "total_deleted"; |
const char kMessageTypeDataMessage[] = "gcm"; |
const char kMessageTypeDeletedMessagesKey[] = "deleted_messages"; |
const char kMessageTypeKey[] = "message_type"; |
@@ -1334,12 +1335,21 @@ void GCMClientImpl::HandleIncomingMessage(const gcm::MCSMessage& message) { |
HandleIncomingDataMessage(app_id, use_subtype, data_message_stanza, |
message_data); |
break; |
- case DELETED_MESSAGES: |
+ case DELETED_MESSAGES: { |
+ int deleted_count = 0; |
+ MessageData::iterator count_iter = message_data.find(kDeletedCountKey); |
+ if (count_iter != message_data.end()) { |
+ if (!base::StringToInt(count_iter->second, &deleted_count)) |
+ deleted_count = 0; |
+ } |
recorder_.RecordDataMessageReceived(app_id, data_message_stanza.from(), |
data_message_stanza.ByteSize(), true, |
- GCMStatsRecorder::DELETED_MESSAGES); |
+ GCMStatsRecorder::DELETED_MESSAGES, |
+ false /* has_collapse_key */, |
+ deleted_count); |
delegate_->OnMessagesDeleted(app_id); |
Peter Beverloo
2016/12/07 13:44:12
nit: please split this block out into an HandleInc
johnme
2016/12/07 14:29:16
Done.
|
break; |
+ } |
case SEND_ERROR: |
HandleIncomingSendError(app_id, data_message_stanza, message_data); |
break; |
@@ -1401,9 +1411,11 @@ void GCMClientImpl::HandleIncomingDataMessage( |
} |
} |
- recorder_.RecordDataMessageReceived(app_id, sender, |
- data_message_stanza.ByteSize(), registered, |
- GCMStatsRecorder::DATA_MESSAGE); |
+ recorder_.RecordDataMessageReceived( |
+ app_id, sender, data_message_stanza.ByteSize(), registered, |
+ GCMStatsRecorder::DATA_MESSAGE, |
+ data_message_stanza.has_token() && !data_message_stanza.token().empty(), |
+ 0 /* deleted_count */); |
if (!registered) |
return; |