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 96a08ed023a7418f45fbffb1c71eac009927b32b..f1baf13c1595a4bae44fa05d9e4db3eb0da6299b 100644 |
--- a/remoting/webapp/crd/js/desktop_connected_view.js |
+++ b/remoting/webapp/crd/js/desktop_connected_view.js |
@@ -13,38 +13,35 @@ |
var remoting = remoting || {}; |
/** |
- * @param {remoting.ClientPlugin} plugin |
* @param {HTMLElement} container |
- * @param {remoting.Host} host |
- * @param {remoting.DesktopConnectedView.Mode} mode The mode of this connection. |
+ * @param {remoting.ConnectionInfo} connectionInfo |
* @param {string} defaultRemapKeys The default set of remap keys, to use |
* when the client doesn't define any. |
* @constructor |
* @extends {base.EventSourceImpl} |
* @implements {base.Disposable} |
*/ |
-remoting.DesktopConnectedView = function(plugin, container, host, mode, |
+remoting.DesktopConnectedView = function(container, connectionInfo, |
defaultRemapKeys) { |
/** @private {HTMLElement} */ |
this.container_ = container; |
/** @private {remoting.ClientPlugin} */ |
- this.plugin_ = plugin; |
+ this.plugin_ = connectionInfo.plugin(); |
+ |
+ /** @private {remoting.ClientSession} */ |
+ this.session_ = connectionInfo.session(); |
/** @private */ |
- this.host_ = host; |
+ this.host_ = connectionInfo.host(); |
/** @private */ |
- this.mode_ = mode; |
+ this.mode_ = connectionInfo.mode(); |
/** @private {string} */ |
this.defaultRemapKeys_ = defaultRemapKeys; |
- /** @private {Element} */ |
- this.debugRegionContainer_ = |
- this.container_.querySelector('.debug-region-container'); |
- |
/** @private {remoting.DesktopViewport} */ |
this.viewport_ = null; |
@@ -57,7 +54,8 @@ remoting.DesktopConnectedView = function(plugin, container, host, mode, |
/** private {base.Disposable} */ |
this.eventHooks_ = null; |
- this.setupPlugin_(); |
+ this.initPlugin_(); |
+ this.initUI_(); |
}; |
/** @return {void} Nothing. */ |
@@ -145,7 +143,7 @@ remoting.DesktopConnectedView.prototype.getViewportForTesting = function() { |
}; |
/** @private */ |
-remoting.DesktopConnectedView.prototype.setupPlugin_ = function() { |
+remoting.DesktopConnectedView.prototype.initPlugin_ = 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( |
@@ -162,6 +160,11 @@ remoting.DesktopConnectedView.prototype.setupPlugin_ = function() { |
if (this.plugin_.hasFeature(remoting.ClientPlugin.Feature.REMAP_KEY)) { |
this.applyRemapKeys_(true); |
} |
+ |
+ if (this.session_.hasCapability( |
+ remoting.ClientSession.Capability.VIDEO_RECORDER)) { |
+ this.videoFrameRecorder_ = new remoting.VideoFrameRecorder(this.plugin_); |
+ } |
}; |
/** |
@@ -176,19 +179,8 @@ remoting.DesktopConnectedView.prototype.onResize_ = function() { |
} |
}; |
-/** |
- * Callback that the plugin invokes to indicate when the connection is |
- * ready. |
- * |
- * @param {boolean} ready True if the connection is ready. |
- */ |
-remoting.DesktopConnectedView.prototype.onConnectionReady = function(ready) { |
- if (this.view_) { |
- this.view_.onConnectionReady(ready); |
- } |
-}; |
- |
-remoting.DesktopConnectedView.prototype.onConnected = function() { |
+/** @private */ |
+remoting.DesktopConnectedView.prototype.initUI_ = function() { |
document.body.classList.add('connected'); |
this.view_ = new remoting.ConnectedView( |
@@ -214,9 +206,11 @@ remoting.DesktopConnectedView.prototype.onConnected = function() { |
// Activate full-screen related UX. |
this.eventHooks_ = new base.Disposables( |
this.view_, |
+ new base.EventHook(this.session_, |
+ remoting.ClientSession.Events.videoChannelStateChanged, |
+ this.view_.onConnectionReady.bind(this.view_)), |
new base.DomEventHook(window, 'resize', this.onResize_.bind(this), false), |
- new remoting.Fullscreen.EventHook(this.onFullScreenChanged_.bind(this)) |
- ); |
+ new remoting.Fullscreen.EventHook(this.onFullScreenChanged_.bind(this))); |
this.onFullScreenChanged_(remoting.fullscreen.isActive()); |
}; |
@@ -349,10 +343,6 @@ remoting.DesktopConnectedView.prototype.sendPrintScreen = function() { |
this.sendKeyCombination_([0x070046]); |
}; |
-remoting.DesktopConnectedView.prototype.initVideoFrameRecorder = function() { |
- this.videoFrameRecorder_ = new remoting.VideoFrameRecorder(this.plugin_); |
-}; |
- |
/** |
* Returns true if the ClientSession can record video frames to a file. |
* @return {boolean} |
@@ -394,28 +384,3 @@ remoting.DesktopConnectedView.prototype.handleExtensionMessage = |
} |
return false; |
}; |
- |
-/** |
- * Handles dirty region debug messages. |
- * |
- * @param {{rects:Array<Array<number>>}} region Dirty region of the latest |
- * frame. |
- */ |
-remoting.DesktopConnectedView.prototype.handleDebugRegion = function(region) { |
- while (this.debugRegionContainer_.firstChild) { |
- this.debugRegionContainer_.removeChild( |
- this.debugRegionContainer_.firstChild); |
- } |
- if (region.rects) { |
- var rects = region.rects; |
- for (var i = 0; i < rects.length; ++i) { |
- var rect = document.createElement('div'); |
- rect.classList.add('debug-region-rect'); |
- rect.style.left = rects[i][0] + 'px'; |
- rect.style.top = rects[i][1] +'px'; |
- rect.style.width = rects[i][2] +'px'; |
- rect.style.height = rects[i][3] + 'px'; |
- this.debugRegionContainer_.appendChild(rect); |
- } |
- } |
-}; |