Index: remoting/webapp/base/js/auth_init.js |
diff --git a/remoting/webapp/base/js/auth_init.js b/remoting/webapp/base/js/auth_init.js |
index 2602efc8112998bda10b4c8b85bc85fb9e822707..8312c31077fa08056665fefa3fe578a08d562f02 100644 |
--- a/remoting/webapp/base/js/auth_init.js |
+++ b/remoting/webapp/base/js/auth_init.js |
@@ -16,34 +16,6 @@ var remoting = remoting || {}; |
*/ |
remoting.initIdentity = function(onUserInfoAvailable) { |
- /** |
- * Show the authorization consent UI and register a one-shot event handler to |
- * continue the authorization process. |
- * |
- * @param {function():void} authContinue Callback to invoke when the user |
- * clicks "Continue". |
- */ |
- function promptForConsent(authContinue) { |
- /** @type {HTMLElement} */ |
- var dialog = document.getElementById('auth-dialog'); |
- /** @type {HTMLElement} */ |
- var button = document.getElementById('auth-button'); |
- var consentGranted = function(event) { |
- dialog.hidden = true; |
- button.removeEventListener('click', consentGranted, false); |
- authContinue(); |
- remoting.windowShape.updateClientWindowShape(); |
- }; |
- dialog.hidden = false; |
- |
- /** @type {HTMLElement} */ |
- var dialog_border = document.getElementById('auth-dialog-border'); |
- remoting.authDialog = new remoting.AuthDialog(dialog_border); |
- remoting.windowShape.addCallback(remoting.authDialog); |
- |
- button.addEventListener('click', consentGranted, false); |
- } |
- |
/** @param {remoting.Error} error */ |
function onGetIdentityInfoError(error) { |
// No need to show the error message for NOT_AUTHENTICATED |
@@ -54,16 +26,38 @@ remoting.initIdentity = function(onUserInfoAvailable) { |
} |
if (base.isAppsV2()) { |
- remoting.identity = new remoting.Identity(promptForConsent); |
+ remoting.identity = |
+ new remoting.Identity(remoting.AuthDialog.getInstance()); |
} else { |
// TODO(garykac) Remove this and replace with identity. |
remoting.oauth2 = new remoting.OAuth2(); |
- if (!remoting.oauth2.isAuthenticated()) { |
- document.getElementById('auth-dialog').hidden = false; |
+ var oauth2 = /** @type {*} */ (remoting.oauth2); |
+ remoting.identity = /** @type {remoting.Identity} */ (oauth2); |
+ if (!remoting.identity.isAuthenticated()) { |
+ remoting.AuthDialog.getInstance().show().then(function() { |
+ remoting.oauth2.doAuthRedirect(function(){ |
+ window.location.reload(); |
+ }); |
+ }); |
} |
- remoting.identity = remoting.oauth2; |
} |
remoting.identity.getUserInfo(onUserInfoAvailable, |
onGetIdentityInfoError); |
-} |
+}; |
+ |
+/** |
+ * Removes the cached token and restarts the app. |
+ * |
+ * @return {void} Nothing. |
+ */ |
+remoting.handleAuthFailureAndRelaunch = function() { |
+ remoting.identity.removeCachedAuthToken(function(){ |
+ if (base.isAppsV2()) { |
+ base.Ipc.invoke('remoting.ActivationHandler.restart', |
+ chrome.app.window.current().id); |
+ } else { |
+ window.location.reload(); |
+ } |
+ }); |
+}; |