Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2401)

Unified Diff: chrome/browser/resources/chromeos/login/oobe_screen_reset.js

Issue 928513002: Revert of Reset Screen moved to ScreenContext. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
};
});

Powered by Google App Engine
This is Rietveld 408576698