summaryrefslogtreecommitdiffstats
path: root/remoting/webapp/client_screen.js
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/webapp/client_screen.js')
-rw-r--r--remoting/webapp/client_screen.js49
1 files changed, 43 insertions, 6 deletions
diff --git a/remoting/webapp/client_screen.js b/remoting/webapp/client_screen.js
index feaf29d..6cc70de 100644
--- a/remoting/webapp/client_screen.js
+++ b/remoting/webapp/client_screen.js
@@ -274,6 +274,10 @@ remoting.connectMe2MeHostVersionAcknowledged_ = function(host) {
var pinForm = document.getElementById('pin-form');
/** @type {Element} */
var pinCancel = document.getElementById('cancel-pin-entry-button');
+ /** @type {Element} */
+ var rememberPin = document.getElementById('remember-pin');
+ /** @type {Element} */
+ var rememberPinCheckbox = document.getElementById('remember-pin-checkbox');
/**
* Event handler for both the 'submit' and 'cancel' actions. Using
* a single handler for both greatly simplifies the task of making
@@ -292,23 +296,38 @@ remoting.connectMe2MeHostVersionAcknowledged_ = function(host) {
event.preventDefault();
remoting.setMode(remoting.AppMode.CLIENT_CONNECTING);
onPinFetched(pin);
+ if (/** @type {boolean} */(rememberPinCheckbox.checked)) {
+ remoting.connector.pairingRequested = true;
+ }
} else {
remoting.setMode(remoting.AppMode.HOME);
}
};
pinForm.addEventListener('submit', onSubmitOrCancel, false);
pinCancel.addEventListener('click', onSubmitOrCancel, false);
-
- var rememberPin = document.getElementById('remember-pin');
rememberPin.hidden = !supportsPairing;
- var checkbox = /** @type {HTMLInputElement} */
- document.getElementById('remember-pin-checkbox');
- checkbox.checked = false;
+ rememberPinCheckbox.checked = false;
var message = document.getElementById('pin-message');
l10n.localizeElement(message, host.hostName);
remoting.setMode(remoting.AppMode.CLIENT_PIN_PROMPT);
};
- remoting.connector.connectMe2Me(host, requestPin, fetchThirdPartyToken);
+
+ /** @param {Object} settings */
+ var connectMe2MeHostSettingsRetrieved = function(settings) {
+ /** @type {string} */
+ var clientId = '';
+ /** @type {string} */
+ var sharedSecret = '';
+ var pairingInfo = /** @type {Object} */ (settings['pairingInfo']);
+ if (pairingInfo) {
+ clientId = /** @type {string} */ (pairingInfo['clientId']);
+ sharedSecret = /** @type {string} */ (pairingInfo['sharedSecret']);
+ }
+ remoting.connector.connectMe2Me(host, requestPin, fetchThirdPartyToken,
+ clientId, sharedSecret);
+ }
+
+ remoting.HostSettings.load(host.hostId, connectMe2MeHostSettingsRetrieved);
};
/** @param {remoting.ClientSession} clientSession */
@@ -323,4 +342,22 @@ remoting.onConnected = function(clientSession) {
remoting.toolbar.preview();
remoting.clipboard.startSession();
updateStatistics_();
+ if (remoting.connector.pairingRequested) {
+ /**
+ * @param {string} clientId
+ * @param {string} sharedSecret
+ */
+ var onPairingComplete = function(clientId, sharedSecret) {
+ var pairingInfo = {
+ pairingInfo: {
+ clientId: clientId,
+ sharedSecret: sharedSecret
+ }
+ };
+ remoting.HostSettings.save(clientSession.hostId, pairingInfo);
+ };
+ // TODO(jamiewalch): Since we can't get a descriptive name for the local
+ // computer from Javascript, pass the empty string for now.
+ clientSession.requestPairing('', onPairingComplete);
+ }
};