| Index: components/gcm_driver/gcm_stats_recorder_android.cc
|
| diff --git a/components/gcm_driver/gcm_stats_recorder_android.cc b/components/gcm_driver/gcm_stats_recorder_android.cc
|
| index 3e2d1ca1bda0fadfb533e4377705b7cac8fe13ad..918638b5c1fe704300dba5a43d6a2d1625628ce6 100644
|
| --- a/components/gcm_driver/gcm_stats_recorder_android.cc
|
| +++ b/components/gcm_driver/gcm_stats_recorder_android.cc
|
| @@ -25,6 +25,7 @@ GCMStatsRecorderAndroid::~GCMStatsRecorderAndroid() {}
|
| void GCMStatsRecorderAndroid::Clear() {
|
| registration_activities_.clear();
|
| receiving_activities_.clear();
|
| + decryption_failure_activities_.clear();
|
| }
|
|
|
| void GCMStatsRecorderAndroid::CollectActivities(
|
| @@ -39,6 +40,10 @@ void GCMStatsRecorderAndroid::CollectActivities(
|
| recorded_activities->receiving_activities.begin(),
|
| receiving_activities_.begin(),
|
| receiving_activities_.end());
|
| + recorded_activities->decryption_failure_activities.insert(
|
| + recorded_activities->decryption_failure_activities.begin(),
|
| + decryption_failure_activities_.begin(),
|
| + decryption_failure_activities_.end());
|
| }
|
|
|
| void GCMStatsRecorderAndroid::RecordRegistrationSent(
|
| @@ -116,4 +121,23 @@ void GCMStatsRecorderAndroid::RecordDataMessageReceived(
|
| delegate_->OnActivityRecorded();
|
| }
|
|
|
| +void GCMStatsRecorderAndroid::RecordDecryptionFailure(
|
| + const std::string& app_id,
|
| + GCMEncryptionProvider::DecryptionFailure reason) {
|
| + if (!is_recording_)
|
| + return;
|
| +
|
| + DecryptionFailureActivity activity;
|
| + activity.app_id = app_id;
|
| + activity.details =
|
| + GCMEncryptionProvider::ToDecryptionFailureDetailsString(reason);
|
| +
|
| + decryption_failure_activities_.push_front(activity);
|
| + if (decryption_failure_activities_.size() > MAX_LOGGED_ACTIVITY_COUNT)
|
| + decryption_failure_activities_.pop_back();
|
| +
|
| + if (delegate_)
|
| + delegate_->OnActivityRecorded();
|
| +}
|
| +
|
| } // namespace gcm
|
|
|