Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "components/gcm_driver/gcm_stats_recorder_android.h" | |
| 6 | |
| 7 #include "base/metrics/histogram_macros.h" | |
| 8 | |
| 9 namespace gcm { | |
| 10 | |
| 11 const size_t MAX_LOGGED_ACTIVITY_COUNT = 100; | |
|
Nicolas Zea
2015/12/16 22:24:32
nit: put this in an anonymous namespace?
Peter Beverloo
2015/12/17 17:08:24
No need, constants have internal linkage by defaul
| |
| 12 | |
| 13 GCMStatsRecorderAndroid::GCMStatsRecorderAndroid(Delegate* delegate) | |
| 14 : delegate_(delegate) {} | |
| 15 | |
| 16 GCMStatsRecorderAndroid::~GCMStatsRecorderAndroid() {} | |
| 17 | |
| 18 void GCMStatsRecorderAndroid::Clear() { | |
| 19 registration_activities_.clear(); | |
| 20 receiving_activities_.clear(); | |
| 21 } | |
| 22 | |
| 23 void GCMStatsRecorderAndroid::CollectActivities( | |
| 24 RecordedActivities* recorder_activities) const { | |
| 25 DCHECK(recorder_activities); | |
| 26 | |
| 27 recorder_activities->registration_activities.insert( | |
| 28 recorder_activities->registration_activities.begin(), | |
| 29 registration_activities_.begin(), | |
| 30 registration_activities_.end()); | |
| 31 recorder_activities->receiving_activities.insert( | |
| 32 recorder_activities->receiving_activities.begin(), | |
| 33 receiving_activities_.begin(), | |
| 34 receiving_activities_.end()); | |
| 35 } | |
| 36 | |
| 37 void GCMStatsRecorderAndroid::RecordRegistrationSent( | |
| 38 const std::string& app_id) { | |
| 39 UMA_HISTOGRAM_COUNTS("GCM.RegistrationRequest", 1); | |
| 40 if (!is_recording_) | |
| 41 return; | |
| 42 | |
| 43 RecordRegistration(app_id, "Registration request sent", "" /* details */); | |
| 44 } | |
| 45 | |
| 46 void GCMStatsRecorderAndroid::RecordRegistrationResponse( | |
| 47 const std::string& app_id, | |
| 48 bool success) { | |
| 49 if (!is_recording_) | |
| 50 return; | |
| 51 | |
| 52 RecordRegistration( | |
| 53 app_id, "Registration response received", success ? "SUCCESS" | |
|
Nicolas Zea
2015/12/16 22:24:32
nit: consider defining these as const char[] in an
Peter Beverloo
2015/12/17 17:08:24
Moved them to constants, but same reply re: the na
| |
| 54 : "UNKNOWN_ERROR"); | |
| 55 } | |
| 56 | |
| 57 void GCMStatsRecorderAndroid::RecordUnregistrationSent( | |
| 58 const std::string& app_id) { | |
| 59 UMA_HISTOGRAM_COUNTS("GCM.UnregistrationRequest", 1); | |
| 60 if (!is_recording_) | |
| 61 return; | |
| 62 | |
| 63 RecordRegistration(app_id, "Unregistration request sent", "" /* details */); | |
| 64 } | |
| 65 | |
| 66 void GCMStatsRecorderAndroid::RecordUnregistrationResponse( | |
| 67 const std::string& app_id, | |
| 68 bool success) { | |
| 69 if (!is_recording_) | |
| 70 return; | |
| 71 | |
| 72 RecordRegistration( | |
| 73 app_id, "Unregistration response received", success ? "SUCCESS" | |
| 74 : "UNKNOWN_ERROR"); | |
| 75 } | |
| 76 | |
| 77 void GCMStatsRecorderAndroid::RecordRegistration(const std::string& app_id, | |
| 78 const std::string& event, | |
| 79 const std::string& details) { | |
| 80 RegistrationActivity activity; | |
| 81 activity.app_id = app_id; | |
| 82 activity.event = event; | |
| 83 activity.details = details; | |
| 84 | |
| 85 // TODO(peter): Include the |source| (sender id(s)) of the registrations. | |
| 86 | |
| 87 registration_activities_.push_front(activity); | |
| 88 if (registration_activities_.size() > MAX_LOGGED_ACTIVITY_COUNT) | |
| 89 registration_activities_.pop_back(); | |
| 90 | |
| 91 if (delegate_) | |
| 92 delegate_->OnActivityRecorded(); | |
| 93 } | |
| 94 | |
| 95 void GCMStatsRecorderAndroid::RecordDataMessageReceived( | |
| 96 const std::string& app_id, | |
| 97 int message_byte_size) { | |
| 98 UMA_HISTOGRAM_COUNTS("GCM.DataMessageReceived", 1); | |
| 99 | |
| 100 ReceivingActivity activity; | |
| 101 activity.app_id = app_id; | |
| 102 activity.message_byte_size = message_byte_size; | |
| 103 activity.event = "Data msg received"; | |
| 104 | |
| 105 receiving_activities_.push_front(activity); | |
| 106 if (receiving_activities_.size() > MAX_LOGGED_ACTIVITY_COUNT) | |
| 107 receiving_activities_.pop_back(); | |
| 108 | |
| 109 if (delegate_) | |
| 110 delegate_->OnActivityRecorded(); | |
| 111 } | |
| 112 | |
| 113 } // namespace gcm | |
| OLD | NEW |