Chromium Code Reviews| Index: chrome/browser/ui/webui/metrics_handler.cc |
| diff --git a/chrome/browser/ui/webui/metrics_handler.cc b/chrome/browser/ui/webui/metrics_handler.cc |
| index 39ef3287ab9a3d97aa38dce4fe8862980fb3c6b8..f5829fe9fc82396a16d1abcfd6b068075c2399f4 100644 |
| --- a/chrome/browser/ui/webui/metrics_handler.cc |
| +++ b/chrome/browser/ui/webui/metrics_handler.cc |
| @@ -34,6 +34,9 @@ void MetricsHandler::RegisterMessages() { |
| base::Bind(&MetricsHandler::HandleRecordInHistogram, |
| base::Unretained(this))); |
| web_ui()->RegisterMessageCallback( |
| + "metricsHandler:recordTime", |
| + base::Bind(&MetricsHandler::HandleRecordTime, base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback( |
| "metricsHandler:logEventTime", |
| base::Bind(&MetricsHandler::HandleLogEventTime, base::Unretained(this))); |
| } |
| @@ -77,6 +80,26 @@ void MetricsHandler::HandleRecordInHistogram(const base::ListValue* args) { |
| counter->Add(int_value); |
| } |
| +void MetricsHandler::HandleRecordTime(const base::ListValue* args) { |
| + std::string histogram_name; |
| + double value; |
| + |
| + if (!args->GetString(0, &histogram_name) || |
| + !args->GetDouble(1, &value) || |
| + value < 0) { |
| + NOTREACHED(); |
| + return; |
| + } |
| + |
| + base::TimeDelta time_value = base::TimeDelta::FromMilliseconds(value); |
| + |
| + base::HistogramBase* counter = base::LinearHistogram::FactoryTimeGet( |
| + histogram_name, base::TimeDelta::FromMilliseconds(1), |
| + base::TimeDelta::FromSeconds(10), 50, |
| + base::HistogramBase::kUmaTargetedHistogramFlag); |
| + counter->AddTime(time_value); |
|
calamity
2016/08/03 08:23:23
Why not just UMA_HISTOGRAM_TIMES?
tsergeant
2016/08/03 22:53:56
Histogram names passed into the macros have to be
|
| +} |
| + |
| void MetricsHandler::HandleLogEventTime(const base::ListValue* args) { |
| std::string event_name = base::UTF16ToUTF8(ExtractStringValue(args)); |
| WebContents* tab = web_ui()->GetWebContents(); |