OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * This class implements the functionality that is specific to desktop | 7 * This class implements the functionality that is specific to desktop |
8 * remoting ("Chromoting" or CRD). | 8 * remoting ("Chromoting" or CRD). |
9 */ | 9 */ |
10 | 10 |
(...skipping 23 matching lines...) Expand all Loading... | |
34 * Whether to refresh the JID and retry the connection if the current JID | 34 * Whether to refresh the JID and retry the connection if the current JID |
35 * is offline. | 35 * is offline. |
36 * | 36 * |
37 * @type {boolean} | 37 * @type {boolean} |
38 * @private | 38 * @private |
39 */ | 39 */ |
40 this.refreshHostJidIfOffline_ = true; | 40 this.refreshHostJidIfOffline_ = true; |
41 }; | 41 }; |
42 | 42 |
43 /** | 43 /** |
44 * Display the user's email address and allow access to the rest of the app, | |
45 * including parsing URL parameters. | |
46 * | |
47 * @param {string} email The user's email address. | |
48 * @param {string} fullName The user's full name. This is always null since | |
49 * CRD doesn't request userinfo.profile permission. | |
50 * @return {void} Nothing. | |
51 */ | |
52 remoting.onUserInfoAvailable = function(email, fullName) { | |
53 document.getElementById('current-email').innerText = email; | |
54 document.getElementById('get-started-it2me').disabled = false; | |
55 document.getElementById('get-started-me2me').disabled = false; | |
56 }; | |
57 | |
58 /** | |
59 * Initialize the application and register all event handlers. After this | 44 * Initialize the application and register all event handlers. After this |
60 * is called, the app is running and waiting for user events. | 45 * is called, the app is running and waiting for user events. |
61 * | 46 * |
62 * @return {void} Nothing. | 47 * @return {void} Nothing. |
63 */ | 48 */ |
64 remoting.DesktopRemoting.prototype.init = function() { | 49 remoting.DesktopRemoting.prototype.init = function() { |
65 remoting.initGlobalObjects(); | |
66 remoting.initIdentity(remoting.onUserInfoAvailable); | |
67 | |
68 remoting.initElementEventHandlers(); | 50 remoting.initElementEventHandlers(); |
69 | 51 |
70 if (base.isAppsV2()) { | 52 if (base.isAppsV2()) { |
71 remoting.windowFrame = new remoting.WindowFrame( | 53 remoting.windowFrame = new remoting.WindowFrame( |
72 document.getElementById('title-bar')); | 54 document.getElementById('title-bar')); |
73 remoting.optionsMenu = remoting.windowFrame.createOptionsMenu(); | 55 remoting.optionsMenu = remoting.windowFrame.createOptionsMenu(); |
74 | 56 |
75 var START_FULLSCREEN = 'start-fullscreen'; | 57 var START_FULLSCREEN = 'start-fullscreen'; |
76 remoting.fullscreen = new remoting.FullscreenAppsV2(); | 58 remoting.fullscreen = new remoting.FullscreenAppsV2(); |
77 remoting.fullscreen.addListener(function(isFullscreen) { | 59 remoting.fullscreen.addListener(function(isFullscreen) { |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
136 document.getElementById('startup-mode-box-it2me').hidden = false; | 118 document.getElementById('startup-mode-box-it2me').hidden = false; |
137 } | 119 } |
138 }; | 120 }; |
139 isWindowed_(onIsWindowed); | 121 isWindowed_(onIsWindowed); |
140 } | 122 } |
141 | 123 |
142 remoting.ClientPlugin.factory.preloadPlugin(); | 124 remoting.ClientPlugin.factory.preloadPlugin(); |
143 } | 125 } |
144 | 126 |
145 /** | 127 /** |
128 * Start the application. Once start() is called, the delegate can assume that | |
129 * the user has consented to all permissions specified in the manifest. | |
130 * | |
131 * @param {remoting.SessionConnector} connector | |
132 * @param {string} token An OAuth access token. The delegate should not cache | |
133 * this token, but can assume that it will remain valid during application | |
134 * start-up. | |
135 */ | |
136 remoting.DesktopRemoting.prototype.start = function(connector, token) { | |
137 remoting.identity.getEmail().then( | |
138 function(/** string */ email) { | |
139 document.getElementById('current-email').innerText = email; | |
140 document.getElementById('get-started-it2me').disabled = false; | |
141 document.getElementById('get-started-me2me').disabled = false; | |
142 }); | |
143 }; | |
144 | |
145 /** | |
146 * Report an authentication error to the user. This is called in lieu of start() | |
147 * if the user cannot be authenticated or if they decline the app permissions. | |
148 * | |
149 * @param {remoting.Error} error The failure reason. | |
150 */ | |
151 remoting.DesktopRemoting.prototype.signInFailed = function(error) { | |
152 if (error == remoting.Error.CANCELLED) { | |
153 chrome.app.window.current().close(); | |
garykac
2015/03/05 02:38:25
if AppsV2?
Jamie
2015/03/05 19:01:36
I'm assuming that there is only apps v2 for this c
garykac
2015/03/06 21:16:25
Acknowledged.
| |
154 } else { | |
155 remoting.showErrorMessage(error); | |
156 } | |
157 }; | |
158 | |
159 /** | |
146 * @return {string} Application product name to be used in UI. | 160 * @return {string} Application product name to be used in UI. |
147 */ | 161 */ |
148 remoting.DesktopRemoting.prototype.getApplicationName = function() { | 162 remoting.DesktopRemoting.prototype.getApplicationName = function() { |
149 return chrome.i18n.getMessage(/*i18n-content*/'PRODUCT_NAME'); | 163 return chrome.i18n.getMessage(/*i18n-content*/'PRODUCT_NAME'); |
150 }; | 164 }; |
151 | 165 |
152 /** | 166 /** |
153 * @return {string} The default remap keys for the current platform. | 167 * @return {string} The default remap keys for the current platform. |
154 */ | 168 */ |
155 remoting.DesktopRemoting.prototype.getDefaultRemapKeys = function() { | 169 remoting.DesktopRemoting.prototype.getDefaultRemapKeys = function() { |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
226 clientSession.requestPairing(clientName, onPairingComplete); | 240 clientSession.requestPairing(clientName, onPairingComplete); |
227 } | 241 } |
228 }; | 242 }; |
229 | 243 |
230 /** | 244 /** |
231 * Called when the current session has been disconnected. | 245 * Called when the current session has been disconnected. |
232 * | 246 * |
233 * @return {void} Nothing. | 247 * @return {void} Nothing. |
234 */ | 248 */ |
235 remoting.DesktopRemoting.prototype.handleDisconnected = function() { | 249 remoting.DesktopRemoting.prototype.handleDisconnected = function() { |
236 }; | 250 }; |
garykac
2015/03/05 02:38:26
if AppsV2, then chrome.app.window.current().close?
Jamie
2015/03/05 19:01:36
No, we don't want to close the widow on disconnect
garykac
2015/03/06 21:16:25
Acknowledged.
| |
237 | 251 |
238 /** | 252 /** |
239 * Called when the current session's connection has failed. | 253 * Called when the current session's connection has failed. |
240 * | 254 * |
241 * @param {remoting.SessionConnector} connector | 255 * @param {remoting.SessionConnector} connector |
242 * @param {remoting.Error} error | 256 * @param {remoting.Error} error |
243 * @return {void} Nothing. | 257 * @return {void} Nothing. |
244 */ | 258 */ |
245 remoting.DesktopRemoting.prototype.handleConnectionFailed = function( | 259 remoting.DesktopRemoting.prototype.handleConnectionFailed = function( |
246 connector, error) { | 260 connector, error) { |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
311 l10n.localizeElementFromTag(errorDiv, /** @type {string} */ (errorTag)); | 325 l10n.localizeElementFromTag(errorDiv, /** @type {string} */ (errorTag)); |
312 | 326 |
313 var mode = remoting.clientSession ? remoting.desktopConnectedView.getMode() | 327 var mode = remoting.clientSession ? remoting.desktopConnectedView.getMode() |
314 : this.app_.getSessionConnector().getConnectionMode(); | 328 : this.app_.getSessionConnector().getConnectionMode(); |
315 if (mode == remoting.DesktopConnectedView.Mode.IT2ME) { | 329 if (mode == remoting.DesktopConnectedView.Mode.IT2ME) { |
316 remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_IT2ME); | 330 remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_IT2ME); |
317 } else { | 331 } else { |
318 remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME); | 332 remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME); |
319 } | 333 } |
320 }; | 334 }; |
OLD | NEW |