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

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

Issue 1003433002: Updated remoting.xhr API to use promises. Removed access to the native (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@spy-promise
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: remoting/webapp/crd/js/it2me_connect_flow.js
diff --git a/remoting/webapp/crd/js/it2me_connect_flow.js b/remoting/webapp/crd/js/it2me_connect_flow.js
index 00dabf3979f9aa447ee8ddb12f8224efd5c6b16f..df858179a8411a3eef57a138ecfefbfb8dbd69c6 100644
--- a/remoting/webapp/crd/js/it2me_connect_flow.js
+++ b/remoting/webapp/crd/js/it2me_connect_flow.js
@@ -54,8 +54,8 @@ remoting.It2MeConnectFlow.prototype.connect_ = function(accessCode) {
return remoting.identity.getToken();
}).then(function(/** string */ token) {
return that.getHostInfo_(token);
- }).then(function(/** XMLHttpRequest */ xhr) {
- return that.onHostInfo_(xhr);
+ }).then(function(/** !remoting.Xhr.Response */ response) {
+ return that.onHostInfo_(response);
}).then(function(/** remoting.Host */ host) {
that.sessionConnector_.connect(
remoting.DesktopConnectedView.Mode.IT2ME,
@@ -74,7 +74,8 @@ remoting.It2MeConnectFlow.prototype.connect_ = function(accessCode) {
remoting.It2MeConnectFlow.prototype.verifyAccessCode_ = function(accessCode) {
var normalizedAccessCode = accessCode.replace(/\s/g, '');
if (normalizedAccessCode.length !== ACCESS_CODE_LENGTH) {
- return Promise.reject(remoting.Error.INVALID_ACCESS_CODE);
+ return Promise.reject(new remoting.Error(
+ remoting.Error.Tag.INVALID_ACCESS_CODE));
}
this.hostId_ = normalizedAccessCode.substring(0, SUPPORT_ID_LENGTH);
@@ -87,33 +88,31 @@ remoting.It2MeConnectFlow.prototype.verifyAccessCode_ = function(accessCode) {
* Continues an IT2Me connection once an access token has been obtained.
*
* @param {string} token An OAuth2 access token.
- * @return {Promise<XMLHttpRequest>}
+ * @return {Promise<!remoting.Xhr.Response>}
* @private
*/
remoting.It2MeConnectFlow.prototype.getHostInfo_ = function(token) {
var that = this;
- return new Promise(function(resolve) {
- remoting.xhr.start({
- method: 'GET',
- url: remoting.settings.DIRECTORY_API_BASE_URL + '/support-hosts/' +
- encodeURIComponent(that.hostId_),
- onDone: resolve,
- oauthToken: token
- });
- });
+ return new remoting.Xhr({
+ method: 'GET',
+ url: remoting.settings.DIRECTORY_API_BASE_URL + '/support-hosts/' +
+ encodeURIComponent(that.hostId_),
+ oauthToken: token
+ }).start();
};
/**
* Continues an IT2Me connection once the host JID has been looked up.
*
- * @param {XMLHttpRequest} xhr The server response to the support-hosts query.
+ * @param {!remoting.Xhr.Response} xhrResponse The server response to the
+ * support-hosts query.
* @return {!Promise<!remoting.Host>} Rejects on error.
* @private
*/
-remoting.It2MeConnectFlow.prototype.onHostInfo_ = function(xhr) {
- if (xhr.status == 200) {
+remoting.It2MeConnectFlow.prototype.onHostInfo_ = function(xhrResponse) {
+ if (xhrResponse.status == 200) {
var response = /** @type {{data: {jabberId: string, publicKey: string}}} */
- (base.jsonParseSafe(xhr.responseText));
+ (base.jsonParseSafe(xhrResponse.getText()));
if (response && response.data &&
response.data.jabberId && response.data.publicKey) {
var host = new remoting.Host();
@@ -124,25 +123,26 @@ remoting.It2MeConnectFlow.prototype.onHostInfo_ = function(xhr) {
return Promise.resolve(host);
} else {
console.error('Invalid "support-hosts" response from server.');
- return Promise.reject(remoting.Error.UNEXPECTED);
+ return Promise.reject(remoting.Error.unexpected());
}
} else {
- return Promise.reject(translateSupportHostsError(xhr.status));
+ return Promise.reject(translateSupportHostsError(xhrResponse.status));
}
};
/**
+ * TODO(jrw): Replace with remoting.Error.fromHttpStatus.
* @param {number} error An HTTP error code returned by the support-hosts
* endpoint.
* @return {remoting.Error} The equivalent remoting.Error code.
*/
function translateSupportHostsError(error) {
switch (error) {
- case 0: return remoting.Error.NETWORK_FAILURE;
- case 404: return remoting.Error.INVALID_ACCESS_CODE;
+ case 0: return new remoting.Error(remoting.Error.Tag.NETWORK_FAILURE);
+ case 404: return new remoting.Error(remoting.Error.Tag.INVALID_ACCESS_CODE);
case 502: // No break
- case 503: return remoting.Error.SERVICE_UNAVAILABLE;
- default: return remoting.Error.UNEXPECTED;
+ case 503: return new remoting.Error(remoting.Error.Tag.SERVICE_UNAVAILABLE);
+ default: return remoting.Error.unexpected();
}
}

Powered by Google App Engine
This is Rietveld 408576698