OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chromecast/base/metrics/cast_metrics_helper.h" | 5 #include "chromecast/base/metrics/cast_metrics_helper.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/message_loop/message_loop_proxy.h" | 10 #include "base/message_loop/message_loop_proxy.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
61 CastMetricsHelper::~CastMetricsHelper() { | 61 CastMetricsHelper::~CastMetricsHelper() { |
62 DCHECK_EQ(g_instance, this); | 62 DCHECK_EQ(g_instance, this); |
63 g_instance = NULL; | 63 g_instance = NULL; |
64 } | 64 } |
65 | 65 |
66 void CastMetricsHelper::TagAppStart(const std::string& arg_app_name) { | 66 void CastMetricsHelper::TagAppStart(const std::string& arg_app_name) { |
67 MAKE_SURE_THREAD(TagAppStart, arg_app_name); | 67 MAKE_SURE_THREAD(TagAppStart, arg_app_name); |
68 app_name_ = arg_app_name; | 68 app_name_ = arg_app_name; |
69 app_start_time_ = base::TimeTicks::Now(); | 69 app_start_time_ = base::TimeTicks::Now(); |
70 new_startup_time_ = true; | 70 new_startup_time_ = true; |
71 // Clear app info | |
72 app_id_ = ""; | |
byungchul
2014/12/10 05:39:41
app_id_.clear();
gunsch
2014/12/10 16:54:18
Alternately, you could use UpdateCurrentAppInfo(""
gfhuang
2014/12/10 22:02:41
Done.
| |
73 session_id_ = ""; | |
byungchul
2014/12/10 05:39:41
ditto
| |
74 sdk_version_ = ""; | |
byungchul
2014/12/10 05:39:40
ditto
| |
75 } | |
76 | |
77 void CastMetricsHelper::UpdateCurrentAppInfo(const std::string& app_id, | |
78 const std::string& session_id, | |
79 const std::string& sdk_version) { | |
80 MAKE_SURE_THREAD(UpdateCurrentAppInfo, app_id, session_id, sdk_version); | |
81 app_id_ = app_id; | |
82 session_id_ = session_id; | |
83 sdk_version_ = sdk_version; | |
71 } | 84 } |
72 | 85 |
73 void CastMetricsHelper::LogMediaPlay() { | 86 void CastMetricsHelper::LogMediaPlay() { |
74 RecordSimpleAction(GetMetricsNameWithAppName("MediaPlay", "")); | 87 RecordSimpleAction(GetMetricsNameWithAppInfo("MediaPlay")); |
75 } | 88 } |
76 | 89 |
77 void CastMetricsHelper::LogMediaPause() { | 90 void CastMetricsHelper::LogMediaPause() { |
78 RecordSimpleAction(GetMetricsNameWithAppName("MediaPause", "")); | 91 RecordSimpleAction(GetMetricsNameWithAppInfo("MediaPause")); |
79 } | 92 } |
80 | 93 |
81 void CastMetricsHelper::LogTimeToDisplayVideo() { | 94 void CastMetricsHelper::LogTimeToDisplayVideo() { |
82 if (!new_startup_time_) { // For faster check. | 95 if (!new_startup_time_) { // For faster check. |
83 return; | 96 return; |
84 } | 97 } |
85 MAKE_SURE_THREAD(LogTimeToDisplayVideo); | 98 MAKE_SURE_THREAD(LogTimeToDisplayVideo); |
86 new_startup_time_ = false; | 99 new_startup_time_ = false; |
87 base::TimeDelta launch_time = base::TimeTicks::Now() - app_start_time_; | 100 base::TimeDelta launch_time = base::TimeTicks::Now() - app_start_time_; |
88 const std::string uma_name(GetMetricsNameWithAppName("Startup", | 101 const std::string uma_name(GetMetricsNameWithAppName("Startup", |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
179 metrics_name.append(app_name_); | 192 metrics_name.append(app_name_); |
180 } | 193 } |
181 if (!suffix.empty()) { | 194 if (!suffix.empty()) { |
182 if (!metrics_name.empty()) | 195 if (!metrics_name.empty()) |
183 metrics_name.push_back('.'); | 196 metrics_name.push_back('.'); |
184 metrics_name.append(suffix); | 197 metrics_name.append(suffix); |
185 } | 198 } |
186 return metrics_name; | 199 return metrics_name; |
187 } | 200 } |
188 | 201 |
202 std::string CastMetricsHelper::GetMetricsNameWithAppInfo( | |
203 const std::string& action_name) const { | |
204 DCHECK(message_loop_proxy_->BelongsToCurrentThread()); | |
205 return action_name + "#" + app_id_ + "#" + session_id_ + "#" + sdk_version_; | |
byungchul
2014/12/10 05:39:40
Please define a constant for delimiter, '#' for so
gunsch
2014/12/10 16:54:18
Aside: I saw that you're parsing this in a differe
gfhuang
2014/12/10 22:02:41
Done.
| |
206 } | |
207 | |
189 void CastMetricsHelper::SetMetricsSink(MetricsSink* delegate) { | 208 void CastMetricsHelper::SetMetricsSink(MetricsSink* delegate) { |
190 MAKE_SURE_THREAD(SetMetricsSink, delegate); | 209 MAKE_SURE_THREAD(SetMetricsSink, delegate); |
191 metrics_sink_ = delegate; | 210 metrics_sink_ = delegate; |
192 } | 211 } |
193 | 212 |
194 void CastMetricsHelper::SetRecordActionCallback( | 213 void CastMetricsHelper::SetRecordActionCallback( |
195 const RecordActionCallback& callback) { | 214 const RecordActionCallback& callback) { |
196 DCHECK(message_loop_proxy_->BelongsToCurrentThread()); | 215 DCHECK(message_loop_proxy_->BelongsToCurrentThread()); |
197 default_record_action_callback_ = callback; | 216 default_record_action_callback_ = callback; |
198 } | 217 } |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
237 const base::TimeDelta& value) { | 256 const base::TimeDelta& value) { |
238 // Follow UMA_HISTOGRAM_MEDIUM_TIMES definition. | 257 // Follow UMA_HISTOGRAM_MEDIUM_TIMES definition. |
239 LogTimeHistogramEvent(name, value, | 258 LogTimeHistogramEvent(name, value, |
240 base::TimeDelta::FromMilliseconds(10), | 259 base::TimeDelta::FromMilliseconds(10), |
241 base::TimeDelta::FromMinutes(3), | 260 base::TimeDelta::FromMinutes(3), |
242 50); | 261 50); |
243 } | 262 } |
244 | 263 |
245 } // namespace metrics | 264 } // namespace metrics |
246 } // namespace chromecast | 265 } // namespace chromecast |
OLD | NEW |