Commit 839ffb13 authored by Abigail Klein's avatar Abigail Klein Committed by Chromium LUCI CQ

[Live Caption] Only show Live Caption promo to users who have English as

one of their languages.

Since Live Caption currently only works for English, we should not
advertise the feature to users who we do not expect to want English
captions. We can make a guess as to which users would want English
caption by checking whether English is one of the user's fluent
languages, found in chrome://settings/languages.

Bug: 1169760, 1055150
Change-Id: Id16e99de1edb777b8d5b2d793f0dcbefc925935d
AX-Relnotes: Live Caption only promoted to English-language users.
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2643443Reviewed-by: default avatarTommy Steimel <steimel@chromium.org>
Commit-Queue: Abigail Klein <abigailbklein@google.com>
Cr-Commit-Position: refs/heads/master@{#846273}
parent 4e2580fc
......@@ -5,8 +5,10 @@
#include "chrome/browser/ui/views/global_media_controls/media_toolbar_button_view.h"
#include "base/feature_list.h"
#include "base/strings/pattern.h"
#include "build/build_config.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/language/language_model_manager_factory.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/global_media_controls/media_notification_service_factory.h"
......@@ -17,6 +19,8 @@
#include "chrome/browser/ui/views/user_education/feature_promo_controller_views.h"
#include "chrome/grit/generated_resources.h"
#include "components/feature_engagement/public/feature_constants.h"
#include "components/language/core/browser/language_model.h"
#include "components/language/core/browser/language_model_manager.h"
#include "components/vector_icons/vector_icons.h"
#include "media/base/media_switches.h"
#include "ui/base/l10n/l10n_util.h"
......@@ -86,9 +90,21 @@ void MediaToolbarButtonView::Hide() {
void MediaToolbarButtonView::Enable() {
SetEnabled(true);
if (base::FeatureList::IsEnabled(media::kLiveCaption)) {
feature_promo_controller_->MaybeShowPromo(
feature_engagement::kIPHLiveCaptionFeature);
// Live Caption only works for English-language speech for now, so we only
// show the promo to users whose fluent languages include english. Fluent
// languages are set in chrome://settings/languages.
// TODO(crbug.com/1161569): Remove this when Live Caption supports additional
// languages.
language::LanguageModel* language_model =
LanguageModelManagerFactory::GetForBrowserContext(browser_->profile())
->GetPrimaryModel();
for (const auto& lang : language_model->GetLanguages()) {
if (base::MatchPattern(lang.lang_code, "en*") &&
base::FeatureList::IsEnabled(media::kLiveCaption)) {
feature_promo_controller_->MaybeShowPromo(
feature_engagement::kIPHLiveCaptionFeature);
break;
}
}
for (auto& observer : observers_)
......
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