Commit 27d288e5 authored by Felipe Andrade's avatar Felipe Andrade Committed by Chromium LUCI CQ

Create Kerberos OS settings HTML/JS files

Add new HTML/JS files for the new Kerberos OS settings sections. Also,
update BUILD files to include the new section. This new section is still
behind the KerberosSettingsSection flag. The actual content for this
section will be added in the future, reusing code from the OS people
section.

Bug: 983041
Change-Id: I21d1a2ad7be93c284d017492ee487d9c574f9fad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2558400Reviewed-by: default avatarMaksim Ivanov <emaxx@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Felipe Andrade <fsandrade@chromium.org>
Cr-Commit-Position: refs/heads/master@{#834429}
parent 3e583180
...@@ -326,6 +326,7 @@ preprocess_if_expr("preprocess_gen_v3") { ...@@ -326,6 +326,7 @@ preprocess_if_expr("preprocess_gen_v3") {
"chromeos/internet_page/network_summary.m.js", "chromeos/internet_page/network_summary.m.js",
"chromeos/internet_page/network_summary_item.m.js", "chromeos/internet_page/network_summary_item.m.js",
"chromeos/internet_page/tether_connection_dialog.m.js", "chromeos/internet_page/tether_connection_dialog.m.js",
"chromeos/kerberos_page/kerberos_page.m.js",
"chromeos/localized_link/localized_link.m.js", "chromeos/localized_link/localized_link.m.js",
"chromeos/metrics_recorder.m.js", "chromeos/metrics_recorder.m.js",
"chromeos/multidevice_page/multidevice_browser_proxy.m.js", "chromeos/multidevice_page/multidevice_browser_proxy.m.js",
...@@ -620,6 +621,8 @@ preprocess_if_expr("preprocess_v2") { ...@@ -620,6 +621,8 @@ preprocess_if_expr("preprocess_v2") {
"chromeos/internet_page/network_summary_item.js", "chromeos/internet_page/network_summary_item.js",
"chromeos/internet_page/tether_connection_dialog.html", "chromeos/internet_page/tether_connection_dialog.html",
"chromeos/internet_page/tether_connection_dialog.js", "chromeos/internet_page/tether_connection_dialog.js",
"chromeos/kerberos_page/kerberos_page.html",
"chromeos/kerberos_page/kerberos_page.js",
"chromeos/lazy_load.html", "chromeos/lazy_load.html",
"chromeos/localized_link/localized_link.html", "chromeos/localized_link/localized_link.html",
"chromeos/localized_link/localized_link.js", "chromeos/localized_link/localized_link.js",
...@@ -1023,6 +1026,7 @@ group("closure_compile") { ...@@ -1023,6 +1026,7 @@ group("closure_compile") {
"device_page:closure_compile", "device_page:closure_compile",
"google_assistant_page:closure_compile", "google_assistant_page:closure_compile",
"internet_page:closure_compile", "internet_page:closure_compile",
"kerberos_page:closure_compile",
"localized_link:closure_compile", "localized_link:closure_compile",
"multidevice_page:closure_compile", "multidevice_page:closure_compile",
"nearby_share_page:closure_compile", "nearby_share_page:closure_compile",
...@@ -1126,6 +1130,7 @@ group("closure_compile_module") { ...@@ -1126,6 +1130,7 @@ group("closure_compile_module") {
#"device_page:closure_compile_module", #"device_page:closure_compile_module",
#"google_assistant_page:closure_compile_module", #"google_assistant_page:closure_compile_module",
"internet_page:closure_compile_module", "internet_page:closure_compile_module",
"kerberos_page:closure_compile_module",
"localized_link:closure_compile_module", "localized_link:closure_compile_module",
"multidevice_page:closure_compile_module", "multidevice_page:closure_compile_module",
"nearby_share_page:closure_compile_module", "nearby_share_page:closure_compile_module",
...@@ -1271,6 +1276,7 @@ group("polymer3_elements") { ...@@ -1271,6 +1276,7 @@ group("polymer3_elements") {
"device_page:polymer3_elements", "device_page:polymer3_elements",
"google_assistant_page:polymer3_elements", "google_assistant_page:polymer3_elements",
"internet_page:polymer3_elements", "internet_page:polymer3_elements",
"kerberos_page:polymer3_elements",
"localized_link:polymer3_elements", "localized_link:polymer3_elements",
"multidevice_page:polymer3_elements", "multidevice_page:polymer3_elements",
"nearby_share_page:polymer3_elements", "nearby_share_page:polymer3_elements",
......
# Copyright 2020 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.
import("//third_party/closure_compiler/compile_js.gni")
import("//tools/polymer/polymer.gni")
import("../os_settings.gni")
js_type_check("closure_compile") {
deps = [ ":kerberos_page" ]
}
js_library("kerberos_page") {
deps = [
"..:os_route",
"../..:router",
"../../settings_page:settings_animated_pages",
"//ui/webui/resources/js:assert",
"//ui/webui/resources/js:i18n_behavior",
"//ui/webui/resources/js:web_ui_listener_behavior",
]
}
js_type_check("closure_compile_module") {
is_polymer3 = true
deps = [ ":kerberos_page.m" ]
}
js_library("kerberos_page.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/kerberos_page/kerberos_page.m.js" ]
deps = [
"..:os_route.m",
"../..:router.m",
"../../settings_page:settings_animated_pages.m",
"//ui/webui/resources/js:assert.m",
"//ui/webui/resources/js:i18n_behavior.m",
"//ui/webui/resources/js:web_ui_listener_behavior.m",
]
extra_deps = [ ":kerberos_page_module" ]
}
group("polymer3_elements") {
public_deps = [ ":kerberos_page_module" ]
}
polymer_modulizer("kerberos_page") {
js_file = "kerberos_page.js"
html_file = "kerberos_page.html"
html_type = "dom-module"
migrated_imports = os_settings_migrated_imports
namespace_rewrites = os_settings_namespace_rewrites
auto_imports = os_settings_auto_imports
}
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html">
<link rel="import" href="chrome://resources/cr_elements/policy/cr_policy_indicator.html">
<link rel="import" href="chrome://resources/cr_elements/shared_vars_css.html">
<link rel="import" href="chrome://resources/html/assert.html">
<link rel="import" href="chrome://resources/html/i18n_behavior.html">
<link rel="import" href="chrome://resources/html/util.html">
<link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html">
<link rel="import" href="chrome://resources/polymer/v1_0/iron-flex-layout/iron-flex-layout-classes.html">
<link rel="import" href="../os_route.html">
<link rel="import" href="../../router.html">
<link rel="import" href="../../settings_page/settings_animated_pages.html">
<link rel="import" href="../../settings_page/settings_subpage.html">
<link rel="import" href="../../settings_shared_css.html">
<dom-module id="settings-kerberos-page">
<template>
<style include="settings-shared iron-flex"></style>
<settings-animated-pages id="pages" section="kerberos"
focus-config="[[focusConfig_]]">
<div route-path="default">
<cr-link-row id="kerberos-accounts-v2-subpage-trigger" class="hr"
on-click="onKerberosAccountsV2Tap_"
label="$i18n{kerberosAccountsSubMenuLabel}"
role-description="$i18n{subpageArrowRoleDescription}">
<cr-policy-indicator indicator-type="userPolicy">
</cr-policy-indicator>
</cr-link-row>
</div>
<template is="dom-if" route-path="/kerberos/kerberosAccounts">
<settings-subpage
associated-control="[[$$('#kerberos-accounts-v2-subpage-trigger')]]"
page-title="$i18n{kerberosAccountsPageTitle}">
<!-- TODO(fsandrade): add kerberos accounts v2 subpage impl. -->
</settings-subpage>
</template>
</settings-animated-pages>
</template>
<script src="kerberos_page.js"></script>
</dom-module>
// Copyright 2020 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.
/**
* @fileoverview
* 'settings-kerberos-page' is the settings page containing Kerberos Tickets
* settings.
*/
Polymer({
is: 'settings-kerberos-page',
behaviors: [
I18nBehavior,
WebUIListenerBehavior,
],
properties: {
/** @private {!Map<string, string>} */
focusConfig_: {
type: Object,
value() {
const map = new Map();
if (settings.routes.KERBEROS_ACCOUNTS_V2) {
map.set(
settings.routes.KERBEROS_ACCOUNTS_V2.path,
'#kerberos-accounts-v2-subpage-trigger');
}
return map;
},
},
},
/** @private */
onKerberosAccountsV2Tap_() {
settings.Router.getInstance().navigateTo(
settings.routes.KERBEROS_ACCOUNTS_V2);
},
});
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
* device: (boolean|undefined), * device: (boolean|undefined),
* downloads: (DownloadsPageVisibility|undefined), * downloads: (DownloadsPageVisibility|undefined),
* internet: (boolean|undefined), * internet: (boolean|undefined),
* kerberos: (boolean|undefined),
* languages: (LanguagesPageVisibility|undefined), * languages: (LanguagesPageVisibility|undefined),
* multidevice: (boolean|undefined), * multidevice: (boolean|undefined),
* onStartup: (boolean|undefined), * onStartup: (boolean|undefined),
...@@ -86,6 +87,9 @@ cr.define('settings', function() { ...@@ -86,6 +87,9 @@ cr.define('settings', function() {
loadTimeData.getBoolean('isAccountManagerEnabled'); loadTimeData.getBoolean('isAccountManagerEnabled');
const isKerberosEnabled = loadTimeData.valueExists('isKerberosEnabled') && const isKerberosEnabled = loadTimeData.valueExists('isKerberosEnabled') &&
loadTimeData.getBoolean('isKerberosEnabled'); loadTimeData.getBoolean('isKerberosEnabled');
const isKerberosSettingsSectionEnabled =
loadTimeData.valueExists('isKerberosSettingsSectionEnabled') &&
loadTimeData.getBoolean('isKerberosSettingsSectionEnabled');
if (loadTimeData.getBoolean('isGuest')) { if (loadTimeData.getBoolean('isGuest')) {
osPageVisibility = { osPageVisibility = {
...@@ -94,6 +98,7 @@ cr.define('settings', function() { ...@@ -94,6 +98,7 @@ cr.define('settings', function() {
multidevice: false, multidevice: false,
autofill: false, autofill: false,
people: false, people: false,
kerberos: isKerberosEnabled && isKerberosSettingsSectionEnabled,
onStartup: false, onStartup: false,
reset: false, reset: false,
appearance: { appearance: {
...@@ -136,6 +141,7 @@ cr.define('settings', function() { ...@@ -136,6 +141,7 @@ cr.define('settings', function() {
googleAccounts: isAccountManagerEnabled, googleAccounts: isAccountManagerEnabled,
manageUsers: true, manageUsers: true,
}, },
kerberos: isKerberosEnabled && isKerberosSettingsSectionEnabled,
onStartup: true, onStartup: true,
reset: true, reset: true,
appearance: { appearance: {
......
...@@ -119,6 +119,21 @@ cr.define('settings', function() { ...@@ -119,6 +119,21 @@ cr.define('settings', function() {
Subpage.kKerberosAccounts); Subpage.kKerberosAccounts);
} }
const isKerberosEnabled = loadTimeData.valueExists('isKerberosEnabled') &&
loadTimeData.getBoolean('isKerberosEnabled');
const isKerberosSettingsSectionEnabled =
loadTimeData.valueExists('isKerberosSettingsSectionEnabled') &&
loadTimeData.getBoolean('isKerberosSettingsSectionEnabled');
// Kerberos section.
if (isKerberosEnabled && isKerberosSettingsSectionEnabled) {
r.KERBEROS = createSection(
r.BASIC, mojom.KERBEROS_SECTION_PATH, Section.kKerberos);
r.KERBEROS_ACCOUNTS_V2 = createSubpage(
r.KERBEROS, mojom.KERBEROS_ACCOUNTS_V2_SUBPAGE_PATH,
Subpage.kKerberosAccountsV2);
}
// Device section. // Device section.
r.DEVICE = r.DEVICE =
createSection(r.BASIC, mojom.DEVICE_SECTION_PATH, Section.kDevice); createSection(r.BASIC, mojom.DEVICE_SECTION_PATH, Section.kDevice);
......
...@@ -19,6 +19,7 @@ import './internet_page/network_proxy_section.m.js'; ...@@ -19,6 +19,7 @@ import './internet_page/network_proxy_section.m.js';
import './internet_page/network_summary.m.js'; import './internet_page/network_summary.m.js';
import './internet_page/network_summary_item.m.js'; import './internet_page/network_summary_item.m.js';
import './internet_page/tether_connection_dialog.m.js'; import './internet_page/tether_connection_dialog.m.js';
import './kerberos_page/kerberos_page.m.js';
import './nearby_share_page/nearby_share_receive_dialog.m.js'; import './nearby_share_page/nearby_share_receive_dialog.m.js';
import './nearby_share_page/nearby_share_subpage.m.js'; import './nearby_share_page/nearby_share_subpage.m.js';
import './multidevice_page/multidevice_page.m.js'; import './multidevice_page/multidevice_page.m.js';
......
...@@ -76,7 +76,8 @@ ...@@ -76,7 +76,8 @@
on-subpage-expand="onShowingSubpage_" on-subpage-expand="onShowingSubpage_"
on-showing-main-page="onShowingMainPage_" on-showing-main-page="onShowingMainPage_"
in-search-mode="[[inSearchMode_]]" in-search-mode="[[inSearchMode_]]"
advanced-toggle-expanded="{{advancedToggleExpanded}}"> advanced-toggle-expanded="{{advancedToggleExpanded}}"
show-kerberos-section="[[showKerberosSection]]">
</os-settings-page> </os-settings-page>
</template> </template>
<template is="dom-if" if="[[showPages_.about]]"> <template is="dom-if" if="[[showPages_.about]]">
......
...@@ -87,6 +87,8 @@ Polymer({ ...@@ -87,6 +87,8 @@ Polymer({
showStartup: Boolean, showStartup: Boolean,
showKerberosSection: Boolean,
havePlayStoreApp: Boolean, havePlayStoreApp: Boolean,
}, },
......
...@@ -176,6 +176,11 @@ ...@@ -176,6 +176,11 @@
<iron-icon icon="cr:person"></iron-icon> <iron-icon icon="cr:person"></iron-icon>
$i18n{osPeoplePageTitle} $i18n{osPeoplePageTitle}
</a> </a>
<a id="kerberos" href="/kerberos" class="item"
hidden="[[!showKerberosSection]]">
<iron-icon icon="os-settings:auth-key"></iron-icon>
$i18n{kerberosPageTitle}
</a>
<a href="/device" class="item"> <a href="/device" class="item">
<iron-icon icon="os-settings:laptop-chromebook"></iron-icon> <iron-icon icon="os-settings:laptop-chromebook"></iron-icon>
$i18n{devicePageTitle} $i18n{devicePageTitle}
......
...@@ -34,6 +34,7 @@ Polymer({ ...@@ -34,6 +34,7 @@ Polymer({
showReset: Boolean, showReset: Boolean,
showKerberosSection: Boolean,
}, },
/** @param {!settings.Route} newRoute */ /** @param {!settings.Route} newRoute */
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<link rel="import" href="../../router.html"> <link rel="import" href="../../router.html">
<link rel="import" href="../device_page/device_page.html"> <link rel="import" href="../device_page/device_page.html">
<link rel="import" href="../internet_page/internet_page.html"> <link rel="import" href="../internet_page/internet_page.html">
<link rel="import" href="../kerberos_page/kerberos_page.html">
<link rel="import" href="../multidevice_page/multidevice_page.html"> <link rel="import" href="../multidevice_page/multidevice_page.html">
<link rel="import" href="../on_startup_page/on_startup_page.html"> <link rel="import" href="../on_startup_page/on_startup_page.html">
...@@ -161,6 +162,12 @@ ...@@ -161,6 +162,12 @@
</os-settings-people-page> </os-settings-people-page>
</settings-section> </settings-section>
</template> </template>
<template is="dom-if" if="[[showKerberosSection]]" restamp>
<settings-section page-title="$i18n{kerberosPageTitle}"
section="kerberos">
<settings-kerberos-page></settings-kerberos-page>
</settings-section>
</template>
<settings-section page-title="$i18n{devicePageTitle}" <settings-section page-title="$i18n{devicePageTitle}"
section="device"> section="device">
<settings-device-page prefs="{{prefs}}" <settings-device-page prefs="{{prefs}}"
......
...@@ -35,6 +35,8 @@ Polymer({ ...@@ -35,6 +35,8 @@ Polymer({
showStartup: Boolean, showStartup: Boolean,
showKerberosSection: Boolean,
allowCrostini_: Boolean, allowCrostini_: Boolean,
havePlayStoreApp: Boolean, havePlayStoreApp: Boolean,
......
...@@ -44,7 +44,9 @@ ...@@ -44,7 +44,9 @@
* GOOGLE_ASSISTANT: !settings.Route, * GOOGLE_ASSISTANT: !settings.Route,
* INTERNET: !settings.Route, * INTERNET: !settings.Route,
* INTERNET_NETWORKS: !settings.Route, * INTERNET_NETWORKS: !settings.Route,
* KERBEROS: !settings.Route,
* KERBEROS_ACCOUNTS: !settings.Route, * KERBEROS_ACCOUNTS: !settings.Route,
* KERBEROS_ACCOUNTS_V2: !settings.Route,
* KEYBOARD: !settings.Route, * KEYBOARD: !settings.Route,
* KNOWN_NETWORKS: !settings.Route, * KNOWN_NETWORKS: !settings.Route,
* LOCK_SCREEN: !settings.Route, * LOCK_SCREEN: !settings.Route,
......
...@@ -137,7 +137,8 @@ ...@@ -137,7 +137,8 @@
show-startup="[[showStartup_]]" show-startup="[[showStartup_]]"
have-play-store-app="[[havePlayStoreApp_]]" have-play-store-app="[[havePlayStoreApp_]]"
on-iron-activate="onIronActivate_" on-iron-activate="onIronActivate_"
advanced-opened="{{advancedOpenedInMenu_}}"> advanced-opened="{{advancedOpenedInMenu_}}"
show-kerberos-section="[[showKerberosSection_]]">
</os-settings-menu> </os-settings-menu>
</template> </template>
</div> </div>
...@@ -152,7 +153,8 @@ ...@@ -152,7 +153,8 @@
show-startup="[[showStartup_]]" show-startup="[[showStartup_]]"
have-play-store-app="[[havePlayStoreApp_]]" have-play-store-app="[[havePlayStoreApp_]]"
on-iron-activate="onIronActivate_" on-iron-activate="onIronActivate_"
advanced-opened="{{advancedOpenedInMenu_}}"> advanced-opened="{{advancedOpenedInMenu_}}"
show-kerberos-section="[[showKerberosSection_]]">
</os-settings-menu> </os-settings-menu>
</template> </template>
</div> </div>
...@@ -165,7 +167,8 @@ ...@@ -165,7 +167,8 @@
show-reset="[[showReset_]]" show-reset="[[showReset_]]"
show-startup="[[showStartup_]]" show-startup="[[showStartup_]]"
have-play-store-app="[[havePlayStoreApp_]]" have-play-store-app="[[havePlayStoreApp_]]"
advanced-toggle-expanded="{{advancedOpenedInMain_}}"> advanced-toggle-expanded="{{advancedOpenedInMain_}}"
show-kerberos-section="[[showKerberosSection_]]">
</os-settings-main> </os-settings-main>
<!-- An additional child of the flex #container to take up space, <!-- An additional child of the flex #container to take up space,
aligned with the right-hand child of the flex toolbar. --> aligned with the right-hand child of the flex toolbar. -->
......
...@@ -99,6 +99,9 @@ cr.define('settings', function() { ...@@ -99,6 +99,9 @@ cr.define('settings', function() {
/** @private */ /** @private */
showStartup_: Boolean, showStartup_: Boolean,
/** @private */
showKerberosSection_: Boolean,
/** @private */ /** @private */
lastSearchQuery_: { lastSearchQuery_: {
type: String, type: String,
...@@ -178,6 +181,12 @@ cr.define('settings', function() { ...@@ -178,6 +181,12 @@ cr.define('settings', function() {
this.showReset_ = loadTimeData.getBoolean('allowPowerwash'); this.showReset_ = loadTimeData.getBoolean('allowPowerwash');
this.showStartup_ = loadTimeData.getBoolean('showStartup'); this.showStartup_ = loadTimeData.getBoolean('showStartup');
this.showKerberosSection_ =
loadTimeData.valueExists('isKerberosEnabled') &&
loadTimeData.getBoolean('isKerberosEnabled') &&
loadTimeData.valueExists('isKerberosSettingsSectionEnabled') &&
loadTimeData.getBoolean('isKerberosSettingsSectionEnabled');
this.addEventListener('show-container', () => { this.addEventListener('show-container', () => {
this.$.container.style.visibility = 'visible'; this.$.container.style.visibility = 'visible';
}); });
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
#include "chrome/grit/generated_resources.h" #include "chrome/grit/generated_resources.h"
#include "chromeos/constants/chromeos_features.h"
#include "components/prefs/pref_service.h" #include "components/prefs/pref_service.h"
#include "content/public/browser/web_ui_data_source.h" #include "content/public/browser/web_ui_data_source.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
...@@ -50,6 +51,18 @@ void AddKerberosTitleStrings(content::WebUIDataSource* html_source) { ...@@ -50,6 +51,18 @@ void AddKerberosTitleStrings(content::WebUIDataSource* html_source) {
AddLocalizedStringsBulk(html_source, kLocalizedStrings); AddLocalizedStringsBulk(html_source, kLocalizedStrings);
} }
// Adds flags related to Kerberos settings visibility and its corresponding
// settings section.
void AddKerberosSettingsVisibilityFlags(
content::WebUIDataSource* html_source,
KerberosCredentialsManager* kerberos_credentials_manager) {
html_source->AddBoolean("isKerberosEnabled",
IsKerberosEnabled(kerberos_credentials_manager));
html_source->AddBoolean(
"isKerberosSettingsSectionEnabled",
chromeos::features::IsKerberosSettingsSectionEnabled());
}
// Adds load time strings to Kerberos Add Accounts dialog. // Adds load time strings to Kerberos Add Accounts dialog.
void AddKerberosAddAccountDialogStrings(content::WebUIDataSource* html_source) { void AddKerberosAddAccountDialogStrings(content::WebUIDataSource* html_source) {
static constexpr webui::LocalizedString kLocalizedStrings[] = { static constexpr webui::LocalizedString kLocalizedStrings[] = {
...@@ -118,9 +131,7 @@ void AddKerberosAddAccountDialogStrings(content::WebUIDataSource* html_source) { ...@@ -118,9 +131,7 @@ void AddKerberosAddAccountDialogStrings(content::WebUIDataSource* html_source) {
} }
// Adds load time strings to Kerberos Accounts page. // Adds load time strings to Kerberos Accounts page.
void AddKerberosAccountsPageStrings( void AddKerberosAccountsPageStrings(content::WebUIDataSource* html_source) {
content::WebUIDataSource* html_source,
KerberosCredentialsManager* kerberos_credentials_manager) {
static constexpr webui::LocalizedString kLocalizedStrings[] = { static constexpr webui::LocalizedString kLocalizedStrings[] = {
{"kerberosAccountsAddAccountLabel", {"kerberosAccountsAddAccountLabel",
IDS_SETTINGS_KERBEROS_ACCOUNTS_ADD_ACCOUNT_LABEL}, IDS_SETTINGS_KERBEROS_ACCOUNTS_ADD_ACCOUNT_LABEL},
...@@ -145,11 +156,6 @@ void AddKerberosAccountsPageStrings( ...@@ -145,11 +156,6 @@ void AddKerberosAccountsPageStrings(
}; };
AddLocalizedStringsBulk(html_source, kLocalizedStrings); AddLocalizedStringsBulk(html_source, kLocalizedStrings);
// Toggles the Chrome OS Kerberos Accounts submenu in the People section.
// Note that the handler is also dependent on this pref.
html_source->AddBoolean("isKerberosEnabled",
IsKerberosEnabled(kerberos_credentials_manager));
PrefService* local_state = g_browser_process->local_state(); PrefService* local_state = g_browser_process->local_state();
// Whether new Kerberos accounts may be added. // Whether new Kerberos accounts may be added.
...@@ -182,8 +188,9 @@ KerberosAccountsHandler::CreateIfKerberosEnabled(Profile* profile) { ...@@ -182,8 +188,9 @@ KerberosAccountsHandler::CreateIfKerberosEnabled(Profile* profile) {
void KerberosAccountsHandler::AddLoadTimeKerberosStrings( void KerberosAccountsHandler::AddLoadTimeKerberosStrings(
content::WebUIDataSource* html_source, content::WebUIDataSource* html_source,
KerberosCredentialsManager* kerberos_credentials_manager) { KerberosCredentialsManager* kerberos_credentials_manager) {
AddKerberosSettingsVisibilityFlags(html_source, kerberos_credentials_manager);
AddKerberosTitleStrings(html_source); AddKerberosTitleStrings(html_source);
AddKerberosAccountsPageStrings(html_source, kerberos_credentials_manager); AddKerberosAccountsPageStrings(html_source);
AddKerberosAddAccountDialogStrings(html_source); AddKerberosAddAccountDialogStrings(html_source);
} }
......
...@@ -53,8 +53,8 @@ KerberosSection::~KerberosSection() { ...@@ -53,8 +53,8 @@ KerberosSection::~KerberosSection() {
} }
void KerberosSection::AddLoadTimeData(content::WebUIDataSource* html_source) { void KerberosSection::AddLoadTimeData(content::WebUIDataSource* html_source) {
// TODO(fsandrade): add Kerberos section title to corresponding UI element, html_source->AddLocalizedString("kerberosPageTitle",
// when it's created. IDS_OS_SETTINGS_KERBEROS);
KerberosAccountsHandler::AddLoadTimeKerberosStrings( KerberosAccountsHandler::AddLoadTimeKerberosStrings(
html_source, kerberos_credentials_manager_); html_source, kerberos_credentials_manager_);
......
...@@ -329,6 +329,7 @@ if (include_js_tests) { ...@@ -329,6 +329,7 @@ if (include_js_tests) {
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_known_networks_page_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_known_networks_page_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_subpage_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_subpage_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_page_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/internet_page_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/kerberos_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/localized_link_test.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/localized_link_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_item_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.m.js", "$root_gen_dir/chrome/test/data/webui/settings/chromeos/multidevice_feature_toggle_tests.m.js",
......
...@@ -57,6 +57,7 @@ js_modulizer("modulize") { ...@@ -57,6 +57,7 @@ js_modulizer("modulize") {
"internet_known_networks_page_tests.js", "internet_known_networks_page_tests.js",
"internet_page_tests.js", "internet_page_tests.js",
"internet_subpage_tests.js", "internet_subpage_tests.js",
"kerberos_page_test.js",
"localized_link_test.js", "localized_link_test.js",
"multidevice_feature_item_tests.js", "multidevice_feature_item_tests.js",
"multidevice_feature_toggle_tests.js", "multidevice_feature_toggle_tests.js",
......
// Copyright 2020 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.
// clang-format off
// #import 'chrome://os-settings/chromeos/os_settings.js';
// #import {Router, Route, routes} from 'chrome://os-settings/chromeos/os_settings.js';
// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
// #import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
// clang-format on
cr.define('settings_kerberos_page', function() {
suite('KerberosPageTests', function() {
/** @type {SettingsKerberosPageElement} */
let kerberosPage = null;
setup(function() {
settings.routes.KERBEROS = settings.routes.BASIC.createSection(
'/' + chromeos.settings.mojom.KERBEROS_SECTION_PATH,
chromeos.settings.mojom.KERBEROS_SECTION_PATH);
settings.routes.KERBEROS_ACCOUNTS_V2 =
settings.routes.KERBEROS.createChild(
'/' + chromeos.settings.mojom.KERBEROS_ACCOUNTS_V2_SUBPAGE_PATH);
settings.Router.resetInstanceForTesting(
new settings.Router(settings.routes));
PolymerTest.clearBody();
});
teardown(function() {
kerberosPage.remove();
settings.Router.getInstance().resetRouteForTesting();
});
test('Kerberos Section contains a link to Kerberos Accounts', () => {
kerberosPage = document.createElement('settings-kerberos-page');
document.body.appendChild(kerberosPage);
Polymer.dom.flush();
// Sub-page trigger is shown.
const subpageTrigger = kerberosPage.shadowRoot.querySelector(
'#kerberos-accounts-v2-subpage-trigger');
assertFalse(subpageTrigger.hidden);
// Sub-page trigger navigates to Kerberos Accounts V2.
subpageTrigger.click();
assertEquals(
settings.Router.getInstance().getCurrentRoute(),
settings.routes.KERBEROS_ACCOUNTS_V2);
});
});
// #cr_define_end
return {};
});
...@@ -1088,11 +1088,29 @@ var OSSettingsCellularSetupDialogTest = ...@@ -1088,11 +1088,29 @@ var OSSettingsCellularSetupDialogTest =
} }
}; };
TEST_F( TEST_F('OSSettingsCellularSetupDialogTest', 'CellularSetupDialog', () => {
'OSSettingsCellularSetupDialogTest', 'CellularSetupDialog', mocha.run();
() => { });
mocha.run();
}); // Tests for the Kerberos section.
// eslint-disable-next-line no-var
var OSSettingsKerberosPageTest = class extends OSSettingsBrowserTest {
/** @override */
get browsePreload() {
return super.browsePreload + 'chromeos/kerberos_page/kerberos_page.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat([
'kerberos_page_test.js',
]);
}
};
TEST_F('OSSettingsKerberosPageTest', 'AllJsTests', () => {
mocha.run();
});
// Test fixture for the main settings page. // Test fixture for the main settings page.
// eslint-disable-next-line no-var // eslint-disable-next-line no-var
......
...@@ -18,6 +18,9 @@ suite('OSSettingsPage', function() { ...@@ -18,6 +18,9 @@ suite('OSSettingsPage', function() {
settingsPage = settingsMain.$$('os-settings-page'); settingsPage = settingsMain.$$('os-settings-page');
assertTrue(!!settingsPage); assertTrue(!!settingsPage);
// Simulate Kerberos settings section enabled.
settingsPage.showKerberosSection = true;
const idleRender = const idleRender =
settingsMain.$$('os-settings-page').$$('settings-idle-load'); settingsMain.$$('os-settings-page').$$('settings-idle-load');
assert(!!idleRender); assert(!!idleRender);
...@@ -66,7 +69,7 @@ suite('OSSettingsPage', function() { ...@@ -66,7 +69,7 @@ suite('OSSettingsPage', function() {
test('Basic sections', function() { test('Basic sections', function() {
const sectionNames = [ const sectionNames = [
'internet', 'bluetooth', 'multidevice', 'osPeople', 'device', 'internet', 'bluetooth', 'multidevice', 'osPeople', 'kerberos', 'device',
'personalization', 'osSearch', 'apps' 'personalization', 'osSearch', 'apps'
]; ];
...@@ -114,8 +117,9 @@ suite('OSSettingsPage', function() { ...@@ -114,8 +117,9 @@ suite('OSSettingsPage', function() {
} }
const visibleSections = [ const visibleSections = [
'internet', 'bluetooth', 'device', 'osSearch', 'apps', 'osPrivacy', 'internet', 'bluetooth', 'kerberos', 'device', 'osSearch', 'apps',
'osLanguages', 'files', 'osReset', 'dateTime', 'osAccessibility' 'osPrivacy', 'osLanguages', 'files', 'osReset', 'dateTime',
'osAccessibility'
]; ];
for (const name of visibleSections) { for (const name of visibleSections) {
const section = settingsPage.shadowRoot.querySelector( const section = settingsPage.shadowRoot.querySelector(
......
...@@ -146,6 +146,7 @@ TEST_F( ...@@ -146,6 +146,7 @@ TEST_F(
['InternetKnownNetworksPage', 'internet_known_networks_page_tests.m.js'], ['InternetKnownNetworksPage', 'internet_known_networks_page_tests.m.js'],
['InternetSubpage', 'internet_subpage_tests.m.js'], ['InternetSubpage', 'internet_subpage_tests.m.js'],
['InternetPage', 'internet_page_tests.m.js'], ['InternetPage', 'internet_page_tests.m.js'],
['KerberosPage', 'kerberos_page_test.m.js'],
['LocalizedLink', 'localized_link_test.m.js'], ['LocalizedLink', 'localized_link_test.m.js'],
['MultideviceFeatureItem', 'multidevice_feature_item_tests.m.js'], ['MultideviceFeatureItem', 'multidevice_feature_item_tests.m.js'],
['MultideviceFeatureToggle', 'multidevice_feature_toggle_tests.m.js'], ['MultideviceFeatureToggle', 'multidevice_feature_toggle_tests.m.js'],
......
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