diff options
Diffstat (limited to 'chromium/chrome/browser/resources/chromeos/login/oobe_screen_reset.js')
-rw-r--r-- | chromium/chrome/browser/resources/chromeos/login/oobe_screen_reset.js | 113 |
1 files changed, 105 insertions, 8 deletions
diff --git a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_reset.js b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_reset.js index e37989d3525..116d66d8de0 100644 --- a/chromium/chrome/browser/resources/chromeos/login/oobe_screen_reset.js +++ b/chromium/chrome/browser/resources/chromeos/login/oobe_screen_reset.js @@ -3,11 +3,28 @@ // found in the LICENSE file. /** - * @fileoverview Oobe reset screen implementation. + * @fileoverview Device reset screen implementation. */ login.createScreen('ResetScreen', 'reset', function() { return { + + EXTERNAL_API: [ + 'updateViewOnRollbackCall' + ], + + /** @override */ + decorate: function() { + $('reset-powerwash-help-link-on-rollback').addEventListener( + 'click', function(event) { + chrome.send('resetOnLearnMore'); + }); + $('powerwash-help-link').addEventListener( + 'click', function(event) { + chrome.send('resetOnLearnMore'); + }); + }, + /** * Header text of the screen. * @type {string} @@ -22,12 +39,15 @@ login.createScreen('ResetScreen', 'reset', function() { */ get buttons() { var buttons = []; - var resetButton = this.ownerDocument.createElement('button'); resetButton.id = 'reset-button'; - resetButton.textContent = loadTimeData.getString('resetButton'); + resetButton.textContent = ''; resetButton.addEventListener('click', function(e) { - chrome.send('resetOnReset'); + if ($('reset').needRestart) + chrome.send('restartOnReset', [$('reset-rollback-checkbox').checked]); + else + chrome.send('powerwashOnReset', + [$('reset-rollback-checkbox').checked]); e.stopPropagation(); }); buttons.push(resetButton); @@ -36,7 +56,7 @@ login.createScreen('ResetScreen', 'reset', function() { cancelButton.id = 'reset-cancel-button'; cancelButton.textContent = loadTimeData.getString('cancelButton'); cancelButton.addEventListener('click', function(e) { - chrome.send('resetOnCancel'); + chrome.send('cancelOnReset'); e.stopPropagation(); }); buttons.push(cancelButton); @@ -48,15 +68,92 @@ login.createScreen('ResetScreen', 'reset', function() { * Returns a control which should receive an initial focus. */ get defaultControl() { - return $('reset-cancel-button'); + return $('reset-button'); }, /** * Cancels the reset and drops the user back to the login screen. */ cancel: function() { - chrome.send('resetOnCancel'); + chrome.send('cancelOnReset'); + }, + + /** + * Event handler that is invoked just before the screen in shown. + * @param {Object} data Screen init payload. + */ + onBeforeShow: function(data) { + if (data === undefined) + return; + this.classList.remove('revert-promise'); + if ('showRestartMsg' in data) + this.setRestartMsg_(data['showRestartMsg']); + if ('showRollbackOption' in data) + this.setRollbackAvailable_(data['showRollbackOption']); + if ('simpleConfirm' in data) { + this.isConfirmational = data['simpleConfirm']; + this.confirmRollback = false; + } + if ('rollbackConfirm' in data) { + this.isConfirmational = data['rollbackConfirm']; + this.confirmRollback = true; + } + + if (this.isConfirmational) { + // Exec after reboot initiated by reset screen. + // Confirmational form of screen. + $('reset-button').textContent = loadTimeData.getString( + 'resetButtonReset'); + if (this.confirmRollback) { + $('reset-warning-msg').textContent = loadTimeData.getString( + 'resetAndRollbackWarningTextConfirmational'); + $('reset-warning-details').textContent = loadTimeData.getString( + 'resetAndRollbackWarningDetailsConfirmational'); + } else { + $('reset-warning-msg').textContent = loadTimeData.getString( + 'resetWarningTextConfirmational'); + $('reset-warning-details').textContent = loadTimeData.getString( + 'resetWarningDetailsConfirmational'); + } + } else { + $('reset-warning-msg').textContent = loadTimeData.getString( + 'resetWarningTextInitial'); + $('reset-warning-details').textContent = loadTimeData.getString( + 'resetWarningDetailsInitial'); + if (this.needRestart) { + $('reset-button').textContent = loadTimeData.getString( + 'resetButtonRelaunch'); + } else { + $('reset-button').textContent = loadTimeData.getString( + 'resetButtonPowerwash'); + } + } + }, + + /** + * Sets restart necessity for the screen. + * @param {bool} need_restart. If restart required before reset. + * @private + */ + setRestartMsg_: function(need_restart) { + this.classList.toggle('norestart', !need_restart); + this.needRestart = need_restart; + }, + + /** + * Sets rollback availability for the screen. + * @param {bool} can_rollback. If Rollback is available on reset screen. + * @private + */ + setRollbackAvailable_: function(show_rollback) { + this.classList.toggle('norollback', !show_rollback); + this.showRollback = show_rollback; + }, + + updateViewOnRollbackCall: function() { + this.classList.add('revert-promise'); + announceAccessibleMessage( + loadTimeData.getString('resetRevertSpinnerMessage')); } }; }); - |