Commit c650e9ea authored by James Hawkins's avatar James Hawkins Committed by Commit Bot

OS Settings: Convert Privacy page from Polymer2 to Polymer3.

R=khorimoto@chromium.org

Bug: 1045266
Test: none
Change-Id: Ib7e881a73fbdb9ef73e1c94384e1c10cc56511ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2334099
Commit-Queue: James Hawkins <jhawkins@chromium.org>
Reviewed-by: default avatarKyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#794356}
parent 665e08a2
......@@ -267,9 +267,9 @@ group("closure_compile_module") {
#"os_files_page:closure_compile_module",
"os_languages_page:closure_compile_module",
"os_people_page:closure_compile_module",
#"os_printing_page:closure_compile_module",
#"os_privacy_page:closure_compile_module",
"os_privacy_page:closure_compile_module",
"os_reset_page:closure_compile_module",
#"os_search_page:closure_compile_module",
......
......@@ -3,6 +3,7 @@
# found in the LICENSE file.
import("//third_party/closure_compiler/compile_js.gni")
import("../os_settings.gni")
js_type_check("closure_compile") {
deps = [ ":os_privacy_page" ]
......@@ -15,18 +16,16 @@ js_library("os_privacy_page") {
]
}
# TODO: Uncomment as the Polymer3 migration makes progress.
#js_type_check("closure_compile_module") {
# is_polymer3 = true
# deps = [
# ":os_privacy_page.m"
# ]
#}
js_type_check("closure_compile_module") {
is_polymer3 = true
deps = [ ":os_privacy_page.m" ]
}
js_library("os_privacy_page.m") {
sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_privacy_page/os_privacy_page.m.js" ]
deps = [
# TODO: Fill those in.
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
"//ui/webui/resources/js:load_time_data.m",
]
extra_deps = [ ":os_privacy_page_module" ]
}
......@@ -41,4 +40,6 @@ polymer_modulizer("os_privacy_page") {
js_file = "os_privacy_page.js"
html_file = "os_privacy_page.html"
html_type = "dom-module"
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/html/load_time_data.html">
<link rel="import" href="../../controls/settings_toggle_button.html">
<link rel="import" href="../../settings_shared_css.html">
......@@ -15,6 +16,7 @@
</if>
<template is="dom-if" if="[[showSuggestedContentToggle_]]">
<settings-toggle-button
id="suggested-content"
class="hr"
pref="{{prefs.settings.suggested_content_enabled}}"
label="$i18n{enableSuggestedContent}"
......
......@@ -7,8 +7,6 @@
* 'os-settings-privacy-page' is the settings page containing privacy and
* security settings.
*/
(function() {
'use strict';
Polymer({
is: 'os-settings-privacy-page',
......@@ -35,4 +33,3 @@ Polymer({
},
});
})();
......@@ -18,22 +18,23 @@ import './os_people_page/account_manager.m.js';
import './os_people_page/kerberos_accounts.m.js';
import './parental_controls_page/parental_controls_page.m.js';
import './os_people_page/os_people_page.m.js';
import './os_privacy_page/os_privacy_page.m.js';
export {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../lifetime_browser_proxy.m.js';
export {dataUsageStringToEnum, NearbyShareDataUsage} from '../nearby_share_page/types.m.js';
export {pageVisibility} from '../page_visibility.js';
export {AccountManagerBrowserProxy, AccountManagerBrowserProxyImpl} from '../people_page/account_manager_browser_proxy.m.js';
export {ParentalControlsBrowserProxyImpl, ParentalControlsBrowserProxy} from './parental_controls_page/parental_controls_browser_proxy.m.js';
export {ProfileInfoBrowserProxy, ProfileInfoBrowserProxyImpl} from '../people_page/profile_info_browser_proxy.m.js';
export {PageStatus, StoredAccount, SyncBrowserProxy, SyncBrowserProxyImpl, SyncStatus} from '../people_page/sync_browser_proxy.m.js';
export {CrSettingsPrefs} from '../prefs/prefs_types.m.js';
export {Route, Router} from '../router.m.js';
export {AmbientModeBrowserProxyImpl} from './ambient_mode_page/ambient_mode_browser_proxy.m.js';
export {bluetoothApis} from './bluetooth_page/bluetooth_page.m.js';
export {pageVisibility} from '../page_visibility.js';
export {MultiDeviceBrowserProxy, MultiDeviceBrowserProxyImpl} from './multidevice_page/multidevice_browser_proxy.m.js';
export {MultiDeviceFeature, MultiDeviceFeatureState, MultiDevicePageContentData, MultiDeviceSettingsMode, SmartLockSignInEnabledState} from './multidevice_page/multidevice_constants.m.js';
export {KerberosAccountsBrowserProxyImpl, KerberosConfigErrorCode, KerberosErrorType} from './os_people_page/kerberos_accounts_browser_proxy.m.js';
export {OsResetBrowserProxyImpl} from './os_reset_page/os_reset_browser_proxy.m.js';
export {SyncBrowserProxy, SyncBrowserProxyImpl, PageStatus, StoredAccount, SyncStatus} from '../people_page/sync_browser_proxy.m.js';
export {ProfileInfoBrowserProxyImpl, ProfileInfoBrowserProxy} from '../people_page/profile_info_browser_proxy.m.js';
export {routes} from './os_route.m.js';
export {ParentalControlsBrowserProxy, ParentalControlsBrowserProxyImpl} from './parental_controls_page/parental_controls_browser_proxy.m.js';
export {ChangePictureBrowserProxy, ChangePictureBrowserProxyImpl} from './personalization_page/change_picture_browser_proxy.m.js';
export {WallpaperBrowserProxyImpl} from './personalization_page/wallpaper_browser_proxy.m.js';
......@@ -10,6 +10,7 @@
<link rel="import" href="../os_apps_page/android_apps_browser_proxy.html">
<link rel="import" href="../os_apps_page/os_apps_page.html">
<link rel="import" href="../os_people_page/os_people_page.html">
<link rel="import" href="../os_privacy_page/os_privacy_page.html">
<link rel="import" href="../os_search_page/os_search_page.html">
<link rel="import" href="../personalization_page/personalization_page.html">
<link rel="import" href="../../controls/settings_idle_load.html">
......
......@@ -102,6 +102,12 @@
use_base_dir="false"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_SETTINGS_PRIVACY_PAGE_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/chromeos/os_privacy_page/os_privacy_page.m.js"
use_base_dir="false"
preprocess="true"
compress="false"
type="BINDATA" />
<include name="IDR_OS_SETTINGS_PRIVACY_PAGE_PERSONALIZATION_OPTIONS_M_JS"
file="${root_gen_dir}/chrome/browser/resources/settings/privacy_page/personalization_options.m.js"
use_base_dir="false"
......
......@@ -251,6 +251,7 @@ if (include_js_tests) {
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/nearby_share_subpage_tests.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_reset_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_people_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/os_privacy_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/parental_controls_page_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_account_manager_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_change_picture_test.m.js",
......
......@@ -47,6 +47,7 @@ js_modulizer("modulize") {
"nearby_share_subpage_tests.js",
"os_reset_page_test.js",
"os_people_page_test.js",
"os_privacy_page_test.js",
"parental_controls_page_test.js",
"people_page_account_manager_test.js",
"people_page_change_picture_test.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 {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
// #import {flush} from'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
// #import {assertEquals, assertFalse, assertTrue} from '../../chai_assert.js';
// #import {assert} from 'chrome://resources/js/assert.m.js';
// clang-format on
suite('PrivacyPageTests', function() {
/** @type {SettingsPrivacyPageElement} */
let privacyPage = null;
setup(function() {
PolymerTest.clearBody();
});
teardown(function() {
privacyPage.remove();
});
test('Suggested content, visibility disabled', async () => {
loadTimeData.overrideValues({
suggestedContentToggleEnabled: false,
});
privacyPage = document.createElement('os-settings-privacy-page');
document.body.appendChild(privacyPage);
assertEquals(null, privacyPage.$$('#suggested-content'));
});
test('Suggested content, visibility enabled', async () => {
loadTimeData.overrideValues({
suggestedContentToggleEnabled: true,
});
privacyPage = document.createElement('os-settings-privacy-page');
document.body.appendChild(privacyPage);
Polymer.dom.flush();
// The default state of the pref is disabled.
const suggestedContent = assert(privacyPage.$$('#suggested-content'));
assertFalse(suggestedContent.checked);
});
test('Suggested content, pref enabled', async () => {
loadTimeData.overrideValues({
suggestedContentToggleEnabled: true,
});
privacyPage = document.createElement('os-settings-privacy-page');
// Update the backing pref to enabled.
privacyPage.prefs = {
'settings': {
'suggested_content_enabled': {
value: true,
}
}
};
document.body.appendChild(privacyPage);
Polymer.dom.flush();
// The checkbox reflects the updated pref state.
const suggestedContent = assert(privacyPage.$$('#suggested-content'));
assertTrue(suggestedContent.checked);
});
});
......@@ -1187,6 +1187,25 @@ TEST_F('OSSettingsPeoplePageTest', 'AllJsTests', () => {
mocha.run();
});
// Tests for the Privacy section.
// eslint-disable-next-line no-var
var OSSettingsPrivacyPageTest = class extends OSSettingsBrowserTest {
/** @override */
get browsePreload() {
return super.browsePreload +
'chromeos/os_privacy_page/os_privacy_page.html';
}
/** @override */
get extraLibraries() {
return super.extraLibraries.concat(['os_privacy_page_test.js']);
}
};
TEST_F('OSSettingsPrivacyPageTest', 'AllJsTests', () => {
mocha.run();
});
// eslint-disable-next-line no-var
var OSSettingsParentalControlsPageTest = class extends OSSettingsBrowserTest {
/** @override */
......
......@@ -47,12 +47,13 @@ var OSSettingsV3BrowserTest = class extends PolymerTest {
['MultideviceSmartLockSubPage', 'multidevice_smartlock_subpage_test.m.js'],
['MultideviceFeatureItem', 'multidevice_feature_item_tests.m.js'],
['MultideviceFeatureToggle', 'multidevice_feature_toggle_tests.m.js'],
['ParentalControlsPage','parental_controls_page_test.m.js'],
['ParentalControlsPage', 'parental_controls_page_test.m.js'],
['PeoplePage', 'os_people_page_test.m.js'],
['PersonalizationPage', 'personalization_page_test.m.js'],
['PeoplePageAccountManager', 'people_page_account_manager_test.m.js'],
['PeoplePageChangePicture', 'people_page_change_picture_test.m.js'],
['PeoplePageKerberosAccounts', 'people_page_kerberos_accounts_test.m.js'],
['PrivacyPage', 'os_privacy_page_test.m.js'],
].forEach(test => registerTest(...test));
function registerTest(testName, module, caseName) {
......
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