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

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

Issue 872633008: Migrate (Network)ErrorScreen to ScreenContext (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nit 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/screen_error_message.js
diff --git a/chrome/browser/resources/chromeos/login/screen_error_message.js b/chrome/browser/resources/chromeos/login/screen_error_message.js
index d0c47e5f0d9784d4b62e11661e6cb78558c90dd9..98686d251d749b8218ba426d3c4ccdfc5c2fc7df 100644
--- a/chrome/browser/resources/chromeos/login/screen_error_message.js
+++ b/chrome/browser/resources/chromeos/login/screen_error_message.js
@@ -7,6 +7,20 @@
*/
login.createScreen('ErrorMessageScreen', 'error-message', function() {
+ var CONTEXT_KEY_ERROR_STATE_CODE = 'error-state-code';
+ var CONTEXT_KEY_ERROR_STATE_NETWORK = 'error-state-network';
+ var CONTEXT_KEY_GUEST_SIGNIN_ALLOWED = 'guest-signin-allowed';
+ var CONTEXT_KEY_OFFLINE_SIGNIN_ALLOWED = 'offline-signin-allowed';
+ var CONTEXT_KEY_SHOW_CONNECTING_INDICATOR = 'show-connecting-indicator';
+ var CONTEXT_KEY_UI_STATE = 'ui-state';
+
+ var USER_ACTION_CONFIGURE_CERTS = 'configure-certs';
+ var USER_ACTION_DIAGNOSE = 'diagnose';
+ var USER_ACTION_LAUNCH_OOBE_GUEST = 'launch-oobe-guest';
+ var USER_ACTION_LOCAL_STATE_POWERWASH = 'local-state-error-powerwash';
+ var USER_ACTION_REBOOT = 'reboot';
+ var USER_ACTION_SHOW_CAPTIVE_PORTAL = 'show-captive-portal';
+
// Link which starts guest session for captive portal fixing.
/** @const */ var FIX_CAPTIVE_PORTAL_ID = 'captive-portal-fix-link';
@@ -79,12 +93,38 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
decorate: function() {
cr.ui.DropDown.decorate($('offline-networks-list'));
this.updateLocalizedContent();
+
+ var self = this;
+ this.context.addObserver(CONTEXT_KEY_ERROR_STATE_CODE,
+ function(error_state) {
+ self.setErrorState(error_state);
+ });
+ this.context.addObserver(CONTEXT_KEY_ERROR_STATE_NETWORK,
+ function(network) {
+ self.setNetwork_(network);
+ });
+ this.context.addObserver(CONTEXT_KEY_GUEST_SIGNIN_ALLOWED,
+ function(allowed) {
+ self.allowGuestSignin(allowed);
+ });
+ this.context.addObserver(CONTEXT_KEY_OFFLINE_SIGNIN_ALLOWED,
+ function(allowed) {
+ self.allowOfflineLogin(allowed);
+ });
+ this.context.addObserver(CONTEXT_KEY_SHOW_CONNECTING_INDICATOR,
+ function(show) {
+ self.showConnectingIndicator(show);
+ });
+ this.context.addObserver(CONTEXT_KEY_UI_STATE, function(ui_state) {
+ self.setUIState(ui_state);
+ });
},
/**
* Updates localized content of the screen that is not updated via template.
*/
updateLocalizedContent: function() {
+ var self = this;
$('auto-enrollment-offline-message-text').innerHTML =
loadTimeData.getStringF(
'autoEnrollmentOfflineMessageBody',
@@ -102,7 +142,8 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
'<a id="' + FIX_CAPTIVE_PORTAL_ID + '" class="signin-link" href="#">',
'</a>');
$(FIX_CAPTIVE_PORTAL_ID).onclick = function() {
- chrome.send('showCaptivePortal');
+ self.send(login.Screen.CALLBACK_USER_ACTED,
+ USER_ACTION_SHOW_CAPTIVE_PORTAL);
};
$('captive-portal-proxy-message-text').innerHTML =
@@ -139,15 +180,18 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
'guestSignin',
'<a id="error-guest-signin-link" class="signin-link" href="#">',
'</a>');
- $('error-guest-signin-link').onclick = this.launchGuestSession_;
+ $('error-guest-signin-link').addEventListener(
+ 'click',
+ this.launchGuestSession_.bind(this));
$('error-guest-signin-fix-network').innerHTML = loadTimeData.getStringF(
'guestSigninFixNetwork',
'<a id="error-guest-fix-network-signin-link" class="signin-link" ' +
'href="#">',
'</a>');
- $('error-guest-fix-network-signin-link').onclick =
- this.launchGuestSession_;
+ $('error-guest-fix-network-signin-link').addEventListener(
+ 'click',
+ this.launchGuestSession_.bind(this));
$('error-offline-login').innerHTML = loadTimeData.getStringF(
'offlineLogin',
@@ -175,18 +219,6 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
onBeforeShow: function(data) {
cr.ui.Oobe.clearErrors();
cr.ui.DropDown.show('offline-networks-list', false);
- if (data === undefined)
- return;
- if ('uiState' in data)
- this.setUIState(data['uiState']);
- if ('errorState' in data && 'network' in data)
- this.setErrorState(data['errorState'], data['network']);
- if ('guestSigninAllowed' in data)
- this.allowGuestSignin(data['guestSigninAllowed']);
- if ('offlineLoginAllowed' in data)
- this.allowOfflineLogin(data['offlineLoginAllowed']);
- if ('showConnectingIndicator' in data)
- this.showConnectingIndicator(data['showConnectingIndicator']);
},
/**
@@ -202,12 +234,13 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
*/
get buttons() {
var buttons = [];
+ var self = this;
var rebootButton = this.ownerDocument.createElement('button');
rebootButton.textContent = loadTimeData.getString('rebootButton');
rebootButton.classList.add('show-with-ui-state-kiosk-mode');
rebootButton.addEventListener('click', function(e) {
- chrome.send('rebootButtonClicked');
+ self.send(login.Screen.CALLBACK_USER_ACTED, USER_ACTION_REBOOT);
e.stopPropagation();
});
buttons.push(rebootButton);
@@ -216,7 +249,7 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
diagnoseButton.textContent = loadTimeData.getString('diagnoseButton');
diagnoseButton.classList.add('show-with-ui-state-kiosk-mode');
diagnoseButton.addEventListener('click', function(e) {
- chrome.send('diagnoseButtonClicked');
+ self.send(login.Screen.CALLBACK_USER_ACTED, USER_ACTION_DIAGNOSE);
e.stopPropagation();
});
buttons.push(diagnoseButton);
@@ -225,7 +258,8 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
certsButton.textContent = loadTimeData.getString('configureCertsButton');
certsButton.classList.add('show-with-ui-state-kiosk-mode');
certsButton.addEventListener('click', function(e) {
- chrome.send('configureCertsClicked');
+ self.send(login.Screen.CALLBACK_USER_ACTED,
+ USER_ACTION_CONFIGURE_CERTS);
e.stopPropagation();
});
buttons.push(certsButton);
@@ -261,7 +295,8 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
loadTimeData.getString('localStateErrorPowerwashButton');
powerwashButton.classList.add('show-with-ui-state-local-state-error');
powerwashButton.addEventListener('click', function(e) {
- chrome.send('localStateErrorPowerwashButtonClicked');
+ self.send(login.Screen.CALLBACK_USER_ACTED,
+ USER_ACTION_LOCAL_STATE_POWERWASH);
e.stopPropagation();
});
buttons.push(powerwashButton);
@@ -291,17 +326,25 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
/**
* Sets current error state of the screen.
* @param {string} error_state New error state of the screen.
- * @param {string} network Name of the current network
* @private
*/
- setErrorState_: function(error_state, network) {
+ setErrorState_: function(error_state) {
this.classList.remove(this.error_state);
+ this.error_state = error_state;
+ this.classList.add(this.error_state);
+ this.onContentChange_();
+ },
+
+ /**
+ * Sets network.
+ * @param {string} network Name of the current network
+ * @private
+ */
+ setNetwork_: function(network) {
var networkNameElems =
document.getElementsByClassName(CURRENT_NETWORK_NAME_CLASS);
for (var i = 0; i < networkNameElems.length; ++i)
networkNameElems[i].textContent = network;
- this.error_state = error_state;
- this.classList.add(this.error_state);
this.onContentChange_();
},
@@ -318,8 +361,12 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
* @private
*/
launchGuestSession_: function() {
- chrome.send(Oobe.getInstance().isOobeUI() ?
- 'launchOobeGuestSession' : 'launchIncognito');
+ if (Oobe.getInstance().isOobeUI()) {
+ this.send(login.Screen.CALLBACK_USER_ACTED,
+ USER_ACTION_LAUNCH_OOBE_GUEST);
+ } else {
+ chrome.send('launchIncognito');
+ }
},
/**
@@ -352,11 +399,10 @@ login.createScreen('ErrorMessageScreen', 'error-message', function() {
/**
* Sets current error state of the screen.
* @param {number} error_state New error state of the screen.
- * @param {string} network Name of the current network
* @private
*/
- setErrorState: function(error_state, network) {
- this.setErrorState_(ERROR_STATES[error_state], network);
+ setErrorState: function(error_state) {
+ this.setErrorState_(ERROR_STATES[error_state]);
},
/**

Powered by Google App Engine
This is Rietveld 408576698