Commit c8d093ac authored by wutao's avatar wutao Committed by Commit Bot

ambient: Use different backend servers

This patch configs the dev channel to use testing server. But users can
overwrite it with a flag.

Bug: b/148692733
Test: manual
Change-Id: I967281bc1421c37d9c1ff74a0815d6a6da570da3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2342134
Commit-Queue: Tao Wu <wutao@chromium.org>
Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Reviewed-by: default avatarXiaohui Chen <xiaohuic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#799318}
parent 29e9a0a5
......@@ -218,7 +218,10 @@ class BackdropURLLoader {
scoped_refptr<network::SharedURLLoaderFactory> loader_factory_;
};
AmbientBackendControllerImpl::AmbientBackendControllerImpl() = default;
AmbientBackendControllerImpl::AmbientBackendControllerImpl()
: backdrop_client_config_(ash::AmbientClient::Get()->ShouldUseProdServer()
? BackdropClientConfig::ServerType::kProd
: BackdropClientConfig::ServerType::kDev) {}
AmbientBackendControllerImpl::~AmbientBackendControllerImpl() = default;
......
......@@ -49,6 +49,9 @@ class ASH_PUBLIC_EXPORT AmbientClient {
virtual void RequestWakeLockProvider(
mojo::PendingReceiver<device::mojom::WakeLockProvider> receiver) = 0;
// Whether to use backend production server.
virtual bool ShouldUseProdServer() = 0;
protected:
AmbientClient();
AmbientClient(const AmbientClient&) = delete;
......
......@@ -62,6 +62,10 @@ void TestAmbientClient::IssueAccessToken(const std::string& access_token,
}
}
bool TestAmbientClient::ShouldUseProdServer() {
return false;
}
bool TestAmbientClient::IsAccessTokenRequestPending() const {
return !!pending_callback_;
}
......
......@@ -27,6 +27,7 @@ class ASH_PUBLIC_EXPORT TestAmbientClient : public AmbientClient {
scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
void RequestWakeLockProvider(
mojo::PendingReceiver<device::mojom::WakeLockProvider> receiver) override;
bool ShouldUseProdServer() override;
// Simulate to issue an |access_token|.
// If |with_error| is true, will return an empty access token.
......
......@@ -13,6 +13,7 @@
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.h"
#include "chrome/common/channel_info.h"
#include "chromeos/constants/chromeos_features.h"
#include "components/account_id/account_id.h"
#include "components/prefs/pref_service.h"
......@@ -23,6 +24,7 @@
#include "components/signin/public/identity_manager/scope_set.h"
#include "components/user_manager/user.h"
#include "components/user_manager/user_manager.h"
#include "components/version_info/channel.h"
#include "content/public/browser/device_service.h"
#include "google_apis/gaia/gaia_auth_util.h"
#include "google_apis/gaia/google_service_auth_error.h"
......@@ -164,3 +166,12 @@ void AmbientClientImpl::GetAccessToken(
/*expiration_time=*/base::Time::Now());
}
}
bool AmbientClientImpl::ShouldUseProdServer() {
if (chromeos::features::IsAmbientModeDevUseProdEnabled())
return true;
auto channel = chrome::GetChannel();
return channel == version_info::Channel::STABLE ||
channel == version_info::Channel::BETA;
}
......@@ -30,6 +30,7 @@ class AmbientClientImpl : public ash::AmbientClient {
scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override;
void RequestWakeLockProvider(
mojo::PendingReceiver<device::mojom::WakeLockProvider> receiver) override;
bool ShouldUseProdServer() override;
private:
void GetAccessToken(GetAccessTokenCallback callback,
......
......@@ -119,6 +119,10 @@ void ChromeBrowserMainExtraPartsAsh::PreProfileInit() {
cast_config_controller_media_router_ =
std::make_unique<CastConfigControllerMediaRouter>();
// Needed by AmbientController in ash.
if (chromeos::features::IsAmbientModeEnabled())
ambient_client_ = std::make_unique<AmbientClientImpl>();
ash_shell_init_ = std::make_unique<AshShellInit>();
screen_orientation_delegate_ =
......@@ -207,9 +211,6 @@ void ChromeBrowserMainExtraPartsAsh::PostProfileInit() {
void ChromeBrowserMainExtraPartsAsh::PostBrowserStart() {
mobile_data_notifications_ = std::make_unique<MobileDataNotifications>();
if (chromeos::features::IsAmbientModeEnabled())
ambient_client_ = std::make_unique<AmbientClientImpl>();
}
void ChromeBrowserMainExtraPartsAsh::PostMainMessageLoopRun() {
......@@ -219,9 +220,6 @@ void ChromeBrowserMainExtraPartsAsh::PostMainMessageLoopRun() {
exo_parts_.reset();
#endif
if (chromeos::features::IsAmbientModeEnabled())
ambient_client_.reset();
night_light_client_.reset();
mobile_data_notifications_.reset();
chrome_launcher_controller_initializer_.reset();
......@@ -246,6 +244,8 @@ void ChromeBrowserMainExtraPartsAsh::PostMainMessageLoopRun() {
// needs to be released before destroying the profile.
app_list_client_.reset();
ash_shell_init_.reset();
ambient_client_.reset();
cast_config_controller_media_router_.reset();
if (chromeos::NetworkConnect::IsInitialized())
chromeos::NetworkConnect::Shutdown();
......
......@@ -29,6 +29,11 @@ const base::Feature kAmbientModeFeature{"ChromeOSAmbientMode",
const base::Feature kAmbientModePhotoPreviewFeature{
"ChromeOSAmbientModePhotoPreview", base::FEATURE_DISABLED_BY_DEFAULT};
// Controls whether to allow Dev channel to use Prod server feature.
const base::Feature kAmbientModeDevUseProdFeature{
"ChromeOSAmbientModeDevChannelUseProdServer",
base::FEATURE_DISABLED_BY_DEFAULT};
// Controls whether to enable ARC ADB sideloading support.
const base::Feature kArcAdbSideloadingFeature{
"ArcAdbSideloading", base::FEATURE_DISABLED_BY_DEFAULT};
......@@ -534,6 +539,10 @@ bool IsAmbientModePhotoPreviewEnabled() {
return base::FeatureList::IsEnabled(kAmbientModePhotoPreviewFeature);
}
bool IsAmbientModeDevUseProdEnabled() {
return base::FeatureList::IsEnabled(kAmbientModeDevUseProdFeature);
}
bool IsBetterUpdateEnabled() {
return base::FeatureList::IsEnabled(kBetterUpdateScreen);
}
......
......@@ -22,6 +22,8 @@ extern const base::Feature kAmbientModeFeature;
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const base::Feature kAmbientModePhotoPreviewFeature;
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const base::Feature kAmbientModeDevUseProdFeature;
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const base::Feature kArcAdbSideloadingFeature;
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
extern const base::Feature kArcManagedAdbSideloadingSupport;
......@@ -232,6 +234,7 @@ extern const base::Feature kImeMozcProto;
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsAmbientModeEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsAmbientModePhotoPreviewEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsAmbientModeDevUseProdEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsAssistantEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsBetterUpdateEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsChildSpecificSigninEnabled();
......
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