OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 var remoting = remoting || {}; | 5 var remoting = remoting || {}; |
6 | 6 |
7 (function() { | 7 (function() { |
8 'use strict'; | 8 'use strict'; |
9 | 9 |
10 window.addEventListener('blur', pluginLostFocus_, false); | 10 window.addEventListener('blur', pluginLostFocus_, false); |
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 ', Capture: ' + stats['capture_latency'].toFixed(2) + 'ms' + | 431 ', Capture: ' + stats['capture_latency'].toFixed(2) + 'ms' + |
432 ', Encode: ' + stats['encode_latency'].toFixed(2) + 'ms' + | 432 ', Encode: ' + stats['encode_latency'].toFixed(2) + 'ms' + |
433 ', Decode: ' + stats['decode_latency'].toFixed(2) + 'ms' + | 433 ', Decode: ' + stats['decode_latency'].toFixed(2) + 'ms' + |
434 ', Render: ' + stats['render_latency'].toFixed(2) + 'ms' + | 434 ', Render: ' + stats['render_latency'].toFixed(2) + 'ms' + |
435 ', Latency: ' + stats['roundtrip_latency'].toFixed(2) + 'ms'; | 435 ', Latency: ' + stats['roundtrip_latency'].toFixed(2) + 'ms'; |
436 | 436 |
437 // Update the stats once per second. | 437 // Update the stats once per second. |
438 window.setTimeout(updateStatistics, 1000); | 438 window.setTimeout(updateStatistics, 1000); |
439 } | 439 } |
440 | 440 |
441 function onClientStateChange_(state) { | 441 function onClientStateChange_(oldState) { |
| 442 var state = remoting.session.state; |
442 if (state == remoting.ClientSession.State.UNKNOWN) { | 443 if (state == remoting.ClientSession.State.UNKNOWN) { |
443 setClientStateMessage('Unknown'); | 444 setClientStateMessage('Unknown'); |
444 } else if (state == remoting.ClientSession.State.CREATED) { | 445 } else if (state == remoting.ClientSession.State.CREATED) { |
445 setClientStateMessage('Created'); | 446 setClientStateMessage('Created'); |
446 } else if (state == remoting.ClientSession.State.BAD_PLUGIN_VERSION) { | 447 } else if (state == remoting.ClientSession.State.BAD_PLUGIN_VERSION) { |
447 setClientStateMessage('Incompatible Plugin Version'); | 448 setClientStateMessage('Incompatible Plugin Version'); |
448 } else if (state == remoting.ClientSession.State.UNKNOWN_PLUGIN_ERROR) { | 449 } else if (state == remoting.ClientSession.State.UNKNOWN_PLUGIN_ERROR) { |
449 setClientStateMessage('Unknown error with plugin.'); | 450 setClientStateMessage('Unknown error with plugin.'); |
450 } else if (state == remoting.ClientSession.State.CONNECTING) { | 451 } else if (state == remoting.ClientSession.State.CONNECTING) { |
451 setClientStateMessage('Connecting as ' + remoting.username); | 452 setClientStateMessage('Connecting as ' + remoting.username); |
452 } else if (state == remoting.ClientSession.State.INITIALIZING) { | 453 } else if (state == remoting.ClientSession.State.INITIALIZING) { |
453 setClientStateMessage('Initializing connection'); | 454 setClientStateMessage('Initializing connection'); |
454 } else if (state == remoting.ClientSession.State.CONNECTED) { | 455 } else if (state == remoting.ClientSession.State.CONNECTED) { |
455 var split = remoting.hostJid.split('/'); | 456 var split = remoting.hostJid.split('/'); |
456 var host = null; | 457 var host = null; |
457 if (split.length == 2) { | 458 if (split.length == 2) { |
458 host = split[0]; | 459 host = split[0]; |
459 } | 460 } |
460 setClientStateMessage('Connected to', host); | 461 setClientStateMessage('Connected to', host); |
| 462 setGlobalMode(remoting.AppMode.IN_SESSION); |
461 updateStatistics(); | 463 updateStatistics(); |
462 } else if (state == remoting.ClientSession.State.CLOSED) { | 464 } else if (state == remoting.ClientSession.State.CLOSED) { |
463 setClientStateMessage('Closed'); | 465 setClientStateMessage('Closed'); |
| 466 if (oldState != remoting.ClientSession.State.CONNECTED) { |
| 467 // TODO(jamiewalch): This is not quite correct, as it will report |
| 468 // "Invalid access code", regardless of what actually went wrong. |
| 469 // Fix this up by having the host send a suitable error code. |
| 470 showConnectError_(404); |
| 471 } |
464 } else if (state == remoting.ClientSession.State.CONNECTION_FAILED) { | 472 } else if (state == remoting.ClientSession.State.CONNECTION_FAILED) { |
465 setClientStateMessage('Failed'); | 473 setClientStateMessage('Failed'); |
466 } else { | 474 } else { |
467 setClientStateMessage('Bad State: ' + state); | 475 setClientStateMessage('Bad State: ' + state); |
468 } | 476 } |
469 } | 477 } |
470 | 478 |
471 function startSession_() { | 479 function startSession_() { |
472 remoting.debug.log('Starting session...'); | 480 remoting.debug.log('Starting session...'); |
473 remoting.username = getEmail(); | 481 remoting.username = getEmail(); |
474 setGlobalMode(remoting.AppMode.IN_SESSION); | |
475 remoting.session = | 482 remoting.session = |
476 new remoting.ClientSession(remoting.hostJid, remoting.hostPublicKey, | 483 new remoting.ClientSession(remoting.hostJid, remoting.hostPublicKey, |
477 remoting.accessCode, getEmail(), | 484 remoting.accessCode, getEmail(), |
478 onClientStateChange_); | 485 onClientStateChange_); |
479 remoting.oauth2.callWithToken(function(token) { | 486 remoting.oauth2.callWithToken(function(token) { |
480 remoting.session.createPluginAndConnect( | 487 remoting.session.createPluginAndConnect( |
481 document.getElementById('session-mode'), | 488 document.getElementById('session-mode'), |
482 token); | 489 token); |
483 }); | 490 }); |
484 } | 491 } |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
632 remoting.session = null; | 639 remoting.session = null; |
633 remoting.debug.log('Disconnected.'); | 640 remoting.debug.log('Disconnected.'); |
634 remoting.setClientMode('unconnected'); | 641 remoting.setClientMode('unconnected'); |
635 var accessCode = document.getElementById('access-code-entry'); | 642 var accessCode = document.getElementById('access-code-entry'); |
636 accessCode.value = ''; | 643 accessCode.value = ''; |
637 setGlobalMode(remoting.AppMode.CLIENT); | 644 setGlobalMode(remoting.AppMode.CLIENT); |
638 } | 645 } |
639 } | 646 } |
640 | 647 |
641 }()); | 648 }()); |
OLD | NEW |