Chromium Code Reviews| Index: chrome/browser/resources/gaia_auth_host/authenticator.js |
| diff --git a/chrome/browser/resources/gaia_auth_host/authenticator.js b/chrome/browser/resources/gaia_auth_host/authenticator.js |
| index fab0ec4b94729fea836c8c76ce60e7b3d25941fd..c2f9ebe9a839941203b8dbd8ab8bc1b0cf10fc4b 100644 |
| --- a/chrome/browser/resources/gaia_auth_host/authenticator.js |
| +++ b/chrome/browser/resources/gaia_auth_host/authenticator.js |
| @@ -2,7 +2,7 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -<include src="saml_handler.js"> |
| +// <include src="saml_handler.js"> |
| /** |
| * @fileoverview An UI component to authenciate to Chrome. The component hosts |
| @@ -44,20 +44,13 @@ cr.define('cr.login', function() { |
| * chrome/browser/ui/webui/inline_login_ui.cc. |
| * @enum {number} |
| */ |
| - var AuthMode = { |
| - DEFAULT: 0, |
| - OFFLINE: 1, |
| - DESKTOP: 2 |
| - }; |
| + var AuthMode = {DEFAULT: 0, OFFLINE: 1, DESKTOP: 2}; |
| /** |
| * Enum for the authorization type. |
| * @enum {number} |
| */ |
| - var AuthFlow = { |
| - DEFAULT: 0, |
| - SAML: 1 |
| - }; |
| + var AuthFlow = {DEFAULT: 0, SAML: 1}; |
| /** |
| * Supported Authenticator params. |
| @@ -83,15 +76,15 @@ cr.define('cr.login', function() { |
| // not called before dispatching |authCopleted|. |
| // Default is |true|. |
| 'flow', // One of 'default', 'enterprise', or 'theftprotection'. |
|
dschuyler
2017/01/06 02:16:33
Could the formatter align the comments in all of S
Dan Beam
2017/01/06 02:36:50
maybe it could but there's style rules that discou
|
| - 'enterpriseDomain', // Domain in which hosting device is (or should be) |
| - // enrolled. |
| - 'emailDomain', // Value used to prefill domain for email. |
| - 'chromeType', // Type of Chrome OS device, e.g. "chromebox". |
| - 'clientVersion', // Version of the Chrome build. |
| - 'platformVersion', // Version of the OS build. |
| - 'releaseChannel', // Installation channel. |
| - 'endpointGen', // Current endpoint generation. |
| - 'gapsCookie', // GAPS cookie |
| + 'enterpriseDomain', // Domain in which hosting device is (or should be) |
| + // enrolled. |
| + 'emailDomain', // Value used to prefill domain for email. |
| + 'chromeType', // Type of Chrome OS device, e.g. "chromebox". |
| + 'clientVersion', // Version of the Chrome build. |
| + 'platformVersion', // Version of the OS build. |
| + 'releaseChannel', // Installation channel. |
| + 'endpointGen', // Current endpoint generation. |
| + 'gapsCookie', // GAPS cookie |
| // The email fields allow for the following possibilities: |
| // |
| @@ -126,8 +119,7 @@ cr.define('cr.login', function() { |
| this.isLoaded_ = false; |
| this.email_ = null; |
| this.password_ = null; |
| - this.gaiaId_ = null, |
| - this.sessionIndex_ = null; |
| + this.gaiaId_ = null, this.sessionIndex_ = null; |
|
dschuyler
2017/01/06 02:16:33
This looks like a typo in the original file. s/,/
Dan Beam
2017/01/06 02:36:50
yes, it is
|
| this.chooseWhatToSync_ = false; |
| this.skipForNow_ = false; |
| this.authFlow = AuthFlow.DEFAULT; |
| @@ -156,43 +148,32 @@ cr.define('cr.login', function() { |
| this.missingGaiaInfoCallback = null; |
| this.needPassword = true; |
| this.samlHandler_.addEventListener( |
| - 'insecureContentBlocked', |
| - this.onInsecureContentBlocked_.bind(this)); |
| + 'insecureContentBlocked', this.onInsecureContentBlocked_.bind(this)); |
| this.samlHandler_.addEventListener( |
| - 'authPageLoaded', |
| - this.onAuthPageLoaded_.bind(this)); |
| + 'authPageLoaded', this.onAuthPageLoaded_.bind(this)); |
| this.samlHandler_.addEventListener( |
| - 'videoEnabled', |
| - this.onVideoEnabled_.bind(this)); |
| + 'videoEnabled', this.onVideoEnabled_.bind(this)); |
| this.samlHandler_.addEventListener( |
| - 'apiPasswordAdded', |
| - this.onSamlApiPasswordAdded_.bind(this)); |
| + 'apiPasswordAdded', this.onSamlApiPasswordAdded_.bind(this)); |
| this.webview_.addEventListener('droplink', this.onDropLink_.bind(this)); |
| - this.webview_.addEventListener( |
| - 'newwindow', this.onNewWindow_.bind(this)); |
| + this.webview_.addEventListener('newwindow', this.onNewWindow_.bind(this)); |
| this.webview_.addEventListener( |
| 'contentload', this.onContentLoad_.bind(this)); |
| - this.webview_.addEventListener( |
| - 'loadabort', this.onLoadAbort_.bind(this)); |
| - this.webview_.addEventListener( |
| - 'loadstop', this.onLoadStop_.bind(this)); |
| - this.webview_.addEventListener( |
| - 'loadcommit', this.onLoadCommit_.bind(this)); |
| + this.webview_.addEventListener('loadabort', this.onLoadAbort_.bind(this)); |
| + this.webview_.addEventListener('loadstop', this.onLoadStop_.bind(this)); |
| + this.webview_.addEventListener('loadcommit', this.onLoadCommit_.bind(this)); |
| this.webview_.request.onCompleted.addListener( |
| this.onRequestCompleted_.bind(this), |
| - {urls: ['<all_urls>'], types: ['main_frame']}, |
| - ['responseHeaders']); |
| + {urls: ['<all_urls>'], types: ['main_frame']}, ['responseHeaders']); |
| this.webview_.request.onHeadersReceived.addListener( |
| this.onHeadersReceived_.bind(this), |
| {urls: ['<all_urls>'], types: ['main_frame', 'xmlhttprequest']}, |
| ['responseHeaders']); |
| window.addEventListener( |
| 'message', this.onMessageFromWebview_.bind(this), false); |
| - window.addEventListener( |
| - 'focus', this.onFocus_.bind(this), false); |
| - window.addEventListener( |
| - 'popstate', this.onPopState_.bind(this), false); |
| + window.addEventListener('focus', this.onFocus_.bind(this), false); |
| + window.addEventListener('popstate', this.onPopState_.bind(this), false); |
| } |
| Authenticator.prototype = Object.create(cr.EventTarget.prototype); |
| @@ -255,8 +236,8 @@ cr.define('cr.login', function() { |
| this.reloadUrl_ = data.frameUrl || this.initialFrameUrl_; |
| // Don't block insecure content for desktop flow because it lands on |
| // http. Otherwise, block insecure content as long as gaia is https. |
| - this.samlHandler_.blockInsecureContent = authMode != AuthMode.DESKTOP && |
| - this.idpOrigin_.startsWith('https://'); |
| + this.samlHandler_.blockInsecureContent = |
| + authMode != AuthMode.DESKTOP && this.idpOrigin_.startsWith('https://'); |
| this.needPassword = !('needPassword' in data) || data.needPassword; |
| if (this.isNewGaiaFlow) { |
| @@ -292,11 +273,12 @@ cr.define('cr.login', function() { |
| if (data.doSamlRedirect) { |
| var url = this.idpOrigin_ + SAML_REDIRECTION_PATH; |
| url = appendParam(url, 'domain', data.enterpriseDomain); |
| - url = appendParam(url, 'continue', data.gaiaUrl + |
| - 'o/oauth2/programmatic_auth?hl=' + data.hl + |
| - '&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin&' + |
| - 'client_id=' + encodeURIComponent(data.clientId) + |
| - '&access_type=offline'); |
| + url = appendParam( |
| + url, 'continue', data.gaiaUrl + 'o/oauth2/programmatic_auth?hl=' + |
| + data.hl + |
| + '&scope=https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthLogin&' + |
| + 'client_id=' + encodeURIComponent(data.clientId) + |
| + '&access_type=offline'); |
| return url; |
| } |
| @@ -469,8 +451,7 @@ cr.define('cr.login', function() { |
| // URL will contain a source=3 field. |
| var location = decodeURIComponent(header.value); |
| this.chooseWhatToSync_ = !!location.match(/(\?|&)source=3($|&)/); |
| - } else if ( |
| - this.isNewGaiaFlow && headerName == SET_COOKIE_HEADER) { |
| + } else if (this.isNewGaiaFlow && headerName == SET_COOKIE_HEADER) { |
| var headerValue = header.value; |
| if (headerValue.startsWith(OAUTH_CODE_COOKIE + '=')) { |
| this.oauthCode_ = |
| @@ -525,8 +506,8 @@ cr.define('cr.login', function() { |
| for (var i = 0, l = headers.length; i < l; ++i) { |
| if (headers[i].name == COOKIE_HEADER) { |
| - headers[i].value = this.updateCookieValue_(headers[i].value, |
| - GAPS_COOKIE, gapsCookie); |
| + headers[i].value = this.updateCookieValue_( |
| + headers[i].value, GAPS_COOKIE, gapsCookie); |
| found = true; |
| break; |
| } |
| @@ -537,9 +518,7 @@ cr.define('cr.login', function() { |
| } |
| this.gapsCookieSent_ = true; |
| } |
| - return { |
| - requestHeaders: details.requestHeaders |
| - }; |
| + return {requestHeaders: details.requestHeaders}; |
| }; |
| /** |
| @@ -556,19 +535,13 @@ cr.define('cr.login', function() { |
| } |
| // EAFE passes back auth code via message. |
| - if (this.useEafe_ && |
| - typeof e.data == 'object' && |
| + if (this.useEafe_ && typeof e.data == 'object' && |
| e.data.hasOwnProperty('authorizationCode')) { |
| assert(!this.oauthCode_); |
| this.oauthCode_ = e.data.authorizationCode; |
| - this.dispatchEvent( |
| - new CustomEvent('authCompleted', |
| - { |
| - detail: { |
| - authCodeOnly: true, |
| - authCode: this.oauthCode_ |
| - } |
| - })); |
| + this.dispatchEvent(new CustomEvent( |
| + 'authCompleted', |
| + {detail: {authCodeOnly: true, authCode: this.oauthCode_}})); |
| return; |
| } |
| @@ -596,8 +569,7 @@ cr.define('cr.login', function() { |
| this.chooseWhatToSync_ = msg.chooseWhatToSync; |
| // We need to dispatch only first event, before user enters password. |
| - this.dispatchEvent( |
| - new CustomEvent('attemptLogin', {detail: msg.email})); |
| + this.dispatchEvent(new CustomEvent('attemptLogin', {detail: msg.email})); |
| } else if (msg.method == 'dialogShown') { |
| this.dispatchEvent(new Event('dialogShown')); |
| } else if (msg.method == 'dialogHidden') { |
| @@ -625,10 +597,11 @@ cr.define('cr.login', function() { |
| // does not expect it to be called immediately. |
| // TODO(xiyuan): Change to synchronous call when iframe based code |
| // is removed. |
| - var invokeConfirmPassword = (function() { |
| - this.confirmPasswordCallback(this.email_, |
| - this.samlHandler_.scrapedPasswordCount); |
| - }).bind(this); |
| + var invokeConfirmPassword = |
| + (function() { |
| + this.confirmPasswordCallback( |
| + this.email_, this.samlHandler_.scrapedPasswordCount); |
| + }).bind(this); |
| window.setTimeout(invokeConfirmPassword, 0); |
| return; |
| } |
| @@ -683,8 +656,8 @@ cr.define('cr.login', function() { |
| if (this.confirmPasswordCallback) { |
| // Confirm scraped password. The flow follows in |
| // verifyConfirmedPassword. |
| - this.confirmPasswordCallback(this.email_, |
| - this.samlHandler_.scrapedPasswordCount); |
| + this.confirmPasswordCallback( |
| + this.email_, this.samlHandler_.scrapedPasswordCount); |
| return; |
| } |
| } |
| @@ -707,8 +680,9 @@ cr.define('cr.login', function() { |
| * @private |
| */ |
| Authenticator.prototype.onAuthCompleted_ = function() { |
| - assert(this.skipForNow_ || |
| - (this.email_ && this.gaiaId_ && this.sessionIndex_)); |
| + assert( |
| + this.skipForNow_ || |
| + (this.email_ && this.gaiaId_ && this.sessionIndex_)); |
| this.dispatchEvent(new CustomEvent( |
| 'authCompleted', |
| // TODO(rsorokin): get rid of the stub values. |
| @@ -831,8 +805,8 @@ cr.define('cr.login', function() { |
| * @private |
| */ |
| Authenticator.prototype.onLoadAbort_ = function(e) { |
| - this.dispatchEvent(new CustomEvent('loadAbort', |
| - {detail: {error: e.reason, src: e.url}})); |
| + this.dispatchEvent( |
| + new CustomEvent('loadAbort', {detail: {error: e.reason, src: e.url}})); |
| }; |
| /** |
| @@ -847,12 +821,12 @@ cr.define('cr.login', function() { |
| if (this.useEafe_) { |
| // An arbitrary small timeout for delivering the initial message. |
| var EAFE_INITIAL_MESSAGE_DELAY_IN_MS = 500; |
| - window.setTimeout((function() { |
| - var msg = { |
| - 'clientId': this.clientId_ |
| - }; |
| - this.webview_.contentWindow.postMessage(msg, this.idpOrigin_); |
| - }).bind(this), EAFE_INITIAL_MESSAGE_DELAY_IN_MS); |
| + window.setTimeout( |
| + (function() { |
| + var msg = {'clientId': this.clientId_}; |
| + this.webview_.contentWindow.postMessage(msg, this.idpOrigin_); |
| + }).bind(this), |
| + EAFE_INITIAL_MESSAGE_DELAY_IN_MS); |
| } |
| }; |