summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/browser/ui
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/ui')
-rw-r--r--chromium/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_localized_strings_provider.cc25
-rw-r--r--chromium/chrome/browser/ui/webui/management_ui_browsertest.cc10
-rw-r--r--chromium/chrome/browser/ui/webui/management_ui_handler.cc294
-rw-r--r--chromium/chrome/browser/ui/webui/management_ui_handler.h15
-rw-r--r--chromium/chrome/browser/ui/webui/management_ui_handler_unittest.cc360
-rw-r--r--chromium/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc1
-rw-r--r--chromium/chrome/browser/ui/webui/settings/about_handler.cc17
-rw-r--r--chromium/chrome/browser/ui/webui/sync_internals_browsertest.js5
-rw-r--r--chromium/chrome/browser/ui/webui/welcome/nux_helper.cc25
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;
}