Commit 05d66a56 authored by Anthony Vallee-Dubois's avatar Anthony Vallee-Dubois Committed by Commit Bot

Add some enum entries to InitiationStatus

The recent refactor to TranslateManager made it so that some cases that
didn't trigger translations were misreported in the wrong buckets for
InitiationStatus. This CL adds buckets for those cases.

Bug: 924980
Change-Id: I6a00b523842ea4fb665e27e8791b399964c7f66a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1504253
Commit-Queue: anthonyvd <anthonyvd@chromium.org>
Reviewed-by: default avatarMathieu Perreault <mathp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638276}
parent de1732cf
...@@ -31,7 +31,7 @@ enum MetricsNameIndex { ...@@ -31,7 +31,7 @@ enum MetricsNameIndex {
// below. // below.
enum InitiationStatusType { enum InitiationStatusType {
INITIATION_STATUS_DISABLED_BY_PREFS, INITIATION_STATUS_DISABLED_BY_PREFS,
DEPRECATE_INITIATION_STATUS_DISABLED_BY_SWITCH, INITIATION_STATUS_DISABLED_BY_SWITCH,
INITIATION_STATUS_DISABLED_BY_CONFIG, INITIATION_STATUS_DISABLED_BY_CONFIG,
INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED, INITIATION_STATUS_LANGUAGE_IS_NOT_SUPPORTED,
INITIATION_STATUS_URL_IS_NOT_SUPPORTED, INITIATION_STATUS_URL_IS_NOT_SUPPORTED,
...@@ -50,6 +50,8 @@ enum InitiationStatusType { ...@@ -50,6 +50,8 @@ enum InitiationStatusType {
INITIATION_STATUS_SHOW_ICON, INITIATION_STATUS_SHOW_ICON,
INITIATION_STATUS_SUPPRESS_INFOBAR, INITIATION_STATUS_SUPPRESS_INFOBAR,
INITIATION_STATUS_SHOW_UI_PREDEFINED_TARGET_LANGUAGE, INITIATION_STATUS_SHOW_UI_PREDEFINED_TARGET_LANGUAGE,
INITIATION_STATUS_NO_NETWORK,
INITIATION_STATUS_DOESNT_NEED_TRANSLATION,
// Insert new items here. // Insert new items here.
INITIATION_STATUS_MAX, INITIATION_STATUS_MAX,
}; };
......
...@@ -680,19 +680,29 @@ void TranslateManager::FilterIsTranslatePossible( ...@@ -680,19 +680,29 @@ void TranslateManager::FilterIsTranslatePossible(
const std::string& page_language_code, const std::string& page_language_code,
const std::string& target_lang) { const std::string& target_lang) {
// Short-circuit out if not in a state where initiating translation makes // Short-circuit out if not in a state where initiating translation makes
// sense (this method may be called muhtiple times for a given page). // sense (this method may be called multiple times for a given page).
if (!language_state_.page_needs_translation() || if (!language_state_.page_needs_translation() ||
language_state_.translation_pending() || language_state_.translation_pending() ||
language_state_.translation_declined() || language_state_.translation_declined() ||
language_state_.IsPageTranslated() || language_state_.IsPageTranslated()) {
!base::FeatureList::IsEnabled(translate::kTranslateUI)) {
decision->PreventAllTriggering(); decision->PreventAllTriggering();
decision->initiation_statuses.push_back(
TranslateBrowserMetrics::INITIATION_STATUS_DOESNT_NEED_TRANSLATION);
}
if (!base::FeatureList::IsEnabled(translate::kTranslateUI)) {
decision->PreventAllTriggering();
decision->initiation_statuses.push_back(
TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_SWITCH);
} }
// Also, skip if the connection is currently offline - initiation doesn't make // Also, skip if the connection is currently offline - initiation doesn't make
// sense there, either. // sense there, either.
if (net::NetworkChangeNotifier::IsOffline()) if (net::NetworkChangeNotifier::IsOffline()) {
decision->PreventAllTriggering(); decision->PreventAllTriggering();
decision->initiation_statuses.push_back(
TranslateBrowserMetrics::INITIATION_STATUS_NO_NETWORK);
}
if (!ignore_missing_key_for_testing_ && if (!ignore_missing_key_for_testing_ &&
!::google_apis::HasAPIKeyConfigured()) { !::google_apis::HasAPIKeyConfigured()) {
...@@ -976,7 +986,12 @@ void TranslateManager::RecordDecisionMetrics( ...@@ -976,7 +986,12 @@ void TranslateManager::RecordDecisionMetrics(
// translate triggering. // translate triggering.
if (!decision.initiation_statuses.empty()) { if (!decision.initiation_statuses.empty()) {
auto status = decision.initiation_statuses[0]; auto status = decision.initiation_statuses[0];
TranslateBrowserMetrics::ReportInitiationStatus(status); if (status !=
TranslateBrowserMetrics::INITIATION_STATUS_DOESNT_NEED_TRANSLATION) {
// Don't record INITIATION_STATUS_DOESNT_NEED_TRANSLATION because it's
// very frequent and not important to track.
TranslateBrowserMetrics::ReportInitiationStatus(status);
}
// The following metrics are logged alongside extra info. // The following metrics are logged alongside extra info.
if (status == if (status ==
......
...@@ -53384,6 +53384,8 @@ Full version information for the fingerprint enum values: ...@@ -53384,6 +53384,8 @@ Full version information for the fingerprint enum values:
<int value="17" label="Show omnibar icon to the user"/> <int value="17" label="Show omnibar icon to the user"/>
<int value="18" label="Suppress infobar but show omnibar icon"/> <int value="18" label="Suppress infobar but show omnibar icon"/>
<int value="19" label="Aborted by CLD and HTML/content language conflict"/> <int value="19" label="Aborted by CLD and HTML/content language conflict"/>
<int value="20" label="Disabled because network unavailable"/>
<int value="21" label="Page state doesn't require translation"/>
</enum> </enum>
<enum name="TranslateLanguage"> <enum name="TranslateLanguage">
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