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

Side by Side Diff: remoting/webapp/crd/js/remoting.js

Issue 868203002: Handle authentication failures in the v2 app by restarting the app (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 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 unified diff | Download patch
« no previous file with comments | « remoting/webapp/crd/js/oauth2.js ('k') | remoting/webapp/js_proto/dom_proto.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 'use strict'; 5 'use strict';
6 6
7 /** @suppress {duplicate} */ 7 /** @suppress {duplicate} */
8 var remoting = remoting || {}; 8 var remoting = remoting || {};
9 9
10 /** 10 /**
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 } 102 }
103 }; 103 };
104 104
105 /** 105 /**
106 * Sign the user out of Chromoting by clearing (and revoking, if possible) the 106 * Sign the user out of Chromoting by clearing (and revoking, if possible) the
107 * OAuth refresh token. 107 * OAuth refresh token.
108 * 108 *
109 * Also clear all local storage, to avoid leaking information. 109 * Also clear all local storage, to avoid leaking information.
110 */ 110 */
111 remoting.signOut = function() { 111 remoting.signOut = function() {
112 remoting.oauth2.clear(); 112 remoting.oauth2.removeCachedAuthToken(function(){
113 chrome.storage.local.clear(); 113 chrome.storage.local.clear();
114 remoting.setMode(remoting.AppMode.HOME); 114 remoting.setMode(remoting.AppMode.HOME);
115 document.getElementById('auth-dialog').hidden = false; 115 window.location.reload();
116 });
116 }; 117 };
117 118
118 /** 119 /**
119 * Callback function called when the browser window gets a paste operation. 120 * Callback function called when the browser window gets a paste operation.
120 * 121 *
121 * @param {Event} event 122 * @param {Event} event
122 * @return {void} Nothing. 123 * @return {void} Nothing.
123 */ 124 */
124 function pluginGotPaste_(event) { 125 function pluginGotPaste_(event) {
125 if (event && event.clipboardData) { 126 if (event && event.clipboardData) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 * Chromoting again. 187 * Chromoting again.
187 * 188 *
188 * @param {remoting.Error} error 189 * @param {remoting.Error} error
189 * @return {void} Nothing. 190 * @return {void} Nothing.
190 */ 191 */
191 remoting.showErrorMessage = function(error) { 192 remoting.showErrorMessage = function(error) {
192 l10n.localizeElementFromTag( 193 l10n.localizeElementFromTag(
193 document.getElementById('token-refresh-error-message'), 194 document.getElementById('token-refresh-error-message'),
194 error); 195 error);
195 var auth_failed = (error == remoting.Error.AUTHENTICATION_FAILED); 196 var auth_failed = (error == remoting.Error.AUTHENTICATION_FAILED);
196 document.getElementById('token-refresh-auth-failed').hidden = !auth_failed; 197 if (base.isAppsV2()) {
197 document.getElementById('token-refresh-other-error').hidden = auth_failed; 198 remoting.handleAuthFailureAndRelaunch();
198 remoting.setMode(remoting.AppMode.TOKEN_REFRESH_FAILED); 199 } else {
200 document.getElementById('token-refresh-auth-failed').hidden = !auth_failed;
201 document.getElementById('token-refresh-other-error').hidden = auth_failed;
202 remoting.setMode(remoting.AppMode.TOKEN_REFRESH_FAILED);
203 }
199 }; 204 };
200 205
201 /** 206 /**
202 * Determine whether or not the app is running in a window. 207 * Determine whether or not the app is running in a window.
203 * @param {function(boolean):void} callback Callback to receive whether or not 208 * @param {function(boolean):void} callback Callback to receive whether or not
204 * the current tab is running in windowed mode. 209 * the current tab is running in windowed mode.
205 */ 210 */
206 function isWindowed_(callback) { 211 function isWindowed_(callback) {
207 /** @param {chrome.Window} win The current window. */ 212 /** @param {chrome.Window} win The current window. */
208 var windowCallback = function(win) { 213 var windowCallback = function(win) {
209 callback(win.type == 'popup'); 214 callback(win.type == 'popup');
210 }; 215 };
211 /** @param {chrome.Tab} tab The current tab. */ 216 /** @param {chrome.Tab} tab The current tab. */
212 var tabCallback = function(tab) { 217 var tabCallback = function(tab) {
213 if (tab.pinned) { 218 if (tab.pinned) {
214 callback(false); 219 callback(false);
215 } else { 220 } else {
216 chrome.windows.get(tab.windowId, null, windowCallback); 221 chrome.windows.get(tab.windowId, null, windowCallback);
217 } 222 }
218 }; 223 };
219 if (chrome.tabs) { 224 if (chrome.tabs) {
220 chrome.tabs.getCurrent(tabCallback); 225 chrome.tabs.getCurrent(tabCallback);
221 } else { 226 } else {
222 console.error('chome.tabs is not available.'); 227 console.error('chome.tabs is not available.');
223 } 228 }
224 } 229 }
225 230
OLDNEW
« no previous file with comments | « remoting/webapp/crd/js/oauth2.js ('k') | remoting/webapp/js_proto/dom_proto.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698