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

Side by Side Diff: remoting/webapp/session_connector.js

Issue 12867004: Webapp changes to support asking for a PIN (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase Created 7 years, 9 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 unified diff | Download patch
« no previous file with comments | « remoting/webapp/client_session.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview 6 * @fileoverview
7 * Connect set-up state machine for Me2Me and IT2Me 7 * Connect set-up state machine for Me2Me and IT2Me
8 */ 8 */
9 9
10 'use strict'; 10 'use strict';
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 99
100 /** 100 /**
101 * A timer that polls for an updated access token. 101 * A timer that polls for an updated access token.
102 * 102 *
103 * @type {number} 103 * @type {number}
104 * @private 104 * @private
105 */ 105 */
106 this.wcsAccessTokenRefreshTimer_ = 0; 106 this.wcsAccessTokenRefreshTimer_ = 0;
107 107
108 /** 108 /**
109 * Function to interactively obtain the PIN from the user.
110 * @param {function(string):void} onPinFetched Called when the PIN is fetched.
111 * @private
112 */
113 this.fetchPin_ = function(onPinFetched) {};
114
115 /**
109 * Host 'name', as displayed in the client tool-bar. For a Me2Me connection, 116 * Host 'name', as displayed in the client tool-bar. For a Me2Me connection,
110 * this is the name of the host; for an IT2Me connection, it is the email 117 * this is the name of the host; for an IT2Me connection, it is the email
111 * address of the person sharing their computer. 118 * address of the person sharing their computer.
112 * 119 *
113 * @type {string} 120 * @type {string}
114 * @private 121 * @private
115 */ 122 */
116 this.hostDisplayName_ = ''; 123 this.hostDisplayName_ = '';
117 124
118 // Pre-load WCS to improve connection time. 125 // Pre-load WCS to improve connection time.
119 remoting.identity.callWithToken(this.loadWcs_.bind(this), this.onError_); 126 remoting.identity.callWithToken(this.loadWcs_.bind(this), this.onError_);
120 }; 127 };
121 128
122 /** 129 /**
123 * Initiate a Me2Me connection. 130 * Initiate a Me2Me connection.
124 * 131 *
125 * @param {remoting.Host} host The Me2Me host to which to connect. 132 * @param {remoting.Host} host The Me2Me host to which to connect.
126 * @param {string} pin The PIN as entered by the user. 133 * @param {function(function(string):void):void} fetchPin Function to
134 * interactively obtain the PIN from the user.
127 * @return {void} Nothing. 135 * @return {void} Nothing.
128 */ 136 */
129 remoting.SessionConnector.prototype.connectMe2Me = function(host, pin) { 137 remoting.SessionConnector.prototype.connectMe2Me = function(host, fetchPin) {
130 this.hostId_ = host.hostId; 138 this.hostId_ = host.hostId;
131 this.hostJid_ = host.jabberId; 139 this.hostJid_ = host.jabberId;
132 this.passPhrase_ = pin; 140 this.fetchPin_ = fetchPin;
133 this.hostDisplayName_ = host.hostName; 141 this.hostDisplayName_ = host.hostName;
134 this.createSessionIfReady_(); 142 this.createSessionIfReady_();
135 }; 143 };
136 144
137 /** 145 /**
138 * Initiate an IT2Me connection. 146 * Initiate an IT2Me connection.
139 * 147 *
140 * @param {string} accessCode The access code as entered by the user. 148 * @param {string} accessCode The access code as entered by the user.
141 * @return {void} Nothing. 149 * @return {void} Nothing.
142 */ 150 */
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 * @return {void} Nothing. 269 * @return {void} Nothing.
262 * @private 270 * @private
263 */ 271 */
264 remoting.SessionConnector.prototype.createSessionIfReady_ = function() { 272 remoting.SessionConnector.prototype.createSessionIfReady_ = function() {
265 if (!this.clientJid_ || !this.hostJid_) { 273 if (!this.clientJid_ || !this.hostJid_) {
266 return; 274 return;
267 } 275 }
268 276
269 var securityTypes = 'spake2_hmac,spake2_plain'; 277 var securityTypes = 'spake2_hmac,spake2_plain';
270 this.clientSession_ = new remoting.ClientSession( 278 this.clientSession_ = new remoting.ClientSession(
271 this.hostJid_, this.clientJid_, this.hostPublicKey_, 279 this.hostJid_, this.clientJid_, this.hostPublicKey_, this.passPhrase_,
272 this.passPhrase_, securityTypes, this.hostId_, 280 this.fetchPin_, securityTypes, this.hostId_, this.connectionMode_,
273 this.connectionMode_, this.hostDisplayName_); 281 this.hostDisplayName_);
274 this.clientSession_.logHostOfflineErrors(!this.refreshHostJidIfOffline_); 282 this.clientSession_.logHostOfflineErrors(!this.refreshHostJidIfOffline_);
275 this.clientSession_.setOnStateChange(this.onStateChange_.bind(this)); 283 this.clientSession_.setOnStateChange(this.onStateChange_.bind(this));
276 this.clientSession_.createPluginAndConnect(this.pluginParent_); 284 this.clientSession_.createPluginAndConnect(this.pluginParent_);
277 }; 285 };
278 286
279 /** 287 /**
280 * Handle a change in the state of the client session prior to successful 288 * Handle a change in the state of the client session prior to successful
281 * connection (after connection, this class no longer handles state change 289 * connection (after connection, this class no longer handles state change
282 * events). Errors that occur while connecting either trigger a reconnect 290 * events). Errors that occur while connecting either trigger a reconnect
283 * or notify the onError handler. 291 * or notify the onError handler.
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 361
354 /** 362 /**
355 * @param {boolean} success True if the host list was successfully refreshed; 363 * @param {boolean} success True if the host list was successfully refreshed;
356 * false if an error occurred. 364 * false if an error occurred.
357 * @private 365 * @private
358 */ 366 */
359 remoting.SessionConnector.prototype.onHostListRefresh_ = function(success) { 367 remoting.SessionConnector.prototype.onHostListRefresh_ = function(success) {
360 if (success) { 368 if (success) {
361 var host = remoting.hostList.getHostForId(this.hostId_); 369 var host = remoting.hostList.getHostForId(this.hostId_);
362 if (host) { 370 if (host) {
363 this.connectMe2Me(host, this.passPhrase_); 371 this.connectMe2Me(host, this.fetchPin_);
364 return; 372 return;
365 } 373 }
366 } 374 }
367 this.onError_(remoting.Error.HOST_IS_OFFLINE); 375 this.onError_(remoting.Error.HOST_IS_OFFLINE);
368 }; 376 };
369 377
370 /** 378 /**
371 * Start a timer to periodically refresh the access token used by WCS. Access 379 * Start a timer to periodically refresh the access token used by WCS. Access
372 * tokens have a limited lifespan, and since the WCS driver runs in a sandbox, 380 * tokens have a limited lifespan, and since the WCS driver runs in a sandbox,
373 * it can't obtain a new one directly. 381 * it can't obtain a new one directly.
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 /** 424 /**
417 * Normalize the access code entered by the user. 425 * Normalize the access code entered by the user.
418 * 426 *
419 * @param {string} accessCode The access code, as entered by the user. 427 * @param {string} accessCode The access code, as entered by the user.
420 * @return {string} The normalized form of the code (whitespace removed). 428 * @return {string} The normalized form of the code (whitespace removed).
421 */ 429 */
422 remoting.SessionConnector.prototype.normalizeAccessCode_ = 430 remoting.SessionConnector.prototype.normalizeAccessCode_ =
423 function(accessCode) { 431 function(accessCode) {
424 // Trim whitespace. 432 // Trim whitespace.
425 return accessCode.replace(/\s/g, ''); 433 return accessCode.replace(/\s/g, '');
426 }; 434 };
OLDNEW
« no previous file with comments | « remoting/webapp/client_session.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698