Commit 39323538 authored by Patrick Monette's avatar Patrick Monette Committed by Commit Bot

Adding engagement metrics with the Incompatible Applications page.

Bug: 820539
Change-Id: I0856f63795bc9428eb83ca36cf3d8ff91c6629e3
Reviewed-on: https://chromium-review.googlesource.com/957465
Commit-Queue: Patrick Monette <pmonette@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: default avatarPeter Kasting <pkasting@chromium.org>
Reviewed-by: default avatarRobert Kaplow <rkaplow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543128}
parent bb77e079
...@@ -339,6 +339,7 @@ GURL StartupTabProviderImpl::GetWin10WelcomePageUrl( ...@@ -339,6 +339,7 @@ GURL StartupTabProviderImpl::GetWin10WelcomePageUrl(
#if defined(GOOGLE_CHROME_BUILD) #if defined(GOOGLE_CHROME_BUILD)
// static // static
GURL StartupTabProviderImpl::GetIncompatibleApplicationsUrl() { GURL StartupTabProviderImpl::GetIncompatibleApplicationsUrl() {
UMA_HISTOGRAM_BOOLEAN("IncompatibleApplicationsPage.AddedPostCrash", true);
GURL url(chrome::kChromeUISettingsURL); GURL url(chrome::kChromeUISettingsURL);
return url.Resolve("incompatibleApplications"); return url.Resolve("incompatibleApplications");
} }
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/values.h" #include "base/values.h"
#include "base/win/registry.h" #include "base/win/registry.h"
...@@ -95,7 +97,7 @@ void IncompatibleApplicationsHandler::HandleRequestIncompatibleApplicationsList( ...@@ -95,7 +97,7 @@ void IncompatibleApplicationsHandler::HandleRequestIncompatibleApplicationsList(
{program.info, std::move(registry_key_watcher)}); {program.info, std::move(registry_key_watcher)});
} }
// Also the application to the list that is passed to the javascript. // Also add the application to the list that is passed to the javascript.
base::Value dict(base::Value::Type::DICTIONARY); base::Value dict(base::Value::Type::DICTIONARY);
dict.SetKey("name", base::Value(program.info.name)); dict.SetKey("name", base::Value(program.info.name));
dict.SetKey("type", base::Value(program.blacklist_action->message_type())); dict.SetKey("type", base::Value(program.blacklist_action->message_type()));
...@@ -103,6 +105,9 @@ void IncompatibleApplicationsHandler::HandleRequestIncompatibleApplicationsList( ...@@ -103,6 +105,9 @@ void IncompatibleApplicationsHandler::HandleRequestIncompatibleApplicationsList(
application_list.GetList().push_back(std::move(dict)); application_list.GetList().push_back(std::move(dict));
} }
UMA_HISTOGRAM_COUNTS_100("IncompatibleApplicationsPage.NumApplications",
problematic_programs.size());
const base::Value& callback_id = args->GetList().front(); const base::Value& callback_id = args->GetList().front();
ResolveJavascriptCallback(callback_id, application_list); ResolveJavascriptCallback(callback_id, application_list);
} }
...@@ -110,6 +115,8 @@ void IncompatibleApplicationsHandler::HandleRequestIncompatibleApplicationsList( ...@@ -110,6 +115,8 @@ void IncompatibleApplicationsHandler::HandleRequestIncompatibleApplicationsList(
void IncompatibleApplicationsHandler::HandleStartProgramUninstallation( void IncompatibleApplicationsHandler::HandleStartProgramUninstallation(
const base::ListValue* args) { const base::ListValue* args) {
CHECK_EQ(1u, args->GetList().size()); CHECK_EQ(1u, args->GetList().size());
base::RecordAction(base::UserMetricsAction(
"IncompatibleApplicationsPage.UninstallationStarted"));
// Open the Apps & Settings page with the program name highlighted. // Open the Apps & Settings page with the program name highlighted.
uninstall_application::LaunchUninstallFlow( uninstall_application::LaunchUninstallFlow(
...@@ -150,6 +157,9 @@ void IncompatibleApplicationsHandler::GetPluralString( ...@@ -150,6 +157,9 @@ void IncompatibleApplicationsHandler::GetPluralString(
void IncompatibleApplicationsHandler::OnApplicationRemoved( void IncompatibleApplicationsHandler::OnApplicationRemoved(
const InstalledPrograms::ProgramInfo& program) { const InstalledPrograms::ProgramInfo& program) {
base::RecordAction(base::UserMetricsAction(
"IncompatibleApplicationsPage.ApplicationRemoved"));
registry_key_watchers_.erase(program); registry_key_watchers_.erase(program);
FireWebUIListener("incompatible-application-removed", FireWebUIListener("incompatible-application-removed",
base::Value(program.name)); base::Value(program.name));
......
...@@ -6845,6 +6845,23 @@ should be able to be added at any place in this file. ...@@ -6845,6 +6845,23 @@ should be able to be added at any place in this file.
</description> </description>
</action> </action>
<action name="IncompatibleApplicationsPage.ApplicationRemoved">
<owner>pmonette@chromium.org</owner>
<description>
A user uninstalled one of the listed incompatible applications while the
chrome://settings/incompatibleApplications page was open.
</description>
</action>
<action name="IncompatibleApplicationsPage.UninstallationStarted">
<owner>pmonette@chromium.org</owner>
<description>
A user clicked the &quot;Uninstall&quot; button for one of the listed
incompatible applications while the
chrome://settings/incompatibleApplications was open.
</description>
</action>
<action name="Indent"> <action name="Indent">
<owner>Please list the metric's owners. Add more owner tags as needed.</owner> <owner>Please list the metric's owners. Add more owner tags as needed.</owner>
<description>Please enter the description of this user action.</description> <description>Please enter the description of this user action.</description>
......
...@@ -30444,6 +30444,24 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -30444,6 +30444,24 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
</summary> </summary>
</histogram> </histogram>
<histogram name="IncompatibleApplicationsPage.AddedPostCrash"
enum="BooleanShown">
<owner>pmonette@chromium.org</owner>
<summary>
Records whether the user was automatically shown the
chrome://settings/incompatibleApplications page following a Chrome crash.
</summary>
</histogram>
<histogram name="IncompatibleApplicationsPage.NumApplications"
units="applications">
<owner>pmonette@chromium.org</owner>
<summary>
The number of incompatible applications detected by Chrome at the time the
chrome://settings/incompatibleApplications page was opened.
</summary>
</histogram>
<histogram name="InertialSensor.AccelerometerAndroidAvailable" <histogram name="InertialSensor.AccelerometerAndroidAvailable"
enum="BooleanAvailable"> enum="BooleanAvailable">
<owner>timvolodine@chromium.org</owner> <owner>timvolodine@chromium.org</owner>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment