diff options
Diffstat (limited to 'chromium/chrome/browser/ui')
9 files changed, 380 insertions, 372 deletions
diff --git a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc index 7d3874c5928..7a95459f913 100644 --- a/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc +++ b/chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc @@ -76,6 +76,9 @@ GetLocalizedStringsWithPlaceholders() { localized_strings([] { std::vector<LocalizedStringWithName> localized_strings; + // TODO(crbug.com/964547): Refactor so that any change to these strings + // will surface in both the OOBE and post-OOBE UIs without having to + // adjust both localization calls separately. localized_strings.emplace_back( "startSetupPageMessage", l10n_util::GetStringFUTF16( @@ -120,8 +123,26 @@ void AddLocalizedValuesToBuilder(::login::LocalizedValuesBuilder* builder) { for (const auto& entry : kLocalizedStringsWithoutPlaceholders) builder->Add(entry.name, entry.id); - for (const auto& entry : GetLocalizedStringsWithPlaceholders()) - builder->Add(entry.name, entry.localized_string); + // TODO(crbug.com/964547): Refactor so that any change to these strings will + // surface in both the OOBE and post-OOBE UIs without having to adjust both + // localization calls separately. + builder->AddF( + "startSetupPageMessage", IDS_MULTIDEVICE_SETUP_START_SETUP_PAGE_MESSAGE, + base::ASCIIToUTF16(kFootnoteMarker), + base::UTF8ToUTF16(chromeos::multidevice_setup:: + GetBoardSpecificBetterTogetherSuiteLearnMoreUrl() + .spec())); + + builder->AddF("startSetupPageFootnote", + IDS_MULTIDEVICE_SETUP_START_SETUP_PAGE_FOOTNOTE, + base::ASCIIToUTF16(kFootnoteMarker)); + + builder->AddF( + "startSetupPageFeatureListAwm", + IDS_MULTIDEVICE_SETUP_START_SETUP_PAGE_AWM_DESCRIPTION, + base::UTF8ToUTF16( + chromeos::multidevice_setup::GetBoardSpecificMessagesLearnMoreUrl() + .spec())); } } // namespace multidevice_setup diff --git a/chromium/chrome/browser/ui/webui/management_ui_browsertest.cc b/chromium/chrome/browser/ui/webui/management_ui_browsertest.cc index efc934ad8b1..9884bdd170c 100644 --- a/chromium/chrome/browser/ui/webui/management_ui_browsertest.cc +++ b/chromium/chrome/browser/ui/webui/management_ui_browsertest.cc @@ -83,9 +83,6 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)}, {"pageSubtitle", l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)}, - {"accountManagedInfo.overview", base::string16()}, - {"accountManagedInfo.data", base::string16()}, - {"accountManagedInfo.setup", base::string16()}, }; VerifyTexts(unmanaged_value_ptr.get(), expected_unmanaged_values); @@ -116,13 +113,6 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { {"extensionReportingTitle", l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)}, {"pageSubtitle", l10n_util::GetStringUTF16(IDS_MANAGEMENT_SUBTITLE)}, - {"accountManagedInfo.overview", - l10n_util::GetStringUTF16( - IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION_UNKNOWN_DOMAIN)}, - {"accountManagedInfo.data", - l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_DATA)}, - {"accountManagedInfo.setup", - l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP)}, }; VerifyTexts(managed_value_ptr.get(), expected_managed_values); diff --git a/chromium/chrome/browser/ui/webui/management_ui_handler.cc b/chromium/chrome/browser/ui/webui/management_ui_handler.cc index d276f4c01e7..8256ce760e8 100644 --- a/chromium/chrome/browser/ui/webui/management_ui_handler.cc +++ b/chromium/chrome/browser/ui/webui/management_ui_handler.cc @@ -117,13 +117,11 @@ const char kManagementReportNetworkInterfaces[] = "managementReportNetworkInterfaces"; const char kManagementReportUsers[] = "managementReportUsers"; const char kManagementPrinting[] = "managementPrinting"; +const char kOverview[] = "overview"; +const char kAccountManagedInfo[] = "accountManagedInfo"; const char kDeviceManagedInfo[] = "deviceManagedInfo"; #endif // defined(OS_CHROMEOS) -const char kOverview[] = "overview"; -const char kAccountManagedInfo[] = "accountManagedInfo"; -const char kSetup[] = "setup"; -const char kData[] = "data"; namespace { @@ -344,9 +342,10 @@ void ManagementUIHandler::InitializeInternal(content::WebUI* web_ui, auto handler = std::make_unique<ManagementUIHandler>(); #if defined(OS_CHROMEOS) - handler->managed_ = IsProfileManaged(profile) || IsDeviceManaged(); + handler->account_managed_ = IsProfileManaged(profile); + handler->device_managed_ = IsDeviceManaged(); #else - handler->managed_ = IsProfileManaged(profile) || IsBrowserManaged(); + handler->account_managed_ = IsProfileManaged(profile) || IsBrowserManaged(); #endif // defined(OS_CHROMEOS) web_ui->AddMessageHandler(std::move(handler)); @@ -484,19 +483,20 @@ void ManagementUIHandler::AddExtensionReportingInfo( } base::DictionaryValue ManagementUIHandler::GetContextualManagedData( - Profile* profile) const { + Profile* profile) { base::DictionaryValue response; - #if defined(OS_CHROMEOS) - policy::BrowserPolicyConnectorChromeOS* connector = - g_browser_process->platform_part()->browser_policy_connector_chromeos(); - std::string management_domain = connector->GetEnterpriseDisplayDomain(); - if (management_domain.empty()) - management_domain = connector->GetRealm(); + std::string management_domain = GetDeviceDomain(); if (management_domain.empty()) management_domain = GetAccountDomain(profile); #else std::string management_domain = GetAccountDomain(profile); + + response.SetString("browserManagementNotice", + l10n_util::GetStringFUTF16( + managed_() ? IDS_MANAGEMENT_BROWSER_NOTICE + : IDS_MANAGEMENT_NOT_MANAGED_NOTICE, + base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); #endif if (management_domain.empty()) { @@ -505,24 +505,20 @@ base::DictionaryValue ManagementUIHandler::GetContextualManagedData( l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)); #if !defined(OS_CHROMEOS) - response.SetString("browserManagementNotice", - l10n_util::GetStringFUTF16( - managed_ ? IDS_MANAGEMENT_BROWSER_NOTICE - : IDS_MANAGEMENT_NOT_MANAGED_NOTICE, - base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); response.SetString("pageSubtitle", l10n_util::GetStringUTF16( - managed_ ? IDS_MANAGEMENT_SUBTITLE - : IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)); + managed_() ? IDS_MANAGEMENT_SUBTITLE + : IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)); #else const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); - response.SetString("pageSubtitle", - managed_ ? l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_SUBTITLE_MANAGED, - l10n_util::GetStringUTF16(device_type)) - : l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE, - l10n_util::GetStringUTF16(device_type))); + response.SetString( + "pageSubtitle", + managed_() + ? l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED, + l10n_util::GetStringUTF16(device_type)) + : l10n_util::GetStringFUTF16( + IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE, + l10n_util::GetStringUTF16(device_type))); #endif // !defined(OS_CHROMEOS) } else { @@ -533,33 +529,25 @@ base::DictionaryValue ManagementUIHandler::GetContextualManagedData( #if !defined(OS_CHROMEOS) response.SetString( - "browserManagementNotice", - managed_ ? l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_MANAGEMENT_BY_NOTICE, - base::UTF8ToUTF16(management_domain), - base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)) - : l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_NOT_MANAGED_NOTICE, - base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); - response.SetString( "pageSubtitle", - managed_ + managed_() ? l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY, base::UTF8ToUTF16(management_domain)) : l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)); #else const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); - response.SetString("pageSubtitle", - managed_ ? l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_SUBTITLE_MANAGED_BY, - l10n_util::GetStringUTF16(device_type), - base::UTF8ToUTF16(management_domain)) - : l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE, - l10n_util::GetStringUTF16(device_type))); + response.SetString( + "pageSubtitle", + managed_() + ? l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY, + l10n_util::GetStringUTF16(device_type), + base::UTF8ToUTF16(management_domain)) + : l10n_util::GetStringFUTF16( + IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE, + l10n_util::GetStringUTF16(device_type))); #endif // !defined(OS_CHROMEOS) } - response.SetBoolean("managed", managed_); + response.SetBoolean("managed", managed_()); GetManagementStatus(profile, &response); return response; } @@ -578,170 +566,80 @@ const extensions::Extension* ManagementUIHandler::GetEnabledExtension( } #endif // BUILDFLAG(ENABLE_EXTENSIONS) -#if defined(OS_CHROMEOS) -void AddStatusDeviceManagedInfo(base::Value* status, - const std::string& device_domain) { - base::Value info(base::Value::Type::DICTIONARY); - info.SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_DEVICE_MANAGED_CLARIFICATION, - base::UTF8ToUTF16(device_domain)))); - info.SetKey(kSetup, base::Value(l10n_util::GetStringUTF16( - IDS_MANAGEMENT_DEVICE_MANAGED_SETUP))); - info.SetKey(kData, base::Value(l10n_util::GetStringUTF16( - IDS_MANAGEMENT_DEVICE_MANAGED_DATA))); - status->SetKey(kDeviceManagedInfo, std::move(info)); -} - -void AddStatusDeviceAndAccountManagedInfo( - base::Value* status, - const std::string& device_and_account_domain) { - base::Value info(base::Value::Type::DICTIONARY); - info.SetKey(kOverview, - base::Value(l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_DEVICE_AND_ACCOUNT_MANAGED_CLARIFICATION, - base::UTF8ToUTF16(device_and_account_domain)))); - info.SetKey(kSetup, base::Value(l10n_util::GetStringUTF16( - IDS_MANAGEMENT_DEVICE_AND_ACCOUNT_MANAGED_SETUP))); - info.SetKey(kData, base::Value(l10n_util::GetStringUTF16( - IDS_MANAGEMENT_DEVICE_AND_ACCOUNT_MANAGED_DATA))); - status->SetKey(kDeviceManagedInfo, std::move(info)); -} -#endif // defined(OS_CHROMEOS) - -void AddStatusAccountManagedInfo(base::Value* status, - const std::string& account_domain) { - base::Value info(base::Value::Type::DICTIONARY); - if (account_domain.empty()) { - info.SetKey( - kOverview, - base::Value(l10n_util::GetStringUTF16( - IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION_UNKNOWN_DOMAIN))); - } else { - info.SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION, - base::UTF8ToUTF16(account_domain)))); - } - info.SetKey(kSetup, base::Value(l10n_util::GetStringUTF16( - IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP))); - info.SetKey(kData, base::Value(l10n_util::GetStringUTF16( - IDS_MANAGEMENT_ACCOUNT_MANAGED_DATA))); - status->SetKey(kAccountManagedInfo, std::move(info)); -} #if defined(OS_CHROMEOS) void AddStatusOverviewManagedDeviceAndAccount( base::Value* status, + bool device_managed, + bool account_managed, const std::string& device_domain, const std::string& account_domain) { - status->SetKey(kOverview, - base::Value(l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_DEVICE_MANAGED_BY_ACCOUNT_MANAGED_BY, - base::UTF8ToUTF16(device_domain), - base::UTF8ToUTF16(account_domain)))); - AddStatusDeviceManagedInfo(status, device_domain); - AddStatusAccountManagedInfo(status, account_domain); -} + if (device_managed && account_managed && + (account_domain.empty() || account_domain == device_domain)) { + status->SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( + IDS_MANAGEMENT_DEVICE_AND_ACCOUNT_MANAGED_BY, + base::UTF8ToUTF16(device_domain)))); -void AddStatusOverviewManagedDeviceAndAccount( - base::Value* status, - const std::string& device_and_account_domain) { - status->SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_DEVICE_AND_ACCOUNT_MANAGED_BY, - base::UTF8ToUTF16(device_and_account_domain)))); - AddStatusDeviceAndAccountManagedInfo(status, device_and_account_domain); - status->SetKey(kAccountManagedInfo, base::Value()); -} - -void AddStatusOverviewManagedDevice(base::Value* status, - const std::string& device_domain) { - status->SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_DEVICE_MANAGED_BY, - base::UTF8ToUTF16(device_domain)))); - AddStatusDeviceManagedInfo(status, device_domain); - status->SetKey(kAccountManagedInfo, base::Value()); -} - -#endif // defined(OS_CHROMEOS) + return; + } -void AddStatusOverviewManagedAccount(base::Value* status, - const std::string& account_domain) { -#if defined(OS_CHROMEOS) - status->SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_ACCOUNT_MANAGED_BY, - base::UTF8ToUTF16(account_domain)))); - status->SetKey(kDeviceManagedInfo, base::Value()); -#endif // defined(OS_CHROMEOS) - AddStatusAccountManagedInfo(status, account_domain); -} + if (account_managed && !account_domain.empty()) { + status->SetKey(kOverview, base::Value(l10n_util::GetStringFUTF16( + IDS_MANAGEMENT_ACCOUNT_MANAGED_BY, + base::UTF8ToUTF16(account_domain)))); + } -#if defined(OS_CHROMEOS) -void AddStatusOverviewNotManaged(base::Value* status) { - status->SetKey(kOverview, base::Value(l10n_util::GetStringUTF16( - IDS_MANAGEMENT_DEVICE_NOT_MANAGED))); - status->SetKey(kAccountManagedInfo, base::Value()); - status->SetKey(kDeviceManagedInfo, base::Value()); + if (account_managed && device_managed && !account_domain.empty() && + account_domain != device_domain) { + status->SetKey(kOverview, + base::Value(l10n_util::GetStringFUTF16( + IDS_MANAGEMENT_DEVICE_MANAGED_BY_ACCOUNT_MANAGED_BY, + base::UTF8ToUTF16(device_domain), + base::UTF8ToUTF16(account_domain)))); + } } -#endif // defined(OS_CHROMEOS) - -void ManagementUIHandler::GetManagementStatus(Profile* profile, - base::Value* status) const { - const std::string account_domain = GetAccountDomain(profile); -#if defined(OS_CHROMEOS) - const bool account_managed = IsProfileManaged(profile); - const bool profile_associated_with_gaia_account = - chromeos::IsProfileAssociatedWithGaiaAccount(profile); +const std::string ManagementUIHandler::GetDeviceDomain() const { std::string device_domain; policy::BrowserPolicyConnectorChromeOS* connector = g_browser_process->platform_part()->browser_policy_connector_chromeos(); - const bool device_managed = connector->IsEnterpriseManaged(); - if (device_managed) + if (device_managed_) device_domain = connector->GetEnterpriseDisplayDomain(); if (device_domain.empty() && connector->IsActiveDirectoryManaged()) device_domain = connector->GetRealm(); + return device_domain; +} - bool primary_user_managed = false; - std::string primary_user_account_domain; - auto* primary_user = user_manager::UserManager::Get()->GetPrimaryUser(); - if (primary_user) { - auto* primary_profile = - chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user); - if (primary_profile) { - primary_user_managed = IsProfileManaged(primary_profile); - primary_user_account_domain = GetAccountDomain(primary_profile); - } - } +#endif // defined(OS_CHROMEOS) - if (device_managed) { - DCHECK(!device_domain.empty()); - if (account_managed) { - if (device_domain == account_domain || - !profile_associated_with_gaia_account) { - AddStatusOverviewManagedDeviceAndAccount(status, device_domain); - return; - } - DCHECK(!account_domain.empty()); - AddStatusOverviewManagedDeviceAndAccount(status, device_domain, - account_domain); - return; - } - AddStatusOverviewManagedDevice(status, device_domain); +void ManagementUIHandler::GetManagementStatus(Profile* profile, + base::Value* status) const { +#if defined(OS_CHROMEOS) + status->SetKey(kDeviceManagedInfo, base::Value()); + status->SetKey(kAccountManagedInfo, base::Value()); + status->SetKey(kOverview, base::Value()); + if (!managed_()) { + status->SetKey(kOverview, base::Value(l10n_util::GetStringUTF16( + IDS_MANAGEMENT_DEVICE_NOT_MANAGED))); return; } + std::string account_domain = GetAccountDomain(profile); + auto* primary_user = user_manager::UserManager::Get()->GetPrimaryUser(); + auto* primary_profile = + primary_user + ? chromeos::ProfileHelper::Get()->GetProfileByUser(primary_user) + : nullptr; + const bool primary_user_managed = + primary_profile ? IsProfileManaged(primary_profile) : false; - if (primary_user_managed) { - AddStatusOverviewManagedAccount(status, primary_user_account_domain); - return; - } -#endif // defined(OS_CHROMEOS) + if (primary_user_managed) + account_domain = GetAccountDomain(primary_profile); - if (managed_) { - AddStatusOverviewManagedAccount(status, account_domain); - return; - } + std::string device_domain = GetDeviceDomain(); -#if defined(OS_CHROMEOS) - AddStatusOverviewNotManaged(status); + AddStatusOverviewManagedDeviceAndAccount( + status, device_managed_, account_managed_ || primary_user_managed, + device_domain, account_domain); #endif // defined(OS_CHROMEOS) } @@ -837,27 +735,29 @@ void ManagementUIHandler::OnExtensionUnloaded( } } -void ManagementUIHandler::OnManagedStateChanged() { +void ManagementUIHandler::UpdateManagedState() { auto* profile = Profile::FromWebUI(web_ui()); + bool managed_state_changed = false; #if defined(OS_CHROMEOS) - bool managed = IsProfileManaged(profile) || IsDeviceManaged(); + managed_state_changed |= account_managed_ != IsProfileManaged(profile); + managed_state_changed |= device_managed_ != IsDeviceManaged(); + account_managed_ = IsProfileManaged(profile); + device_managed_ = IsDeviceManaged(); #else - bool managed = IsProfileManaged(profile) || IsBrowserManaged(); + managed_state_changed |= + account_managed_ != (IsProfileManaged(profile) || IsBrowserManaged()); + account_managed_ = IsProfileManaged(profile) || IsBrowserManaged(); #endif // defined(OS_CHROMEOS) - if (managed == managed_) - return; - - managed_ = managed; - - FireWebUIListener("managed_state_changed"); + if (managed_state_changed) + FireWebUIListener("managed_data_changed"); } void ManagementUIHandler::OnPolicyUpdated( const policy::PolicyNamespace& /*ns*/, const policy::PolicyMap& /*previous*/, const policy::PolicyMap& /*current*/) { - OnManagedStateChanged(); + UpdateManagedState(); NotifyBrowserReportingInfoUpdated(); } @@ -878,7 +778,7 @@ void ManagementUIHandler::AddObservers() { pref_registrar_.Add( prefs::kSupervisedUserId, - base::BindRepeating(&ManagementUIHandler::OnManagedStateChanged, + base::BindRepeating(&ManagementUIHandler::UpdateManagedState, base::Unretained(this))); } diff --git a/chromium/chrome/browser/ui/webui/management_ui_handler.h b/chromium/chrome/browser/ui/webui/management_ui_handler.h index daca8ea6eb1..76bebbd81c9 100644 --- a/chromium/chrome/browser/ui/webui/management_ui_handler.h +++ b/chromium/chrome/browser/ui/webui/management_ui_handler.h @@ -98,7 +98,8 @@ class ManagementUIHandler : public content::WebUIMessageHandler { // content::WebUIMessageHandler implementation. void RegisterMessages() override; - void SetManagedForTesting(bool managed) { managed_ = managed; } + void SetAccountManagedForTesting(bool managed) { account_managed_ = managed; } + void SetDeviceManagedForTesting(bool managed) { device_managed_ = managed; } static std::string GetAccountDomain(Profile* profile); @@ -113,12 +114,16 @@ class ManagementUIHandler : public content::WebUIMessageHandler { Profile* profile); void AddExtensionReportingInfo(base::Value* report_sources); - base::DictionaryValue GetContextualManagedData(Profile* profile) const; + base::DictionaryValue GetContextualManagedData(Profile* profile); virtual policy::PolicyService* GetPolicyService() const; virtual const extensions::Extension* GetEnabledExtension( const std::string& extensionId) const; #endif // BUILDFLAG(ENABLE_EXTENSIONS) +#if defined(OS_CHROMEOS) + // Protected for testing. + virtual const std::string GetDeviceDomain() const; +#endif // defined(OS_CHROMEOS) private: void GetManagementStatus(Profile* profile, base::Value* status) const; @@ -145,7 +150,7 @@ class ManagementUIHandler : public content::WebUIMessageHandler { const extensions::Extension* extension, extensions::UnloadedExtensionReason reason) override; - void OnManagedStateChanged(); + void UpdateManagedState(); // policy::PolicyService::Observer void OnPolicyUpdated(const policy::PolicyNamespace& ns, @@ -155,10 +160,12 @@ class ManagementUIHandler : public content::WebUIMessageHandler { void AddObservers(); void RemoveObservers(); + bool managed_() const { return account_managed_ || device_managed_; } + bool account_managed_ = false; + bool device_managed_ = false; // To avoid double-removing the observers, which would cause a DCHECK() // failure. bool has_observers_ = false; - bool managed_ = false; std::string web_ui_data_source_name_; PrefChangeRegistrar pref_registrar_; diff --git a/chromium/chrome/browser/ui/webui/management_ui_handler_unittest.cc b/chromium/chrome/browser/ui/webui/management_ui_handler_unittest.cc index f081a564856..ea976960a7e 100644 --- a/chromium/chrome/browser/ui/webui/management_ui_handler_unittest.cc +++ b/chromium/chrome/browser/ui/webui/management_ui_handler_unittest.cc @@ -34,11 +34,12 @@ using testing::ReturnRef; struct ContextualManagementSourceUpdate { base::string16* extension_reporting_title; - base::string16* browser_management_notice; base::string16* subtitle; +#if defined(OS_CHROMEOS) base::string16* management_overview; - base::string16* management_overview_data_notice; - base::string16* management_overview_setup_notice; +#else + base::string16* browser_management_notice; +#endif // defined(OS_CHROMEOS) bool* managed; }; @@ -53,8 +54,7 @@ class TestManagementUIHandler : public ManagementUIHandler { cloud_reporting_extension_exists_ = enable; } - base::DictionaryValue GetContextualManagedDataForTesting( - Profile* profile) const { + base::DictionaryValue GetContextualManagedDataForTesting(Profile* profile) { return GetContextualManagedData(profile); } @@ -75,18 +75,27 @@ class TestManagementUIHandler : public ManagementUIHandler { return nullptr; } +#if defined(OS_CHROMEOS) + const std::string GetDeviceDomain() const override { return device_domain; } + void SetDeviceDomain(const std::string& domain) { device_domain = domain; } +#endif // defined(OS_CHROMEOS) + private: bool cloud_reporting_extension_exists_ = false; policy::PolicyService* policy_service_ = nullptr; + std::string device_domain = "devicedomain.com"; }; class ManagementUIHandlerTests : public testing::Test { public: - ManagementUIHandlerTests() : handler_(&policy_service_) { + ManagementUIHandlerTests() + : handler_(&policy_service_), + device_domain_(base::UTF8ToUTF16("devicedomain.com")) { ON_CALL(policy_service_, GetPolicies(_)) .WillByDefault(ReturnRef(empty_policy_map_)); } + base::string16 device_domain() { return device_domain_; } void EnablePolicy(const char* policy_key, policy::PolicyMap& policies) { policies.Set(policy_key, policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_MACHINE, policy::POLICY_SOURCE_CLOUD, @@ -98,15 +107,13 @@ class ManagementUIHandlerTests : public testing::Test { const ContextualManagementSourceUpdate& extracted) { data.GetString("extensionReportingTitle", extracted.extension_reporting_title); + data.GetString("pageSubtitle", extracted.subtitle); +#if defined(OS_CHROMEOS) + data.GetString("overview", extracted.management_overview); +#else data.GetString("browserManagementNotice", extracted.browser_management_notice); - data.GetString("pageSubtitle", extracted.subtitle); - data.GetString("accountManagedInfo.overview", - extracted.management_overview); - data.GetString("accountManagedInfo.data", - extracted.management_overview_data_notice); - data.GetString("accountManagedInfo.setup", - extracted.management_overview_setup_notice); +#endif // defined(OS_CHROMEOS) data.GetBoolean("managed", extracted.managed); } @@ -115,6 +122,7 @@ class ManagementUIHandlerTests : public testing::Test { content::TestBrowserThreadBundle thread_bundle_; policy::MockPolicyService policy_service_; policy::PolicyMap empty_policy_map_; + base::string16 device_domain_; }; #if !defined(OS_CHROMEOS) @@ -123,21 +131,14 @@ TEST_F(ManagementUIHandlerTests, auto profile = TestingProfile::Builder().Build(); base::string16 extension_reporting_title; - base::string16 browser_management_notice; base::string16 subtitle; - base::string16 management_overview; - base::string16 management_overview_data_notice; - base::string16 management_overview_setup_notice; + base::string16 browser_management_notice; bool managed; - ContextualManagementSourceUpdate extracted{&extension_reporting_title, - &browser_management_notice, - &subtitle, - &management_overview, - &management_overview_data_notice, - &management_overview_setup_notice, - &managed}; - - handler_.SetManagedForTesting(false); + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &browser_management_notice, + &managed}; + + handler_.SetAccountManagedForTesting(false); auto data = handler_.GetContextualManagedDataForTesting(profile.get()); ExtractContextualSourceUpdate(data, extracted); @@ -150,9 +151,6 @@ TEST_F(ManagementUIHandlerTests, base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); EXPECT_EQ(subtitle, l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)); - EXPECT_EQ(management_overview, base::string16()); - EXPECT_EQ(management_overview_data_notice, base::string16()); - EXPECT_EQ(management_overview_setup_notice, base::string16()); } TEST_F(ManagementUIHandlerTests, @@ -160,25 +158,18 @@ TEST_F(ManagementUIHandlerTests, auto profile = TestingProfile::Builder().Build(); base::string16 extension_reporting_title; - base::string16 browser_management_notice; base::string16 subtitle; - base::string16 management_overview; - base::string16 management_overview_data_notice; - base::string16 management_overview_setup_notice; + base::string16 browser_management_notice; bool managed; - ContextualManagementSourceUpdate extracted{&extension_reporting_title, - &browser_management_notice, - &subtitle, - &management_overview, - &management_overview_data_notice, - &management_overview_setup_notice, - &managed}; - - handler_.SetManagedForTesting(true); + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &browser_management_notice, + &managed}; + + handler_.SetAccountManagedForTesting(true); auto data = handler_.GetContextualManagedDataForTesting(profile.get()); ExtractContextualSourceUpdate(data, extracted); - EXPECT_EQ(data.DictSize(), 5u); + EXPECT_EQ(data.DictSize(), 4u); EXPECT_EQ(extension_reporting_title, l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)); EXPECT_EQ(browser_management_notice, @@ -186,13 +177,6 @@ TEST_F(ManagementUIHandlerTests, IDS_MANAGEMENT_BROWSER_NOTICE, base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); EXPECT_EQ(subtitle, l10n_util::GetStringUTF16(IDS_MANAGEMENT_SUBTITLE)); - EXPECT_EQ(management_overview, - l10n_util::GetStringUTF16( - IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION_UNKNOWN_DOMAIN)); - EXPECT_EQ(management_overview_data_notice, - l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_DATA)); - EXPECT_EQ(management_overview_setup_notice, - l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP)); EXPECT_TRUE(managed); } @@ -203,25 +187,17 @@ TEST_F(ManagementUIHandlerTests, auto profile = builder.Build(); base::string16 extensions_installed; - base::string16 browser_management_notice; base::string16 subtitle; - base::string16 management_overview; - base::string16 management_overview_data_notice; - base::string16 management_overview_setup_notice; + base::string16 browser_management_notice; bool managed; - ContextualManagementSourceUpdate extracted{&extensions_installed, - &browser_management_notice, - &subtitle, - &management_overview, - &management_overview_data_notice, - &management_overview_setup_notice, - &managed}; - - handler_.SetManagedForTesting(true); + ContextualManagementSourceUpdate extracted{ + &extensions_installed, &subtitle, &browser_management_notice, &managed}; + + handler_.SetAccountManagedForTesting(true); auto data = handler_.GetContextualManagedDataForTesting(profile.get()); ExtractContextualSourceUpdate(data, extracted); - EXPECT_EQ(data.DictSize(), 5u); + EXPECT_EQ(data.DictSize(), 4u); EXPECT_EQ(extensions_installed, l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)); EXPECT_EQ(browser_management_notice, @@ -229,13 +205,6 @@ TEST_F(ManagementUIHandlerTests, IDS_MANAGEMENT_BROWSER_NOTICE, base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); EXPECT_EQ(subtitle, l10n_util::GetStringUTF16(IDS_MANAGEMENT_SUBTITLE)); - EXPECT_EQ(management_overview, - l10n_util::GetStringUTF16( - IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION_UNKNOWN_DOMAIN)); - EXPECT_EQ(management_overview_data_notice, - l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_DATA)); - EXPECT_EQ(management_overview_setup_notice, - l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP)); EXPECT_TRUE(managed); } @@ -246,21 +215,14 @@ TEST_F(ManagementUIHandlerTests, auto profile = builder.Build(); base::string16 extension_reporting_title; - base::string16 browser_management_notice; base::string16 subtitle; - base::string16 management_overview; - base::string16 management_overview_data_notice; - base::string16 management_overview_setup_notice; + base::string16 browser_management_notice; bool managed; - ContextualManagementSourceUpdate extracted{&extension_reporting_title, - &browser_management_notice, - &subtitle, - &management_overview, - &management_overview_data_notice, - &management_overview_setup_notice, - &managed}; + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &browser_management_notice, + &managed}; - handler_.SetManagedForTesting(false); + handler_.SetAccountManagedForTesting(false); auto data = handler_.GetContextualManagedDataForTesting(profile.get()); ExtractContextualSourceUpdate(data, extracted); @@ -275,9 +237,6 @@ TEST_F(ManagementUIHandlerTests, base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); EXPECT_EQ(subtitle, l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)); - EXPECT_EQ(management_overview, base::string16()); - EXPECT_EQ(management_overview_data_notice, base::string16()); - EXPECT_EQ(management_overview_setup_notice, base::string16()); EXPECT_FALSE(managed); } @@ -288,21 +247,14 @@ TEST_F(ManagementUIHandlerTests, auto profile = builder.Build(); base::string16 extension_reporting_title; - base::string16 browser_management_notice; base::string16 subtitle; - base::string16 management_overview; - base::string16 management_overview_data_notice; - base::string16 management_overview_setup_notice; + base::string16 browser_management_notice; bool managed; - ContextualManagementSourceUpdate extracted{&extension_reporting_title, - &browser_management_notice, - &subtitle, - &management_overview, - &management_overview_data_notice, - &management_overview_setup_notice, - &managed}; + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &browser_management_notice, + &managed}; - handler_.SetManagedForTesting(false); + handler_.SetAccountManagedForTesting(false); auto data = handler_.GetContextualManagedDataForTesting(profile.get()); ExtractContextualSourceUpdate(data, extracted); @@ -316,9 +268,6 @@ TEST_F(ManagementUIHandlerTests, base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); EXPECT_EQ(subtitle, l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)); - EXPECT_EQ(management_overview, base::string16()); - EXPECT_EQ(management_overview_data_notice, base::string16()); - EXPECT_EQ(management_overview_setup_notice, base::string16()); EXPECT_FALSE(managed); } @@ -329,44 +278,29 @@ TEST_F(ManagementUIHandlerTests, auto profile = builder.Build(); base::string16 extension_reporting_title; - base::string16 browser_management_notice; base::string16 subtitle; - base::string16 management_overview; - base::string16 management_overview_data_notice; - base::string16 management_overview_setup_notice; + base::string16 browser_management_notice; bool managed; - ContextualManagementSourceUpdate extracted{&extension_reporting_title, - &browser_management_notice, - &subtitle, - &management_overview, - &management_overview_data_notice, - &management_overview_setup_notice, - &managed}; - - handler_.SetManagedForTesting(true); + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &browser_management_notice, + &managed}; + + handler_.SetAccountManagedForTesting(true); + handler_.SetDeviceManagedForTesting(false); auto data = handler_.GetContextualManagedDataForTesting(profile.get()); ExtractContextualSourceUpdate(data, extracted); - EXPECT_EQ(data.DictSize(), 5u); + EXPECT_EQ(data.DictSize(), 4u); EXPECT_EQ(extension_reporting_title, l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY, base::UTF8ToUTF16("manager.com"))); - EXPECT_EQ( - browser_management_notice, - l10n_util::GetStringFUTF16( - IDS_MANAGEMENT_MANAGEMENT_BY_NOTICE, base::UTF8ToUTF16("manager.com"), - base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); + EXPECT_EQ(browser_management_notice, + l10n_util::GetStringFUTF16( + IDS_MANAGEMENT_BROWSER_NOTICE, + base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); EXPECT_EQ(subtitle, l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY, base::UTF8ToUTF16("manager.com"))); - EXPECT_EQ( - management_overview, - l10n_util::GetStringFUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_CLARIFICATION, - base::UTF8ToUTF16("manager.com"))); - EXPECT_EQ(management_overview_data_notice, - l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_DATA)); - EXPECT_EQ(management_overview_setup_notice, - l10n_util::GetStringUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_SETUP)); EXPECT_TRUE(managed); } @@ -380,29 +314,152 @@ TEST_F(ManagementUIHandlerTests, auto profile = builder.Build(); const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); - base::string16 extensions_installed; - base::string16 browser_management_notice; + base::string16 extension_reporting_title; base::string16 subtitle; base::string16 management_overview; - base::string16 management_overview_data_notice; - base::string16 management_overview_setup_notice; bool managed; - ContextualManagementSourceUpdate extracted{&extensions_installed, - &browser_management_notice, - &subtitle, - &management_overview, - &management_overview_data_notice, - &management_overview_setup_notice, - &managed}; - - handler_.SetManagedForTesting(true); + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &management_overview, &managed}; + + handler_.SetAccountManagedForTesting(true); + handler_.SetDeviceManagedForTesting(false); + handler_.SetDeviceDomain(""); auto data = handler_.GetContextualManagedDataForTesting(profile.get()); ExtractContextualSourceUpdate(data, extracted); + EXPECT_EQ(extension_reporting_title, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY, + base::UTF8ToUTF16("manager.com"))); EXPECT_EQ(subtitle, l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY, l10n_util::GetStringUTF16(device_type), base::UTF8ToUTF16("manager.com"))); + EXPECT_EQ(management_overview, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_ACCOUNT_MANAGED_BY, + base::UTF8ToUTF16("manager.com"))); + EXPECT_TRUE(managed); +} + +TEST_F(ManagementUIHandlerTests, + ManagementContextualSourceUpdateManagedAccountUnknownDomain) { + TestingProfile::Builder builder; + auto profile = builder.Build(); + const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); + + base::string16 extension_reporting_title; + base::string16 subtitle; + base::string16 management_overview; + bool managed; + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &management_overview, &managed}; + + handler_.SetAccountManagedForTesting(true); + handler_.SetDeviceManagedForTesting(false); + handler_.SetDeviceDomain(""); + auto data = handler_.GetContextualManagedDataForTesting(profile.get()); + ExtractContextualSourceUpdate(data, extracted); + + EXPECT_EQ(extension_reporting_title, + l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)); + EXPECT_EQ(subtitle, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED, + l10n_util::GetStringUTF16(device_type))); + EXPECT_EQ(management_overview, base::string16()); + EXPECT_TRUE(managed); +} + +TEST_F(ManagementUIHandlerTests, + ManagementContextualSourceUpdateManagedDevice) { + TestingProfile::Builder builder; + builder.SetProfileName("managed@manager.com"); + auto profile = builder.Build(); + const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); + + base::string16 extension_reporting_title; + base::string16 subtitle; + base::string16 management_overview; + bool managed; + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &management_overview, &managed}; + + handler_.SetAccountManagedForTesting(false); + handler_.SetDeviceManagedForTesting(true); + auto data = handler_.GetContextualManagedDataForTesting(profile.get()); + ExtractContextualSourceUpdate(data, extracted); + + EXPECT_EQ(subtitle, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY, + l10n_util::GetStringUTF16(device_type), + device_domain())); + EXPECT_EQ(extension_reporting_title, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY, + device_domain())); + EXPECT_EQ(management_overview, base::string16()); + EXPECT_TRUE(managed); +} + +TEST_F(ManagementUIHandlerTests, + ManagementContextualSourceUpdateManagedDeviceAndAccount) { + TestingProfile::Builder builder; + builder.SetProfileName("managed@devicedomain.com"); + auto profile = builder.Build(); + const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); + + base::string16 extension_reporting_title; + base::string16 subtitle; + base::string16 management_overview; + bool managed; + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &management_overview, &managed}; + + handler_.SetAccountManagedForTesting(true); + handler_.SetDeviceManagedForTesting(true); + auto data = handler_.GetContextualManagedDataForTesting(profile.get()); + ExtractContextualSourceUpdate(data, extracted); + + EXPECT_EQ(subtitle, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY, + l10n_util::GetStringUTF16(device_type), + device_domain())); + EXPECT_EQ(extension_reporting_title, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY, + device_domain())); + EXPECT_EQ(management_overview, + l10n_util::GetStringFUTF16( + IDS_MANAGEMENT_DEVICE_AND_ACCOUNT_MANAGED_BY, device_domain())); + EXPECT_TRUE(managed); +} + +TEST_F(ManagementUIHandlerTests, + ManagementContextualSourceUpdateManagedDeviceAndAccountMultipleDomains) { + TestingProfile::Builder builder; + builder.SetProfileName("managed@manager.com"); + auto profile = builder.Build(); + const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); + + base::string16 extension_reporting_title; + base::string16 subtitle; + base::string16 management_overview; + bool managed; + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &management_overview, &managed}; + + handler_.SetAccountManagedForTesting(true); + handler_.SetDeviceManagedForTesting(true); + auto data = handler_.GetContextualManagedDataForTesting(profile.get()); + ExtractContextualSourceUpdate(data, extracted); + + EXPECT_EQ(subtitle, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY, + l10n_util::GetStringUTF16(device_type), + device_domain())); + EXPECT_EQ(extension_reporting_title, + l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY, + device_domain())); + EXPECT_EQ(management_overview, + l10n_util::GetStringFUTF16( + IDS_MANAGEMENT_DEVICE_MANAGED_BY_ACCOUNT_MANAGED_BY, + device_domain(), base::UTF8ToUTF16("manager.com"))); EXPECT_TRUE(managed); } @@ -411,26 +468,23 @@ TEST_F(ManagementUIHandlerTests, ManagementContextualSourceUpdateUnmanaged) { const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); base::string16 extension_reporting_title; - base::string16 browser_management_notice; base::string16 subtitle; base::string16 management_overview; - base::string16 management_overview_data_notice; - base::string16 management_overview_setup_notice; bool managed; - ContextualManagementSourceUpdate extracted{&extension_reporting_title, - &browser_management_notice, - &subtitle, - &management_overview, - &management_overview_data_notice, - &management_overview_setup_notice, - &managed}; - - handler_.SetManagedForTesting(false); + ContextualManagementSourceUpdate extracted{ + &extension_reporting_title, &subtitle, &management_overview, &managed}; + + handler_.SetAccountManagedForTesting(false); + handler_.SetDeviceDomain(""); auto data = handler_.GetContextualManagedDataForTesting(profile.get()); ExtractContextualSourceUpdate(data, extracted); EXPECT_EQ(subtitle, l10n_util::GetStringFUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE, l10n_util::GetStringUTF16(device_type))); + EXPECT_EQ(extension_reporting_title, + l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)); + EXPECT_EQ(management_overview, + l10n_util::GetStringUTF16(IDS_MANAGEMENT_DEVICE_NOT_MANAGED)); EXPECT_FALSE(managed); } #endif diff --git a/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc b/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc index 82ed17f9101..95eb3572e8b 100644 --- a/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc +++ b/chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc @@ -87,6 +87,7 @@ bool ChromeNTPTilesInternalsMessageHandlerClient::DoesSourceExist( return false; #endif case ntp_tiles::TileSource::CUSTOM_LINKS: + case ntp_tiles::TileSource::SEARCH_PAGE: #if !defined(OS_ANDROID) return true; #else diff --git a/chromium/chrome/browser/ui/webui/settings/about_handler.cc b/chromium/chrome/browser/ui/webui/settings/about_handler.cc index 2ae0eb80edd..cbf766eaff5 100644 --- a/chromium/chrome/browser/ui/webui/settings/about_handler.cc +++ b/chromium/chrome/browser/ui/webui/settings/about_handler.cc @@ -96,11 +96,19 @@ struct RegulatoryLabel { const std::string image_url; }; -bool ShouldShowSafetyInfo() { +// Returns the link to the safety info for the device (if it exists). +std::string GetSafetyInfoLink() { const std::vector<std::string> board = base::SplitString(base::SysInfo::GetLsbReleaseBoard(), "-", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); - return board[0] == "nocturne"; + if (board[0] == "nocturne") { + return chrome::kChromeUISafetyPixelSlateURL; + } + if (board[0] == "eve" || board[0] == "atlas") { + return chrome::kChromeUISafetyPixelbookURL; + } + + return std::string(); } // Returns message that informs user that for update it's better to @@ -329,13 +337,14 @@ AboutHandler* AboutHandler::Create(content::WebUIDataSource* html_source, #endif #if defined(OS_CHROMEOS) - html_source->AddBoolean("shouldShowSafetyInfo", ShouldShowSafetyInfo()); + std::string safetyInfoLink = GetSafetyInfoLink(); + html_source->AddBoolean("shouldShowSafetyInfo", !safetyInfoLink.empty()); #if defined(GOOGLE_CHROME_BUILD) html_source->AddString( "aboutProductSafety", l10n_util::GetStringUTF16(IDS_ABOUT_SAFETY_INFORMATION)); html_source->AddString("aboutProductSafetyURL", - base::UTF8ToUTF16(chrome::kChromeUISafetyURL)); + base::UTF8ToUTF16(safetyInfoLink)); #endif base::string16 os_license = l10n_util::GetStringFUTF16( diff --git a/chromium/chrome/browser/ui/webui/sync_internals_browsertest.js b/chromium/chrome/browser/ui/webui/sync_internals_browsertest.js index ede567340a8..9a179ff2576 100644 --- a/chromium/chrome/browser/ui/webui/sync_internals_browsertest.js +++ b/chromium/chrome/browser/ui/webui/sync_internals_browsertest.js @@ -260,8 +260,9 @@ GEN('#else'); // set. TEST_F('SyncInternalsWebUITest', 'SyncDisabledByDefault', function() { expectTrue(this.hasInDetails(true, 'Transport State', 'Disabled')); - expectTrue( - this.hasInDetails(true, 'Disable Reasons', 'Not signed in, User choice')); + // TODO(crbug.com/906034,crbug.com/973770): Sort out the proper default value + // for IsSyncRequested() and possibly add the "User choice" disable reason. + expectTrue(this.hasInDetails(true, 'Disable Reasons', 'Not signed in')); expectTrue(this.hasInDetails(true, 'Username', '')); }); diff --git a/chromium/chrome/browser/ui/webui/welcome/nux_helper.cc b/chromium/chrome/browser/ui/webui/welcome/nux_helper.cc index a79c297bd7c..393671cfd3e 100644 --- a/chromium/chrome/browser/ui/webui/welcome/nux_helper.cc +++ b/chromium/chrome/browser/ui/webui/welcome/nux_helper.cc @@ -80,6 +80,20 @@ bool CanShowSigninModule(const policy::PolicyMap& policies) { policy::BrowserSigninMode::kDisabled; } +#if defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN) +// These feature flags are used to tie our experiment to specific studies. +// go/navi-app-variation for details. +// TODO(hcarmona): find a solution that scales better. +const base::Feature kNaviControlEnabled = {"NaviControlEnabled", + base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kNaviAppVariationEnabled = { + "NaviAppVariationEnabled", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kNaviNTPVariationEnabled = { + "NaviNTPVariationEnabled", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kNaviShortcutVariationEnabled = { + "NaviShortcutVariationEnabled", base::FEATURE_DISABLED_BY_DEFAULT}; +#endif // defined(GOOGLE_CHROME_BUILD) && defined(OS_WIN) + // This feature flag is used to force the feature to be turned on for non-win // and non-branded builds, like with tests or development on other platforms. const base::Feature kNuxOnboardingForceEnabled = { @@ -164,6 +178,17 @@ bool IsNuxOnboardingEnabled(Profile* profile) { ChromeMetricsServiceAccessor::RegisterSyntheticFieldTrial( "NaviOnboardingSynthetic", onboard_group); + // Check for feature based on onboarding group. + // TODO(hcarmona): find a solution that scales better. + if (onboard_group.compare("ControlSynthetic-008") == 0) + base::FeatureList::IsEnabled(kNaviControlEnabled); + else if (onboard_group.compare("AppVariationSynthetic-008") == 0) + base::FeatureList::IsEnabled(kNaviAppVariationEnabled); + else if (onboard_group.compare("NTPVariationSynthetic-008") == 0) + base::FeatureList::IsEnabled(kNaviNTPVariationEnabled); + else if (onboard_group.compare("ShortcutVariationSynthetic-008") == 0) + base::FeatureList::IsEnabled(kNaviShortcutVariationEnabled); + if (base::FeatureList::IsEnabled(nux::kNuxOnboardingFeature)) { return true; } |