Chromium Code Reviews| Index: chrome/browser/resources/settings/device_page/power.js |
| diff --git a/chrome/browser/resources/settings/device_page/power.js b/chrome/browser/resources/settings/device_page/power.js |
| index a04b51d6109e8879a03f4119c3a4eeeb015b1d10..9f94c95469965afe7fab1b842b77e3a09cc41e9f 100644 |
| --- a/chrome/browser/resources/settings/device_page/power.js |
| +++ b/chrome/browser/resources/settings/device_page/power.js |
| @@ -27,6 +27,12 @@ Polymer({ |
| /** @private {boolean} Whether a low-power (USB) charger is being used. */ |
| lowPowerCharger_: Boolean, |
| + /** @private {boolean} Whether the idle behavior is managed. */ |
| + idleManaged_: Boolean, |
| + |
| + /** @private {boolean} Whether the lid-closed behavior is managed. */ |
| + lidClosedManaged_: Boolean, |
| + |
| /** |
| * List of available dual-role power sources, if enablePowerSettings is on. |
| * @private {!Array<!settings.PowerSource>|undefined} |
| @@ -55,6 +61,20 @@ Polymer({ |
| type: String, |
| computed: 'computePowerSourceName_(powerSources_, lowPowerCharger_)', |
| }, |
| + |
| + /** @private */ |
| + idleOptions_: { |
| + readOnly: true, |
|
michaelpg
2017/05/08 18:48:55
remove readOnly (|computed| properties are read-on
use derat at chromium.org
2017/05/08 23:27:18
Done.
|
| + type: Array, |
| + computed: 'computeIdleOptions_(idleManaged_)', |
| + }, |
| + |
| + /** @private */ |
| + lidClosedOptions_: { |
| + readOnly: true, |
|
michaelpg
2017/05/08 18:48:55
ditto
use derat at chromium.org
2017/05/08 23:27:18
Done.
|
| + type: Array, |
| + computed: 'computeLidClosedOptions_(lidClosedManaged_)', |
| + }, |
| }, |
| /** @override */ |
| @@ -72,6 +92,12 @@ Polymer({ |
| this.addWebUIListener( |
| 'power-sources-changed', this.powerSourcesChanged_.bind(this)); |
| settings.DevicePageBrowserProxyImpl.getInstance().updatePowerStatus(); |
| + |
| + this.addWebUIListener( |
| + 'power-management-settings-changed', |
| + this.powerManagementSettingsChanged_.bind(this)); |
| + settings.DevicePageBrowserProxyImpl.getInstance() |
| + .requestPowerManagementSettings(); |
| }, |
| /** |
| @@ -113,9 +139,83 @@ Polymer({ |
| return ''; |
| }, |
| + /** |
| + * @param {boolean} idleManaged |
| + * @return {!Array<>} Options to display in idle-behavior select. |
|
michaelpg
2017/05/08 18:48:55
!Array<!{value: settings.IdleBehavior, name: strin
use derat at chromium.org
2017/05/08 23:27:17
whoops, forgot to fill these in. thanks for giving
|
| + * @private |
| + */ |
| + computeIdleOptions_: function(idleManaged) { |
| + var options = [ |
| + { |
| + value: settings.IdleBehavior.DISPLAY_OFF_SLEEP, |
| + name: loadTimeData.getString('powerIdleDisplayOffSleep'), |
| + }, |
| + { |
| + value: settings.IdleBehavior.DISPLAY_OFF_STAY_AWAKE, |
| + name: loadTimeData.getString('powerIdleDisplayOffStayAwake'), |
| + }, |
| + { |
| + value: settings.IdleBehavior.DISPLAY_ON, |
| + name: loadTimeData.getString('powerIdleDisplayOn'), |
| + }, |
| + ]; |
| + if (idleManaged) { |
| + options.push({ |
| + value: settings.IdleBehavior.OTHER, |
| + name: loadTimeData.getString('powerIdleOther'), |
| + }); |
| + } |
| + return options; |
| + }, |
| + |
| + /** |
| + * @param {boolean} lidClosedManaged |
| + * @return {!Array<>} Options to display in lid-closed-behavior select. |
|
michaelpg
2017/05/08 18:48:55
similarly
use derat at chromium.org
2017/05/08 23:27:18
Done.
|
| + * @private |
| + */ |
| + computeLidClosedOptions_: function(lidClosedManaged) { |
| + var options = [ |
| + { |
| + value: settings.LidClosedBehavior.SUSPEND, |
| + name: loadTimeData.getString('powerLidClosedSleep'), |
| + }, |
| + { |
| + value: settings.LidClosedBehavior.DO_NOTHING, |
| + name: loadTimeData.getString('powerLidClosedStayAwake'), |
| + }, |
| + ]; |
| + if (lidClosedManaged) { |
| + // Some options are only settable via policy. |
| + options.push({ |
| + value: settings.LidClosedBehavior.STOP_SESSION, |
| + name: loadTimeData.getString('powerLidClosedSignOut'), |
| + }, { |
| + value: settings.LidClosedBehavior.SHUT_DOWN, |
| + name: loadTimeData.getString('powerLidClosedShutDown'), |
| + }); |
| + } |
| + return options; |
| + }, |
| + |
| + /** @private */ |
| onPowerSourceChange_: function() { |
| settings.DevicePageBrowserProxyImpl.getInstance().setPowerSource( |
| - this.$$('#powerSource').value); |
| + this.$.powerSource.value); |
| + }, |
| + |
| + /** @private */ |
| + onIdleSelectChange_: function() { |
| + var behavior = /** @type {settings.IdleBehavior} */ |
| + (parseInt(this.$.idleSelect.value, 10)); |
| + settings.DevicePageBrowserProxyImpl.getInstance().setIdleBehavior(behavior); |
| + }, |
| + |
| + /** @private */ |
| + onLidClosedSelectChange_: function() { |
| + var behavior = /** @type {settings.LidClosedBehavior} */ |
| + (parseInt(this.$.lidClosedSelect.value, 10)); |
| + settings.DevicePageBrowserProxyImpl.getInstance().setLidClosedBehavior( |
| + behavior); |
| }, |
| /** |
| @@ -132,6 +232,24 @@ Polymer({ |
| }, |
| /** |
| + * @param {!settings.PowerManagementSettings} settings Current power |
| + * management settings. |
| + * @private |
| + */ |
| + powerManagementSettingsChanged_: function(settings) { |
| + this.idleManaged_ = settings.idleManaged; |
| + this.lidClosedManaged_ = settings.lidClosedManaged; |
| + |
| + // The select elements include "Other" options when managed but omit them |
| + // otherwise. Make sure that the options are there before we potentially try |
| + // to select them. |
| + this.async(function() { |
| + this.$.idleSelect.value = settings.idleBehavior; |
| + this.$.lidClosedSelect.value = settings.lidClosedBehavior; |
| + }, this); |
| + }, |
| + |
| + /** |
| * @param {*} lhs |
| * @param {*} rhs |
| * @return {boolean} |