Commit 690cf93a authored by Regan Hsu's avatar Regan Hsu Committed by Commit Bot

[CrOS SplitSettings] Fork OS reset settings into new files

Remove all browser reset settings.
Hide OS specific settings in Browser settings.

Bug: 950007
Change-Id: Ic8ab799a8c96dd5fd6612f2aab06eec957cfc51e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1599514
Commit-Queue: Regan Hsu <hsuregan@chromium.org>
Reviewed-by: default avatarDemetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#657897}
parent d7f4c236
...@@ -325,7 +325,9 @@ ...@@ -325,7 +325,9 @@
restamp> restamp>
<settings-section page-title="$i18n{resetPageTitle}" <settings-section page-title="$i18n{resetPageTitle}"
section="reset"> section="reset">
<settings-reset-page prefs="{{prefs}}"></settings-reset-page> <settings-reset-page prefs="{{prefs}}"
page-visibility="[[pageVisibility.reset]]">
</settings-reset-page>
</settings-section> </settings-section>
</template> </template>
</div> </div>
......
...@@ -64,6 +64,7 @@ group("closure_compile") { ...@@ -64,6 +64,7 @@ group("closure_compile") {
deps = [ deps = [
"os_people_page:closure_compile", "os_people_page:closure_compile",
"os_privacy_page:closure_compile", "os_privacy_page:closure_compile",
"os_reset_page:closure_compile",
"os_settings_main:closure_compile", "os_settings_main:closure_compile",
"os_settings_menu:closure_compile", "os_settings_menu:closure_compile",
"os_settings_page:closure_compile", "os_settings_page:closure_compile",
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<link rel="import" href="../downloads_page/downloads_page.html"> <link rel="import" href="../downloads_page/downloads_page.html">
<link rel="import" href="../languages_page/languages_page.html"> <link rel="import" href="../languages_page/languages_page.html">
<link rel="import" href="../printing_page/printing_page.html"> <link rel="import" href="../printing_page/printing_page.html">
<link rel="import" href="../reset_page/reset_page.html"> <link rel="import" href="os_reset_page/os_reset_page.html">
<link rel="import" href="os_privacy_page/os_privacy_page.html"> <link rel="import" href="os_privacy_page/os_privacy_page.html">
</body> </body>
</html> </html>
# Copyright 2018 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")
js_type_check("closure_compile") {
deps = [
":os_powerwash_dialog",
":os_reset_page",
":reset_os_proxy",
]
}
js_library("os_powerwash_dialog") {
deps = [
":reset_os_proxy",
"../..:lifetime_browser_proxy",
]
}
js_library("os_reset_page") {
deps = [
"../..:page_visibility",
"//ui/webui/resources/js:assert",
"//ui/webui/resources/js:cr",
"//ui/webui/resources/js/cr/ui:focus_without_ink",
]
}
js_library("reset_os_proxy") {
deps = [
"//ui/webui/resources/js:cr",
]
externs_list = [ "$externs_path/chrome_send.js" ]
}
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/cr_elements/cr_dialog/cr_dialog.html">
<link rel="import" href="chrome://resources/polymer/v1_0/paper-button/paper-button.html">
<link rel="import" href="reset_os_proxy.html">
<link rel="import" href="../../lifetime_browser_proxy.html">
<link rel="import" href="../../settings_shared_css.html">
<dom-module id="os-settings-powerwash-dialog">
<template>
<style include="settings-shared">
</style>
<cr-dialog id="dialog" close-text="$i18n{close}"
ignore-enter-key>
<div slot="title">$i18n{powerwashDialogTitle}</div>
<div slot="body">
<span>
$i18n{powerwashDialogExplanation}
<a href="$i18nRaw{powerwashLearnMoreUrl}" target="_blank">
$i18n{learnMore}
</a>
</span>
</div>
<div slot="button-container">
<paper-button class="cancel-button" on-click="onCancelTap_"
id="cancel">$i18n{cancel}</paper-button>
<paper-button class="action-button" id="powerwash"
on-click="onRestartTap_">$i18n{powerwashDialogButton}</paper-button>
</div>
</cr-dialog>
</template>
<script src="os_powerwash_dialog.js"></script>
</dom-module>
// 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.
/**
* @fileoverview
* 'os-settings-powerwash-dialog' is a dialog shown to request confirmation
* from the user for a device reset (aka powerwash).
*/
Polymer({
is: 'os-settings-powerwash-dialog',
properties: {
/** @public */
requestTpmFirmwareUpdate: {
type: Boolean,
value: false,
}
},
/** @override */
attached: function() {
settings.ResetOsProxyImpl.getInstance().onPowerwashDialogShow();
this.$.dialog.showModal();
},
/** @private */
onCancelTap_: function() {
this.$.dialog.close();
},
/** @private */
onRestartTap_: function() {
settings.LifetimeBrowserProxyImpl.getInstance().factoryReset(
this.requestTpmFirmwareUpdate);
},
});
<link rel="import" href="chrome://resources/html/polymer.html">
<link rel="import" href="chrome://resources/html/assert.html">
<link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html">
<link rel="import" href="chrome://resources/cr_elements/cr_link_row/cr_link_row.html">
<link rel="import" href="os_powerwash_dialog.html">
<link rel="import" href="../../i18n_setup.html">
<dom-module id="os-settings-reset-page">
<template>
<cr-link-row class="hr" id="powerwash"
label="$i18n{powerwashTitle}" on-click="onShowPowerwashDialog_"
sub-label="$i18n{powerwashDescription}"></cr-link-row>
<template is="dom-if" if="[[showPowerwashDialog_]]" restamp>
<settings-powerwash-dialog on-close="onPowerwashDialogClose_">
</settings-powerwash-dialog>
</template>
</template>
<script src="os_reset_page.js"></script>
</dom-module>
// 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.
/**
* @fileoverview
* 'os-settings-reset-page' is the OS settings page containing reset
* settings.
*/
Polymer({
is: 'os-settings-reset-page',
properties: {
/** @private */
showPowerwashDialog_: Boolean,
},
/** @private */
/**
* @param {!Event} e
* @private
*/
onShowPowerwashDialog_: function(e) {
e.preventDefault();
this.showPowerwashDialog_ = true;
},
/** @private */
onPowerwashDialogClose_: function() {
this.showPowerwashDialog_ = false;
cr.ui.focusWithoutInk(assert(this.$.powerwash));
},
});
<link rel="import" href="chrome://resources/html/cr.html">
<script src="reset_os_proxy.js"></script>
// 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('settings', function() {
/** @interface */
class ResetOsProxy {
/**
* A method to be called when the reset powerwash dialog is shown.
*/
onPowerwashDialogShow() {}
/**
* Initiates a factory reset and restarts ChromeOS.
*/
requestFactoryResetRestart() {}
}
/**
* @implements {settings.ResetOsProxy}
*/
class ResetOsProxyImpl {
/** @override */
onPowerwashDialogShow() {
chrome.send('onPowerwashDialogShow');
}
/** @override */
requestFactoryResetRestart() {
chrome.send('requestFactoryResetRestart');
}
}
cr.addSingletonGetter(ResetOsProxyImpl);
return {
ResetOsProxy: ResetOsProxy,
ResetOsProxyImpl: ResetOsProxyImpl,
};
});
...@@ -83,10 +83,6 @@ ...@@ -83,10 +83,6 @@
<template is="dom-if" if="[[showBasicPage_( <template is="dom-if" if="[[showBasicPage_(
currentRoute_, inSearchMode, hasExpandedSection_)]]"> currentRoute_, inSearchMode, hasExpandedSection_)]]">
<div id="basicPage"> <div id="basicPage">
<template is="dom-if" if="[[showResetProfileBanner_]]" restamp>
<settings-reset-profile-banner on-close="onResetProfileBannerClosed_">
</settings-reset-profile-banner>
</template>
<div id="secondaryUserBanner" hidden="[[!showSecondaryUserBanner_]]"> <div id="secondaryUserBanner" hidden="[[!showSecondaryUserBanner_]]">
<div id="secondaryUserIcon"></div> <div id="secondaryUserIcon"></div>
<div class="flex">$i18n{secondaryUserBannerText}</div> <div class="flex">$i18n{secondaryUserBannerText}</div>
...@@ -267,7 +263,7 @@ ...@@ -267,7 +263,7 @@
restamp> restamp>
<settings-section page-title="$i18n{resetPageTitle}" <settings-section page-title="$i18n{resetPageTitle}"
section="reset"> section="reset">
<settings-reset-page prefs="{{prefs}}"></settings-reset-page> <os-settings-reset-page></os-settings-reset-page>
</settings-section> </settings-section>
</template> </template>
</div> </div>
......
...@@ -66,18 +66,6 @@ Polymer({ ...@@ -66,18 +66,6 @@ Polymer({
value: false, value: false,
}, },
/**
* True if the basic page should currently display the reset profile banner.
* @private {boolean}
*/
showResetProfileBanner_: {
type: Boolean,
value: function() {
return loadTimeData.getBoolean('showResetProfileBanner');
},
},
// <if expr="chromeos">
/** /**
* Whether the user is a secondary user. Computed so that it is calculated * Whether the user is a secondary user. Computed so that it is calculated
* correctly after loadTimeData is available. * correctly after loadTimeData is available.
...@@ -87,7 +75,6 @@ Polymer({ ...@@ -87,7 +75,6 @@ Polymer({
type: Boolean, type: Boolean,
computed: 'computeShowSecondaryUserBanner_(hasExpandedSection_)', computed: 'computeShowSecondaryUserBanner_(hasExpandedSection_)',
}, },
// </if>
/** @private {!settings.Route|undefined} */ /** @private {!settings.Route|undefined} */
currentRoute_: Object, currentRoute_: Object,
...@@ -207,7 +194,6 @@ Polymer({ ...@@ -207,7 +194,6 @@ Polymer({
}); });
}, },
// <if expr="chromeos">
/** /**
* @return {boolean} * @return {boolean}
* @private * @private
...@@ -216,12 +202,6 @@ Polymer({ ...@@ -216,12 +202,6 @@ Polymer({
return !this.hasExpandedSection_ && return !this.hasExpandedSection_ &&
loadTimeData.getBoolean('isSecondaryUser'); loadTimeData.getBoolean('isSecondaryUser');
}, },
// </if>
/** @private */
onResetProfileBannerClosed_: function() {
this.showResetProfileBanner_ = false;
},
/** /**
* @param {!AndroidAppsInfo} info * @param {!AndroidAppsInfo} info
......
...@@ -464,37 +464,23 @@ ...@@ -464,37 +464,23 @@
type="chrome_html" type="chrome_html"
preprocess="true" /> preprocess="true" />
<structure name="IDR_OS_SETTINGS_POWERWASH_DIALOG_HTML" <structure name="IDR_OS_SETTINGS_POWERWASH_DIALOG_HTML"
file="reset_page/powerwash_dialog.html" file="chromeos/os_reset_page/os_powerwash_dialog.html"
type="chrome_html" /> type="chrome_html" />
<structure name="IDR_OS_SETTINGS_POWERWASH_DIALOG_JS" <structure name="IDR_OS_SETTINGS_POWERWASH_DIALOG_JS"
file="reset_page/powerwash_dialog.js" file="chromeos/os_reset_page/os_powerwash_dialog.js"
type="chrome_html" /> type="chrome_html" />
<structure name="IDR_OS_SETTINGS_RESET_PAGE_HTML" <structure name="IDR_OS_SETTINGS_RESET_PAGE_HTML"
file="reset_page/reset_page.html" file="chromeos/os_reset_page/os_reset_page.html"
type="chrome_html" type="chrome_html"
preprocess="true" /> preprocess="true" />
<structure name="IDR_OS_SETTINGS_RESET_PAGE_JS" <structure name="IDR_OS_SETTINGS_RESET_PAGE_JS"
file="reset_page/reset_page.js" file="chromeos/os_reset_page/os_reset_page.js"
preprocess="true"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_RESET_PROFILE_DIALOG_HTML"
file="reset_page/reset_profile_dialog.html"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_RESET_PROFILE_DIALOG_JS"
file="reset_page/reset_profile_dialog.js"
type="chrome_html" /> type="chrome_html" />
<structure name="IDR_OS_SETTINGS_RESET_PROFILE_BANNER_HTML" <structure name="IDR_OS_SETTINGS_RESET_OS_PROXY_JS"
file="reset_page/reset_profile_banner.html" file="chromeos/os_reset_page/reset_os_proxy.js"
type="chrome_html" />
<structure name="IDR_OS_SETTINGS_RESET_PROFILE_BANNER_JS"
file="reset_page/reset_profile_banner.js"
type="chrome_html"/>
<structure name="IDR_OS_SETTINGS_RESET_BROWSER_PROXY_JS"
file="reset_page/reset_browser_proxy.js"
preprocess="true"
type="chrome_html" /> type="chrome_html" />
<structure name="IDR_OS_SETTINGS_RESET_BROWSER_PROXY_HTML" <structure name="IDR_OS_SETTINGS_RESET_OS_PROXY_HTML"
file="reset_page/reset_browser_proxy.html" file="chromeos/os_reset_page/reset_os_proxy.html"
type="chrome_html" /> type="chrome_html" />
<structure name="IDR_OS_SETTINGS_LANGUAGES_HTML" <structure name="IDR_OS_SETTINGS_LANGUAGES_HTML"
file="languages_page/languages.html" file="languages_page/languages.html"
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
* onStartup: (boolean|undefined), * onStartup: (boolean|undefined),
* people: (boolean|undefined|PeoplePageVisibility), * people: (boolean|undefined|PeoplePageVisibility),
* privacy: (boolean|undefined|PrivacyPageVisibility), * privacy: (boolean|undefined|PrivacyPageVisibility),
* reset:(boolean|undefined), * reset:(boolean|undefined|ResetPageVisibility),
* }} * }}
*/ */
let PageVisibility; let PageVisibility;
...@@ -63,6 +63,13 @@ let PeoplePageVisibility; ...@@ -63,6 +63,13 @@ let PeoplePageVisibility;
*/ */
let PrivacyPageVisibility; let PrivacyPageVisibility;
/**
* @typedef {{
* powerwash: boolean,
* }}
*/
let ResetPageVisibility;
cr.define('settings', function() { cr.define('settings', function() {
/** /**
* Dictionary defining page visibility. * Dictionary defining page visibility.
...@@ -95,7 +102,9 @@ cr.define('settings', function() { ...@@ -95,7 +102,9 @@ cr.define('settings', function() {
autofill: false, autofill: false,
people: false, people: false,
onStartup: false, onStartup: false,
reset: false, reset: {
powerwash: false,
},
appearance: { appearance: {
setWallpaper: false, setWallpaper: false,
setTheme: false, setTheme: false,
...@@ -133,7 +142,9 @@ cr.define('settings', function() { ...@@ -133,7 +142,9 @@ cr.define('settings', function() {
manageUsers: showOSSettings, manageUsers: showOSSettings,
}, },
onStartup: true, onStartup: true,
reset: true, reset: {
powerwash: showOSSettings,
},
appearance: { appearance: {
setWallpaper: showOSSettings, setWallpaper: showOSSettings,
setTheme: true, setTheme: true,
......
...@@ -23,6 +23,7 @@ js_library("powerwash_dialog") { ...@@ -23,6 +23,7 @@ js_library("powerwash_dialog") {
js_library("reset_page") { js_library("reset_page") {
deps = [ deps = [
":reset_profile_dialog", ":reset_profile_dialog",
"..:page_visibility",
"..:route", "..:route",
"//ui/webui/resources/cr_elements/cr_lazy_render:cr_lazy_render", "//ui/webui/resources/cr_elements/cr_lazy_render:cr_lazy_render",
"//ui/webui/resources/js:assert", "//ui/webui/resources/js:assert",
......
...@@ -25,15 +25,20 @@ Polymer({ ...@@ -25,15 +25,20 @@ Polymer({
prefs: Object, prefs: Object,
// <if expr="chromeos"> // <if expr="chromeos">
/**
* Dictionary defining page visibility.
* @type {!ResetPageVisibility}
*/
pageVisibility: Object,
/** @private */ /** @private */
showPowerwashDialog_: Boolean, showPowerwashDialog_: Boolean,
// </if>
/** @private */ /** @private */
allowPowerwash_: { allowPowerwash_:
type: Boolean, {type: Boolean, value: loadTimeData.getBoolean('allowPowerwash')},
value: cr.isChromeOS ? loadTimeData.getBoolean('allowPowerwash') : false // </if>
},
// <if expr="_google_chrome and is_win"> // <if expr="_google_chrome and is_win">
/** @private */ /** @private */
...@@ -46,6 +51,15 @@ Polymer({ ...@@ -46,6 +51,15 @@ Polymer({
// </if> // </if>
}, },
// <if expr="chromeos">
/** @override */
ready: function() {
// TODO(hsuregan): Remove when OS settings migration is complete.
this.allowPowerwash_ =
this.allowPowerwash_ && this.pageVisibility.powerwash;
},
// </if>
/** /**
* settings.RouteObserverBehavior * settings.RouteObserverBehavior
* @param {!settings.Route} route * @param {!settings.Route} route
......
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