| Index: remoting/webapp/crd/js/session_connector_impl.js
|
| diff --git a/remoting/webapp/crd/js/session_connector_impl.js b/remoting/webapp/crd/js/session_connector_impl.js
|
| index dfe31257ec8827ec643fa25dee66869d8f8ade64..a4002b4eb8b439ed95cc98feecc56f53c38ffd41 100644
|
| --- a/remoting/webapp/crd/js/session_connector_impl.js
|
| +++ b/remoting/webapp/crd/js/session_connector_impl.js
|
| @@ -117,15 +117,6 @@ remoting.SessionConnectorImpl = function(clientContainer, onConnected, onError,
|
| */
|
| remoting.SessionConnectorImpl.prototype.reset = function() {
|
| /**
|
| - * String used to identify the host to which to connect. For IT2Me, this is
|
| - * the first 7 digits of the access code; for Me2Me it is the host identifier.
|
| - *
|
| - * @type {string}
|
| - * @private
|
| - */
|
| - this.hostId_ = '';
|
| -
|
| - /**
|
| * For paired connections, the client id of this device, issued by the host.
|
| *
|
| * @type {string}
|
| @@ -152,16 +143,10 @@ remoting.SessionConnectorImpl.prototype.reset = function() {
|
| this.passPhrase_ = '';
|
|
|
| /**
|
| - * @type {string}
|
| - * @private
|
| - */
|
| - this.hostJid_ = '';
|
| -
|
| - /**
|
| - * @type {string}
|
| + * @type {remoting.Host}
|
| * @private
|
| */
|
| - this.hostPublicKey_ = '';
|
| + this.host_ = null;
|
|
|
| /**
|
| * @type {boolean}
|
| @@ -195,16 +180,6 @@ remoting.SessionConnectorImpl.prototype.reset = function() {
|
| */
|
| this.fetchThirdPartyToken_ = function(
|
| tokenUrl, scope, onThirdPartyTokenFetched) {};
|
| -
|
| - /**
|
| - * Host 'name', as displayed in the client tool-bar. For a Me2Me connection,
|
| - * this is the name of the host; for an IT2Me connection, it is the email
|
| - * address of the person sharing their computer.
|
| - *
|
| - * @type {string}
|
| - * @private
|
| - */
|
| - this.hostDisplayName_ = '';
|
| };
|
|
|
| /**
|
| @@ -231,10 +206,8 @@ remoting.SessionConnectorImpl.prototype.connectMe2Me =
|
| clientPairingId, clientPairedSecret) {
|
| this.connectionMode_ = remoting.DesktopConnectedView.Mode.ME2ME;
|
| this.logHostOfflineErrors_ = false;
|
| - this.connectMe2MeInternal_(
|
| - host.hostId, host.jabberId, host.publicKey, host.hostName,
|
| - fetchPin, fetchThirdPartyToken,
|
| - clientPairingId, clientPairedSecret);
|
| + this.connectMe2MeInternal_(host, fetchPin, fetchThirdPartyToken,
|
| + clientPairingId, clientPairedSecret);
|
| };
|
|
|
| /**
|
| @@ -249,10 +222,8 @@ remoting.SessionConnectorImpl.prototype.connectMe2Me =
|
| remoting.SessionConnectorImpl.prototype.retryConnectMe2Me = function(host) {
|
| this.connectionMode_ = remoting.DesktopConnectedView.Mode.ME2ME;
|
| this.logHostOfflineErrors_ = true;
|
| - this.connectMe2MeInternal_(
|
| - host.hostId, host.jabberId, host.publicKey, host.hostName,
|
| - this.fetchPin_, this.fetchThirdPartyToken_,
|
| - this.clientPairingId_, this.clientPairedSecret_);
|
| + this.connectMe2MeInternal_(host, this.fetchPin_, this.fetchThirdPartyToken_,
|
| + this.clientPairingId_, this.clientPairedSecret_);
|
| };
|
|
|
| /**
|
| @@ -269,9 +240,7 @@ remoting.SessionConnectorImpl.prototype.connectMe2App =
|
| function(host, fetchThirdPartyToken) {
|
| this.connectionMode_ = remoting.DesktopConnectedView.Mode.APP_REMOTING;
|
| this.logHostOfflineErrors_ = true;
|
| - this.connectMe2MeInternal_(
|
| - host.hostId, host.jabberId, host.publicKey, host.hostName,
|
| - function() {}, fetchThirdPartyToken, '', '');
|
| + this.connectMe2MeInternal_(host, function() {}, fetchThirdPartyToken, '', '');
|
| };
|
|
|
| /**
|
| @@ -289,10 +258,7 @@ remoting.SessionConnectorImpl.prototype.updatePairingInfo =
|
| /**
|
| * Initiate a Me2Me connection.
|
| *
|
| - * @param {string} hostId ID of the Me2Me host.
|
| - * @param {string} hostJid XMPP JID of the host.
|
| - * @param {string} hostPublicKey Public Key of the host.
|
| - * @param {string} hostDisplayName Display name (friendly name) of the host.
|
| + * @param {remoting.Host} host the Host to connect to.
|
| * @param {function(boolean, function(string):void):void} fetchPin Function to
|
| * interactively obtain the PIN from the user.
|
| * @param {function(string, string, string,
|
| @@ -307,22 +273,18 @@ remoting.SessionConnectorImpl.prototype.updatePairingInfo =
|
| * @private
|
| */
|
| remoting.SessionConnectorImpl.prototype.connectMe2MeInternal_ =
|
| - function(hostId, hostJid, hostPublicKey, hostDisplayName,
|
| - fetchPin, fetchThirdPartyToken,
|
| + function(host, fetchPin, fetchThirdPartyToken,
|
| clientPairingId, clientPairedSecret) {
|
| // Cancel any existing connect operation.
|
| this.cancel();
|
|
|
| - this.hostId_ = hostId;
|
| - this.hostJid_ = hostJid;
|
| - this.hostPublicKey_ = hostPublicKey;
|
| + this.host_ = host;
|
| this.fetchPin_ = fetchPin;
|
| this.fetchThirdPartyToken_ = fetchThirdPartyToken;
|
| - this.hostDisplayName_ = hostDisplayName;
|
| this.updatePairingInfo(clientPairingId, clientPairedSecret);
|
|
|
| this.connectSignaling_();
|
| -}
|
| +};
|
|
|
| /**
|
| * Initiate an IT2Me connection.
|
| @@ -344,11 +306,11 @@ remoting.SessionConnectorImpl.prototype.connectIT2Me = function(accessCode) {
|
| return;
|
| }
|
|
|
| - this.hostId_ = normalizedAccessCode.substring(0, kSupportIdLen);
|
| + var hostId = normalizedAccessCode.substring(0, kSupportIdLen);
|
| this.passPhrase_ = normalizedAccessCode;
|
| this.connectionMode_ = remoting.DesktopConnectedView.Mode.IT2ME;
|
| - remoting.identity.callWithToken(this.connectIT2MeWithToken_.bind(this),
|
| - this.onError_);
|
| + remoting.identity.callWithToken(
|
| + this.connectIT2MeWithToken_.bind(this, hostId), this.onError_);
|
| };
|
|
|
| /**
|
| @@ -362,10 +324,9 @@ remoting.SessionConnectorImpl.prototype.reconnect = function() {
|
| return;
|
| }
|
| this.logHostOfflineErrors_ = false;
|
| - this.connectMe2MeInternal_(
|
| - this.hostId_, this.hostJid_, this.hostPublicKey_, this.hostDisplayName_,
|
| - this.fetchPin_, this.fetchThirdPartyToken_,
|
| - this.clientPairingId_, this.clientPairedSecret_);
|
| + this.connectMe2MeInternal_(this.host_, this.fetchPin_,
|
| + this.fetchThirdPartyToken_, this.clientPairingId_,
|
| + this.clientPairedSecret_);
|
| };
|
|
|
| /**
|
| @@ -398,7 +359,7 @@ remoting.SessionConnectorImpl.prototype.getConnectionMode = function() {
|
| * @return {string}
|
| */
|
| remoting.SessionConnectorImpl.prototype.getHostId = function() {
|
| - return this.hostId_;
|
| + return this.host_.hostId;
|
| };
|
|
|
| /**
|
| @@ -447,7 +408,7 @@ remoting.SessionConnectorImpl.prototype.onSignalingState_ = function(state) {
|
| switch (state) {
|
| case remoting.SignalStrategy.State.CONNECTED:
|
| // Proceed only if the connection hasn't been canceled.
|
| - if (this.hostJid_) {
|
| + if (this.host_.jabberId) {
|
| this.createSession_();
|
| }
|
| break;
|
| @@ -461,17 +422,18 @@ remoting.SessionConnectorImpl.prototype.onSignalingState_ = function(state) {
|
| /**
|
| * Continue an IT2Me connection once an access token has been obtained.
|
| *
|
| + * @param {string} hostId
|
| * @param {string} token An OAuth2 access token.
|
| * @return {void} Nothing.
|
| * @private
|
| */
|
| remoting.SessionConnectorImpl.prototype.connectIT2MeWithToken_ =
|
| - function(token) {
|
| + function(hostId, token) {
|
| // Resolve the host id to get the host JID.
|
| this.pendingXhr_ = remoting.xhr.get(
|
| remoting.settings.DIRECTORY_API_BASE_URL + '/support-hosts/' +
|
| - encodeURIComponent(this.hostId_),
|
| - this.onIT2MeHostInfo_.bind(this),
|
| + encodeURIComponent(hostId),
|
| + this.onIT2MeHostInfo_.bind(this, hostId),
|
| '',
|
| { 'Authorization': 'OAuth ' + token });
|
| };
|
| @@ -479,19 +441,23 @@ remoting.SessionConnectorImpl.prototype.connectIT2MeWithToken_ =
|
| /**
|
| * Continue an IT2Me connection once the host JID has been looked up.
|
| *
|
| + * @param {string} hostId
|
| * @param {XMLHttpRequest} xhr The server response to the support-hosts query.
|
| * @return {void} Nothing.
|
| * @private
|
| */
|
| -remoting.SessionConnectorImpl.prototype.onIT2MeHostInfo_ = function(xhr) {
|
| +remoting.SessionConnectorImpl.prototype.onIT2MeHostInfo_ = function(hostId,
|
| + xhr) {
|
| this.pendingXhr_ = null;
|
| if (xhr.status == 200) {
|
| var host = /** @type {{data: {jabberId: string, publicKey: string}}} */
|
| (base.jsonParseSafe(xhr.responseText));
|
| if (host && host.data && host.data.jabberId && host.data.publicKey) {
|
| - this.hostJid_ = host.data.jabberId;
|
| - this.hostPublicKey_ = host.data.publicKey;
|
| - this.hostDisplayName_ = this.hostJid_.split('/')[0];
|
| + this.host_ = new remoting.Host();
|
| + this.host_.hostId = hostId;
|
| + this.host_.jabberId = host.data.jabberId;
|
| + this.host_.publicKey = host.data.publicKey;
|
| + this.host_.hostName = host.data.jabberId.split('/')[0];
|
| this.connectSignaling_();
|
| return;
|
| } else {
|
| @@ -517,9 +483,8 @@ remoting.SessionConnectorImpl.prototype.createSession_ = function() {
|
| var authenticationMethods =
|
| 'third_party,spake2_pair,spake2_hmac,spake2_plain';
|
| this.clientSession_ = new remoting.ClientSession(
|
| - this.signalStrategy_, this.clientContainer_, this.hostDisplayName_,
|
| - this.passPhrase_, this.fetchPin_, this.fetchThirdPartyToken_,
|
| - authenticationMethods, this.hostId_, this.hostJid_, this.hostPublicKey_,
|
| + this.host_, this.signalStrategy_, this.clientContainer_, this.passPhrase_,
|
| + this.fetchPin_, this.fetchThirdPartyToken_, authenticationMethods,
|
| this.connectionMode_, this.clientPairingId_, this.clientPairedSecret_,
|
| this.defaultRemapKeys_);
|
| this.clientSession_.logHostOfflineErrors(this.logHostOfflineErrors_);
|
|
|