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

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

Issue 942933002: Fix cannot disconnect remoting session. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 | « no previous file | 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 /** 5 /**
6 * @fileoverview 6 * @fileoverview
7 * Functions related to the 'client screen' for Chromoting. 7 * Functions related to the 'client screen' for Chromoting.
8 */ 8 */
9 9
10 'use strict'; 10 'use strict';
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 ('hidden' in document) ? document.hidden : document.webkitHidden); 46 ('hidden' in document) ? document.hidden : document.webkitHidden);
47 } 47 }
48 }; 48 };
49 49
50 /** 50 /**
51 * Disconnect the remoting client. 51 * Disconnect the remoting client.
52 * 52 *
53 * @return {void} Nothing. 53 * @return {void} Nothing.
54 */ 54 */
55 remoting.disconnect = function() { 55 remoting.disconnect = function() {
56 if (!remoting.desktopConnectedView) { 56 if (!remoting.clientSession) {
57 return; 57 return;
58 } 58 }
59 if (remoting.desktopConnectedView.getMode() == 59 remoting.clientSession.disconnect(remoting.Error.NONE);
60 remoting.DesktopConnectedView.Mode.IT2ME) {
61 remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_IT2ME);
62 } else {
63 remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME);
64 }
65 remoting.app.onDisconnected();
66 remoting.clientSession = null;
67 remoting.desktopConnectedView = null;
68 console.log('Disconnected.'); 60 console.log('Disconnected.');
69 }; 61 };
70 62
71 /** 63 /**
72 * Callback function called when the state of the client plugin changes. The 64 * Callback function called when the state of the client plugin changes. The
73 * current and previous states are available via the |state| member variable. 65 * current and previous states are available via the |state| member variable.
74 * 66 *
75 * @param {remoting.ClientSession.StateEvent=} state 67 * @param {remoting.ClientSession.StateEvent=} state
76 */ 68 */
77 function onClientStateChange_(state) { 69 function onClientStateChange_(state) {
(...skipping 26 matching lines...) Expand all
104 // This should only happen if the web-app and client plugin get out of 96 // This should only happen if the web-app and client plugin get out of
105 // sync, so MISSING_PLUGIN is a suitable error. 97 // sync, so MISSING_PLUGIN is a suitable error.
106 remoting.app.onError(remoting.Error.MISSING_PLUGIN); 98 remoting.app.onError(remoting.Error.MISSING_PLUGIN);
107 break; 99 break;
108 } 100 }
109 101
110 remoting.clientSession.removeEventListener('stateChanged', 102 remoting.clientSession.removeEventListener('stateChanged',
111 onClientStateChange_); 103 onClientStateChange_);
112 remoting.clientSession.cleanup(); 104 remoting.clientSession.cleanup();
113 remoting.clientSession = null; 105 remoting.clientSession = null;
106 remoting.desktopConnectedView = null;
114 } 107 }
115 108
116 /** 109 /**
117 * Timer callback to update the statistics panel. 110 * Timer callback to update the statistics panel.
118 */ 111 */
119 function updateStatistics_() { 112 function updateStatistics_() {
120 if (!remoting.clientSession || 113 if (!remoting.clientSession ||
121 remoting.clientSession.getState() != 114 remoting.clientSession.getState() !=
122 remoting.ClientSession.State.CONNECTED) { 115 remoting.ClientSession.State.CONNECTED) {
123 return; 116 return;
124 } 117 }
125 var perfstats = remoting.clientSession.getPerfStats(); 118 var perfstats = remoting.clientSession.getPerfStats();
126 remoting.stats.update(perfstats); 119 remoting.stats.update(perfstats);
127 remoting.clientSession.logStatistics(perfstats); 120 remoting.clientSession.logStatistics(perfstats);
128 // Update the stats once per second. 121 // Update the stats once per second.
129 window.setTimeout(updateStatistics_, 1000); 122 window.setTimeout(updateStatistics_, 1000);
130 } 123 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698