Index: components/gcm_driver/gcm_stats_recorder_impl.cc |
diff --git a/components/gcm_driver/gcm_stats_recorder_impl.cc b/components/gcm_driver/gcm_stats_recorder_impl.cc |
index de3035459fe791c89c695edaca83207f2465aa55..803e6baff0c2adbac480c48957c234375f58f408 100644 |
--- a/components/gcm_driver/gcm_stats_recorder_impl.cc |
+++ b/components/gcm_driver/gcm_stats_recorder_impl.cc |
@@ -163,6 +163,7 @@ void GCMStatsRecorderImpl::Clear() { |
registration_activities_.clear(); |
receiving_activities_.clear(); |
sending_activities_.clear(); |
+ decryption_failure_activities_.clear(); |
} |
void GCMStatsRecorderImpl::NotifyActivityRecorded() { |
@@ -170,6 +171,22 @@ void GCMStatsRecorderImpl::NotifyActivityRecorded() { |
delegate_->OnActivityRecorded(); |
} |
+void GCMStatsRecorderImpl::RecordDecryptionFailure( |
+ const std::string& app_id, |
+ GCMEncryptionProvider::DecryptionFailure reason) { |
+ if (!is_recording_) |
+ return; |
+ |
+ DecryptionFailureActivity data; |
+ DecryptionFailureActivity* inserted_data = InsertCircularBuffer( |
+ &decryption_failure_activities_, data); |
+ inserted_data->app_id = app_id; |
+ inserted_data->details = |
+ GCMEncryptionProvider::ToDecryptionFailureDetailsString(reason); |
+ |
+ NotifyActivityRecorded(); |
+} |
+ |
void GCMStatsRecorderImpl::RecordCheckin( |
const std::string& event, |
const std::string& details) { |
@@ -460,6 +477,10 @@ void GCMStatsRecorderImpl::CollectActivities( |
recorded_activities->sending_activities.begin(), |
sending_activities_.begin(), |
sending_activities_.end()); |
+ recorded_activities->decryption_failure_activities.insert( |
+ recorded_activities->decryption_failure_activities.begin(), |
+ decryption_failure_activities_.begin(), |
+ decryption_failure_activities_.end()); |
} |
void GCMStatsRecorderImpl::RecordSending(const std::string& app_id, |