| 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..fc5e210e5f68cf72c5790a45b06a289564814288 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::Histogram::FactoryTimeGet(
|
| + histogram_name, base::TimeDelta::FromMilliseconds(1),
|
| + base::TimeDelta::FromSeconds(10), 50,
|
| + base::HistogramBase::kUmaTargetedHistogramFlag);
|
| + counter->AddTime(time_value);
|
| +}
|
| +
|
| void MetricsHandler::HandleLogEventTime(const base::ListValue* args) {
|
| std::string event_name = base::UTF16ToUTF8(ExtractStringValue(args));
|
| WebContents* tab = web_ui()->GetWebContents();
|
|
|