| 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 }; | 42 }; |
| 43 | 43 |
| 44 /** | 44 /** |
| 45 * @override {remoting.ApplicationInterface} | 45 * @override {remoting.ApplicationInterface} |
| 46 */ | 46 */ |
| 47 remoting.DesktopRemoting.prototype.initApplication_ = function() { | 47 remoting.DesktopRemoting.prototype.initApplication_ = function() { |
| 48 remoting.initElementEventHandlers(); | 48 remoting.initElementEventHandlers(); |
| 49 | 49 |
| 50 if (base.isAppsV2()) { | 50 if (base.isAppsV2()) { |
| 51 remoting.windowFrame = new remoting.WindowFrame( | 51 remoting.windowFrame = new remoting.WindowFrame( |
| 52 document.getElementById('title-bar')); | 52 document.getElementById('title-bar'), this.disconnect_.bind(this)); |
| 53 remoting.optionsMenu = remoting.windowFrame.createOptionsMenu(); | 53 remoting.optionsMenu = remoting.windowFrame.createOptionsMenu(); |
| 54 | 54 |
| 55 var START_FULLSCREEN = 'start-fullscreen'; | 55 var START_FULLSCREEN = 'start-fullscreen'; |
| 56 remoting.fullscreen = new remoting.FullscreenAppsV2(); | 56 remoting.fullscreen = new remoting.FullscreenAppsV2(); |
| 57 remoting.fullscreen.addListener(function(isFullscreen) { | 57 remoting.fullscreen.addListener(function(isFullscreen) { |
| 58 chrome.storage.local.set({START_FULLSCREEN: isFullscreen}); | 58 chrome.storage.local.set({START_FULLSCREEN: isFullscreen}); |
| 59 }); | 59 }); |
| 60 // TODO(jamiewalch): This should be handled by the background page when the | 60 // TODO(jamiewalch): This should be handled by the background page when the |
| 61 // window is created, but due to crbug.com/51587 it needs to be done here. | 61 // window is created, but due to crbug.com/51587 it needs to be done here. |
| 62 // Remove this hack once that bug is fixed. | 62 // Remove this hack once that bug is fixed. |
| 63 chrome.storage.local.get( | 63 chrome.storage.local.get( |
| 64 START_FULLSCREEN, | 64 START_FULLSCREEN, |
| 65 /** @param {Object} values */ | 65 /** @param {Object} values */ |
| 66 function(values) { | 66 function(values) { |
| 67 if (values[START_FULLSCREEN]) { | 67 if (values[START_FULLSCREEN]) { |
| 68 remoting.fullscreen.activate(true); | 68 remoting.fullscreen.activate(true); |
| 69 } | 69 } |
| 70 } | 70 } |
| 71 ); | 71 ); |
| 72 | 72 |
| 73 } else { | 73 } else { |
| 74 remoting.fullscreen = new remoting.FullscreenAppsV1(); | 74 remoting.fullscreen = new remoting.FullscreenAppsV1(); |
| 75 remoting.toolbar = new remoting.Toolbar( | 75 remoting.toolbar = new remoting.Toolbar( |
| 76 document.getElementById('session-toolbar')); | 76 document.getElementById('session-toolbar'), |
| 77 this.disconnect_.bind(this)); |
| 77 remoting.optionsMenu = remoting.toolbar.createOptionsMenu(); | 78 remoting.optionsMenu = remoting.toolbar.createOptionsMenu(); |
| 78 | 79 |
| 79 window.addEventListener('beforeunload', | 80 window.addEventListener('beforeunload', |
| 80 this.promptClose_.bind(this), false); | 81 this.promptClose_.bind(this), false); |
| 81 window.addEventListener('unload', | 82 window.addEventListener('unload', this.disconnect_.bind(this), false); |
| 82 remoting.app.disconnect.bind(remoting.app), false); | |
| 83 } | 83 } |
| 84 | 84 |
| 85 remoting.initHostlist_(this.connectMe2Me_.bind(this)); | 85 remoting.initHostlist_(this.connectMe2Me_.bind(this)); |
| 86 document.getElementById('access-mode-button').addEventListener( | 86 document.getElementById('access-mode-button').addEventListener( |
| 87 'click', this.connectIt2Me_.bind(this), false); | 87 'click', this.connectIt2Me_.bind(this), false); |
| 88 | 88 |
| 89 var homeFeedback = new remoting.MenuButton( | 89 var homeFeedback = new remoting.MenuButton( |
| 90 document.getElementById('help-feedback-main')); | 90 document.getElementById('help-feedback-main')); |
| 91 var toolbarFeedback = new remoting.MenuButton( | 91 var toolbarFeedback = new remoting.MenuButton( |
| 92 document.getElementById('help-feedback-toolbar')); | 92 document.getElementById('help-feedback-toolbar')); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 } | 182 } |
| 183 } | 183 } |
| 184 }; | 184 }; |
| 185 | 185 |
| 186 /** @returns {remoting.DesktopConnectedView} */ | 186 /** @returns {remoting.DesktopConnectedView} */ |
| 187 remoting.DesktopRemoting.prototype.getConnectedViewForTesting = function() { | 187 remoting.DesktopRemoting.prototype.getConnectedViewForTesting = function() { |
| 188 var activity = /** @type {remoting.Me2MeActivity} */ (this.activity_); | 188 var activity = /** @type {remoting.Me2MeActivity} */ (this.activity_); |
| 189 return activity.getDesktopActivity().getConnectedView(); | 189 return activity.getDesktopActivity().getConnectedView(); |
| 190 }; | 190 }; |
| 191 | 191 |
| 192 remoting.DesktopRemoting.prototype.getActivity = function() { |
| 193 return this.activity_; |
| 194 }; |
| 195 |
| 196 remoting.DesktopRemoting.prototype.disconnect_ = function() { |
| 197 if (this.activity_) { |
| 198 this.activity_.stop(); |
| 199 } |
| 200 }; |
| 201 |
| 192 /** | 202 /** |
| 193 * Entry-point for Me2Me connections. | 203 * Entry-point for Me2Me connections. |
| 194 * | 204 * |
| 195 * @param {string} hostId The unique id of the host. | 205 * @param {string} hostId The unique id of the host. |
| 196 * @return {void} Nothing. | 206 * @return {void} Nothing. |
| 197 * @private | 207 * @private |
| 198 */ | 208 */ |
| 199 remoting.DesktopRemoting.prototype.connectMe2Me_ = function(hostId) { | 209 remoting.DesktopRemoting.prototype.connectMe2Me_ = function(hostId) { |
| 200 var host = remoting.hostList.getHostForId(hostId); | 210 var host = remoting.hostList.getHostForId(hostId); |
| 201 base.dispose(this.activity_); | 211 base.dispose(this.activity_); |
| 202 this.activity_ = new remoting.Me2MeActivity(host); | 212 this.activity_ = new remoting.Me2MeActivity(host); |
| 203 this.activity_.start(); | 213 this.activity_.start(); |
| 204 }; | 214 }; |
| 205 | 215 |
| 206 /** | 216 /** |
| 207 * Entry-point for It2Me connections. | 217 * Entry-point for It2Me connections. |
| 208 * | 218 * |
| 209 * @private | 219 * @private |
| 210 */ | 220 */ |
| 211 remoting.DesktopRemoting.prototype.connectIt2Me_ = function() { | 221 remoting.DesktopRemoting.prototype.connectIt2Me_ = function() { |
| 212 base.dispose(this.activity_); | 222 base.dispose(this.activity_); |
| 213 this.activity_ = new remoting.It2MeActivity(); | 223 this.activity_ = new remoting.It2MeActivity(); |
| 214 this.activity_.start(); | 224 this.activity_.start(); |
| 215 }; | 225 }; |
| OLD | NEW |