Commit 06d2fb06 authored by Yue Li's avatar Yue Li Committed by Commit Bot

Guard Assistant opt-in flow with buildflag

In Chromium build the libassistant might be unavailable. In this case we
want to hide the Assistant opt-in flow.

Bug: b/141330938
Test: Manual Test
Change-Id: I6796cab496892938a7c026e1a72d1fc4a4b25296
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1817319
Commit-Queue: Yue Li <updowndota@chromium.org>
Reviewed-by: default avatarXiaohui Chen <xiaohuic@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#699877}
parent 6c8cbdd2
......@@ -12,6 +12,7 @@
#include "base/test/scoped_feature_list.h"
#include "base/values.h"
#include "build/branding_buildflags.h"
#include "build/buildflag.h"
#include "chrome/browser/chromeos/arc/arc_service_launcher.h"
#include "chrome/browser/chromeos/arc/arc_session_manager.h"
#include "chrome/browser/chromeos/extensions/quick_unlock_private/quick_unlock_private_api.h"
......@@ -40,6 +41,7 @@
#include "chrome/browser/ui/webui/chromeos/login/recommend_apps_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
#include "chrome/browser/ui/webui/chromeos/login/terms_of_service_screen_handler.h"
#include "chromeos/assistant/buildflags.h"
#include "chromeos/constants/chromeos_features.h"
#include "chromeos/constants/chromeos_switches.h"
#include "chromeos/dbus/update_engine_client.h"
......@@ -279,6 +281,10 @@ void HandleAppDownloadingScreen() {
// screen is shown, and how the setup progresses after the screen. The actual
// assistant opt-in flow is tested separately.
void HandleAssistantOptInScreen() {
#if !BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
return;
#endif
OobeScreenWaiter(AssistantOptInFlowScreenView::kScreenId).Wait();
LOG(INFO) << "OobeInteractiveUITest: Switched to 'assistant-optin' screen.";
......
......@@ -30,6 +30,7 @@
#include "base/task/post_task.h"
#include "base/threading/thread_task_runner_handle.h"
#include "build/branding_buildflags.h"
#include "build/buildflag.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part.h"
#include "chrome/browser/chrome_notification_types.h"
......@@ -127,6 +128,7 @@
#include "chrome/browser/ui/webui/help/help_utils_chromeos.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/pref_names.h"
#include "chromeos/assistant/buildflags.h"
#include "chromeos/audio/cras_audio_handler.h"
#include "chromeos/constants/chromeos_constants.h"
#include "chromeos/constants/chromeos_features.h"
......@@ -685,8 +687,12 @@ void WizardController::ShowUpdateRequiredScreen() {
}
void WizardController::ShowAssistantOptInFlowScreen() {
#if BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
UpdateStatusAreaVisibilityForScreen(AssistantOptInFlowScreenView::kScreenId);
SetCurrentScreen(GetScreen(AssistantOptInFlowScreenView::kScreenId));
#else
ShowMultiDeviceSetupScreen();
#endif
}
void WizardController::ShowMultiDeviceSetupScreen() {
......
......@@ -11,6 +11,7 @@
#include "base/bind.h"
#include "base/macros.h"
#include "base/strings/string_number_conversions.h"
#include "build/buildflag.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/ash/ash_util.h"
......@@ -18,6 +19,7 @@
#include "chrome/browser/ui/webui/chromeos/login/base_screen_handler.h"
#include "chrome/common/url_constants.h"
#include "chrome/grit/browser_resources.h"
#include "chromeos/assistant/buildflags.h"
#include "chromeos/services/assistant/public/cpp/assistant_prefs.h"
#include "components/prefs/pref_service.h"
#include "components/session_manager/core/session_manager.h"
......@@ -122,10 +124,16 @@ void AssistantOptInUI::Initialize() {
void AssistantOptInDialog::Show(
ash::FlowType type,
ash::AssistantSetup::StartAssistantOptInFlowCallback callback) {
#if !BUILDFLAG(ENABLE_CROS_LIBASSISTANT)
std::move(callback).Run(false);
return;
#endif
// Check session state here to prevent timing issue -- session state might
// have changed during the mojom calls to launch the opt-in dalog.
if (session_manager::SessionManager::Get()->session_state() !=
session_manager::SessionState::ACTIVE) {
std::move(callback).Run(false);
return;
}
if (g_dialog) {
......
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