Index: remoting/webapp/crd/js/desktop_connected_view.js |
diff --git a/remoting/webapp/crd/js/desktop_connected_view.js b/remoting/webapp/crd/js/desktop_connected_view.js |
index b40b63d183f29ecccffacc4e3edd407feccd9a1e..b0c7d362a6e8dcf8a6252132b3440b52c0c073ff 100644 |
--- a/remoting/webapp/crd/js/desktop_connected_view.js |
+++ b/remoting/webapp/crd/js/desktop_connected_view.js |
@@ -25,25 +25,25 @@ var remoting = remoting || {}; |
remoting.enableMouseLock = false; |
/** |
+ * @param {remoting.ClientPlugin} plugin |
* @param {remoting.ClientSession} session |
* @param {HTMLElement} container |
* @param {remoting.Host} host |
* @param {remoting.DesktopConnectedView.Mode} mode The mode of this connection. |
* @param {string} defaultRemapKeys The default set of remap keys, to use |
* when the client doesn't define any. |
- * @param {function(remoting.Error, remoting.ClientPlugin): void} onInitialized |
* @constructor |
* @extends {base.EventSourceImpl} |
*/ |
-remoting.DesktopConnectedView = function(session, container, host, mode, |
- defaultRemapKeys, onInitialized) { |
+remoting.DesktopConnectedView = function(plugin, session, container, host, mode, |
+ defaultRemapKeys) { |
this.session_ = session; |
/** @type {HTMLElement} @private */ |
this.container_ = container; |
/** @type {remoting.ClientPlugin} @private */ |
- this.plugin_ = null; |
+ this.plugin_ = plugin; |
/** @private */ |
this.host_ = host; |
@@ -54,12 +54,6 @@ remoting.DesktopConnectedView = function(session, container, host, mode, |
/** @type {string} @private */ |
this.defaultRemapKeys_ = defaultRemapKeys; |
- /** |
- * Called when the UI is finished initializing. |
- * @type {function(remoting.Error, remoting.ClientPlugin):void} |
- */ |
- this.onInitialized_ = onInitialized; |
- |
/** @private */ |
this.callPluginLostFocus_ = this.pluginLostFocus_.bind(this); |
/** @private */ |
@@ -88,6 +82,8 @@ remoting.DesktopConnectedView = function(session, container, host, mode, |
/** private {base.Disposable} */ |
this.eventHooks_ = null; |
+ |
+ this.setupPlugin_(); |
}; |
// The mode of this session. |
@@ -153,42 +149,8 @@ remoting.DesktopConnectedView.prototype.getViewportForTesting = function() { |
return this.viewport_; |
}; |
-/** |
- * Adds <embed> element to the UI container and readies the session object. |
- * |
- * @param {function(string, string):boolean} onExtensionMessage The handler for |
- * protocol extension messages. Returns true if a message is recognized; |
- * false otherwise. |
- * @param {Array<string>} requiredCapabilities A list of capabilities |
- * required by this application. |
- */ |
-remoting.DesktopConnectedView.prototype.createPluginAndConnect = |
- function(onExtensionMessage, requiredCapabilities) { |
- this.plugin_ = remoting.ClientPlugin.factory.createPlugin( |
- this.getPluginContainer_(), |
- onExtensionMessage, requiredCapabilities); |
- var that = this; |
- this.host_.options.load().then(function(){ |
- that.plugin_.initialize(that.onPluginInitialized_.bind(that)); |
- }); |
-}; |
- |
-/** |
- * @param {boolean} initialized |
- */ |
-remoting.DesktopConnectedView.prototype.onPluginInitialized_ = function( |
- initialized) { |
- if (!initialized) { |
- console.error('ERROR: remoting plugin not loaded'); |
- this.onInitialized_(remoting.Error.MISSING_PLUGIN, this.plugin_); |
- return; |
- } |
- |
- if (!this.plugin_.isSupportedVersion()) { |
- this.onInitialized_(remoting.Error.BAD_PLUGIN_VERSION, this.plugin_); |
- return; |
- } |
- |
+/** @private */ |
+remoting.DesktopConnectedView.prototype.setupPlugin_ = function() { |
// Show the Send Keys menu only if the plugin has the injectKeyEvent feature, |
// and the Ctrl-Alt-Del button only in Me2Me mode. |
if (!this.plugin_.hasFeature( |
@@ -214,8 +176,6 @@ remoting.DesktopConnectedView.prototype.onPluginInitialized_ = function( |
} |
this.plugin_.setMouseCursorHandler(this.updateMouseCursorImage_.bind(this)); |
- |
- this.onInitialized_(remoting.Error.NONE, this.plugin_); |
}; |
/** |
@@ -265,7 +225,6 @@ remoting.DesktopConnectedView.prototype.removePlugin = function() { |
'focus', this.callPluginGotFocus_, false); |
this.plugin_.element().removeEventListener( |
'blur', this.callPluginLostFocus_, false); |
- this.plugin_.dispose(); |
this.plugin_ = null; |
} |