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

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

Issue 981723003: Add application pre-authorization. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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: remoting/webapp/crd/js/identity.js
diff --git a/remoting/webapp/crd/js/identity.js b/remoting/webapp/crd/js/identity.js
index dfa7f987ab2dd87926935d67d8a9b5323768bd2d..b65f37512b836be829dbce1204b02545af5c708f 100644
--- a/remoting/webapp/crd/js/identity.js
+++ b/remoting/webapp/crd/js/identity.js
@@ -6,17 +6,20 @@
* @fileoverview
* Wrapper class for Chrome's identity API.
*/
-
-'use strict';
-
/** @suppress {duplicate} */
var remoting = remoting || {};
+(function(){
+
+'use strict';
+
/**
* @type {remoting.Identity}
*/
remoting.identity = null;
+var USER_CANCELLED = 'The user did not approve access.';
+
/**
* @param {remoting.Identity.ConsentDialog=} opt_consentDialog
* @constructor
@@ -24,12 +27,14 @@ remoting.identity = null;
remoting.Identity = function(opt_consentDialog) {
/** @private */
this.consentDialog_ = opt_consentDialog;
- /** @type {string} @private */
+ /** @private {string} */
this.email_ = '';
- /** @type {string} @private */
+ /** @private {string} */
this.fullName_ = '';
/** @type {base.Deferred<string>} */
this.authTokenDeferred_ = null;
+ /** @private {boolean} */
+ this.interactive_ = false;
};
/**
@@ -60,8 +65,8 @@ remoting.Identity.prototype.getToken = function() {
if (this.authTokenDeferred_ == null) {
this.authTokenDeferred_ = new base.Deferred();
chrome.identity.getAuthToken(
- { 'interactive': false },
- that.onAuthComplete_.bind(that, false));
+ { 'interactive': this.interactive_ },
+ this.onAuthComplete_.bind(this));
}
return this.authTokenDeferred_.promise();
};
@@ -162,12 +167,10 @@ remoting.Identity.prototype.getEmail = function() {
/**
* Callback for the getAuthToken API.
*
- * @param {boolean} interactive The value of the "interactive" parameter to
- * getAuthToken.
* @param {?string} token The auth token, or null if the request failed.
* @private
*/
-remoting.Identity.prototype.onAuthComplete_ = function(interactive, token) {
+remoting.Identity.prototype.onAuthComplete_ = function(token) {
var authTokenDeferred = this.authTokenDeferred_;
// Pass the token to the callback(s) if it was retrieved successfully.
@@ -179,12 +182,14 @@ remoting.Identity.prototype.onAuthComplete_ = function(interactive, token) {
// If not, pass an error back to the callback(s) if we've already prompted the
// user for permission.
- if (interactive) {
+ if (this.interactive_) {
var error_message =
chrome.runtime.lastError ? chrome.runtime.lastError.message
: 'Unknown error.';
console.error(error_message);
kelvinp 2015/03/05 02:12:14 Should we set this.interactive_ to false here? Or
Jamie 2015/03/05 02:31:27 That's intentional. Part of the reason for this ch
- authTokenDeferred.reject(remoting.Error.NOT_AUTHENTICATED);
+ var error = (error_message == USER_CANCELLED) ?
+ remoting.Error.CANCELLED : remoting.Error.NOT_AUTHENTICATED;
Jamie 2015/03/05 01:35:56 courage@, is this the recommended way of determini
Michael Courage 2015/03/05 01:43:55 Sorry, that's still the only way until there is an
+ authTokenDeferred.reject(error);
this.authTokenDeferred_ = null;
return;
}
@@ -195,8 +200,9 @@ remoting.Identity.prototype.onAuthComplete_ = function(interactive, token) {
var showConsentDialog =
(this.consentDialog_) ? this.consentDialog_.show() : Promise.resolve();
showConsentDialog.then(function() {
- chrome.identity.getAuthToken(
- {'interactive': true}, that.onAuthComplete_.bind(that, true));
+ that.interactive_ = true;
+ chrome.identity.getAuthToken({'interactive': that.interactive_},
+ that.onAuthComplete_.bind(that));
});
};
@@ -208,3 +214,5 @@ remoting.Identity.prototype.onAuthComplete_ = function(interactive, token) {
remoting.Identity.prototype.isAuthenticated = function() {
return remoting.identity.email_ !== '';
};
+
+})();
« remoting/webapp/crd/js/desktop_remoting.js ('K') | « remoting/webapp/crd/js/desktop_remoting.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698