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

Unified Diff: chrome/browser/resources/google_now/utility.js

Issue 162273002: Convert Google Now's Authentication Manager to use Promises (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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/google_now/utility.js
diff --git a/chrome/browser/resources/google_now/utility.js b/chrome/browser/resources/google_now/utility.js
index aa20066306585f1ed6b2194fd1716085e9f063eb..aada2e59f5cdb182b8c7b4adcca2462392a28be7 100644
--- a/chrome/browser/resources/google_now/utility.js
+++ b/chrome/browser/resources/google_now/utility.js
@@ -726,36 +726,45 @@ function buildAuthenticationManager() {
/**
* Gets an OAuth2 access token.
- * @param {function(string=)} callback Called on completion.
- * The string contains the token. It's undefined if there was an error.
+ * @return {Promise} A promise to get the authentication token. If there is
+ * no token, the request is rejected.
*/
- function getAuthToken(callback) {
- instrumented.identity.getAuthToken({interactive: false}, function(token) {
- token = chrome.runtime.lastError ? undefined : token;
- callback(token);
+ function getAuthToken() {
+ return new Promise(function(resolve, reject) {
+ instrumented.identity.getAuthToken({interactive: false}, function(token) {
+ if (chrome.runtime.lastError || !token) {
+ reject();
+ } else {
+ resolve(token);
+ }
+ });
});
}
/**
* Determines whether there is an account attached to the profile.
- * @param {function(boolean)} callback Called on completion.
+ * @return {Promise} A promise to determine if there is an account attached
+ * to the profile.
*/
- function isSignedIn(callback) {
- instrumented.webstorePrivate.getBrowserLogin(function(accountInfo) {
- callback(!!accountInfo.login);
+ function isSignedIn() {
+ return new Promise(function(resolve) {
+ instrumented.webstorePrivate.getBrowserLogin(function(accountInfo) {
+ resolve(!!accountInfo.login);
+ });
});
}
/**
* Removes the specified cached token.
* @param {string} token Authentication Token to remove from the cache.
- * @param {function()} callback Called on completion.
+ * @return {Promise} A promise that resolves on completion.
*/
- function removeToken(token, callback) {
- instrumented.identity.removeCachedAuthToken({token: token}, function() {
- // Let Chrome now about a possible problem with the token.
rgustafson 2014/02/13 21:31:40 Keep the comment in, but now -> know. It's not imm
robliao 2014/02/13 21:41:33 Done.
- getAuthToken(function() {});
- callback();
+ function removeToken(token) {
+ return new Promise(function(resolve) {
+ instrumented.identity.removeCachedAuthToken({token: token}, function() {
+ getAuthToken();
+ resolve();
+ });
});
}

Powered by Google App Engine
This is Rietveld 408576698