Commit 5eb12dd8 authored by Regan Hsu's avatar Regan Hsu Committed by Chromium LUCI CQ

[CrOS PhoneHub] Set PhoneHub to not supported for secondary users.

PhoneHub features will be set to FeatureState::kNotSupportedByChromebook
if the current logged in user is secondary.

Fixed: 1156309
Change-Id: Iea97c13c3fa2fe9edc103b00df8aa21b9447cef0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2590492
Commit-Queue: Regan Hsu <hsuregan@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#837729}
parent 0f4ccfce
...@@ -17,12 +17,14 @@ ...@@ -17,12 +17,14 @@
#include "chrome/browser/chromeos/multidevice_setup/auth_token_validator_factory.h" #include "chrome/browser/chromeos/multidevice_setup/auth_token_validator_factory.h"
#include "chrome/browser/chromeos/multidevice_setup/auth_token_validator_impl.h" #include "chrome/browser/chromeos/multidevice_setup/auth_token_validator_impl.h"
#include "chrome/browser/chromeos/multidevice_setup/oobe_completion_tracker_factory.h" #include "chrome/browser/chromeos/multidevice_setup/oobe_completion_tracker_factory.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chromeos/services/multidevice_setup/multidevice_setup_service.h" #include "chromeos/services/multidevice_setup/multidevice_setup_service.h"
#include "chromeos/services/multidevice_setup/public/cpp/prefs.h" #include "chromeos/services/multidevice_setup/public/cpp/prefs.h"
#include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h" #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "components/keyed_service/core/keyed_service.h" #include "components/keyed_service/core/keyed_service.h"
#include "components/user_manager/user_manager.h"
namespace chromeos { namespace chromeos {
namespace multidevice_setup { namespace multidevice_setup {
...@@ -34,6 +36,17 @@ class MultiDeviceSetupServiceHolder : public KeyedService { ...@@ -34,6 +36,17 @@ class MultiDeviceSetupServiceHolder : public KeyedService {
public: public:
explicit MultiDeviceSetupServiceHolder(content::BrowserContext* context) explicit MultiDeviceSetupServiceHolder(content::BrowserContext* context)
: profile_(Profile::FromBrowserContext(context)) { : profile_(Profile::FromBrowserContext(context)) {
const user_manager::User* user =
ProfileHelper::Get()->GetUserByProfile(profile_);
const user_manager::User* primary_user =
user_manager::UserManager::Get()->GetPrimaryUser();
DCHECK(user);
DCHECK(primary_user);
bool is_secondary_user =
user->GetAccountId() != primary_user->GetAccountId();
android_sms::AndroidSmsService* android_sms_service = android_sms::AndroidSmsService* android_sms_service =
chromeos::android_sms::AndroidSmsServiceFactory::GetForBrowserContext( chromeos::android_sms::AndroidSmsServiceFactory::GetForBrowserContext(
context); context);
...@@ -47,7 +60,7 @@ class MultiDeviceSetupServiceHolder : public KeyedService { ...@@ -47,7 +60,7 @@ class MultiDeviceSetupServiceHolder : public KeyedService {
android_sms_service android_sms_service
? android_sms_service->android_sms_pairing_state_tracker() ? android_sms_service->android_sms_pairing_state_tracker()
: nullptr, : nullptr,
GcmDeviceInfoProviderImpl::GetInstance()); GcmDeviceInfoProviderImpl::GetInstance(), is_secondary_user);
} }
MultiDeviceSetupService* multidevice_setup_service() { MultiDeviceSetupService* multidevice_setup_service() {
......
...@@ -250,16 +250,19 @@ std::unique_ptr<FeatureStateManager> FeatureStateManagerImpl::Factory::Create( ...@@ -250,16 +250,19 @@ std::unique_ptr<FeatureStateManager> FeatureStateManagerImpl::Factory::Create(
HostStatusProvider* host_status_provider, HostStatusProvider* host_status_provider,
device_sync::DeviceSyncClient* device_sync_client, device_sync::DeviceSyncClient* device_sync_client,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
WifiSyncFeatureManager* wifi_sync_feature_manager) { WifiSyncFeatureManager* wifi_sync_feature_manager,
bool is_secondary_user) {
if (test_factory_) { if (test_factory_) {
return test_factory_->CreateInstance( return test_factory_->CreateInstance(
pref_service, host_status_provider, device_sync_client, pref_service, host_status_provider, device_sync_client,
android_sms_pairing_state_tracker, wifi_sync_feature_manager); android_sms_pairing_state_tracker, wifi_sync_feature_manager,
is_secondary_user);
} }
return base::WrapUnique(new FeatureStateManagerImpl( return base::WrapUnique(new FeatureStateManagerImpl(
pref_service, host_status_provider, device_sync_client, pref_service, host_status_provider, device_sync_client,
android_sms_pairing_state_tracker, wifi_sync_feature_manager)); android_sms_pairing_state_tracker, wifi_sync_feature_manager,
is_secondary_user));
} }
// static // static
...@@ -275,12 +278,14 @@ FeatureStateManagerImpl::FeatureStateManagerImpl( ...@@ -275,12 +278,14 @@ FeatureStateManagerImpl::FeatureStateManagerImpl(
HostStatusProvider* host_status_provider, HostStatusProvider* host_status_provider,
device_sync::DeviceSyncClient* device_sync_client, device_sync::DeviceSyncClient* device_sync_client,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
WifiSyncFeatureManager* wifi_sync_feature_manager) WifiSyncFeatureManager* wifi_sync_feature_manager,
bool is_secondary_user)
: pref_service_(pref_service), : pref_service_(pref_service),
host_status_provider_(host_status_provider), host_status_provider_(host_status_provider),
device_sync_client_(device_sync_client), device_sync_client_(device_sync_client),
android_sms_pairing_state_tracker_(android_sms_pairing_state_tracker), android_sms_pairing_state_tracker_(android_sms_pairing_state_tracker),
wifi_sync_feature_manager_(wifi_sync_feature_manager), wifi_sync_feature_manager_(wifi_sync_feature_manager),
is_secondary_user_(is_secondary_user),
feature_to_enabled_pref_name_map_(GenerateFeatureToEnabledPrefNameMap()), feature_to_enabled_pref_name_map_(GenerateFeatureToEnabledPrefNameMap()),
feature_to_allowed_pref_name_map_(GenerateFeatureToAllowedPrefNameMap()), feature_to_allowed_pref_name_map_(GenerateFeatureToAllowedPrefNameMap()),
cached_feature_state_map_(GenerateInitialDefaultCachedStateMap()) { cached_feature_state_map_(GenerateInitialDefaultCachedStateMap()) {
...@@ -452,6 +457,11 @@ bool FeatureStateManagerImpl::IsSupportedByChromebook(mojom::Feature feature) { ...@@ -452,6 +457,11 @@ bool FeatureStateManagerImpl::IsSupportedByChromebook(mojom::Feature feature) {
if (pair.first != feature) if (pair.first != feature)
continue; continue;
if (pair.second == multidevice::SoftwareFeature::kPhoneHubClient &&
is_secondary_user_) {
return false;
}
return device_sync_client_->GetLocalDeviceMetadata() return device_sync_client_->GetLocalDeviceMetadata()
->GetSoftwareFeatureState(pair.second) != ->GetSoftwareFeatureState(pair.second) !=
multidevice::SoftwareFeatureState::kNotSupported; multidevice::SoftwareFeatureState::kNotSupported;
......
...@@ -38,7 +38,8 @@ class FeatureStateManagerImpl : public FeatureStateManager, ...@@ -38,7 +38,8 @@ class FeatureStateManagerImpl : public FeatureStateManager,
HostStatusProvider* host_status_provider, HostStatusProvider* host_status_provider,
device_sync::DeviceSyncClient* device_sync_client, device_sync::DeviceSyncClient* device_sync_client,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
WifiSyncFeatureManager* wifi_sync_feature_manager); WifiSyncFeatureManager* wifi_sync_feature_manager,
bool is_secondary_user);
static void SetFactoryForTesting(Factory* test_factory); static void SetFactoryForTesting(Factory* test_factory);
protected: protected:
...@@ -48,7 +49,8 @@ class FeatureStateManagerImpl : public FeatureStateManager, ...@@ -48,7 +49,8 @@ class FeatureStateManagerImpl : public FeatureStateManager,
HostStatusProvider* host_status_provider, HostStatusProvider* host_status_provider,
device_sync::DeviceSyncClient* device_sync_client, device_sync::DeviceSyncClient* device_sync_client,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
WifiSyncFeatureManager* wifi_sync_feature_manager) = 0; WifiSyncFeatureManager* wifi_sync_feature_manager,
bool is_secondary_user) = 0;
private: private:
static Factory* test_factory_; static Factory* test_factory_;
...@@ -62,7 +64,8 @@ class FeatureStateManagerImpl : public FeatureStateManager, ...@@ -62,7 +64,8 @@ class FeatureStateManagerImpl : public FeatureStateManager,
HostStatusProvider* host_status_provider, HostStatusProvider* host_status_provider,
device_sync::DeviceSyncClient* device_sync_client, device_sync::DeviceSyncClient* device_sync_client,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
WifiSyncFeatureManager* wifi_sync_feature_manager); WifiSyncFeatureManager* wifi_sync_feature_manager,
bool is_secondary_user);
// FeatureStateManager: // FeatureStateManager:
FeatureStatesMap GetFeatureStates() override; FeatureStatesMap GetFeatureStates() override;
...@@ -97,6 +100,10 @@ class FeatureStateManagerImpl : public FeatureStateManager, ...@@ -97,6 +100,10 @@ class FeatureStateManagerImpl : public FeatureStateManager,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker_; AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker_;
WifiSyncFeatureManager* wifi_sync_feature_manager_; WifiSyncFeatureManager* wifi_sync_feature_manager_;
// Certain features may be unavailable to secondary users logged into a
// Chromebook. Currently, such features include PhoneHub and its subfeatures.
const bool is_secondary_user_;
// Map from feature to the pref name which indicates the enabled/disabled // Map from feature to the pref name which indicates the enabled/disabled
// boolean state for the feature. // boolean state for the feature.
base::flat_map<mojom::Feature, std::string> feature_to_enabled_pref_name_map_; base::flat_map<mojom::Feature, std::string> feature_to_enabled_pref_name_map_;
......
...@@ -67,18 +67,21 @@ std::unique_ptr<MultiDeviceSetupBase> MultiDeviceSetupImpl::Factory::Create( ...@@ -67,18 +67,21 @@ std::unique_ptr<MultiDeviceSetupBase> MultiDeviceSetupImpl::Factory::Create(
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) { const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user) {
if (test_factory_) { if (test_factory_) {
return test_factory_->CreateInstance( return test_factory_->CreateInstance(
pref_service, device_sync_client, auth_token_validator, pref_service, device_sync_client, auth_token_validator,
oobe_completion_tracker, android_sms_app_helper_delegate, oobe_completion_tracker, android_sms_app_helper_delegate,
android_sms_pairing_state_tracker, gcm_device_info_provider); android_sms_pairing_state_tracker, gcm_device_info_provider,
is_secondary_user);
} }
return base::WrapUnique(new MultiDeviceSetupImpl( return base::WrapUnique(new MultiDeviceSetupImpl(
pref_service, device_sync_client, auth_token_validator, pref_service, device_sync_client, auth_token_validator,
oobe_completion_tracker, android_sms_app_helper_delegate, oobe_completion_tracker, android_sms_app_helper_delegate,
android_sms_pairing_state_tracker, gcm_device_info_provider)); android_sms_pairing_state_tracker, gcm_device_info_provider,
is_secondary_user));
} }
// static // static
...@@ -96,7 +99,8 @@ MultiDeviceSetupImpl::MultiDeviceSetupImpl( ...@@ -96,7 +99,8 @@ MultiDeviceSetupImpl::MultiDeviceSetupImpl(
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user)
: eligible_host_devices_provider_( : eligible_host_devices_provider_(
EligibleHostDevicesProviderImpl::Factory::Create(device_sync_client)), EligibleHostDevicesProviderImpl::Factory::Create(device_sync_client)),
host_backend_delegate_(HostBackendDelegateImpl::Factory::Create( host_backend_delegate_(HostBackendDelegateImpl::Factory::Create(
...@@ -126,7 +130,8 @@ MultiDeviceSetupImpl::MultiDeviceSetupImpl( ...@@ -126,7 +130,8 @@ MultiDeviceSetupImpl::MultiDeviceSetupImpl(
host_status_provider_.get(), host_status_provider_.get(),
device_sync_client, device_sync_client,
android_sms_pairing_state_tracker, android_sms_pairing_state_tracker,
wifi_sync_feature_manager_.get())), wifi_sync_feature_manager_.get(),
is_secondary_user)),
host_device_timestamp_manager_( host_device_timestamp_manager_(
HostDeviceTimestampManagerImpl::Factory::Create( HostDeviceTimestampManagerImpl::Factory::Create(
host_status_provider_.get(), host_status_provider_.get(),
......
...@@ -58,7 +58,8 @@ class MultiDeviceSetupImpl : public MultiDeviceSetupBase, ...@@ -58,7 +58,8 @@ class MultiDeviceSetupImpl : public MultiDeviceSetupBase,
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider); const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user);
static void SetFactoryForTesting(Factory* test_factory); static void SetFactoryForTesting(Factory* test_factory);
protected: protected:
...@@ -70,7 +71,8 @@ class MultiDeviceSetupImpl : public MultiDeviceSetupBase, ...@@ -70,7 +71,8 @@ class MultiDeviceSetupImpl : public MultiDeviceSetupBase,
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) = 0; const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user) = 0;
private: private:
static Factory* test_factory_; static Factory* test_factory_;
...@@ -88,7 +90,8 @@ class MultiDeviceSetupImpl : public MultiDeviceSetupBase, ...@@ -88,7 +90,8 @@ class MultiDeviceSetupImpl : public MultiDeviceSetupBase,
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider); const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user);
// mojom::MultiDeviceSetup: // mojom::MultiDeviceSetup:
void SetAccountStatusChangeDelegate( void SetAccountStatusChangeDelegate(
......
...@@ -329,12 +329,14 @@ class FakeFeatureStateManagerFactory : public FeatureStateManagerImpl::Factory { ...@@ -329,12 +329,14 @@ class FakeFeatureStateManagerFactory : public FeatureStateManagerImpl::Factory {
FakeHostStatusProviderFactory* fake_host_status_provider_factory, FakeHostStatusProviderFactory* fake_host_status_provider_factory,
device_sync::FakeDeviceSyncClient* expected_device_sync_client, device_sync::FakeDeviceSyncClient* expected_device_sync_client,
FakeAndroidSmsPairingStateTracker* FakeAndroidSmsPairingStateTracker*
expected_android_sms_pairing_state_tracker) expected_android_sms_pairing_state_tracker,
bool expected_is_secondary_user)
: expected_testing_pref_service_(expected_testing_pref_service), : expected_testing_pref_service_(expected_testing_pref_service),
fake_host_status_provider_factory_(fake_host_status_provider_factory), fake_host_status_provider_factory_(fake_host_status_provider_factory),
expected_device_sync_client_(expected_device_sync_client), expected_device_sync_client_(expected_device_sync_client),
expected_android_sms_pairing_state_tracker_( expected_android_sms_pairing_state_tracker_(
expected_android_sms_pairing_state_tracker) {} expected_android_sms_pairing_state_tracker),
expected_is_secondary_user_(expected_is_secondary_user) {}
~FakeFeatureStateManagerFactory() override = default; ~FakeFeatureStateManagerFactory() override = default;
...@@ -347,7 +349,8 @@ class FakeFeatureStateManagerFactory : public FeatureStateManagerImpl::Factory { ...@@ -347,7 +349,8 @@ class FakeFeatureStateManagerFactory : public FeatureStateManagerImpl::Factory {
HostStatusProvider* host_status_provider, HostStatusProvider* host_status_provider,
device_sync::DeviceSyncClient* device_sync_client, device_sync::DeviceSyncClient* device_sync_client,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
WifiSyncFeatureManager* wifi_sync_feature_manager) override { WifiSyncFeatureManager* wifi_sync_feature_manager,
bool is_secondary_user) override {
EXPECT_FALSE(instance_); EXPECT_FALSE(instance_);
EXPECT_EQ(expected_testing_pref_service_, pref_service); EXPECT_EQ(expected_testing_pref_service_, pref_service);
EXPECT_EQ(fake_host_status_provider_factory_->instance(), EXPECT_EQ(fake_host_status_provider_factory_->instance(),
...@@ -355,6 +358,7 @@ class FakeFeatureStateManagerFactory : public FeatureStateManagerImpl::Factory { ...@@ -355,6 +358,7 @@ class FakeFeatureStateManagerFactory : public FeatureStateManagerImpl::Factory {
EXPECT_EQ(expected_device_sync_client_, device_sync_client); EXPECT_EQ(expected_device_sync_client_, device_sync_client);
EXPECT_EQ(expected_android_sms_pairing_state_tracker_, EXPECT_EQ(expected_android_sms_pairing_state_tracker_,
android_sms_pairing_state_tracker); android_sms_pairing_state_tracker);
EXPECT_EQ(expected_is_secondary_user_, is_secondary_user);
auto instance = std::make_unique<FakeFeatureStateManager>(); auto instance = std::make_unique<FakeFeatureStateManager>();
instance_ = instance.get(); instance_ = instance.get();
...@@ -366,6 +370,7 @@ class FakeFeatureStateManagerFactory : public FeatureStateManagerImpl::Factory { ...@@ -366,6 +370,7 @@ class FakeFeatureStateManagerFactory : public FeatureStateManagerImpl::Factory {
device_sync::FakeDeviceSyncClient* expected_device_sync_client_; device_sync::FakeDeviceSyncClient* expected_device_sync_client_;
FakeAndroidSmsPairingStateTracker* FakeAndroidSmsPairingStateTracker*
expected_android_sms_pairing_state_tracker_; expected_android_sms_pairing_state_tracker_;
bool expected_is_secondary_user_;
FakeFeatureStateManager* instance_ = nullptr; FakeFeatureStateManager* instance_ = nullptr;
...@@ -607,7 +612,7 @@ class MultiDeviceSetupImplTest : public ::testing::TestWithParam<bool> { ...@@ -607,7 +612,7 @@ class MultiDeviceSetupImplTest : public ::testing::TestWithParam<bool> {
std::make_unique<FakeFeatureStateManagerFactory>( std::make_unique<FakeFeatureStateManagerFactory>(
test_pref_service_.get(), fake_host_status_provider_factory_.get(), test_pref_service_.get(), fake_host_status_provider_factory_.get(),
fake_device_sync_client_.get(), fake_device_sync_client_.get(),
fake_android_sms_pairing_state_tracker_.get()); fake_android_sms_pairing_state_tracker_.get(), is_secondary_user_);
FeatureStateManagerImpl::Factory::SetFactoryForTesting( FeatureStateManagerImpl::Factory::SetFactoryForTesting(
fake_feature_state_manager_factory_.get()); fake_feature_state_manager_factory_.get());
...@@ -645,7 +650,7 @@ class MultiDeviceSetupImplTest : public ::testing::TestWithParam<bool> { ...@@ -645,7 +650,7 @@ class MultiDeviceSetupImplTest : public ::testing::TestWithParam<bool> {
fake_auth_token_validator_.get(), fake_oobe_completion_tracker_.get(), fake_auth_token_validator_.get(), fake_oobe_completion_tracker_.get(),
fake_android_sms_app_helper_delegate_.get(), fake_android_sms_app_helper_delegate_.get(),
fake_android_sms_pairing_state_tracker_.get(), fake_android_sms_pairing_state_tracker_.get(),
fake_gcm_device_info_provider_.get()); fake_gcm_device_info_provider_.get(), is_secondary_user_);
} }
void TearDown() override { void TearDown() override {
...@@ -974,6 +979,7 @@ class MultiDeviceSetupImplTest : public ::testing::TestWithParam<bool> { ...@@ -974,6 +979,7 @@ class MultiDeviceSetupImplTest : public ::testing::TestWithParam<bool> {
std::unique_ptr<OobeCompletionTracker> fake_oobe_completion_tracker_; std::unique_ptr<OobeCompletionTracker> fake_oobe_completion_tracker_;
std::unique_ptr<device_sync::FakeGcmDeviceInfoProvider> std::unique_ptr<device_sync::FakeGcmDeviceInfoProvider>
fake_gcm_device_info_provider_; fake_gcm_device_info_provider_;
bool is_secondary_user_ = false;
std::unique_ptr<FakeEligibleHostDevicesProviderFactory> std::unique_ptr<FakeEligibleHostDevicesProviderFactory>
fake_eligible_host_devices_provider_factory_; fake_eligible_host_devices_provider_factory_;
......
...@@ -30,18 +30,21 @@ MultiDeviceSetupInitializer::Factory::Create( ...@@ -30,18 +30,21 @@ MultiDeviceSetupInitializer::Factory::Create(
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) { const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user) {
if (test_factory_) { if (test_factory_) {
return test_factory_->CreateInstance( return test_factory_->CreateInstance(
pref_service, device_sync_client, auth_token_validator, pref_service, device_sync_client, auth_token_validator,
oobe_completion_tracker, android_sms_app_helper_delegate, oobe_completion_tracker, android_sms_app_helper_delegate,
android_sms_pairing_state_tracker, gcm_device_info_provider); android_sms_pairing_state_tracker, gcm_device_info_provider,
is_secondary_user);
} }
return base::WrapUnique(new MultiDeviceSetupInitializer( return base::WrapUnique(new MultiDeviceSetupInitializer(
pref_service, device_sync_client, auth_token_validator, pref_service, device_sync_client, auth_token_validator,
oobe_completion_tracker, android_sms_app_helper_delegate, oobe_completion_tracker, android_sms_app_helper_delegate,
android_sms_pairing_state_tracker, gcm_device_info_provider)); android_sms_pairing_state_tracker, gcm_device_info_provider,
is_secondary_user));
} }
// static // static
...@@ -77,14 +80,16 @@ MultiDeviceSetupInitializer::MultiDeviceSetupInitializer( ...@@ -77,14 +80,16 @@ MultiDeviceSetupInitializer::MultiDeviceSetupInitializer(
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user)
: pref_service_(pref_service), : pref_service_(pref_service),
device_sync_client_(device_sync_client), device_sync_client_(device_sync_client),
auth_token_validator_(auth_token_validator), auth_token_validator_(auth_token_validator),
oobe_completion_tracker_(oobe_completion_tracker), oobe_completion_tracker_(oobe_completion_tracker),
android_sms_app_helper_delegate_(android_sms_app_helper_delegate), android_sms_app_helper_delegate_(android_sms_app_helper_delegate),
android_sms_pairing_state_tracker_(android_sms_pairing_state_tracker), android_sms_pairing_state_tracker_(android_sms_pairing_state_tracker),
gcm_device_info_provider_(gcm_device_info_provider) { gcm_device_info_provider_(gcm_device_info_provider),
is_secondary_user_(is_secondary_user) {
// If |device_sync_client_| is null, this interface cannot perform its tasks. // If |device_sync_client_| is null, this interface cannot perform its tasks.
if (!device_sync_client_) if (!device_sync_client_)
return; return;
...@@ -280,7 +285,8 @@ void MultiDeviceSetupInitializer::InitializeImplementation() { ...@@ -280,7 +285,8 @@ void MultiDeviceSetupInitializer::InitializeImplementation() {
multidevice_setup_impl_ = MultiDeviceSetupImpl::Factory::Create( multidevice_setup_impl_ = MultiDeviceSetupImpl::Factory::Create(
pref_service_, device_sync_client_, auth_token_validator_, pref_service_, device_sync_client_, auth_token_validator_,
oobe_completion_tracker_, android_sms_app_helper_delegate_, oobe_completion_tracker_, android_sms_app_helper_delegate_,
android_sms_pairing_state_tracker_, gcm_device_info_provider_); android_sms_pairing_state_tracker_, gcm_device_info_provider_,
is_secondary_user_);
if (pending_delegate_) { if (pending_delegate_) {
multidevice_setup_impl_->SetAccountStatusChangeDelegate( multidevice_setup_impl_->SetAccountStatusChangeDelegate(
......
...@@ -45,7 +45,8 @@ class MultiDeviceSetupInitializer ...@@ -45,7 +45,8 @@ class MultiDeviceSetupInitializer
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider); const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user);
static void SetFactoryForTesting(Factory* test_factory); static void SetFactoryForTesting(Factory* test_factory);
protected: protected:
...@@ -57,7 +58,8 @@ class MultiDeviceSetupInitializer ...@@ -57,7 +58,8 @@ class MultiDeviceSetupInitializer
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) = 0; const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user) = 0;
private: private:
static Factory* test_factory_; static Factory* test_factory_;
...@@ -93,7 +95,8 @@ class MultiDeviceSetupInitializer ...@@ -93,7 +95,8 @@ class MultiDeviceSetupInitializer
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider); const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user);
// mojom::MultiDeviceSetup: // mojom::MultiDeviceSetup:
void SetAccountStatusChangeDelegate( void SetAccountStatusChangeDelegate(
...@@ -139,6 +142,7 @@ class MultiDeviceSetupInitializer ...@@ -139,6 +142,7 @@ class MultiDeviceSetupInitializer
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate_; AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate_;
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker_; AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker_;
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider_; const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider_;
bool is_secondary_user_;
std::unique_ptr<MultiDeviceSetupBase> multidevice_setup_impl_; std::unique_ptr<MultiDeviceSetupBase> multidevice_setup_impl_;
......
...@@ -45,7 +45,8 @@ MultiDeviceSetupService::MultiDeviceSetupService( ...@@ -45,7 +45,8 @@ MultiDeviceSetupService::MultiDeviceSetupService(
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user)
: multidevice_setup_(MultiDeviceSetupInitializer::Factory::Create( : multidevice_setup_(MultiDeviceSetupInitializer::Factory::Create(
pref_service, pref_service,
device_sync_client, device_sync_client,
...@@ -53,7 +54,8 @@ MultiDeviceSetupService::MultiDeviceSetupService( ...@@ -53,7 +54,8 @@ MultiDeviceSetupService::MultiDeviceSetupService(
oobe_completion_tracker, oobe_completion_tracker,
android_sms_app_helper_delegate, android_sms_app_helper_delegate,
android_sms_pairing_state_tracker, android_sms_pairing_state_tracker,
gcm_device_info_provider)), gcm_device_info_provider,
is_secondary_user)),
privileged_host_device_setter_( privileged_host_device_setter_(
PrivilegedHostDeviceSetterImpl::Factory::Create( PrivilegedHostDeviceSetterImpl::Factory::Create(
multidevice_setup_.get())) {} multidevice_setup_.get())) {}
......
...@@ -40,7 +40,8 @@ class MultiDeviceSetupService { ...@@ -40,7 +40,8 @@ class MultiDeviceSetupService {
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider); const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
bool is_secondary_user);
~MultiDeviceSetupService(); ~MultiDeviceSetupService();
static void RegisterProfilePrefs(PrefRegistrySimple* registry); static void RegisterProfilePrefs(PrefRegistrySimple* registry);
......
...@@ -46,7 +46,8 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory { ...@@ -46,7 +46,8 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory {
FakeAndroidSmsPairingStateTracker* FakeAndroidSmsPairingStateTracker*
expected_android_sms_pairing_state_tracker, expected_android_sms_pairing_state_tracker,
const device_sync::FakeGcmDeviceInfoProvider* const device_sync::FakeGcmDeviceInfoProvider*
expected_gcm_device_info_provider) expected_gcm_device_info_provider,
bool expected_is_secondary_user)
: expected_testing_pref_service_(expected_testing_pref_service), : expected_testing_pref_service_(expected_testing_pref_service),
expected_device_sync_client_(expected_device_sync_client), expected_device_sync_client_(expected_device_sync_client),
expected_auth_token_validator_(expected_auth_token_validator), expected_auth_token_validator_(expected_auth_token_validator),
...@@ -55,7 +56,8 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory { ...@@ -55,7 +56,8 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory {
expected_android_sms_app_helper_delegate), expected_android_sms_app_helper_delegate),
expected_android_sms_pairing_state_tracker_( expected_android_sms_pairing_state_tracker_(
expected_android_sms_pairing_state_tracker), expected_android_sms_pairing_state_tracker),
expected_gcm_device_info_provider_(expected_gcm_device_info_provider) {} expected_gcm_device_info_provider_(expected_gcm_device_info_provider),
expected_is_secondary_user_(expected_is_secondary_user) {}
~FakeMultiDeviceSetupFactory() override = default; ~FakeMultiDeviceSetupFactory() override = default;
...@@ -69,8 +71,8 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory { ...@@ -69,8 +71,8 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory {
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
override { bool is_secondary_user) override {
EXPECT_FALSE(instance_); EXPECT_FALSE(instance_);
EXPECT_EQ(expected_testing_pref_service_, pref_service); EXPECT_EQ(expected_testing_pref_service_, pref_service);
EXPECT_EQ(expected_device_sync_client_, device_sync_client); EXPECT_EQ(expected_device_sync_client_, device_sync_client);
...@@ -81,6 +83,7 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory { ...@@ -81,6 +83,7 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory {
EXPECT_EQ(expected_android_sms_pairing_state_tracker_, EXPECT_EQ(expected_android_sms_pairing_state_tracker_,
android_sms_pairing_state_tracker); android_sms_pairing_state_tracker);
EXPECT_EQ(expected_gcm_device_info_provider_, gcm_device_info_provider); EXPECT_EQ(expected_gcm_device_info_provider_, gcm_device_info_provider);
EXPECT_EQ(expected_is_secondary_user_, is_secondary_user);
auto instance = std::make_unique<FakeMultiDeviceSetup>(); auto instance = std::make_unique<FakeMultiDeviceSetup>();
instance_ = instance.get(); instance_ = instance.get();
...@@ -96,6 +99,7 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory { ...@@ -96,6 +99,7 @@ class FakeMultiDeviceSetupFactory : public MultiDeviceSetupImpl::Factory {
expected_android_sms_pairing_state_tracker_; expected_android_sms_pairing_state_tracker_;
const device_sync::FakeGcmDeviceInfoProvider* const device_sync::FakeGcmDeviceInfoProvider*
expected_gcm_device_info_provider_; expected_gcm_device_info_provider_;
bool expected_is_secondary_user_;
FakeMultiDeviceSetup* instance_ = nullptr; FakeMultiDeviceSetup* instance_ = nullptr;
...@@ -134,7 +138,7 @@ class MultiDeviceSetupServiceTest : public testing::Test { ...@@ -134,7 +138,7 @@ class MultiDeviceSetupServiceTest : public testing::Test {
fake_oobe_completion_tracker_.get(), fake_oobe_completion_tracker_.get(),
fake_android_sms_app_helper_delegate_.get(), fake_android_sms_app_helper_delegate_.get(),
fake_android_sms_pairing_state_tracker_.get(), fake_android_sms_pairing_state_tracker_.get(),
fake_gcm_device_info_provider_.get()); fake_gcm_device_info_provider_.get(), is_secondary_user_);
MultiDeviceSetupImpl::Factory::SetFactoryForTesting( MultiDeviceSetupImpl::Factory::SetFactoryForTesting(
fake_multidevice_setup_factory_.get()); fake_multidevice_setup_factory_.get());
...@@ -143,7 +147,7 @@ class MultiDeviceSetupServiceTest : public testing::Test { ...@@ -143,7 +147,7 @@ class MultiDeviceSetupServiceTest : public testing::Test {
fake_auth_token_validator_.get(), fake_oobe_completion_tracker_.get(), fake_auth_token_validator_.get(), fake_oobe_completion_tracker_.get(),
fake_android_sms_app_helper_delegate_.get(), fake_android_sms_app_helper_delegate_.get(),
fake_android_sms_pairing_state_tracker_.get(), fake_android_sms_pairing_state_tracker_.get(),
fake_gcm_device_info_provider_.get()); fake_gcm_device_info_provider_.get(), is_secondary_user_);
service_->BindMultiDeviceSetup( service_->BindMultiDeviceSetup(
multidevice_setup_remote_.BindNewPipeAndPassReceiver()); multidevice_setup_remote_.BindNewPipeAndPassReceiver());
...@@ -211,6 +215,7 @@ class MultiDeviceSetupServiceTest : public testing::Test { ...@@ -211,6 +215,7 @@ class MultiDeviceSetupServiceTest : public testing::Test {
fake_android_sms_pairing_state_tracker_; fake_android_sms_pairing_state_tracker_;
std::unique_ptr<device_sync::FakeGcmDeviceInfoProvider> std::unique_ptr<device_sync::FakeGcmDeviceInfoProvider>
fake_gcm_device_info_provider_; fake_gcm_device_info_provider_;
bool is_secondary_user_ = false;
std::unique_ptr<FakeMultiDeviceSetupFactory> fake_multidevice_setup_factory_; std::unique_ptr<FakeMultiDeviceSetupFactory> fake_multidevice_setup_factory_;
......
...@@ -48,8 +48,8 @@ class FakeMultiDeviceSetupInitializerFactory ...@@ -48,8 +48,8 @@ class FakeMultiDeviceSetupInitializerFactory
OobeCompletionTracker* oobe_completion_tracker, OobeCompletionTracker* oobe_completion_tracker,
AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate, AndroidSmsAppHelperDelegate* android_sms_app_helper_delegate,
AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker, AndroidSmsPairingStateTracker* android_sms_pairing_state_tracker,
const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider) const device_sync::GcmDeviceInfoProvider* gcm_device_info_provider,
override { bool is_secondary_user) override {
EXPECT_TRUE(fake_multidevice_setup_); EXPECT_TRUE(fake_multidevice_setup_);
return std::move(fake_multidevice_setup_); return std::move(fake_multidevice_setup_);
} }
...@@ -127,7 +127,7 @@ class MultiDeviceSetupClientImplTest : public testing::Test { ...@@ -127,7 +127,7 @@ class MultiDeviceSetupClientImplTest : public testing::Test {
nullptr /* oobe_completion_tracker */, nullptr /* oobe_completion_tracker */,
nullptr /* android_sms_app_helper_delegate */, nullptr /* android_sms_app_helper_delegate */,
nullptr /* android_sms_pairing_state_tracker */, nullptr /* android_sms_pairing_state_tracker */,
nullptr /* gcm_device_info_provider */); nullptr /* gcm_device_info_provider */, false /* is_secondary_user */);
} }
void InitializeClient( void InitializeClient(
......
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