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

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

Issue 1161813006: Updated handling of GCD devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: oops--ignore Created 5 years, 6 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
« no previous file with comments | « remoting/webapp/crd/js/gcd_host_list_api.js ('k') | remoting/webapp/crd/js/host_controller_unittest.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/crd/js/host_controller.js
diff --git a/remoting/webapp/crd/js/host_controller.js b/remoting/webapp/crd/js/host_controller.js
index a3ae6e6640545606d13f934a7a98c5f6fbd919a1..9ef8278a6118fb51de01bbaae770e15a5067cac2 100644
--- a/remoting/webapp/crd/js/host_controller.js
+++ b/remoting/webapp/crd/js/host_controller.js
@@ -163,13 +163,8 @@ remoting.HostController.prototype.start = function(hostPin, consent) {
return null;
}
});
- var newHostId = base.generateUuid();
- var pinHashPromise = this.hostDaemonFacade_.getPinHash(newHostId, hostPin);
var hostOwnerPromise = this.getClientBaseJid_();
- /** @type {boolean} */
- var hostRegistered = false;
-
// Register the host and extract an auth code from the host response
// and, optionally an email address for the robot account.
/** @type {!Promise<remoting.HostListApi.RegisterResult>} */
@@ -183,10 +178,19 @@ remoting.HostController.prototype.start = function(hostPin, consent) {
var keyPair = /** @type {remoting.KeyPair} */ (a[2]);
return remoting.HostListApi.getInstance().register(
- newHostId, hostName, keyPair.publicKey, hostClientId);
- }).then(function(/** remoting.HostListApi.RegisterResult */ result) {
- hostRegistered = true;
- return result;
+ hostName, keyPair.publicKey, hostClientId);
+ });
+
+ // For convenience, make the host ID available as a separate promise.
+ /** @type {!Promise<string>} */
+ var hostIdPromise = registerResultPromise.then(function(registerResult) {
+ return registerResult.hostId;
+ });
+
+ // Get the PIN hash based on the host ID.
+ /** @type {!Promise<string>} */
+ var pinHashPromise = hostIdPromise.then(function(hostId) {
+ return that.hostDaemonFacade_.getPinHash(hostId, hostPin);
});
// Get XMPP creditials.
@@ -230,7 +234,6 @@ remoting.HostController.prototype.start = function(hostPin, consent) {
var hostConfig = {
xmpp_login: xmppCreds.userEmail,
oauth_refresh_token: xmppCreds.refreshToken,
- host_id: newHostId,
host_name: hostName,
host_secret_hash: hostSecretHash,
private_key: keyPair.privateKey,
@@ -239,8 +242,11 @@ remoting.HostController.prototype.start = function(hostPin, consent) {
if (hostOwnerEmail != hostOwner) {
hostConfig['host_owner_email'] = hostOwnerEmail;
}
- if (registerResult.gcdId) {
- hostConfig['gcd_device_id'] = registerResult.gcdId;
+ if (registerResult.isLegacy) {
+ hostConfig['host_id'] = registerResult.hostId;
+ }
+ else {
+ hostConfig['gcd_device_id'] = registerResult.hostId;
}
return hostConfig;
});
@@ -253,24 +259,24 @@ remoting.HostController.prototype.start = function(hostPin, consent) {
});
// Update the UI or report an error.
- return startDaemonResultPromise.then(function(result) {
- if (result == remoting.HostController.AsyncResult.OK) {
- return hostNamePromise.then(function(hostName) {
- return keyPairPromise.then(function(keyPair) {
- remoting.hostList.onLocalHostStarted(
- hostName, newHostId, keyPair.publicKey);
+ return hostIdPromise.then(function(hostId) {
+ return startDaemonResultPromise.then(function(result) {
+ if (result == remoting.HostController.AsyncResult.OK) {
+ return hostNamePromise.then(function(hostName) {
+ return keyPairPromise.then(function(keyPair) {
+ remoting.hostList.onLocalHostStarted(
+ hostName, hostId, keyPair.publicKey);
+ });
});
- });
- } else if (result == remoting.HostController.AsyncResult.CANCELLED) {
- throw new remoting.Error(remoting.Error.Tag.CANCELLED);
- } else {
- throw remoting.Error.unexpected();
- }
- }).catch(function(error) {
- if (hostRegistered) {
- remoting.hostList.unregisterHostById(newHostId);
- }
- throw error;
+ } else if (result == remoting.HostController.AsyncResult.CANCELLED) {
+ throw new remoting.Error(remoting.Error.Tag.CANCELLED);
+ } else {
+ throw remoting.Error.unexpected();
+ }
+ }).catch(function(error) {
+ remoting.hostList.unregisterHostById(hostId);
+ throw error;
+ });
});
};
@@ -399,7 +405,10 @@ remoting.HostController.prototype.getLocalHostId = function(onDone) {
function onConfig(config) {
var hostId = null;
if (isHostConfigValid_(config)) {
- hostId = /** @type {string} */ (config['host_id']);
+ // Use the |gcd_device_id| field if it exists, or the |host_id|
+ // field otherwise.
+ hostId = base.getStringAttr(
+ config, 'gcd_device_id', base.getStringAttr(config, 'host_id'));
}
onDone(hostId);
};
« no previous file with comments | « remoting/webapp/crd/js/gcd_host_list_api.js ('k') | remoting/webapp/crd/js/host_controller_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698