Chromium Code Reviews| Index: chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc |
| diff --git a/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc b/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc |
| index 3c44c1c3c9f8dad1fb056bdeeb6e5f2ccc14bbe7..c887f5ae6170fa94711d8874e207de1276730e98 100644 |
| --- a/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc |
| +++ b/chrome/browser/ui/webui/media_router/media_router_webui_message_handler.cc |
| @@ -7,6 +7,7 @@ |
| #include <string> |
| #include "base/bind.h" |
| +#include "base/metrics/histogram_macros.h" |
| #include "base/strings/stringprintf.h" |
| #include "chrome/browser/media/router/issue.h" |
| #include "chrome/browser/ui/webui/media_router/media_router_ui.h" |
| @@ -27,6 +28,7 @@ const char kCreateRoute[] = "requestRoute"; |
| const char kActOnIssue[] = "actOnIssue"; |
| const char kCloseRoute[] = "closeRoute"; |
| const char kCloseDialog[] = "closeDialog"; |
| +const char kReportSinkCount[] = "reportSinkCount"; |
| // JS function names. |
| const char kSetInitialData[] = "media_router.ui.setInitialData"; |
| @@ -207,6 +209,9 @@ void MediaRouterWebUIMessageHandler::OnCreateRouteResponseReceived( |
| base::StringValue(sink_id), |
| *base::Value::CreateNullValue()); |
| } |
| + |
| + UMA_HISTOGRAM_BOOLEAN( |
| + "MediaRouter.Ui.Action.StartLocalSessionSuccessful", route); |
| } |
| void MediaRouterWebUIMessageHandler::UpdateIssue(const Issue* issue) { |
| @@ -246,6 +251,10 @@ void MediaRouterWebUIMessageHandler::RegisterMessages() { |
| kCloseDialog, |
| base::Bind(&MediaRouterWebUIMessageHandler::OnCloseDialog, |
| base::Unretained(this))); |
| + web_ui()->RegisterMessageCallback( |
| + kReportSinkCount, |
| + base::Bind(&MediaRouterWebUIMessageHandler::OnReportSinkCount, |
| + base::Unretained(this))); |
| } |
| void MediaRouterWebUIMessageHandler::OnRequestInitialData( |
| @@ -373,6 +382,19 @@ void MediaRouterWebUIMessageHandler::OnCloseDialog( |
| media_router_ui_->Close(); |
| } |
| +void MediaRouterWebUIMessageHandler::OnReportSinkCount( |
| + const base::ListValue* args) { |
| + DVLOG(1) << "OnReportSinkCount"; |
|
Peter Kasting
2015/10/23 23:48:51
Do you need these? We try hard to avoid logging a
apacible
2015/10/24 22:06:28
+imcheng: Do you remember our plans with the per-f
imcheng
2015/10/26 17:18:14
It helps with our debugging. Since it is only a DV
|
| + const base::DictionaryValue* args_dict = nullptr; |
| + int sink_count = -1; |
|
Peter Kasting
2015/10/23 23:48:51
Do you get a warning if you omit the initializers
apacible
2015/10/24 22:06:28
Done.
|
| + if (!args->GetDictionary(0, &args_dict) || |
| + !args_dict->GetInteger("sinkCount", &sink_count)) { |
| + DVLOG(1) << "Unable to extract args."; |
| + return; |
| + } |
| + UMA_HISTOGRAM_COUNTS_100("MediaRouter.Ui.Device.Count", sink_count); |
| +} |
| + |
| bool MediaRouterWebUIMessageHandler::ActOnIssueType( |
| const IssueAction::Type& action_type, |
| const base::DictionaryValue* args) { |