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; |
} |
}; |
}); |