Commit 1f308464 authored by Yann Dago's avatar Yann Dago Committed by Commit Bot

Management WebUI: Make the page feel like settings' subpage

The management page should feel like a subpage of the settings page even
if it is not embedded in the settings page. This feel is made by
modifying the title and subtitles, but also adding a navigation back to
the settings page.

Bug: 948256
Change-Id: I04e10a31a6da0066e4d94f67fecc8ea6346d364c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1548136
Commit-Queue: Yann Dago <ydago@chromium.org>
Reviewed-by: default avatarThiemo Nagel <tnagel@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#649189}
parent ee01e4c8
...@@ -455,7 +455,6 @@ ...@@ -455,7 +455,6 @@
<include name="IDR_POLICY_JS" file="resources\policy\policy.js" type="BINDATA" compress="gzip" /> <include name="IDR_POLICY_JS" file="resources\policy\policy.js" type="BINDATA" compress="gzip" />
<if expr="not is_android"> <if expr="not is_android">
<include name="IDR_MANAGEMENT_HTML" file="resources\management\management.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" compress="gzip" /> <include name="IDR_MANAGEMENT_HTML" file="resources\management\management.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" compress="gzip" />
<include name="IDR_MANAGEMENT_JS" file="resources\management\management.js" type="BINDATA" compress="gzip" />
<include name="IDR_MANAGEMENT_UI_HTML" file="resources\management\management_ui.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" compress="gzip" /> <include name="IDR_MANAGEMENT_UI_HTML" file="resources\management\management_ui.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" compress="gzip" />
<include name="IDR_MANAGEMENT_UI_JS" file="resources\management\management_ui.js" type="BINDATA" compress="gzip" preprocess="true" /> <include name="IDR_MANAGEMENT_UI_JS" file="resources\management\management_ui.js" type="BINDATA" compress="gzip" preprocess="true" />
<include name="IDR_MANAGEMENT_BROWSER_PROXY_HTML" file="resources\management\management_browser_proxy.html" allowexternalscript="true" type="BINDATA" compress="gzip" /> <include name="IDR_MANAGEMENT_BROWSER_PROXY_HTML" file="resources\management\management_browser_proxy.html" allowexternalscript="true" type="BINDATA" compress="gzip" />
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no"> <meta name="viewport" content="width=device-width, user-scalable=no">
<title>$i18n{title}</title>
<link rel="stylesheet" href="chrome://resources/css/md_colors.css"> <link rel="stylesheet" href="chrome://resources/css/md_colors.css">
<link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css"> <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
...@@ -36,6 +37,4 @@ ...@@ -36,6 +37,4 @@
<body> <body>
<management-ui></management-ui> <management-ui></management-ui>
</body> </body>
<script src="management.js"></script>
</html> </html>
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
cr.define('management', function() {
document.title = loadTimeData.getString('title');
cr.addWebUIListener(
'browser-reporting-info-updated',
() => document.title = loadTimeData.getString('title'));
});
...@@ -73,9 +73,6 @@ management.ManagementStatus; ...@@ -73,9 +73,6 @@ management.ManagementStatus;
cr.define('management', function() { cr.define('management', function() {
/** @interface */ /** @interface */
class ManagementBrowserProxy { class ManagementBrowserProxy {
/** @return {string} */
getExtensionReportingTitle() {}
/** @return {!Promise<!Array<!management.Extension>>} */ /** @return {!Promise<!Array<!management.Extension>>} */
getExtensions() {} getExtensions() {}
...@@ -101,9 +98,6 @@ cr.define('management', function() { ...@@ -101,9 +98,6 @@ cr.define('management', function() {
getManagementNotice() {} getManagementNotice() {}
// </if> // </if>
/** @return {string} */
getPageTitle() {}
/** /**
* @return {!Promise<!Array<!management.BrowserReportingResponse>>} The list * @return {!Promise<!Array<!management.BrowserReportingResponse>>} The list
* of browser reporting info messages. * of browser reporting info messages.
...@@ -113,11 +107,6 @@ cr.define('management', function() { ...@@ -113,11 +107,6 @@ cr.define('management', function() {
/** @implements {management.ManagementBrowserProxy} */ /** @implements {management.ManagementBrowserProxy} */
class ManagementBrowserProxyImpl { class ManagementBrowserProxyImpl {
/** @override */
getExtensionReportingTitle() {
return loadTimeData.getString('extensionsInstalled');
}
/** @override */ /** @override */
getExtensions() { getExtensions() {
return cr.sendWithPromise('getExtensions'); return cr.sendWithPromise('getExtensions');
...@@ -147,11 +136,6 @@ cr.define('management', function() { ...@@ -147,11 +136,6 @@ cr.define('management', function() {
} }
// </if> // </if>
/** @override */
getPageTitle() {
return loadTimeData.getString('title');
}
/** @override */ /** @override */
initBrowserReportingInfo() { initBrowserReportingInfo() {
return cr.sendWithPromise('initBrowserReportingInfo'); return cr.sendWithPromise('initBrowserReportingInfo');
......
...@@ -25,6 +25,14 @@ ...@@ -25,6 +25,14 @@
text-decoration: none; text-decoration: none;
} }
.page-subtitle a {
margin-inline-end: 32px;
}
a iron-icon {
color: var(--cr-primary-text-color);
}
cr-toolbar { cr-toolbar {
flex-shrink: 0; flex-shrink: 0;
} }
...@@ -151,123 +159,130 @@ ...@@ -151,123 +159,130 @@
} }
</style> </style>
<cr-toolbar page-name="[[title_]]" show-search="[[showSearchInToolbar_]]"> <cr-toolbar page-name="$i18n{toolbarTitle}"
show-search="[[showSearchInToolbar_]]">
</cr-toolbar> </cr-toolbar>
<main id="mainContent"> <main id="mainContent">
<div class="sections-container"> <div class="sections-container">
<div class="card"> <div class="card">
<section class="single-column overview-section"> <section class="page-subtitle">
<a href="chrome://settings/help">
<iron-icon icon="cr:arrow-back"></iron-icon>
</a>
[[subtitle_]]
</section>
<section class="single-column overview-section">
<if expr="not chromeos"> <if expr="not chromeos">
<p inner-h-t-m-l="[[managementNoticeHtml_]]"></p> <p inner-h-t-m-l="[[managementNoticeHtml_]]"></p>
</if> </if>
<if expr="chromeos"> <if expr="chromeos">
<div>[[managementOverview_]]</div> <div>[[managementOverview_]]</div>
<div class="overview-messages" <div class="overview-messages"
hidden="[[!deviceManagedInfo_]]"> hidden="[[!deviceManagedInfo_]]">
[[deviceManagedInfo_.overview]] [[deviceManagedInfo_.overview]]
<div class="content-indented"> <div class="content-indented">
[[deviceManagedInfo_.setup]] [[deviceManagedInfo_.setup]]
<a href="$i18nRaw{managementDeviceLearnMoreUrl}" <a href="$i18nRaw{managementDeviceLearnMoreUrl}"
target="_blank">$i18n{learnMore}</a> target="_blank">$i18n{learnMore}</a>
</div>
<div class="content-indented">[[deviceManagedInfo_.data]]</div>
</div> </div>
<div class="content-indented">[[deviceManagedInfo_.data]]</div>
</div>
</if> </if>
<div class="overview-messages" hidden="[[!accountManagedInfo_]]"> <div class="overview-messages" hidden="[[!accountManagedInfo_]]">
[[accountManagedInfo_.overview]] [[accountManagedInfo_.overview]]
<div class="content-indented"> <div class="content-indented">
<if expr="chromeos"> <if expr="chromeos">
[[accountManagedInfo_.setup]] [[accountManagedInfo_.setup]]
<a href="$i18nRaw{managementAccountLearnMoreUrl}" <a href="$i18nRaw{managementAccountLearnMoreUrl}"
target="_blank">$i18n{learnMore}</a> target="_blank">$i18n{learnMore}</a>
</if> </if>
<if expr="not chromeos"> <if expr="not chromeos">
[[accountManagedInfo_.setup]]. [[accountManagedInfo_.setup]]
</if> </if>
</div>
<div class="content-indented">[[accountManagedInfo_.data]]</div>
</div>
</section>
<if expr="chromeos">
<template is="dom-if"
if="[[showDeviceReportingInfo_(deviceReportingInfo_)]]">
<section class="single-column">
<h2>$i18n{deviceReporting}</h2>
<div class="subtitle">$i18n{deviceConfiguration}</div>
<template is="dom-repeat" items="[[deviceReportingInfo_]]">
<div class="device-reporting">
<span>
<iron-icon icon="[[getIconForDeviceReportingType_(
item.reportingType)]]"></iron-icon>
[[i18n(item.messageId)]]
</span>
</div> </div>
</template> <div class="content-indented">[[accountManagedInfo_.data]]</div>
</div>
</section> </section>
</template> <if expr="chromeos">
<template is="dom-if"
if="[[showDeviceReportingInfo_(deviceReportingInfo_)]]">
<section class="single-column">
<h2>$i18n{deviceReporting}</h2>
<div class="subtitle">$i18n{deviceConfiguration}</div>
<template is="dom-repeat" items="[[deviceReportingInfo_]]">
<div class="device-reporting">
<span>
<iron-icon icon="[[getIconForDeviceReportingType_(
item.reportingType)]]"></iron-icon>
[[i18n(item.messageId)]]
</span>
</div>
</template>
</section>
</template>
</if> </if>
<template is="dom-if" <template is="dom-if"
if="[[showBrowserReportingInfo_(browserReportingInfo_)]]"> if="[[showBrowserReportingInfo_(browserReportingInfo_)]]">
<section class="single-column"> <section class="single-column">
<h2>$i18n{browserReporting}</h2> <h2>$i18n{browserReporting}</h2>
<div class="subtitle"> <div class="subtitle">
$i18n{browserReportingExplanation} $i18n{browserReportingExplanation}
</div>
<template is="dom-repeat" items="[[browserReportingInfo_]]">
<div class="browser-report">
<iron-icon icon="[[item.icon]]"></iron-icon>
<ul>
<template is="dom-repeat" items="[[item.messageIds]]"
as="messageId">
<li inner-h-t-m-l="[[i18nAdvanced(messageId)]]"></li>
</template>
</ul>
</div> </div>
</template> <template is="dom-repeat" items="[[browserReportingInfo_]]">
</section> <div class="browser-report">
</template> <iron-icon icon="[[item.icon]]"></iron-icon>
<template is="dom-if" <ul>
if="[[showExtensionReportingInfo_(extensions_)]]"> <template is="dom-repeat" items="[[item.messageIds]]"
<section class="single-column"> as="messageId">
<h2>$i18n{extensionReporting}</h2> <li inner-h-t-m-l="[[i18nAdvanced(messageId)]]"></li>
<div class="subtitle">[[extensionReportingSubtitle_]]</div> </template>
<div class="extensions-list"> </ul>
<div class="list-item header">
<div class="extension-name">$i18n{extensionName}</div>
<div class="extension-permissions">
$i18n{extensionPermissions}
</div> </div>
</div> </template>
<template is="dom-repeat" items="[[extensions_]]"> </section>
<div class="list-item"> </template>
<div class="extension-name"> <template is="dom-if"
<img src="[[item.icon]]" if="[[showExtensionReportingInfo_(extensions_)]]">
aria-describedby="a11yAssociation"> <section class="single-column">
<span>[[item.name]]</span> <h2>$i18n{extensionReporting}</h2>
</div> <div class="subtitle">[[extensionReportingSubtitle_]]</div>
<div class="extensions-list">
<div class="list-item header">
<div class="extension-name">$i18n{extensionName}</div>
<div class="extension-permissions"> <div class="extension-permissions">
<ul> $i18n{extensionPermissions}
<template is="dom-repeat" items="[[item.permissions]]"
as="permission">
<li>[[permission]]</li>
</template>
</ul>
</div> </div>
</template> </div>
</div> <template is="dom-repeat" items="[[extensions_]]">
</section> <div class="list-item">
</template> <div class="extension-name">
<img src="[[item.icon]]"
aria-describedby="a11yAssociation">
<span>[[item.name]]</span>
</div>
<div class="extension-permissions">
<ul>
<template is="dom-repeat" items="[[item.permissions]]"
as="permission">
<li>[[permission]]</li>
</template>
</ul>
</div>
</template>
</div>
</section>
</template>
<if expr="chromeos"> <if expr="chromeos">
<template is="dom-if" if="[[localTrustRoots_]]"> <template is="dom-if" if="[[localTrustRoots_]]">
<section class="single-column"> <section class="single-column">
<h2>$i18n{localTrustRoots}</h2> <h2>$i18n{localTrustRoots}</h2>
<div id="trust-roots-configuration">[[localTrustRoots_]]</div> <div id="trust-roots-configuration">[[localTrustRoots_]]</div>
</section> </section>
</template> </template>
</if> </if>
</div>
</div> </div>
</div>
</main> </main>
</template> </template>
<script src="management_ui.js"></script> <script src="management_ui.js"></script>
......
...@@ -65,7 +65,7 @@ Polymer({ ...@@ -65,7 +65,7 @@ Polymer({
}, },
/** @private */ /** @private */
title_: String, subtitle_: String,
// <if expr="not chromeos"> // <if expr="not chromeos">
/** @private */ /** @private */
...@@ -246,11 +246,11 @@ Polymer({ ...@@ -246,11 +246,11 @@ Polymer({
/** @private */ /** @private */
updateManagedFields_() { updateManagedFields_() {
this.title_ = this.browserProxy_.getPageTitle(); this.subtitle_ = loadTimeData.getString('subtitle');
// <if expr="not chromeos"> // <if expr="not chromeos">
this.managementNoticeHtml_ = this.browserProxy_.getManagementNotice(); this.managementNoticeHtml_ = this.browserProxy_.getManagementNotice();
// </if> // </if>
this.extensionReportingSubtitle_ = this.extensionReportingSubtitle_ =
this.browserProxy_.getExtensionReportingTitle(); loadTimeData.getString('extensionReportingTitle');
}, },
}); });
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "chrome/browser/ui/webui/localized_string.h" #include "chrome/browser/ui/webui/localized_string.h"
#include "chrome/browser/ui/webui/management_ui_handler.h" #include "chrome/browser/ui/webui/management_ui_handler.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/browser_resources.h" #include "chrome/grit/browser_resources.h"
#include "chrome/grit/theme_resources.h" #include "chrome/grit/theme_resources.h"
#include "components/safe_browsing/common/safebrowsing_constants.h" #include "components/safe_browsing/common/safebrowsing_constants.h"
...@@ -33,12 +34,12 @@ namespace { ...@@ -33,12 +34,12 @@ namespace {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
base::string16 GetChromeOSManagementPageTitle() { base::string16 GetChromeOSManagementPageSubtitle() {
policy::BrowserPolicyConnectorChromeOS* connector = policy::BrowserPolicyConnectorChromeOS* connector =
g_browser_process->platform_part()->browser_policy_connector_chromeos(); g_browser_process->platform_part()->browser_policy_connector_chromeos();
const auto device_type = ui::GetChromeOSDeviceTypeResourceId(); const auto device_type = ui::GetChromeOSDeviceTypeResourceId();
if (!connector->IsEnterpriseManaged()) { if (!connector->IsEnterpriseManaged()) {
return l10n_util::GetStringFUTF16(IDS_MANAGEMENT_NOT_MANAGED_TITLE, return l10n_util::GetStringFUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE,
l10n_util::GetStringUTF16(device_type)); l10n_util::GetStringUTF16(device_type));
} }
...@@ -46,13 +47,13 @@ base::string16 GetChromeOSManagementPageTitle() { ...@@ -46,13 +47,13 @@ base::string16 GetChromeOSManagementPageTitle() {
if (display_domain.empty()) { if (display_domain.empty()) {
if (!connector->IsActiveDirectoryManaged()) { if (!connector->IsActiveDirectoryManaged()) {
return l10n_util::GetStringFUTF16(IDS_MANAGEMENT_TITLE_MANAGED, return l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED,
l10n_util::GetStringUTF16(device_type)); l10n_util::GetStringUTF16(device_type));
} }
display_domain = connector->GetRealm(); display_domain = connector->GetRealm();
} }
return l10n_util::GetStringFUTF16(IDS_MANAGEMENT_TITLE_BY, return l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY,
l10n_util::GetStringUTF16(device_type), l10n_util::GetStringUTF16(device_type),
base::UTF8ToUTF16(display_domain)); base::UTF8ToUTF16(display_domain));
} }
...@@ -63,7 +64,7 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() { ...@@ -63,7 +64,7 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() {
content::WebUIDataSource::Create(chrome::kChromeUIManagementHost); content::WebUIDataSource::Create(chrome::kChromeUIManagementHost);
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
source->AddString("title", GetChromeOSManagementPageTitle()); source->AddString("subtitle", GetChromeOSManagementPageSubtitle());
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
static constexpr LocalizedString kLocalizedStrings[] = { static constexpr LocalizedString kLocalizedStrings[] = {
...@@ -85,12 +86,13 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() { ...@@ -85,12 +86,13 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() {
{"browserReportingExplanation", {"browserReportingExplanation",
IDS_MANAGEMENT_BROWSER_REPORTING_EXPLANATION}, IDS_MANAGEMENT_BROWSER_REPORTING_EXPLANATION},
{"extensionReporting", IDS_MANAGEMENT_EXTENSION_REPORTING}, {"extensionReporting", IDS_MANAGEMENT_EXTENSION_REPORTING},
{"extensionsInstalled", IDS_MANAGEMENT_EXTENSIONS_INSTALLED},
{"extensionName", IDS_MANAGEMENT_EXTENSIONS_NAME}, {"extensionName", IDS_MANAGEMENT_EXTENSIONS_NAME},
{"extensionPermissions", IDS_MANAGEMENT_EXTENSIONS_PERMISSIONS}, {"extensionPermissions", IDS_MANAGEMENT_EXTENSIONS_PERMISSIONS},
{"localTrustRoots", IDS_MANAGEMENT_LOCAL_TRUST_ROOTS}, {"localTrustRoots", IDS_MANAGEMENT_LOCAL_TRUST_ROOTS},
{"managementTrustRootsNotConfigured", {"managementTrustRootsNotConfigured",
IDS_MANAGEMENT_TRUST_ROOTS_NOT_CONFIGURED}, IDS_MANAGEMENT_TRUST_ROOTS_NOT_CONFIGURED},
{"title", IDS_MANAGEMENT_TITLE},
{"toolbarTitle", IDS_MANAGEMENT_TOOLBAR_TITLE},
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS)
{kManagementExtensionReportMachineName, {kManagementExtensionReportMachineName,
IDS_MANAGEMENT_EXTENSION_REPORT_MACHINE_NAME}, IDS_MANAGEMENT_EXTENSION_REPORT_MACHINE_NAME},
...@@ -133,7 +135,6 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() { ...@@ -133,7 +135,6 @@ content::WebUIDataSource* CreateManagementUIHtmlSource() {
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
source->SetJsonPath("strings.js"); source->SetJsonPath("strings.js");
// Add required resources. // Add required resources.
source->AddResourcePath("management.js", IDR_MANAGEMENT_JS);
source->AddResourcePath("management_browser_proxy.html", source->AddResourcePath("management_browser_proxy.html",
IDR_MANAGEMENT_BROWSER_PROXY_HTML); IDR_MANAGEMENT_BROWSER_PROXY_HTML);
source->AddResourcePath("management_browser_proxy.js", source->AddResourcePath("management_browser_proxy.js",
......
...@@ -76,13 +76,11 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { ...@@ -76,13 +76,11 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
"});" "});"
"unmanaged_result.push({" "unmanaged_result.push({"
" name: 'extensionReportingTitle'," " name: 'extensionReportingTitle',"
" value: management.ManagementBrowserProxyImpl" " value: loadTimeData.getString('extensionReportingTitle')"
" .getInstance().getExtensionReportingTitle()"
"});" "});"
"unmanaged_result.push({" "unmanaged_result.push({"
" name: 'pageTitle'," " name: 'pageSubtitle',"
" value: management.ManagementBrowserProxyImpl" " value: loadTimeData.getString('subtitle')"
" .getInstance().getPageTitle()"
"});" "});"
"domAutomationController.send(JSON.stringify(unmanaged_result));"; "domAutomationController.send(JSON.stringify(unmanaged_result));";
...@@ -101,8 +99,8 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { ...@@ -101,8 +99,8 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))}, base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))},
{"extensionReportingTitle", {"extensionReportingTitle",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)}, l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)},
{"pageTitle", {"pageSubtitle",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_TITLE)}, l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE)},
}; };
VerifyTexts(unmanaged_value_ptr.get(), expected_unmanaged_values); VerifyTexts(unmanaged_value_ptr.get(), expected_unmanaged_values);
...@@ -128,13 +126,11 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { ...@@ -128,13 +126,11 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
"});" "});"
"managed_result.push({" "managed_result.push({"
" name: 'extensionReportingTitle'," " name: 'extensionReportingTitle',"
" value: management.ManagementBrowserProxyImpl" " value: loadTimeData.getString('extensionReportingTitle')"
" .getInstance().getExtensionReportingTitle()"
"});" "});"
"managed_result.push({" "managed_result.push({"
" name: 'pageTitle'," " name: 'pageSubtitle',"
" value: management.ManagementBrowserProxyImpl" " value: loadTimeData.getString('subtitle')"
" .getInstance().getPageTitle()"
"});" "});"
"domAutomationController.send(JSON.stringify(managed_result));"; "domAutomationController.send(JSON.stringify(managed_result));";
...@@ -150,7 +146,7 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) { ...@@ -150,7 +146,7 @@ IN_PROC_BROWSER_TEST_F(ManagementUITest, ManagementStateChange) {
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))}, base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))},
{"extensionReportingTitle", {"extensionReportingTitle",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)}, l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)},
{"pageTitle", l10n_util::GetStringUTF16(IDS_MANAGEMENT_TITLE)}, {"pageSubtitle", l10n_util::GetStringUTF16(IDS_MANAGEMENT_SUBTITLE)},
}; };
VerifyTexts(managed_value_ptr.get(), expected_managed_values); VerifyTexts(managed_value_ptr.get(), expected_managed_values);
......
...@@ -164,7 +164,7 @@ void GetDataManagementBrowserContextualSourceUpdate( ...@@ -164,7 +164,7 @@ void GetDataManagementBrowserContextualSourceUpdate(
if (management_domain.empty()) { if (management_domain.empty()) {
update->SetString( update->SetString(
"extensionsInstalled", "extensionReportingTitle",
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)); l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED));
update->SetString("managementNotice", update->SetString("managementNotice",
...@@ -172,13 +172,14 @@ void GetDataManagementBrowserContextualSourceUpdate( ...@@ -172,13 +172,14 @@ void GetDataManagementBrowserContextualSourceUpdate(
managed ? IDS_MANAGEMENT_BROWSER_NOTICE managed ? IDS_MANAGEMENT_BROWSER_NOTICE
: IDS_MANAGEMENT_NOT_MANAGED_NOTICE, : IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
update->SetString("title", l10n_util::GetStringUTF16( update->SetString("subtitle",
managed ? IDS_MANAGEMENT_TITLE l10n_util::GetStringUTF16(
: IDS_MANAGEMENT_NOT_MANAGED_TITLE)); managed ? IDS_MANAGEMENT_SUBTITLE
: IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
} else { } else {
update->SetString( update->SetString(
"extensionsInstalled", "extensionReportingTitle",
l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY, l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY,
base::UTF8ToUTF16(management_domain))); base::UTF8ToUTF16(management_domain)));
...@@ -192,11 +193,11 @@ void GetDataManagementBrowserContextualSourceUpdate( ...@@ -192,11 +193,11 @@ void GetDataManagementBrowserContextualSourceUpdate(
IDS_MANAGEMENT_NOT_MANAGED_NOTICE, IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
update->SetString( update->SetString(
"title", "subtitle",
managed managed
? l10n_util::GetStringFUTF16(IDS_MANAGEMENT_TITLE_BY, ? l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY,
base::UTF8ToUTF16(management_domain)) base::UTF8ToUTF16(management_domain))
: l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_TITLE)); : l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
} }
} }
#endif // !defined(OS_CHROMEOS) #endif // !defined(OS_CHROMEOS)
...@@ -648,9 +649,9 @@ void AddStatusOverviewNotManaged(base::Value* status) { ...@@ -648,9 +649,9 @@ void AddStatusOverviewNotManaged(base::Value* status) {
void ManagementUIHandler::GetManagementStatus(base::Value* status) { void ManagementUIHandler::GetManagementStatus(base::Value* status) {
auto* profile = Profile::FromWebUI(web_ui()); auto* profile = Profile::FromWebUI(web_ui());
const bool account_managed = IsProfileManaged(profile);
const std::string account_domain = GetAccountDomain(profile); const std::string account_domain = GetAccountDomain(profile);
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
const bool account_managed = IsProfileManaged(profile);
const bool profile_associated_with_gaia_account = const bool profile_associated_with_gaia_account =
chromeos::IsProfileAssociatedWithGaiaAccount(profile); chromeos::IsProfileAssociatedWithGaiaAccount(profile);
...@@ -698,7 +699,7 @@ void ManagementUIHandler::GetManagementStatus(base::Value* status) { ...@@ -698,7 +699,7 @@ void ManagementUIHandler::GetManagementStatus(base::Value* status) {
} }
#endif // defined(OS_CHROMEOS) #endif // defined(OS_CHROMEOS)
if (account_managed) { if (managed_) {
AddStatusOverviewManagedAccount(status, account_domain); AddStatusOverviewManagedAccount(status, account_domain);
return; return;
} }
......
...@@ -29,9 +29,9 @@ using testing::Return; ...@@ -29,9 +29,9 @@ using testing::Return;
using testing::ReturnRef; using testing::ReturnRef;
struct ContextualManagementSourceUpdate { struct ContextualManagementSourceUpdate {
base::string16* extensions_installed; base::string16* extension_reporting_title;
base::string16* browser_management_notice; base::string16* browser_management_notice;
base::string16* title; base::string16* subtitle;
}; };
class TestManagementUIHandler : public ManagementUIHandler { class TestManagementUIHandler : public ManagementUIHandler {
...@@ -88,9 +88,10 @@ class ManagementUIHandlerTests : public testing::Test { ...@@ -88,9 +88,10 @@ class ManagementUIHandlerTests : public testing::Test {
void ExtractContextualSourceUpdate( void ExtractContextualSourceUpdate(
base::DictionaryValue* data, base::DictionaryValue* data,
const ContextualManagementSourceUpdate& extracted) { const ContextualManagementSourceUpdate& extracted) {
data->GetString("extensionsInstalled", extracted.extensions_installed); data->GetString("extensionReportingTitle",
extracted.extension_reporting_title);
data->GetString("managementNotice", extracted.browser_management_notice); data->GetString("managementNotice", extracted.browser_management_notice);
data->GetString("title", extracted.title); data->GetString("subtitle", extracted.subtitle);
} }
protected: protected:
...@@ -105,48 +106,49 @@ TEST_F(ManagementUIHandlerTests, ...@@ -105,48 +106,49 @@ TEST_F(ManagementUIHandlerTests,
ManagementContextualSourceUpdateUnmanagedNoDomain) { ManagementContextualSourceUpdateUnmanagedNoDomain) {
auto profile = TestingProfile::Builder().Build(); auto profile = TestingProfile::Builder().Build();
base::string16 extensions_installed; base::string16 extension_reporting_title;
base::string16 browser_management_notice; base::string16 browser_management_notice;
base::string16 title; base::string16 subtitle;
ContextualManagementSourceUpdate extracted{ ContextualManagementSourceUpdate extracted{
&extensions_installed, &browser_management_notice, &title}; &extension_reporting_title, &browser_management_notice, &subtitle};
handler_.SetManagedForTesting(false); handler_.SetManagedForTesting(false);
auto data = handler_.GetDataSourceUpdate(profile.get()); auto data = handler_.GetDataSourceUpdate(profile.get());
ExtractContextualSourceUpdate(data.get(), extracted); ExtractContextualSourceUpdate(data.get(), extracted);
EXPECT_EQ(data->DictSize(), 3u); EXPECT_EQ(data->DictSize(), 3u);
EXPECT_EQ(extensions_installed, EXPECT_EQ(extension_reporting_title,
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)); l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED));
EXPECT_EQ(browser_management_notice, EXPECT_EQ(browser_management_notice,
l10n_util::GetStringFUTF16( l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_NOT_MANAGED_NOTICE, IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
EXPECT_EQ(title, l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_TITLE)); EXPECT_EQ(subtitle,
l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
} }
TEST_F(ManagementUIHandlerTests, TEST_F(ManagementUIHandlerTests,
ManagementContextualSourceUpdateManageNoDomain) { ManagementContextualSourceUpdateManageNoDomain) {
auto profile = TestingProfile::Builder().Build(); auto profile = TestingProfile::Builder().Build();
base::string16 extensions_installed; base::string16 extension_reporting_title;
base::string16 browser_management_notice; base::string16 browser_management_notice;
base::string16 title; base::string16 subtitle;
ContextualManagementSourceUpdate extracted{ ContextualManagementSourceUpdate extracted{
&extensions_installed, &browser_management_notice, &title}; &extension_reporting_title, &browser_management_notice, &subtitle};
handler_.SetManagedForTesting(true); handler_.SetManagedForTesting(true);
auto data = handler_.GetDataSourceUpdate(profile.get()); auto data = handler_.GetDataSourceUpdate(profile.get());
ExtractContextualSourceUpdate(data.get(), extracted); ExtractContextualSourceUpdate(data.get(), extracted);
EXPECT_EQ(data->DictSize(), 3u); EXPECT_EQ(data->DictSize(), 3u);
EXPECT_EQ(extensions_installed, EXPECT_EQ(extension_reporting_title,
l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED)); l10n_util::GetStringUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED));
EXPECT_EQ(browser_management_notice, EXPECT_EQ(browser_management_notice,
l10n_util::GetStringFUTF16( l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_BROWSER_NOTICE, IDS_MANAGEMENT_BROWSER_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
EXPECT_EQ(title, l10n_util::GetStringUTF16(IDS_MANAGEMENT_TITLE)); EXPECT_EQ(subtitle, l10n_util::GetStringUTF16(IDS_MANAGEMENT_SUBTITLE));
} }
TEST_F(ManagementUIHandlerTests, TEST_F(ManagementUIHandlerTests,
...@@ -157,9 +159,9 @@ TEST_F(ManagementUIHandlerTests, ...@@ -157,9 +159,9 @@ TEST_F(ManagementUIHandlerTests,
base::string16 extensions_installed; base::string16 extensions_installed;
base::string16 browser_management_notice; base::string16 browser_management_notice;
base::string16 title; base::string16 subtitle;
ContextualManagementSourceUpdate extracted{ ContextualManagementSourceUpdate extracted{
&extensions_installed, &browser_management_notice, &title}; &extensions_installed, &browser_management_notice, &subtitle};
handler_.SetManagedForTesting(true); handler_.SetManagedForTesting(true);
auto data = handler_.GetDataSourceUpdate(profile.get()); auto data = handler_.GetDataSourceUpdate(profile.get());
...@@ -172,7 +174,7 @@ TEST_F(ManagementUIHandlerTests, ...@@ -172,7 +174,7 @@ TEST_F(ManagementUIHandlerTests,
l10n_util::GetStringFUTF16( l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_BROWSER_NOTICE, IDS_MANAGEMENT_BROWSER_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
EXPECT_EQ(title, l10n_util::GetStringUTF16(IDS_MANAGEMENT_TITLE)); EXPECT_EQ(subtitle, l10n_util::GetStringUTF16(IDS_MANAGEMENT_SUBTITLE));
} }
TEST_F(ManagementUIHandlerTests, TEST_F(ManagementUIHandlerTests,
...@@ -181,11 +183,11 @@ TEST_F(ManagementUIHandlerTests, ...@@ -181,11 +183,11 @@ TEST_F(ManagementUIHandlerTests,
builder.SetProfileName("managed@manager.com"); builder.SetProfileName("managed@manager.com");
auto profile = builder.Build(); auto profile = builder.Build();
base::string16 extensions_installed; base::string16 extension_reporting_title;
base::string16 browser_management_notice; base::string16 browser_management_notice;
base::string16 title; base::string16 subtitle;
ContextualManagementSourceUpdate extracted{ ContextualManagementSourceUpdate extracted{
&extensions_installed, &browser_management_notice, &title}; &extension_reporting_title, &browser_management_notice, &subtitle};
handler_.SetManagedForTesting(false); handler_.SetManagedForTesting(false);
...@@ -193,14 +195,15 @@ TEST_F(ManagementUIHandlerTests, ...@@ -193,14 +195,15 @@ TEST_F(ManagementUIHandlerTests,
ExtractContextualSourceUpdate(data.get(), extracted); ExtractContextualSourceUpdate(data.get(), extracted);
EXPECT_EQ(data->DictSize(), 3u); EXPECT_EQ(data->DictSize(), 3u);
EXPECT_EQ(extensions_installed, EXPECT_EQ(extension_reporting_title,
l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY, l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY,
base::UTF8ToUTF16("manager.com"))); base::UTF8ToUTF16("manager.com")));
EXPECT_EQ(browser_management_notice, EXPECT_EQ(browser_management_notice,
l10n_util::GetStringFUTF16( l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_NOT_MANAGED_NOTICE, IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
EXPECT_EQ(title, l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_TITLE)); EXPECT_EQ(subtitle,
l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
} }
TEST_F(ManagementUIHandlerTests, TEST_F(ManagementUIHandlerTests,
...@@ -227,7 +230,8 @@ TEST_F(ManagementUIHandlerTests, ...@@ -227,7 +230,8 @@ TEST_F(ManagementUIHandlerTests,
l10n_util::GetStringFUTF16( l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_NOT_MANAGED_NOTICE, IDS_MANAGEMENT_NOT_MANAGED_NOTICE,
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
EXPECT_EQ(title, l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_TITLE)); EXPECT_EQ(title,
l10n_util::GetStringUTF16(IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE));
} }
TEST_F(ManagementUIHandlerTests, TEST_F(ManagementUIHandlerTests,
...@@ -236,18 +240,18 @@ TEST_F(ManagementUIHandlerTests, ...@@ -236,18 +240,18 @@ TEST_F(ManagementUIHandlerTests,
builder.SetProfileName("managed@manager.com"); builder.SetProfileName("managed@manager.com");
auto profile = builder.Build(); auto profile = builder.Build();
base::string16 extensions_installed; base::string16 extension_reporting_title;
base::string16 browser_management_notice; base::string16 browser_management_notice;
base::string16 title; base::string16 subtitle;
ContextualManagementSourceUpdate extracted{ ContextualManagementSourceUpdate extracted{
&extensions_installed, &browser_management_notice, &title}; &extension_reporting_title, &browser_management_notice, &subtitle};
handler_.SetManagedForTesting(true); handler_.SetManagedForTesting(true);
auto data = handler_.GetDataSourceUpdate(profile.get()); auto data = handler_.GetDataSourceUpdate(profile.get());
ExtractContextualSourceUpdate(data.get(), extracted); ExtractContextualSourceUpdate(data.get(), extracted);
EXPECT_EQ(data->DictSize(), 3u); EXPECT_EQ(data->DictSize(), 3u);
EXPECT_EQ(extensions_installed, EXPECT_EQ(extension_reporting_title,
l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY, l10n_util::GetStringFUTF16(IDS_MANAGEMENT_EXTENSIONS_INSTALLED_BY,
base::UTF8ToUTF16("manager.com"))); base::UTF8ToUTF16("manager.com")));
EXPECT_EQ( EXPECT_EQ(
...@@ -255,8 +259,8 @@ TEST_F(ManagementUIHandlerTests, ...@@ -255,8 +259,8 @@ TEST_F(ManagementUIHandlerTests,
l10n_util::GetStringFUTF16( l10n_util::GetStringFUTF16(
IDS_MANAGEMENT_MANAGEMENT_BY_NOTICE, base::UTF8ToUTF16("manager.com"), IDS_MANAGEMENT_MANAGEMENT_BY_NOTICE, base::UTF8ToUTF16("manager.com"),
base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl))); base::UTF8ToUTF16(chrome::kManagedUiLearnMoreUrl)));
EXPECT_EQ(title, EXPECT_EQ(subtitle,
l10n_util::GetStringFUTF16(IDS_MANAGEMENT_TITLE_BY, l10n_util::GetStringFUTF16(IDS_MANAGEMENT_SUBTITLE_MANAGED_BY,
base::UTF8ToUTF16("manager.com"))); base::UTF8ToUTF16("manager.com")));
} }
......
...@@ -12,25 +12,33 @@ ...@@ -12,25 +12,33 @@
<grit-part> <grit-part>
<!-- Title of the page --> <!-- Title of the page -->
<if expr="chromeos"> <message name="IDS_MANAGEMENT_TITLE" desc="Title of management page.">
<message name="IDS_MANAGEMENT_TITLE_MANAGED" desc="Title of chrome://management page, shows when device is managed by unknown organization"> Settings - Management
</message>
<message name="IDS_MANAGEMENT_TOOLBAR_TITLE" desc="Title of the toolbar in the management page.">
Settings
</message>
<!-- Subtitle of the page -->
<if expr="chromeos">
<message name="IDS_MANAGEMENT_SUBTITLE_MANAGED" desc="Title of chrome://management page, shows when device is managed by unknown organization">
Your <ph name="DEVICE_NAME">$1<ex>Chromebook</ex></ph> is managed Your <ph name="DEVICE_NAME">$1<ex>Chromebook</ex></ph> is managed
</message> </message>
<message name="IDS_MANAGEMENT_TITLE_BY" desc="Title of chrome://management page, shows when device managed by known organization"> <message name="IDS_MANAGEMENT_SUBTITLE_MANAGED_BY" desc="Title of chrome://management page, shows when device managed by known organization">
<ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> managed by <ph name="ENROLLMENT_DOMAIN">$2<ex>example.com</ex></ph> <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> managed by <ph name="ENROLLMENT_DOMAIN">$2<ex>example.com</ex></ph>
</message> </message>
<message name="IDS_MANAGEMENT_NOT_MANAGED_TITLE" desc="Message indicating that the device is not managed"> <message name="IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE" desc="Message indicating that the device is not managed">
Your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> is not managed Your <ph name="DEVICE_TYPE">$1<ex>Chromebook</ex></ph> is not managed
</message> </message>
</if> </if>
<if expr="not chromeos"> <if expr="not chromeos">
<message name="IDS_MANAGEMENT_TITLE" desc="Title of chrome://management page, which shows the administrator's capabilities in a managed environment"> <message name="IDS_MANAGEMENT_SUBTITLE" desc="Title of chrome://management page, which shows the administrator's capabilities in a managed environment">
Your browser is managed Your browser is managed
</message> </message>
<message name="IDS_MANAGEMENT_TITLE_BY" desc="Title of chrome://management page, which shows the administrator's capabilities in a managed environment"> <message name="IDS_MANAGEMENT_SUBTITLE_MANAGED_BY" desc="Title of chrome://management page, which shows the administrator's capabilities in a managed environment">
Your browser is managed by <ph name="ENROLLMENT_DOMAIN">$1<ex>example.com</ex></ph> Your browser is managed by <ph name="ENROLLMENT_DOMAIN">$1<ex>example.com</ex></ph>
</message> </message>
<message name="IDS_MANAGEMENT_NOT_MANAGED_TITLE" desc="Title of chrome://management page for a browser that is not managed"> <message name="IDS_MANAGEMENT_NOT_MANAGED_SUBTITLE" desc="Title of chrome://management page for a browser that is not managed">
Your browser is not managed Your browser is not managed
</message> </message>
</if> </if>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment