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
...@@ -269,7 +269,7 @@ group("closure_compile_module") { ...@@ -269,7 +269,7 @@ group("closure_compile_module") {
"os_people_page:closure_compile_module", "os_people_page:closure_compile_module",
#"os_printing_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_reset_page:closure_compile_module",
#"os_search_page:closure_compile_module", #"os_search_page:closure_compile_module",
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
# found in the LICENSE file. # found in the LICENSE file.
import("//third_party/closure_compiler/compile_js.gni") import("//third_party/closure_compiler/compile_js.gni")
import("../os_settings.gni")
js_type_check("closure_compile") { js_type_check("closure_compile") {
deps = [ ":os_privacy_page" ] deps = [ ":os_privacy_page" ]
...@@ -15,18 +16,16 @@ js_library("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") {
#js_type_check("closure_compile_module") { is_polymer3 = true
# is_polymer3 = true deps = [ ":os_privacy_page.m" ]
# deps = [ }
# ":os_privacy_page.m"
# ]
#}
js_library("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" ] sources = [ "$root_gen_dir/chrome/browser/resources/settings/chromeos/os_privacy_page/os_privacy_page.m.js" ]
deps = [ 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" ] extra_deps = [ ":os_privacy_page_module" ]
} }
...@@ -41,4 +40,6 @@ polymer_modulizer("os_privacy_page") { ...@@ -41,4 +40,6 @@ polymer_modulizer("os_privacy_page") {
js_file = "os_privacy_page.js" js_file = "os_privacy_page.js"
html_file = "os_privacy_page.html" html_file = "os_privacy_page.html"
html_type = "dom-module" 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/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="../../controls/settings_toggle_button.html">
<link rel="import" href="../../settings_shared_css.html"> <link rel="import" href="../../settings_shared_css.html">
...@@ -15,6 +16,7 @@ ...@@ -15,6 +16,7 @@
</if> </if>
<template is="dom-if" if="[[showSuggestedContentToggle_]]"> <template is="dom-if" if="[[showSuggestedContentToggle_]]">
<settings-toggle-button <settings-toggle-button
id="suggested-content"
class="hr" class="hr"
pref="{{prefs.settings.suggested_content_enabled}}" pref="{{prefs.settings.suggested_content_enabled}}"
label="$i18n{enableSuggestedContent}" label="$i18n{enableSuggestedContent}"
......
...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
* 'os-settings-privacy-page' is the settings page containing privacy and * 'os-settings-privacy-page' is the settings page containing privacy and
* security settings. * security settings.
*/ */
(function() {
'use strict';
Polymer({ Polymer({
is: 'os-settings-privacy-page', is: 'os-settings-privacy-page',
...@@ -35,4 +33,3 @@ Polymer({ ...@@ -35,4 +33,3 @@ Polymer({
}, },
}); });
})();
...@@ -18,22 +18,23 @@ import './os_people_page/account_manager.m.js'; ...@@ -18,22 +18,23 @@ import './os_people_page/account_manager.m.js';
import './os_people_page/kerberos_accounts.m.js'; import './os_people_page/kerberos_accounts.m.js';
import './parental_controls_page/parental_controls_page.m.js'; import './parental_controls_page/parental_controls_page.m.js';
import './os_people_page/os_people_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 {LifetimeBrowserProxy, LifetimeBrowserProxyImpl} from '../lifetime_browser_proxy.m.js';
export {dataUsageStringToEnum, NearbyShareDataUsage} from '../nearby_share_page/types.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 {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 {CrSettingsPrefs} from '../prefs/prefs_types.m.js';
export {Route, Router} from '../router.m.js'; export {Route, Router} from '../router.m.js';
export {AmbientModeBrowserProxyImpl} from './ambient_mode_page/ambient_mode_browser_proxy.m.js'; export {AmbientModeBrowserProxyImpl} from './ambient_mode_page/ambient_mode_browser_proxy.m.js';
export {bluetoothApis} from './bluetooth_page/bluetooth_page.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 {MultiDeviceBrowserProxy, MultiDeviceBrowserProxyImpl} from './multidevice_page/multidevice_browser_proxy.m.js';
export {MultiDeviceFeature, MultiDeviceFeatureState, MultiDevicePageContentData, MultiDeviceSettingsMode, SmartLockSignInEnabledState} from './multidevice_page/multidevice_constants.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 {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 {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 {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 {ChangePictureBrowserProxy, ChangePictureBrowserProxyImpl} from './personalization_page/change_picture_browser_proxy.m.js';
export {WallpaperBrowserProxyImpl} from './personalization_page/wallpaper_browser_proxy.m.js'; export {WallpaperBrowserProxyImpl} from './personalization_page/wallpaper_browser_proxy.m.js';
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<link rel="import" href="../os_apps_page/android_apps_browser_proxy.html"> <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_apps_page/os_apps_page.html">
<link rel="import" href="../os_people_page/os_people_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="../os_search_page/os_search_page.html">
<link rel="import" href="../personalization_page/personalization_page.html"> <link rel="import" href="../personalization_page/personalization_page.html">
<link rel="import" href="../../controls/settings_idle_load.html"> <link rel="import" href="../../controls/settings_idle_load.html">
......
...@@ -102,6 +102,12 @@ ...@@ -102,6 +102,12 @@
use_base_dir="false" use_base_dir="false"
compress="false" compress="false"
type="BINDATA" /> 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" <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" file="${root_gen_dir}/chrome/browser/resources/settings/privacy_page/personalization_options.m.js"
use_base_dir="false" use_base_dir="false"
......
...@@ -251,6 +251,7 @@ if (include_js_tests) { ...@@ -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/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_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_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/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_account_manager_test.m.js",
"$root_gen_dir/chrome/test/data/webui/settings/chromeos/people_page_change_picture_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") { ...@@ -47,6 +47,7 @@ js_modulizer("modulize") {
"nearby_share_subpage_tests.js", "nearby_share_subpage_tests.js",
"os_reset_page_test.js", "os_reset_page_test.js",
"os_people_page_test.js", "os_people_page_test.js",
"os_privacy_page_test.js",
"parental_controls_page_test.js", "parental_controls_page_test.js",
"people_page_account_manager_test.js", "people_page_account_manager_test.js",
"people_page_change_picture_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', () => { ...@@ -1187,6 +1187,25 @@ TEST_F('OSSettingsPeoplePageTest', 'AllJsTests', () => {
mocha.run(); 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 // eslint-disable-next-line no-var
var OSSettingsParentalControlsPageTest = class extends OSSettingsBrowserTest { var OSSettingsParentalControlsPageTest = class extends OSSettingsBrowserTest {
/** @override */ /** @override */
......
...@@ -47,12 +47,13 @@ var OSSettingsV3BrowserTest = class extends PolymerTest { ...@@ -47,12 +47,13 @@ var OSSettingsV3BrowserTest = class extends PolymerTest {
['MultideviceSmartLockSubPage', 'multidevice_smartlock_subpage_test.m.js'], ['MultideviceSmartLockSubPage', 'multidevice_smartlock_subpage_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'],
['ParentalControlsPage','parental_controls_page_test.m.js'], ['ParentalControlsPage', 'parental_controls_page_test.m.js'],
['PeoplePage', 'os_people_page_test.m.js'], ['PeoplePage', 'os_people_page_test.m.js'],
['PersonalizationPage', 'personalization_page_test.m.js'], ['PersonalizationPage', 'personalization_page_test.m.js'],
['PeoplePageAccountManager', 'people_page_account_manager_test.m.js'], ['PeoplePageAccountManager', 'people_page_account_manager_test.m.js'],
['PeoplePageChangePicture', 'people_page_change_picture_test.m.js'], ['PeoplePageChangePicture', 'people_page_change_picture_test.m.js'],
['PeoplePageKerberosAccounts', 'people_page_kerberos_accounts_test.m.js'], ['PeoplePageKerberosAccounts', 'people_page_kerberos_accounts_test.m.js'],
['PrivacyPage', 'os_privacy_page_test.m.js'],
].forEach(test => registerTest(...test)); ].forEach(test => registerTest(...test));
function registerTest(testName, module, caseName) { 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