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

Unified Diff: chrome/browser/resources/print_preview/cloud_print_interface.js

Issue 2938073003: Change getAccessToken and getExtensionPrinterAccess to sendWithPromise (Closed)
Patch Set: Cleanup Created 3 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
Index: chrome/browser/resources/print_preview/cloud_print_interface.js
diff --git a/chrome/browser/resources/print_preview/cloud_print_interface.js b/chrome/browser/resources/print_preview/cloud_print_interface.js
index 4c40894b00a7246f83e64d3426ed83593c4883db..c84ad7046d775e634e12e7a694362d5931544cf2 100644
--- a/chrome/browser/resources/print_preview/cloud_print_interface.js
+++ b/chrome/browser/resources/print_preview/cloud_print_interface.js
@@ -100,15 +100,6 @@ cr.define('cloudprint', function() {
* @private
*/
this.outstandingCloudSearchRequests_ = [];
-
- /**
- * Event tracker used to keep track of native layer events.
- * @type {!EventTracker}
- * @private
- */
- this.tracker_ = new EventTracker();
-
- this.addEventListeners_();
}
/**
@@ -340,17 +331,6 @@ cr.define('cloudprint', function() {
this.onPrinterDone_.bind(this, printerId)));
},
- /**
- * Adds event listeners to relevant events.
- * @private
- */
- addEventListeners_: function() {
- this.tracker_.add(
- this.nativeLayer_.getEventTarget(),
- print_preview.NativeLayer.EventType.ACCESS_TOKEN_READY,
- this.onAccessTokenReady_.bind(this));
- },
-
/**
* Builds request to the Google Cloud Print API.
* @param {string} method HTTP method of the request.
@@ -430,7 +410,8 @@ cr.define('cloudprint', function() {
return this.sendRequest_(request);
} else {
this.requestQueue_.push(request);
- this.nativeLayer_.startGetAccessToken(request.origin);
+ this.nativeLayer_.getAccessToken(request.origin).then(
+ this.onAccessTokenReady_.bind(this, request.origin));
}
},
@@ -504,20 +485,27 @@ cr.define('cloudprint', function() {
/**
* Called when a native layer receives access token.
- * @param {Event} event Contains the authentication type and access token.
+ * @param {!print_preview.DestinationOrigin} authType The authentication
+ * type.
+ * @param {!print_preview.AccessTokenResponse} response Contains the access
+ * token and an indicator of whether the token request is complete (if
+ * not, another request for this authentication type was already in
+ * progress).
* @private
*/
- onAccessTokenReady_: function(event) {
+ onAccessTokenReady_: function(authType, response) {
+ if (!response.completed)
+ return;
// TODO(vitalybuka): remove when other Origins implemented.
- assert(event.authType == print_preview.DestinationOrigin.DEVICE);
+ assert(authType == print_preview.DestinationOrigin.DEVICE);
this.requestQueue_ = this.requestQueue_.filter(function(request) {
assert(request.origin == print_preview.DestinationOrigin.DEVICE);
- if (request.origin != event.authType) {
+ if (request.origin != authType) {
return true;
}
- if (event.accessToken) {
+ if (response.accessToken) {
request.xhr.setRequestHeader('Authorization',
- 'Bearer ' + event.accessToken);
+ 'Bearer ' + response.accessToken);
this.sendRequest_(request);
} else { // No valid token.
// Without abort status does not exist.

Powered by Google App Engine
This is Rietveld 408576698