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

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

Issue 904163003: Reset Screen moved to ScreenContext. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: User actions introduced. 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 af1375b2901dc0547909a3932a5785e278a5305e..cd195326b69b84cd62b9a8a3358f3702cd08f105 100644
--- a/chrome/browser/resources/chromeos/login/oobe_screen_reset.js
+++ b/chrome/browser/resources/chromeos/login/oobe_screen_reset.js
@@ -7,6 +7,16 @@
*/
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 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. */
@@ -14,20 +24,62 @@ login.createScreen('ResetScreen', 'reset', function() {
REVERT_PROMISE: 'ui-state-revert-promise',
RESTART_REQUIRED: 'ui-state-restart-required',
POWERWASH_PROPOSAL: 'ui-state-powerwash-proposal',
- ROLLBACK_PROPOSAL: 'ui-state-rollback-proposal'
+ ROLLBACK_PROPOSAL: 'ui-state-rollback-proposal',
+ ERROR: 'ui-state-error',
+ },
+
+ 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;
+
$('powerwash-help-link').addEventListener('click', function(event) {
dzhioev (left Google) 2015/02/11 12:38:29 this.declareUserAction($('powerwash-help-link'),
merkulova 2015/02/11 15:07:17 Done.
- chrome.send('resetOnLearnMore');
+ self.send(login.Screen.CALLBACK_USER_ACTED,
+ USER_ACTION_LEARN_MORE_PRESSED);
});
+
+ 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();
+ }
+ );
},
/**
@@ -43,12 +95,14 @@ login.createScreen('ResetScreen', 'reset', function() {
* @type {array} Array of Buttons.
*/
get buttons() {
+ var self = this;
var buttons = [];
var restartButton = this.ownerDocument.createElement('button');
restartButton.id = 'reset-restart-button';
restartButton.textContent = loadTimeData.getString('resetButtonRestart');
restartButton.addEventListener('click', function(e) {
dzhioev (left Google) 2015/02/11 12:38:29 Use declareUserAction
merkulova 2015/02/11 15:07:17 Done.
- chrome.send('restartOnReset');
+ self.send(login.Screen.CALLBACK_USER_ACTED,
+ USER_ACTION_RESTART_PRESSED);
e.stopPropagation();
});
buttons.push(restartButton);
@@ -62,9 +116,10 @@ login.createScreen('ResetScreen', 'reset', function() {
// change view to confirmational
reset.ConfirmResetOverlay.getInstance().initializePage();
- var resetScreen = $('reset');
- resetScreen.isConfirmational = true;
- chrome.send('showConfirmationOnReset');
+ self.context.set(CONTEXT_KEY_IS_CONFIRMATIONAL_VIEW, true);
dzhioev (left Google) 2015/02/11 12:38:29 This should be done on C++ side as a reaction on U
merkulova 2015/02/11 15:07:17 Done.
dzhioev (left Google) 2015/02/12 12:51:58 Nothing has changed.
merkulova 2015/02/12 13:37:37 Sorry, missed the change.
+ self.commitContextChanges();
+ self.send(login.Screen.CALLBACK_USER_ACTED,
+ USER_ACTION_SHOW_CONFIRMATION);
e.stopPropagation();
});
buttons.push(toConfirmButton);
@@ -73,7 +128,7 @@ login.createScreen('ResetScreen', 'reset', function() {
cancelButton.id = 'reset-cancel-button';
cancelButton.textContent = loadTimeData.getString('cancelButton');
dzhioev (left Google) 2015/02/11 12:38:29 Use declareUserAction
merkulova 2015/02/11 15:07:17 Done.
cancelButton.addEventListener('click', function(e) {
- chrome.send('cancelOnReset');
+ self.send(login.Screen.CALLBACK_USER_ACTED, USER_ACTION_CANCEL_RESET);
e.stopPropagation();
});
buttons.push(cancelButton);
@@ -86,9 +141,11 @@ login.createScreen('ResetScreen', 'reset', function() {
*/
get defaultControl() {
// choose
- if (this.needRestart)
+ if (this.context.get(CONTEXT_KEY_SCREEN_STATE,
+ this.RESET_SCREEN_STATE.RESTART_REQUIRED) ==
+ this.RESET_SCREEN_STATE.RESTART_REQUIRED)
return $('reset-restart-button');
- if (this.isConfirmational)
+ if (this.context.get(CONTEXT_KEY_IS_CONFIRMATIONAL_VIEW, false))
return $('reset-confirm-commit');
return $('reset-toconfirm-button');
},
@@ -101,7 +158,7 @@ login.createScreen('ResetScreen', 'reset', function() {
reset.ConfirmResetOverlay.getInstance().handleDismiss_();
return;
}
- chrome.send('cancelOnReset');
+ this.send(login.Screen.CALLBACK_USER_ACTED, USER_ACTION_CANCEL_RESET);
},
/**
@@ -109,80 +166,55 @@ login.createScreen('ResetScreen', 'reset', function() {
* @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.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.');
- }
- },
-
- updateViewOnRollbackCall: function() {
- this.setDialogView_(this.RESET_SCREEN_UI_STATE.REVERT_PROMISE);
- announceAccessibleMessage(
- loadTimeData.getString('resetRevertSpinnerMessage'));
+ 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);
},
- showRollbackOption: function() {
- if (this.rollbackChecked || this.isConfirmational)
+ setRollbackOptionView: function() {
+ if (this.context.get(CONTEXT_KEY_IS_CONFIRMATIONAL_VIEW, false))
return;
- $('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)
+ if (this.context.get(CONTEXT_KEY_SCREEN_STATE) !=
+ this.RESET_SCREEN_STATE.POWERWASH_PROPOSAL)
return;
- $('reset-toconfirm-button').textContent = loadTimeData.getString(
- 'resetButtonPowerwash');
- this.setDialogView_(this.RESET_SCREEN_UI_STATE.POWERWASH_PROPOSAL);
- this.rollbackChecked = false;
+ 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_();
}
};
});

Powered by Google App Engine
This is Rietveld 408576698