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

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

Issue 896003002: Use the local user's email when connecting to It2MeHelpeeChannel (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@HRD_V2Auth
Patch Set: Created 5 years, 11 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/it2me_helpee_channel.js
diff --git a/remoting/webapp/crd/js/it2me_helpee_channel.js b/remoting/webapp/crd/js/it2me_helpee_channel.js
index 97a14c24eb065a8d5c524aeb284bf39663f64841..db09f860bbcf6eca36fe0af9444a444b825abbb5 100644
--- a/remoting/webapp/crd/js/it2me_helpee_channel.js
+++ b/remoting/webapp/crd/js/it2me_helpee_channel.js
@@ -249,33 +249,26 @@ remoting.It2MeHelpeeChannel.prototype.onHangoutDisconnect_ = function() {
*/
remoting.It2MeHelpeeChannel.prototype.handleConnect_ =
function(message) {
- var email = getStringAttr(message, 'email');
var bounds =
/** @type {Bounds} */ (getObjectAttr(message, 'hangoutBounds', null));
- if (!email) {
- throw new Error('Missing required parameter: email');
- }
-
if (this.hostState_ !== remoting.HostSession.State.UNKNOWN) {
throw new Error('An existing connection is in progress.');
}
var that = this;
- this.showConfirmDialog_(bounds).then(
- this.initializeHost_.bind(this)
- ).then(
- this.fetchOAuthToken_.bind(this)
- ).then(
- /** @type {function(*):void} */(this.connectToHost_.bind(this, email))
- ).catch(
- /** @param {*} reason */
- function(reason) {
- var error = /** @type {Error} */ (reason);
- that.sendErrorResponse_(message, error);
- that.dispose();
- }
- );
+ this.showConfirmDialog_(bounds)
+ .then(this.initializeHost_.bind(this))
+ .then(this.fetchOAuthToken_.bind(this))
+ .then(this.fetchEmail_.bind(this))
+ /** @param {{email:string, token:string}|Promise} result */
kelvinp 2015/02/03 23:11:09 (| Promise) is there to make JSCompile happy as it
+ .then(function(result) {
+ return that.connectToHost_(result.email, result.token);
dcaiafa 2015/02/04 00:12:35 I'm confused. connectToHost_ doesn't return anythi
kelvinp 2015/02/04 00:38:14 Done.
+ /** @param {*} reason */
+ }).catch(function(reason) {
+ that.sendErrorResponse_(message, /** @type {Error} */ (reason));
+ that.dispose();
+ });
};
/**
@@ -368,9 +361,10 @@ remoting.It2MeHelpeeChannel.prototype.fetchOAuthToken_ = function() {
if (base.isAppsV2()) {
/**
* @param {function(*=):void} resolve
+ * @param {function(*=):void} reject
*/
- return new Promise(function(resolve){
- chrome.identity.getAuthToken({'interactive': true}, resolve);
+ return new Promise(function(resolve, reject){
+ remoting.identity.callWithToken(resolve, reject);
});
} else {
/**
@@ -378,24 +372,41 @@ remoting.It2MeHelpeeChannel.prototype.fetchOAuthToken_ = function() {
* @param {function(*=):void} reject
*/
return new Promise(function(resolve, reject) {
- /** @type {remoting.OAuth2} */
- var oauth2 = new remoting.OAuth2();
/** @param {remoting.Error} error */
var onError = function(error) {
if (error === remoting.Error.NOT_AUTHENTICATED) {
- oauth2.doAuthRedirect(function() {
- oauth2.callWithToken(resolve, reject);
+ remoting.oauth2.doAuthRedirect(function() {
+ remoting.identity.callWithToken(resolve, reject);
});
return;
}
reject(new Error(remoting.Error.NOT_AUTHENTICATED));
};
- oauth2.callWithToken(resolve, onError);
+ remoting.identity.callWithToken(resolve, onError);
});
}
};
/**
+ * @param {string|Promise} token
kelvinp 2015/02/03 23:11:09 (| Promise) is there to make JSCompile happy as it
+ * @return {Promise} Promise that resolves with the access token and the email
+ * of the user.
+ */
+remoting.It2MeHelpeeChannel.prototype.fetchEmail_ = function(token) {
+ /**
+ * @param {function(*=):void} resolve
+ * @param {function(*=):void} reject
+ */
+ return new Promise(function(resolve, reject){
+ /** @param {string} email */
+ function onEmail (email) {
+ resolve({ email: email, token: token });
+ }
+ remoting.identity.getEmail(onEmail, reject);
+ });
+};
+
+/**
* Connects to the It2Me Native Messaging Host and retrieves the access code
* in the |onHostStateChanged_| callback.
*

Powered by Google App Engine
This is Rietveld 408576698