| Index: chrome/browser/resources/chromeos/login/oobe_screen_reset.js
|
| diff --git a/chrome/browser/resources/chromeos/login/oobe_screen_reset.js b/chrome/browser/resources/chromeos/login/oobe_screen_reset.js
|
| index 874f8e3165f01d69302895c97188cbe95ecf9dc7..af1375b2901dc0547909a3932a5785e278a5305e 100644
|
| --- a/chrome/browser/resources/chromeos/login/oobe_screen_reset.js
|
| +++ b/chrome/browser/resources/chromeos/login/oobe_screen_reset.js
|
| @@ -7,18 +7,6 @@
|
| */
|
|
|
| login.createScreen('ResetScreen', 'reset', function() {
|
| - var USER_ACTION_CANCEL_RESET = 'cancel-reset';
|
| - var USER_ACTION_RESTART_PRESSED = 'restart-pressed';
|
| - var USER_ACTION_LEARN_MORE_PRESSED = 'learn-more-link';
|
| - var USER_ACTION_SHOW_CONFIRMATION = 'show-confirmation';
|
| - var USER_ACTION_POWERWASH_PRESSED = 'powerwash-pressed';
|
| - var USER_ACTION_RESET_CONFIRM_DISMISSED = 'reset-confirm-dismissed';
|
| - var CONTEXT_KEY_ROLLBACK_AVAILABLE = 'rollback-available';
|
| - var CONTEXT_KEY_ROLLBACK_CHECKED = 'rollback-checked';
|
| - var CONTEXT_KEY_IS_OFFICIAL_BUILD = 'is-official-build';
|
| - var CONTEXT_KEY_IS_CONFIRMATIONAL_VIEW = 'is-confirmational-view';
|
| - var CONTEXT_KEY_SCREEN_STATE = 'screen-state';
|
| -
|
| return {
|
|
|
| /* Possible UI states of the reset screen. */
|
| @@ -26,85 +14,20 @@
|
| REVERT_PROMISE: 'ui-state-revert-promise',
|
| RESTART_REQUIRED: 'ui-state-restart-required',
|
| POWERWASH_PROPOSAL: 'ui-state-powerwash-proposal',
|
| - ROLLBACK_PROPOSAL: 'ui-state-rollback-proposal',
|
| - ERROR: 'ui-state-error',
|
| + ROLLBACK_PROPOSAL: 'ui-state-rollback-proposal'
|
| },
|
|
|
| - RESET_SCREEN_STATE: {
|
| - RESTART_REQUIRED: 0,
|
| - REVERT_PROMISE: 1,
|
| - POWERWASH_PROPOSAL: 2, // supports 2 ui-states
|
| - ERROR: 3,
|
| - },
|
| -
|
| + EXTERNAL_API: [
|
| + 'hideRollbackOption',
|
| + 'showRollbackOption',
|
| + 'updateViewOnRollbackCall'
|
| + ],
|
|
|
| /** @override */
|
| decorate: function() {
|
| - var self = this;
|
| -
|
| - this.declareUserAction($('powerwash-help-link'),
|
| - { action_id: USER_ACTION_LEARN_MORE_PRESSED,
|
| - event: 'click'
|
| - });
|
| - this.declareUserAction($('reset-confirm-dismiss'),
|
| - { action_id: USER_ACTION_RESET_CONFIRM_DISMISSED,
|
| - event: 'click'
|
| - });
|
| - this.declareUserAction($('reset-confirm-commit'),
|
| - { action_id: USER_ACTION_POWERWASH_PRESSED,
|
| - event: 'click'
|
| - });
|
| -
|
| - this.context.addObserver(
|
| - CONTEXT_KEY_SCREEN_STATE,
|
| - function(state) {
|
| - if (state == self.RESET_SCREEN_STATE.RESTART_REQUIRED)
|
| - self.ui_state = self.RESET_SCREEN_UI_STATE.RESTART_REQUIRED;
|
| - if (state == self.RESET_SCREEN_STATE.REVERT_PROMISE)
|
| - self.ui_state = self.RESET_SCREEN_UI_STATE.REVERT_PROMISE;
|
| - else if (state == self.RESET_SCREEN_STATE.POWERWASH_PROPOSAL)
|
| - self.ui_state = self.RESET_SCREEN_UI_STATE.POWERWASH_PROPOSAL;
|
| - self.setDialogView_();
|
| - if (state == self.RESET_SCREEN_STATE.REVERT_PROMISE) {
|
| - announceAccessibleMessage(
|
| - loadTimeData.getString('resetRevertSpinnerMessage'));
|
| - }
|
| - }
|
| - );
|
| -
|
| - this.context.addObserver(
|
| - CONTEXT_KEY_IS_OFFICIAL_BUILD,
|
| - function(isOfficial) {
|
| - $('powerwash-help-link').setAttribute('hidden', !isOfficial);
|
| - }
|
| - );
|
| - this.context.addObserver(
|
| - CONTEXT_KEY_ROLLBACK_CHECKED,
|
| - function(rollbackChecked) {
|
| - self.setRollbackOptionView();
|
| - }
|
| - );
|
| - this.context.addObserver(
|
| - CONTEXT_KEY_ROLLBACK_AVAILABLE,
|
| - function(rollbackAvailable) {
|
| - self.setRollbackOptionView();
|
| - }
|
| - );
|
| - this.context.addObserver(
|
| - CONTEXT_KEY_IS_CONFIRMATIONAL_VIEW,
|
| - function(is_confirmational) {
|
| - if (is_confirmational) {
|
| - console.log(self.context.get(CONTEXT_KEY_SCREEN_STATE, 0));
|
| - if (self.context.get(CONTEXT_KEY_SCREEN_STATE, 0) !=
|
| - self.RESET_SCREEN_STATE.POWERWASH_PROPOSAL)
|
| - return;
|
| - console.log(self);
|
| - reset.ConfirmResetOverlay.getInstance().initializePage();
|
| - } else {
|
| - $('overlay-reset').setAttribute('hidden', true);
|
| - }
|
| - }
|
| - );
|
| + $('powerwash-help-link').addEventListener('click', function(event) {
|
| + chrome.send('resetOnLearnMore');
|
| + });
|
| },
|
|
|
| /**
|
| @@ -124,10 +47,10 @@
|
| var restartButton = this.ownerDocument.createElement('button');
|
| restartButton.id = 'reset-restart-button';
|
| restartButton.textContent = loadTimeData.getString('resetButtonRestart');
|
| - this.declareUserAction(restartButton,
|
| - { action_id: USER_ACTION_RESTART_PRESSED,
|
| - event: 'click'
|
| - });
|
| + restartButton.addEventListener('click', function(e) {
|
| + chrome.send('restartOnReset');
|
| + e.stopPropagation();
|
| + });
|
| buttons.push(restartButton);
|
|
|
| // Button that leads to confirmation pop-up dialog.
|
| @@ -135,19 +58,24 @@
|
| toConfirmButton.id = 'reset-toconfirm-button';
|
| toConfirmButton.textContent =
|
| loadTimeData.getString('resetButtonPowerwash');
|
| - this.declareUserAction(toConfirmButton,
|
| - { action_id: USER_ACTION_SHOW_CONFIRMATION,
|
| - event: 'click'
|
| - });
|
| + toConfirmButton.addEventListener('click', function(e) {
|
| + // change view to confirmational
|
| + reset.ConfirmResetOverlay.getInstance().initializePage();
|
| +
|
| + var resetScreen = $('reset');
|
| + resetScreen.isConfirmational = true;
|
| + chrome.send('showConfirmationOnReset');
|
| + e.stopPropagation();
|
| + });
|
| buttons.push(toConfirmButton);
|
|
|
| var cancelButton = this.ownerDocument.createElement('button');
|
| cancelButton.id = 'reset-cancel-button';
|
| cancelButton.textContent = loadTimeData.getString('cancelButton');
|
| - this.declareUserAction(cancelButton,
|
| - { action_id: USER_ACTION_CANCEL_RESET,
|
| - event: 'click'
|
| - });
|
| + cancelButton.addEventListener('click', function(e) {
|
| + chrome.send('cancelOnReset');
|
| + e.stopPropagation();
|
| + });
|
| buttons.push(cancelButton);
|
|
|
| return buttons;
|
| @@ -158,11 +86,9 @@
|
| */
|
| get defaultControl() {
|
| // choose
|
| - if (this.context.get(CONTEXT_KEY_SCREEN_STATE,
|
| - this.RESET_SCREEN_STATE.RESTART_REQUIRED) ==
|
| - this.RESET_SCREEN_STATE.RESTART_REQUIRED)
|
| + if (this.needRestart)
|
| return $('reset-restart-button');
|
| - if (this.context.get(CONTEXT_KEY_IS_CONFIRMATIONAL_VIEW, false))
|
| + if (this.isConfirmational)
|
| return $('reset-confirm-commit');
|
| return $('reset-toconfirm-button');
|
| },
|
| @@ -171,12 +97,11 @@
|
| * Cancels the reset and drops the user back to the login screen.
|
| */
|
| cancel: function() {
|
| - if (this.context.get(CONTEXT_KEY_IS_CONFIRMATIONAL_VIEW, false)) {
|
| - $('reset').send(login.Screen.CALLBACK_USER_ACTED,
|
| - USER_ACTION_RESET_CONFIRM_DISMISSED);
|
| + if (this.isConfirmational) {
|
| + reset.ConfirmResetOverlay.getInstance().handleDismiss_();
|
| return;
|
| }
|
| - this.send(login.Screen.CALLBACK_USER_ACTED, USER_ACTION_CANCEL_RESET);
|
| + chrome.send('cancelOnReset');
|
| },
|
|
|
| /**
|
| @@ -184,55 +109,80 @@
|
| * @param {Object} data Screen init payload.
|
| */
|
| onBeforeShow: function(data) {
|
| + if (data === undefined)
|
| + return;
|
| +
|
| + this.rollbackChecked = false;
|
| + this.rollbackAvailable = false;
|
| + this.isConfirmational = false;
|
| + this.hasLearnMoreLink = false;
|
| +
|
| + if (!('isOfficialBuild' in data && data['isOfficialBuild']))
|
| + $('powerwash-help-link').setAttribute('hidden', true);
|
| +
|
| + if ('rollbackAvailable' in data)
|
| + this.rollbackAvailable = data['rollbackAvailable'];
|
| +
|
| + if ('restartRequired' in data && data['restartRequired']) {
|
| + this.restartRequired = true;
|
| + this.setDialogView_(this.RESET_SCREEN_UI_STATE.RESTART_REQUIRED);
|
| + } else {
|
| + this.restartRequired = false;
|
| + this.setDialogView_(this.RESET_SCREEN_UI_STATE.POWERWASH_PROPOSAL);
|
| + }
|
| },
|
|
|
| /**
|
| * Sets css style for corresponding state of the screen.
|
| + * @param {string} state.
|
| * @private
|
| */
|
| setDialogView_: function(state) {
|
| - state = this.ui_state;
|
| var resetOverlay = $('reset-confirm-overlay');
|
| - this.classList.toggle(
|
| - 'revert-promise-view',
|
| - state == this.RESET_SCREEN_UI_STATE.REVERT_PROMISE);
|
| - this.classList.toggle(
|
| - 'restart-required-view',
|
| - state == this.RESET_SCREEN_UI_STATE.RESTART_REQUIRED);
|
| - this.classList.toggle(
|
| - 'powerwash-proposal-view',
|
| - state == this.RESET_SCREEN_UI_STATE.POWERWASH_PROPOSAL);
|
| - resetOverlay.classList.toggle(
|
| - 'powerwash-proposal-view',
|
| - state == this.RESET_SCREEN_UI_STATE.POWERWASH_PROPOSAL);
|
| - this.classList.toggle(
|
| - 'rollback-proposal-view',
|
| - state == this.RESET_SCREEN_UI_STATE.ROLLBACK_PROPOSAL);
|
| - resetOverlay.classList.toggle(
|
| - 'rollback-proposal-view',
|
| - state == this.RESET_SCREEN_UI_STATE.ROLLBACK_PROPOSAL);
|
| + this.classList.remove('revert-promise-view');
|
| + this.classList.remove('restart-required-view');
|
| + this.classList.remove('powerwash-proposal-view');
|
| + this.classList.remove('rollback-proposal-view');
|
| + resetOverlay.classList.remove('powerwash-proposal-view');
|
| + resetOverlay.classList.remove('rollback-proposal-view');
|
| + if (state == this.RESET_SCREEN_UI_STATE.REVERT_PROMISE) {
|
| + this.classList.add('revert-promise-view');
|
| + } else if (state == this.RESET_SCREEN_UI_STATE.RESTART_REQUIRED) {
|
| + this.classList.add('restart-required-view');
|
| + } else if (state == this.RESET_SCREEN_UI_STATE.POWERWASH_PROPOSAL) {
|
| + this.classList.add('powerwash-proposal-view');
|
| + resetOverlay.classList.add('powerwash-proposal-view');
|
| + } else if (state == this.RESET_SCREEN_UI_STATE.ROLLBACK_PROPOSAL) {
|
| + this.classList.add('rollback-proposal-view');
|
| + resetOverlay.classList.add('rollback-proposal-view');
|
| + } else { // error
|
| + console.error('State ' + state + ' is not supported by setDialogView.');
|
| + }
|
| },
|
|
|
| - setRollbackOptionView: function() {
|
| - if (this.context.get(CONTEXT_KEY_IS_CONFIRMATIONAL_VIEW, false))
|
| + updateViewOnRollbackCall: function() {
|
| + this.setDialogView_(this.RESET_SCREEN_UI_STATE.REVERT_PROMISE);
|
| + announceAccessibleMessage(
|
| + loadTimeData.getString('resetRevertSpinnerMessage'));
|
| + },
|
| +
|
| + showRollbackOption: function() {
|
| + if (this.rollbackChecked || this.isConfirmational)
|
| return;
|
| - if (this.context.get(CONTEXT_KEY_SCREEN_STATE) !=
|
| - this.RESET_SCREEN_STATE.POWERWASH_PROPOSAL)
|
| + $('reset-toconfirm-button').textContent = loadTimeData.getString(
|
| + 'resetButtonPowerwashAndRollback');
|
| + this.setDialogView_(this.RESET_SCREEN_UI_STATE.ROLLBACK_PROPOSAL);
|
| + this.rollbackChecked = true;
|
| + },
|
| +
|
| + hideRollbackOption: function() {
|
| + if (!this.rollbackChecked || this.isConfirmational)
|
| return;
|
|
|
| - if (this.context.get(CONTEXT_KEY_ROLLBACK_AVAILABLE, false) &&
|
| - this.context.get(CONTEXT_KEY_ROLLBACK_CHECKED, false)) {
|
| - // show rollback option
|
| - $('reset-toconfirm-button').textContent = loadTimeData.getString(
|
| - 'resetButtonPowerwashAndRollback');
|
| - this.ui_state = this.RESET_SCREEN_UI_STATE.ROLLBACK_PROPOSAL;
|
| - } else {
|
| - // hide rollback option
|
| - $('reset-toconfirm-button').textContent = loadTimeData.getString(
|
| - 'resetButtonPowerwash');
|
| - this.ui_state = this.RESET_SCREEN_UI_STATE.POWERWASH_PROPOSAL;
|
| - }
|
| - this.setDialogView_();
|
| + $('reset-toconfirm-button').textContent = loadTimeData.getString(
|
| + 'resetButtonPowerwash');
|
| + this.setDialogView_(this.RESET_SCREEN_UI_STATE.POWERWASH_PROPOSAL);
|
| + this.rollbackChecked = false;
|
| }
|
| };
|
| });
|
|
|