diff options
-rw-r--r-- | chrome/browser/extensions/crx_installer.cc | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/chrome/browser/extensions/crx_installer.cc b/chrome/browser/extensions/crx_installer.cc index 922b1e8..32023cf 100644 --- a/chrome/browser/extensions/crx_installer.cc +++ b/chrome/browser/extensions/crx_installer.cc @@ -53,6 +53,20 @@ using content::UserMetricsAction; using extensions::Extension; using extensions::PermissionsUpdater; +namespace { + +// Used in histograms; do not change order. +enum WebStoreInstallDecision { + InstallAllowedBecauseStore, + InstallAllowedBecauseTheme, + InstallAllowedBecauseAllAllowed, + InstallAllowedBecauseThisAllowed, + InstallDisallowedBecauseOffStore, + NumWebStoreInstallDecision +}; + +} // namespace + // static scoped_refptr<CrxInstaller> CrxInstaller::Create( ExtensionService* frontend, @@ -191,10 +205,22 @@ bool CrxInstaller::AllowInstall(const Extension* extension, DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); DCHECK(error); - if (!extension->is_theme() && - !extensions::switch_utils::IsOffStoreInstallEnabled() && - !allow_off_store_install_ && - !is_gallery_install()) { + const char* kHistogramName = "Extensions.WebStoreInstallDecision"; + if (is_gallery_install()) { + UMA_HISTOGRAM_ENUMERATION(kHistogramName, InstallAllowedBecauseStore, + NumWebStoreInstallDecision); + } else if (extension->is_theme()) { + UMA_HISTOGRAM_ENUMERATION(kHistogramName, InstallAllowedBecauseTheme, + NumWebStoreInstallDecision); + } else if (extensions::switch_utils::IsOffStoreInstallEnabled()) { + UMA_HISTOGRAM_ENUMERATION(kHistogramName, InstallAllowedBecauseAllAllowed, + NumWebStoreInstallDecision); + } else if (allow_off_store_install_) { + UMA_HISTOGRAM_ENUMERATION(kHistogramName, InstallAllowedBecauseThisAllowed, + NumWebStoreInstallDecision); + } else { + UMA_HISTOGRAM_ENUMERATION(kHistogramName, InstallDisallowedBecauseOffStore, + NumWebStoreInstallDecision); *error = l10n_util::GetStringUTF16( IDS_EXTENSION_INSTALL_DISALLOWED_ON_SITE); return false; @@ -292,7 +318,6 @@ void CrxInstaller::OnUnpackFailure(const string16& error_message) { UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackFailureInstallSource", install_source(), Extension::NUM_LOCATIONS); - UMA_HISTOGRAM_ENUMERATION("Extensions.UnpackFailureInstallCause", install_cause(), extension_misc::NUM_INSTALL_CAUSES); |