Commit 9579fa45 authored by Alan Cutter's avatar Alan Cutter Committed by Chromium LUCI CQ

Reland "Add WebApp.Preinstalled.UninstallAndReplaceCount UMA histogram"

This reverts commit e2bb0435.

Reason for revert:
Original revert did not fix the issue. Real fix was:
https://chromium-review.googlesource.com/c/chromium/src/+/2566814

Original change's description:
> Revert "Add WebApp.Preinstalled.UninstallAndReplaceCount UMA histogram"
>
> This reverts commit 1ca3c153.
>
> Reason for revert:
> Needed to land parent CL revert: https://chromium-review.googlesource.com/c/chromium/src/+/2567511
>
> Original change's description:
> > Add WebApp.Preinstalled.UninstallAndReplaceCount UMA histogram
> >
> > This CL adds metrics for how often preinstalled web apps migrate and
> > remove an existing app install.
> >
> > This data is useful to monitor rollouts of default web apps that are
> > replacing old Chrome apps to ensure the migration is happening as
> > expected.
> >
> > Bug: 809304, 1058265
> > Change-Id: Ie9edb4a1cf89e84d7e56a20bad028dd8ea1aeb07
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2561999
> > Commit-Queue: Alan Cutter <alancutter@chromium.org>
> > Reviewed-by: Glen Robertson <glenrob@chromium.org>
> > Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#832148}
>
> TBR=rkaplow@chromium.org,alancutter@chromium.org,chromium-scoped@luci-project-accounts.iam.gserviceaccount.com,glenrob@chromium.org
>
> Change-Id: I46c1a678e09111d210d1385bdb17ecc4fcabb093
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 809304
> Bug: 1058265
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2567056
> Reviewed-by: Alan Cutter <alancutter@chromium.org>
> Commit-Queue: Alan Cutter <alancutter@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#832227}

TBR=rkaplow@chromium.org,alancutter@chromium.org,chromium-scoped@luci-project-accounts.iam.gserviceaccount.com,glenrob@chromium.org

Bug: 809304
Bug: 1058265
Change-Id: I1139aa9380a809a4f96ab5664aa279973a60a788
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2567281
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarAlan Cutter <alancutter@chromium.org>
Reviewed-by: default avatarRobert Kaplow <rkaplow@chromium.org>
Reviewed-by: default avatarGlen Robertson <glenrob@chromium.org>
Cr-Commit-Position: refs/heads/master@{#832681}
parent 45cce0b6
......@@ -18,7 +18,7 @@
#include "base/files/file_util.h"
#include "base/json/json_file_value_serializer.h"
#include "base/json/json_reader.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "base/no_destructor.h"
#include "base/path_service.h"
#include "base/stl_util.h"
......@@ -219,6 +219,8 @@ const char* ExternalWebAppManager::kHistogramDisabledCount =
"WebApp.Preinstalled.DisabledCount";
const char* ExternalWebAppManager::kHistogramConfigErrorCount =
"WebApp.Preinstalled.ConfigErrorCount";
const char* ExternalWebAppManager::kHistogramUninstallAndReplaceCount =
"WebApp.Preinstalled.UninstallAndReplaceCount";
void ExternalWebAppManager::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
......@@ -354,12 +356,12 @@ void ExternalWebAppManager::PostProcessConfigs(ConsumeInstallOptions callback,
debug_info_->enabled_configs = parsed_configs.options_list;
}
base::UmaHistogramCounts100(ExternalWebAppManager::kHistogramEnabledCount,
parsed_configs.options_list.size());
base::UmaHistogramCounts100(ExternalWebAppManager::kHistogramDisabledCount,
disabled_count);
base::UmaHistogramCounts100(ExternalWebAppManager::kHistogramConfigErrorCount,
parsed_configs.errors.size());
UMA_HISTOGRAM_COUNTS_100(ExternalWebAppManager::kHistogramEnabledCount,
parsed_configs.options_list.size());
UMA_HISTOGRAM_COUNTS_100(ExternalWebAppManager::kHistogramDisabledCount,
disabled_count);
UMA_HISTOGRAM_COUNTS_100(ExternalWebAppManager::kHistogramConfigErrorCount,
parsed_configs.errors.size());
std::move(callback).Run(parsed_configs.options_list);
}
......@@ -386,10 +388,16 @@ void ExternalWebAppManager::OnExternalWebAppsSynchronized(
prefs::kWebAppsLastPreinstallSynchronizeVersion,
version_info::GetMajorVersionNumber());
size_t uninstall_and_replace_count = 0;
for (const auto& url_and_result : install_results) {
base::UmaHistogramEnumeration("Webapp.InstallResult.Default",
url_and_result.second.code);
UMA_HISTOGRAM_ENUMERATION("Webapp.InstallResult.Default",
url_and_result.second.code);
if (url_and_result.second.did_uninstall_and_replace)
++uninstall_and_replace_count;
}
UMA_HISTOGRAM_COUNTS_100(
ExternalWebAppManager::kHistogramUninstallAndReplaceCount,
uninstall_and_replace_count);
if (callback) {
std::move(callback).Run(std::move(install_results),
......
......@@ -51,6 +51,7 @@ class ExternalWebAppManager {
static const char* kHistogramEnabledCount;
static const char* kHistogramDisabledCount;
static const char* kHistogramConfigErrorCount;
static const char* kHistogramUninstallAndReplaceCount;
static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
......
......@@ -246,6 +246,7 @@ IN_PROC_BROWSER_TEST_F(ExternalWebAppMigrationBrowserTest,
EXPECT_TRUE(IsExtensionAppInstalled());
{
base::HistogramTester histograms;
extensions::TestExtensionRegistryObserver uninstall_observer(
extensions::ExtensionRegistry::Get(profile()));
......@@ -256,6 +257,8 @@ IN_PROC_BROWSER_TEST_F(ExternalWebAppMigrationBrowserTest,
uninstall_observer.WaitForExtensionUninstalled();
EXPECT_EQ(uninstalled_app->id(), kExtensionId);
EXPECT_FALSE(IsExtensionAppInstalled());
histograms.ExpectUniqueSample(
ExternalWebAppManager::kHistogramUninstallAndReplaceCount, 1, 1);
}
}
......@@ -272,6 +275,7 @@ IN_PROC_BROWSER_TEST_F(ExternalWebAppMigrationBrowserTest,
// Re-run migration.
{
base::HistogramTester histograms;
base::AutoReset<bool> testing_scope =
SetExternalAppInstallFeatureAlwaysEnabledForTesting();
ASSERT_TRUE(IsExternalAppInstallFeatureEnabled(kMigrationFlag));
......@@ -286,6 +290,8 @@ IN_PROC_BROWSER_TEST_F(ExternalWebAppMigrationBrowserTest,
uninstall_observer.WaitForExtensionUninstalled();
EXPECT_EQ(uninstalled_app->id(), kExtensionId);
EXPECT_FALSE(IsExtensionAppInstalled());
histograms.ExpectUniqueSample(
ExternalWebAppManager::kHistogramUninstallAndReplaceCount, 1, 1);
}
}
......@@ -341,6 +347,7 @@ IN_PROC_BROWSER_TEST_F(ExternalWebAppMigrationBrowserTest, MigratePreferences) {
EXPECT_TRUE(IsExtensionAppInstalled());
{
base::HistogramTester histograms;
extensions::TestExtensionRegistryObserver uninstall_observer(
extensions::ExtensionRegistry::Get(profile()));
......@@ -351,6 +358,8 @@ IN_PROC_BROWSER_TEST_F(ExternalWebAppMigrationBrowserTest, MigratePreferences) {
uninstall_observer.WaitForExtensionUninstalled();
EXPECT_EQ(uninstalled_app->id(), kExtensionId);
EXPECT_FALSE(IsExtensionAppInstalled());
histograms.ExpectUniqueSample(
ExternalWebAppManager::kHistogramUninstallAndReplaceCount, 1, 1);
}
}
......@@ -494,6 +503,8 @@ IN_PROC_BROWSER_TEST_F(ExternalWebAppMigrationBrowserTest,
ExternalWebAppManager::kHistogramDisabledCount, 0, 1);
histograms.ExpectUniqueSample(
ExternalWebAppManager::kHistogramConfigErrorCount, 0, 1);
histograms.ExpectUniqueSample(
ExternalWebAppManager::kHistogramUninstallAndReplaceCount, 1, 1);
}
}
}
......
......@@ -17040,6 +17040,17 @@ regressions. -->
</summary>
</histogram>
<histogram name="WebApp.Preinstalled.UninstallAndReplaceCount" units="apps"
expires_after="2021-04-01">
<owner>alancutter@chromium.org</owner>
<owner>desktop-pwas-team@google.com</owner>
<summary>
Records how many preinstalled web app installations uninstalled and replaced
an old default app (web app or Chrome app). This corresponds to the
&quot;uninstall_and_replace&quot; field in preinstalled web app configs.
</summary>
</histogram>
<histogram name="WebApp.Shortcuts.Creation.Result"
enum="ShortcutsCreationResult" expires_after="M93">
<owner>phillis@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