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

Unified Diff: chrome/browser/resources/gaia_auth_host/gaia_auth_host.js

Issue 1866813002: Remove StartupUtils::IsWebviewSigninEnabled. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Remove TODO Created 4 years 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/gaia_auth_host/gaia_auth_host.js
diff --git a/chrome/browser/resources/gaia_auth_host/gaia_auth_host.js b/chrome/browser/resources/gaia_auth_host/gaia_auth_host.js
deleted file mode 100644
index 1c3aaa504b05ed4ce28bfd2ce3a3b3db46cfab94..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/gaia_auth_host/gaia_auth_host.js
+++ /dev/null
@@ -1,456 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/**
- * @fileoverview An UI component to host gaia auth extension in an iframe.
- * After the component binds with an iframe, call its {@code load} to start the
- * authentication flow. There are two events would be raised after this point:
- * a 'ready' event when the authentication UI is ready to use and a 'completed'
- * event when the authentication is completed successfully. If caller is
- * interested in the user credentials, they may supply a success callback with
- * {@code load} call. The callback will be invoked when the authentication is
- * completed successfully and with the available credential data.
- */
-
-cr.define('cr.login', function() {
- 'use strict';
-
- /**
- * Base URL of gaia auth extension.
- * @const
- */
- var AUTH_URL_BASE = 'chrome-extension://mfffpogegjflfpflabcdkioaeobkgjik';
-
- /**
- * Auth URL to use for online flow.
- * @const
- */
- var AUTH_URL = AUTH_URL_BASE + '/main.html';
-
- /**
- * Auth URL to use for offline flow.
- * @const
- */
- var OFFLINE_AUTH_URL = AUTH_URL_BASE + '/offline.html';
-
- /**
- * Origin of the gaia sign in page.
- * @const
- */
- var GAIA_ORIGIN = 'https://accounts.google.com';
-
- /**
- * Supported params of auth extension. For a complete list, check out the
- * auth extension's main.js.
- * @type {!Array<string>}
- * @const
- */
- var SUPPORTED_PARAMS = [
- 'gaiaUrl', // Gaia url to use;
- 'gaiaPath', // Gaia path to use without a leading slash;
- 'hl', // Language code for the user interface;
- 'email', // Pre-fill the email field in Gaia UI;
- 'service', // Name of Gaia service;
- 'continueUrl', // Continue url to use;
- 'frameUrl', // Initial frame URL to use. If empty defaults to gaiaUrl.
- 'useEafe', // Whether to use EAFE.
- 'clientId', // Chrome's client id.
- 'constrained' // Whether the extension is loaded in a constrained window;
- ];
-
- /**
- * Supported localized strings. For a complete list, check out the auth
- * extension's offline.js
- * @type {!Array<string>}
- * @const
- */
- var LOCALIZED_STRING_PARAMS = [
- 'stringSignIn',
- 'stringEmail',
- 'stringPassword',
- 'stringEmptyEmail',
- 'stringEmptyPassword',
- 'stringError'
- ];
-
- /**
- * Enum for the authorization mode, must match AuthMode defined in
- * chrome/browser/ui/webui/inline_login_ui.cc.
- * @enum {number}
- */
- var AuthMode = {
- DEFAULT: 0,
- OFFLINE: 1,
- DESKTOP: 2
- };
-
- /**
- * Enum for the auth flow.
- * @enum {number}
- */
- var AuthFlow = {
- GAIA: 0,
- SAML: 1
- };
-
- /**
- * Creates a new gaia auth extension host.
- * @param {HTMLIFrameElement|string} container The iframe element or its id
- * to host the auth extension.
- * @constructor
- * @extends {cr.EventTarget}
- */
- function GaiaAuthHost(container) {
- this.frame_ = typeof container == 'string' ? $(container) : container;
- assert(this.frame_);
- window.addEventListener('message',
- this.onMessage_.bind(this), false);
- }
-
- GaiaAuthHost.prototype = {
- __proto__: cr.EventTarget.prototype,
-
- /**
- * Auth extension params
- * @type {Object}
- */
- authParams_: {},
-
- /**
- * An url to use with {@code reload}.
- * @type {?string}
- * @private
- */
- reloadUrl_: null,
-
- /**
- * Invoked when authentication is completed successfully with credential
- * data. A credential data object looks like this:
- * <pre>
- * {@code
- * {
- * email: 'xx@gmail.com',
- * password: 'xxxx', // May not present
- * authCode: 'x/xx', // May not present
- * authMode: 'x', // Authorization mode, default/offline/desktop.
- * }
- * }
- * </pre>
- * @type {function(Object)}
- * @private
- */
- successCallback_: null,
-
- /**
- * Invoked when the auth flow needs a user to confirm their passwords. This
- * could happen when there are more than one passwords scraped during SAML
- * flow. The embedder of GaiaAuthHost should show an UI to collect a
- * password from user then call GaiaAuthHost.verifyConfirmedPassword to
- * verify. If the password is good, the auth flow continues with success
- * path. Otherwise, confirmPasswordCallback_ is invoked again.
- * @type {function()}
- */
- confirmPasswordCallback_: null,
-
- /**
- * Similar to confirmPasswordCallback_ but is used when there is no
- * password scraped after a success authentication. The authenticated user
- * account is passed to the callback. The embedder should take over the
- * flow and decide what to do next.
- * @type {function(string)}
- */
- noPasswordCallback_: null,
-
- /**
- * Invoked when the authentication flow had to be aborted because content
- * served over an unencrypted connection was detected.
- */
- insecureContentBlockedCallback_: null,
-
- /**
- * Invoked to display an error message to the user when a GAIA error occurs
- * during authentication.
- * @type {function()}
- */
- missingGaiaInfoCallback_: null,
-
- /**
- * Invoked to record that the credentials passing API was used.
- * @type {function()}
- */
- samlApiUsedCallback_: null,
-
- /**
- * The iframe container.
- * @type {HTMLIFrameElement}
- */
- get frame() {
- return this.frame_;
- },
-
- /**
- * Sets confirmPasswordCallback_.
- * @type {function()}
- */
- set confirmPasswordCallback(callback) {
- this.confirmPasswordCallback_ = callback;
- },
-
- /**
- * Sets noPasswordCallback_.
- * @type {function()}
- */
- set noPasswordCallback(callback) {
- this.noPasswordCallback_ = callback;
- },
-
- /**
- * Sets insecureContentBlockedCallback_.
- * @type {function(string)}
- */
- set insecureContentBlockedCallback(callback) {
- this.insecureContentBlockedCallback_ = callback;
- },
-
- /**
- * Sets missingGaiaInfoCallback_.
- * @type {function()}
- */
- set missingGaiaInfoCallback(callback) {
- this.missingGaiaInfoCallback_ = callback;
- },
-
- /**
- * Sets samlApiUsedCallback_.
- * @type {function()}
- */
- set samlApiUsedCallback(callback) {
- this.samlApiUsedCallback_ = callback;
- },
-
- /**
- * Loads the auth extension.
- * @param {AuthMode} authMode Authorization mode.
- * @param {Object} data Parameters for the auth extension. See the auth
- * extension's main.js for all supported params and their defaults.
- * @param {function(Object)} successCallback A function to be called when
- * the authentication is completed successfully. The callback is
- * invoked with a credential object.
- */
- load: function(authMode, data, successCallback) {
- var params = {};
-
- var populateParams = function(nameList, values) {
- if (!values)
- return;
-
- for (var i in nameList) {
- var name = nameList[i];
- if (values[name])
- params[name] = values[name];
- }
- };
-
- populateParams(SUPPORTED_PARAMS, data);
- populateParams(LOCALIZED_STRING_PARAMS, data.localizedStrings);
- params['needPassword'] = true;
-
- var url;
- switch (authMode) {
- case AuthMode.OFFLINE:
- url = OFFLINE_AUTH_URL;
- break;
- case AuthMode.DESKTOP:
- url = AUTH_URL;
- params['desktopMode'] = true;
- break;
- default:
- url = AUTH_URL;
- }
-
- this.authParams_ = params;
- this.reloadUrl_ = url;
- this.successCallback_ = successCallback;
-
- this.reload();
- },
-
- /**
- * Reloads the auth extension.
- */
- reload: function() {
- this.frame_.src = this.reloadUrl_;
- this.authFlow = AuthFlow.GAIA;
- },
-
- /**
- * Verifies the supplied password by sending it to the auth extension,
- * which will then check if it matches the scraped passwords.
- * @param {string} password The confirmed password that needs verification.
- */
- verifyConfirmedPassword: function(password) {
- var msg = {
- method: 'verifyConfirmedPassword',
- password: password
- };
- this.frame_.contentWindow.postMessage(msg, AUTH_URL_BASE);
- },
-
- /**
- * Invoked to process authentication success.
- * @param {Object} credentials Credential object to pass to success
- * callback.
- * @private
- */
- onAuthSuccess_: function(credentials) {
- if (this.successCallback_)
- this.successCallback_(credentials);
- cr.dispatchSimpleEvent(this, 'completed');
- },
-
- /**
- * Checks if message comes from the loaded authentication extension.
- * @param {Object} e Payload of the received HTML5 message.
- * @type {boolean}
- */
- isAuthExtMessage_: function(e) {
- return this.frame_.src &&
- this.frame_.src.startsWith(e.origin) &&
- e.source == this.frame_.contentWindow;
- },
-
- /**
- * Event handler that is invoked when HTML5 message is received.
- * @param {object} e Payload of the received HTML5 message.
- */
- onMessage_: function(e) {
- var msg = e.data;
-
- if (!this.isAuthExtMessage_(e))
- return;
-
- if (msg.method == 'loginUIDOMContentLoaded') {
- this.frame_.contentWindow.postMessage(this.authParams_, AUTH_URL_BASE);
- return;
- }
-
- if (msg.method == 'loginUILoaded') {
- cr.dispatchSimpleEvent(this, 'ready');
- return;
- }
-
- if (/^complete(Login|Authentication)$|^offlineLogin$/.test(msg.method)) {
- if (!msg.email && !this.email_ && !msg.skipForNow) {
- var msg = {method: 'redirectToSignin'};
- this.frame_.contentWindow.postMessage(msg, AUTH_URL_BASE);
- return;
- }
- this.onAuthSuccess_({email: msg.email,
- password: msg.password,
- gaiaId: msg.gaiaId,
- useOffline: msg.method == 'offlineLogin',
- usingSAML: msg.usingSAML || false,
- chooseWhatToSync: msg.chooseWhatToSync,
- skipForNow: msg.skipForNow || false,
- sessionIndex: msg.sessionIndex || ''});
- return;
- }
-
- if (msg.method == 'completeAuthenticationAuthCodeOnly') {
- if (!msg.authCode) {
- console.error(
- 'GaiaAuthHost: completeAuthentication without auth code.');
- var msg = {method: 'redirectToSignin'};
- this.frame_.contentWindow.postMessage(msg, AUTH_URL_BASE);
- return;
- }
- this.onAuthSuccess_({authCodeOnly: true, authCode: msg.authCode});
- return;
- }
-
- if (msg.method == 'confirmPassword') {
- if (this.confirmPasswordCallback_)
- this.confirmPasswordCallback_(msg.email, msg.passwordCount);
- else
- console.error('GaiaAuthHost: Invalid confirmPasswordCallback_.');
- return;
- }
-
- if (msg.method == 'noPassword') {
- if (this.noPasswordCallback_)
- this.noPasswordCallback_(msg.email);
- else
- console.error('GaiaAuthHost: Invalid noPasswordCallback_.');
- return;
- }
-
- if (msg.method == 'authPageLoaded') {
- this.authDomain = msg.domain;
- this.authFlow = msg.isSAML ? AuthFlow.SAML : AuthFlow.GAIA;
- return;
- }
-
- if (msg.method == 'resetAuthFlow') {
- this.authFlow = AuthFlow.GAIA;
- return;
- }
-
- if (msg.method == 'insecureContentBlocked') {
- if (this.insecureContentBlockedCallback_) {
- this.insecureContentBlockedCallback_(msg.url);
- } else {
- console.error(
- 'GaiaAuthHost: Invalid insecureContentBlockedCallback_.');
- }
- return;
- }
-
- if (msg.method == 'switchToFullTab') {
- chrome.send('switchToFullTab', [msg.url]);
- return;
- }
-
- if (msg.method == 'missingGaiaInfo') {
- if (this.missingGaiaInfoCallback_) {
- this.missingGaiaInfoCallback_();
- } else {
- console.error('GaiaAuthHost: Invalid missingGaiaInfoCallback_.');
- }
- return;
- }
-
- if (msg.method == 'samlApiUsed') {
- if (this.samlApiUsedCallback_) {
- this.samlApiUsedCallback_();
- } else {
- console.error('GaiaAuthHost: Invalid samlApiUsedCallback_.');
- }
- return;
- }
-
- console.error('Unknown message method=' + msg.method);
- }
- };
-
- /**
- * The domain name of the current auth page.
- * @type {string}
- */
- cr.defineProperty(GaiaAuthHost, 'authDomain');
-
- /**
- * The current auth flow of the hosted gaia_auth extension.
- * @type {AuthFlow}
- */
- cr.defineProperty(GaiaAuthHost, 'authFlow');
-
- GaiaAuthHost.SUPPORTED_PARAMS = SUPPORTED_PARAMS;
- GaiaAuthHost.LOCALIZED_STRING_PARAMS = LOCALIZED_STRING_PARAMS;
- GaiaAuthHost.AuthMode = AuthMode;
- GaiaAuthHost.AuthFlow = AuthFlow;
-
- return {
- GaiaAuthHost: GaiaAuthHost
- };
-});
« no previous file with comments | « chrome/browser/resources/chromeos/login/oobe.html ('k') | chrome/browser/ui/webui/chromeos/login/oobe_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698