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

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

Issue 160963003: Minor cleanups in UI code that gets host state when webapp is stared (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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « remoting/webapp/host_list.js ('k') | no next file » | 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 /** @type {remoting.HostSession} */ remoting.hostSession = null; 10 /** @type {remoting.HostSession} */ remoting.hostSession = null;
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 166
167 // Verify if the plugin was loaded successfully. 167 // Verify if the plugin was loaded successfully.
168 if (!plugin.hasOwnProperty('REQUESTED_ACCESS_CODE')) { 168 if (!plugin.hasOwnProperty('REQUESTED_ACCESS_CODE')) {
169 container.removeChild(plugin); 169 container.removeChild(plugin);
170 return null; 170 return null;
171 } 171 }
172 172
173 return /** @type {remoting.HostPlugin} */ (plugin); 173 return /** @type {remoting.HostPlugin} */ (plugin);
174 }; 174 };
175 175
176 // TODO(sergeyu): We want to show Me2Me host controls only on some Linux
177 // distributions that we know work properly with the chromoting host. Implement
178 // dome detection mechanism and apply it here.
179 /** @type {boolean} */
180 remoting.supportedLinuxDistibutionDetected_ = false;
181
182 /** 176 /**
177 * Returns true if the current platform is fully supported. It's only used when
178 * we detect that host native messaging components are not installed. In that
179 * case the result of this function determines if the webapp should show the
180 * controls that allow to install and enable Me2Me host.
181 *
183 * @return {boolean} 182 * @return {boolean}
184 */ 183 */
185 remoting.isMe2MeSupported = function isMe2MeSupported() { 184 remoting.isMe2MeInstallable = function() {
186 /** @type {string} */ 185 /** @type {string} */
187 var platform = navigator.platform; 186 var platform = navigator.platform;
188 187 return platform == 'Win32' || platform == 'MacIntel';
189 // Currently Me2Me is supported on Windows, OSX and some versions of Linux.
190 return platform == 'Win32' || platform == 'MacIntel' ||
191 ((platform == 'Linux x86_64' || platform == 'Linux i386') &&
192 remoting.supportedLinuxDistibutionDetected_ &&
193 !remoting.runningOnChromeOS());
194 } 188 }
195 189
196 /** 190 /**
197 * Display the user's email address and allow access to the rest of the app, 191 * Display the user's email address and allow access to the rest of the app,
198 * including parsing URL parameters. 192 * including parsing URL parameters.
199 * 193 *
200 * @param {string} email The user's email address. 194 * @param {string} email The user's email address.
201 * @return {void} Nothing. 195 * @return {void} Nothing.
202 */ 196 */
203 remoting.onEmail = function(email) { 197 remoting.onEmail = function(email) {
(...skipping 27 matching lines...) Expand all
231 remoting.updateLocalHostState(); 225 remoting.updateLocalHostState();
232 remoting.hostList.refresh(remoting.updateLocalHostState); 226 remoting.hostList.refresh(remoting.updateLocalHostState);
233 remoting.butterBar = new remoting.ButterBar(); 227 remoting.butterBar = new remoting.ButterBar();
234 }; 228 };
235 229
236 /** 230 /**
237 * Fetches local host state and updates the DOM accordingly. 231 * Fetches local host state and updates the DOM accordingly.
238 */ 232 */
239 remoting.updateLocalHostState = function() { 233 remoting.updateLocalHostState = function() {
240 /** 234 /**
241 * @param {string?} hostId Host id. 235 * @param {remoting.HostController.State} state Host state.
242 */ 236 */
243 var onHostId = function(hostId) { 237 var onHostState = function(state) {
244 remoting.hostController.getLocalHostState(onHostState.bind(null, hostId)); 238 if (state == remoting.HostController.State.STARTED) {
239 remoting.hostController.getLocalHostId(onHostId.bind(null, state));
240 } else {
241 onHostId(state, null);
242 }
245 }; 243 };
246 244
247 /** 245 /**
246 * @param {remoting.HostController.State} state Host state.
248 * @param {string?} hostId Host id. 247 * @param {string?} hostId Host id.
249 * @param {remoting.HostController.State} state Host state.
250 */ 248 */
251 var onHostState = function(hostId, state) { 249 var onHostId = function(state, hostId) {
252 remoting.hostList.setLocalHostStateAndId(state, hostId); 250 remoting.hostList.setLocalHostStateAndId(state, hostId);
253 remoting.hostList.display(); 251 remoting.hostList.display();
254 }; 252 };
255 253
256 /** 254 /**
257 * @param {boolean} response True if the feature is present. 255 * @param {boolean} response True if the feature is present.
258 */ 256 */
259 var onHasFeatureResponse = function(response) { 257 var onHasFeatureResponse = function(response) {
260 /** 258 /**
261 * @param {remoting.Error} error 259 * @param {remoting.Error} error
262 */ 260 */
263 var onError = function(error) { 261 var onError = function(error) {
264 console.error('Failed to get pairing status: ' + error); 262 console.error('Failed to get pairing status: ' + error);
265 remoting.pairedClientManager.setPairedClients([]); 263 remoting.pairedClientManager.setPairedClients([]);
266 }; 264 };
267 265
268 if (response) { 266 if (response) {
269 remoting.hostController.getPairedClients( 267 remoting.hostController.getPairedClients(
270 remoting.pairedClientManager.setPairedClients.bind( 268 remoting.pairedClientManager.setPairedClients.bind(
271 remoting.pairedClientManager), 269 remoting.pairedClientManager),
272 onError); 270 onError);
273 } else { 271 } else {
274 console.log('Pairing registry not supported by host.'); 272 console.log('Pairing registry not supported by host.');
275 remoting.pairedClientManager.setPairedClients([]); 273 remoting.pairedClientManager.setPairedClients([]);
276 } 274 }
277 }; 275 };
278 276
279 remoting.hostController.hasFeature( 277 remoting.hostController.hasFeature(
280 remoting.HostController.Feature.PAIRING_REGISTRY, onHasFeatureResponse); 278 remoting.HostController.Feature.PAIRING_REGISTRY, onHasFeatureResponse);
281 remoting.hostController.getLocalHostId(onHostId); 279 remoting.hostController.getLocalHostState(onHostState);
282 }; 280 };
283 281
284 /** 282 /**
285 * Log information about the current extension. 283 * Log information about the current extension.
286 * The extension manifest is parsed to extract this info. 284 * The extension manifest is parsed to extract this info.
287 */ 285 */
288 remoting.logExtensionInfo_ = function() { 286 remoting.logExtensionInfo_ = function() {
289 var v2OrLegacy = remoting.isAppsV2 ? " (v2)" : " (legacy)"; 287 var v2OrLegacy = remoting.isAppsV2 ? " (v2)" : " (legacy)";
290 var manifest = chrome.runtime.getManifest(); 288 var manifest = chrome.runtime.getManifest();
291 if (manifest && manifest.version) { 289 if (manifest && manifest.version) {
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 /** 497 /**
500 * Generate a nonce, to be used as an xsrf protection token. 498 * Generate a nonce, to be used as an xsrf protection token.
501 * 499 *
502 * @return {string} A URL-Safe Base64-encoded 128-bit random value. */ 500 * @return {string} A URL-Safe Base64-encoded 128-bit random value. */
503 remoting.generateXsrfToken = function() { 501 remoting.generateXsrfToken = function() {
504 var random = new Uint8Array(16); 502 var random = new Uint8Array(16);
505 window.crypto.getRandomValues(random); 503 window.crypto.getRandomValues(random);
506 var base64Token = window.btoa(String.fromCharCode.apply(null, random)); 504 var base64Token = window.btoa(String.fromCharCode.apply(null, random));
507 return base64Token.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, ''); 505 return base64Token.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
508 }; 506 };
OLDNEW
« no previous file with comments | « remoting/webapp/host_list.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698