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

Unified Diff: remoting/webapp/crd/js/oauth2_api_impl.js

Issue 1133913002: [Chromoting] Move shared webapp JS files from crd/js -> base/js (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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
« no previous file with comments | « remoting/webapp/crd/js/oauth2_api.js ('k') | remoting/webapp/crd/js/plugin_settings.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/crd/js/oauth2_api_impl.js
diff --git a/remoting/webapp/crd/js/oauth2_api_impl.js b/remoting/webapp/crd/js/oauth2_api_impl.js
deleted file mode 100644
index de5d9df49e6c25165888c67f2c12705337d22686..0000000000000000000000000000000000000000
--- a/remoting/webapp/crd/js/oauth2_api_impl.js
+++ /dev/null
@@ -1,243 +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
- * OAuth2 API flow implementations.
- */
-
-/** @suppress {duplicate} */
-var remoting = remoting || {};
-
-(function() {
-
-'use strict';
-
-/**
- * @constructor
- * @implements {remoting.OAuth2Api}
- */
-remoting.OAuth2ApiImpl = function() {
-};
-
-/** @private
- * @return {string} OAuth2 token URL.
- */
-remoting.OAuth2ApiImpl.prototype.getOAuth2TokenEndpoint_ = function() {
- return remoting.settings.OAUTH2_BASE_URL + '/token';
-};
-
-/** @private
- * @return {string} OAuth2 userinfo API URL.
- */
-remoting.OAuth2ApiImpl.prototype.getOAuth2ApiUserInfoEndpoint_ = function() {
- return remoting.settings.OAUTH2_API_BASE_URL + '/v1/userinfo';
-};
-
-
-/**
- * Interprets HTTP error responses in authentication XMLHttpRequests.
- *
- * @private
- * @param {number} xhrStatus Status (HTTP response code) of the XMLHttpRequest.
- * @return {!remoting.Error} An error code to be raised.
- */
-remoting.OAuth2ApiImpl.prototype.interpretXhrStatus_ =
- function(xhrStatus) {
- // Return AUTHENTICATION_FAILED by default, so that the user can try to
- // recover from an unexpected failure by signing in again.
- /** @type {!remoting.Error} */
- var error = new remoting.Error(remoting.Error.Tag.AUTHENTICATION_FAILED);
- if (xhrStatus == 400 || xhrStatus == 401 || xhrStatus == 403) {
- error = new remoting.Error(remoting.Error.Tag.AUTHENTICATION_FAILED);
- } else if (xhrStatus == 502 || xhrStatus == 503) {
- error = new remoting.Error(remoting.Error.Tag.SERVICE_UNAVAILABLE);
- } else if (xhrStatus == 0) {
- error = new remoting.Error(remoting.Error.Tag.NETWORK_FAILURE);
- } else {
- console.warn('Unexpected authentication response code: ' + xhrStatus);
- }
- return error;
-};
-
-/**
- * Asynchronously retrieves a new access token from the server.
- *
- * @param {function(string, number): void} onDone Callback to invoke when
- * the access token and expiration time are successfully fetched.
- * @param {function(!remoting.Error):void} onError Callback invoked if an
- * error occurs.
- * @param {string} clientId OAuth2 client ID.
- * @param {string} clientSecret OAuth2 client secret.
- * @param {string} refreshToken OAuth2 refresh token to be redeemed.
- * @return {void} Nothing.
- */
-remoting.OAuth2ApiImpl.prototype.refreshAccessToken = function(
- onDone, onError, clientId, clientSecret, refreshToken) {
- /** @param {!remoting.Xhr.Response} response */
- var onResponse = function(response) {
- if (response.status == 200) {
- try {
- // Don't use base.jsonParseSafe here unless you also include base.js,
- // otherwise this won't work from the OAuth trampoline.
- // TODO(jamiewalch): Fix this once we're no longer using the trampoline.
- var tokens = JSON.parse(response.getText());
- onDone(tokens['access_token'], tokens['expires_in']);
- } catch (/** @type {Error} */ err) {
- console.error('Invalid "token" response from server:', err);
- onError(remoting.Error.unexpected());
- }
- } else {
- console.error('Failed to refresh token. Status: ' + response.status +
- ' response: ' + response.getText());
- onError(remoting.Error.fromHttpStatus(response.status));
- }
- };
-
- new remoting.Xhr({
- method: 'POST',
- url: this.getOAuth2TokenEndpoint_(),
- formContent: {
- 'client_id': clientId,
- 'client_secret': clientSecret,
- 'refresh_token': refreshToken,
- 'grant_type': 'refresh_token'
- }
- }).start().then(onResponse);
-};
-
-/**
- * Asynchronously exchanges an authorization code for access and refresh tokens.
- *
- * @param {function(string, string, number): void} onDone Callback to
- * invoke when the refresh token, access token and access token expiration
- * time are successfully fetched.
- * @param {function(!remoting.Error):void} onError Callback invoked if an
- * error occurs.
- * @param {string} clientId OAuth2 client ID.
- * @param {string} clientSecret OAuth2 client secret.
- * @param {string} code OAuth2 authorization code.
- * @param {string} redirectUri Redirect URI used to obtain this code.
- * @return {void} Nothing.
- */
-remoting.OAuth2ApiImpl.prototype.exchangeCodeForTokens = function(
- onDone, onError, clientId, clientSecret, code, redirectUri) {
- /** @param {!remoting.Xhr.Response} response */
- var onResponse = function(response) {
- if (response.status == 200) {
- try {
- // Don't use base.jsonParseSafe here unless you also include base.js,
- // otherwise this won't work from the OAuth trampoline.
- // TODO(jamiewalch): Fix this once we're no longer using the trampoline.
- var tokens = JSON.parse(response.getText());
- onDone(tokens['refresh_token'],
- tokens['access_token'], tokens['expires_in']);
- } catch (/** @type {Error} */ err) {
- console.error('Invalid "token" response from server:', err);
- onError(remoting.Error.unexpected());
- }
- } else {
- console.error('Failed to exchange code for token. Status: ' +
- response.status + ' response: ' + response.getText());
- onError(remoting.Error.fromHttpStatus(response.status));
- }
- };
-
- new remoting.Xhr({
- method: 'POST',
- url: this.getOAuth2TokenEndpoint_(),
- formContent: {
- 'client_id': clientId,
- 'client_secret': clientSecret,
- 'redirect_uri': redirectUri,
- 'code': code,
- 'grant_type': 'authorization_code'
- }
- }).start().then(onResponse);
-};
-
-/**
- * Get the user's email address.
- *
- * @param {function(string):void} onDone Callback invoked when the email
- * address is available.
- * @param {function(!remoting.Error):void} onError Callback invoked if an
- * error occurs.
- * @param {string} token Access token.
- * @return {void} Nothing.
- */
-remoting.OAuth2ApiImpl.prototype.getEmail = function(onDone, onError, token) {
- /** @param {!remoting.Xhr.Response} response */
- var onResponse = function(response) {
- if (response.status == 200) {
- try {
- var result = JSON.parse(response.getText());
- onDone(result['email']);
- } catch (/** @type {Error} */ err) {
- console.error('Invalid "userinfo" response from server:', err);
- onError(remoting.Error.unexpected());
- }
- } else {
- console.error('Failed to get email. Status: ' + response.status +
- ' response: ' + response.getText());
- onError(remoting.Error.fromHttpStatus(response.status));
- }
- };
- new remoting.Xhr({
- method: 'GET',
- url: this.getOAuth2ApiUserInfoEndpoint_(),
- oauthToken: token
- }).start().then(onResponse);
-};
-
-/**
- * Get the user's email address and full name.
- *
- * @param {function(string, string):void} onDone Callback invoked when the email
- * address and full name are available.
- * @param {function(!remoting.Error):void} onError Callback invoked if an
- * error occurs.
- * @param {string} token Access token.
- * @return {void} Nothing.
- */
-remoting.OAuth2ApiImpl.prototype.getUserInfo =
- function(onDone, onError, token) {
- /** @param {!remoting.Xhr.Response} response */
- var onResponse = function(response) {
- if (response.status == 200) {
- try {
- var result = JSON.parse(response.getText());
- onDone(result['email'], result['name']);
- } catch (/** @type {Error} */ err) {
- console.error('Invalid "userinfo" response from server:', err);
- onError(remoting.Error.unexpected());
- }
- } else {
- console.error('Failed to get user info. Status: ' + response.status +
- ' response: ' + response.getText());
- onError(remoting.Error.fromHttpStatus(response.status));
- }
- };
- new remoting.Xhr({
- method: 'GET',
- url: this.getOAuth2ApiUserInfoEndpoint_(),
- oauthToken: token
- }).start().then(onResponse);
-};
-
-/** @returns {!remoting.Error} */
-function fromHttpStatus(/** number */ status) {
- var error = remoting.Error.fromHttpStatus(status);
- if (error === remoting.Error.unexpected()) {
- // Return AUTHENTICATION_FAILED by default, so that the user can try to
- // recover from an unexpected failure by signing in again.
- return new remoting.Error(remoting.Error.Tag.AUTHENTICATION_FAILED);
- }
- return error;
-}
-
-/** @type {remoting.OAuth2Api} */
-remoting.oauth2Api = new remoting.OAuth2ApiImpl();
-
-})();
« no previous file with comments | « remoting/webapp/crd/js/oauth2_api.js ('k') | remoting/webapp/crd/js/plugin_settings.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698