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 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * Session class that handles creation and teardown of a remoting session. | 7 * Session class that handles creation and teardown of a remoting session. |
8 * | 8 * |
9 * This abstracts a <embed> element and controls the plugin which does the | 9 * This abstracts a <embed> element and controls the plugin which does the |
10 * actual remoting work. There should be no UI code inside this class. It | 10 * actual remoting work. There should be no UI code inside this class. It |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
198 remoting.debug.log('Sending Iq: ' + msg); | 198 remoting.debug.log('Sending Iq: ' + msg); |
199 | 199 |
200 // Extract the top level fields of the Iq packet. | 200 // Extract the top level fields of the Iq packet. |
201 // TODO(ajwong): Can the plugin just return these fields broken out. | 201 // TODO(ajwong): Can the plugin just return these fields broken out. |
202 var parser = new DOMParser(); | 202 var parser = new DOMParser(); |
203 var iqNode = parser.parseFromString(msg, 'text/xml').firstChild; | 203 var iqNode = parser.parseFromString(msg, 'text/xml').firstChild; |
204 var jingleNode = iqNode.firstChild; | 204 var jingleNode = iqNode.firstChild; |
205 var serializer = new XMLSerializer(); | 205 var serializer = new XMLSerializer(); |
206 var parameters = { | 206 var parameters = { |
207 'to': iqNode.getAttribute('to') || '', | 207 'to': iqNode.getAttribute('to') || '', |
208 'payload_xml': serializer.serializeToString(jingleNode), | 208 'payload_xml': serializer.serializeToString(jingleNode), |
Sergey Ulanov
2011/08/04 20:46:19
Does this serialize null to an empty string?
Jamie
2011/08/04 20:46:57
Yes.
| |
209 'id': iqNode.getAttribute('id') || '1', | 209 'id': iqNode.getAttribute('id') || '1', |
210 'type': iqNode.getAttribute('type'), | 210 'type': iqNode.getAttribute('type'), |
211 'host_jid': this.hostJid | 211 'host_jid': this.hostJid |
212 }; | 212 }; |
213 | 213 |
214 this.sendIqWithParameters_(parameters); | 214 this.sendIqWithParameters_(parameters); |
215 | 215 |
216 var action = jingleNode.getAttribute('action'); | 216 if (jingleNode) { |
217 if (jingleNode.nodeName == 'jingle' && action == 'session-initiate') { | 217 var action = jingleNode.getAttribute('action'); |
218 // The session id is needed in order to close the session later. | 218 if (jingleNode.nodeName == 'jingle' && action == 'session-initiate') { |
219 this.sessionId = jingleNode.getAttribute('sid'); | 219 // The session id is needed in order to close the session later. |
220 this.sessionId = jingleNode.getAttribute('sid'); | |
221 } | |
220 } | 222 } |
221 }; | 223 }; |
222 | 224 |
223 /** | 225 /** |
224 * Sends an IQ stanza via the http xmpp proxy. | 226 * Sends an IQ stanza via the http xmpp proxy. |
225 * | 227 * |
226 * @param {(string|Object.<string>)} paramters Parameters to include. | 228 * @param {(string|Object.<string>)} paramters Parameters to include. |
227 * @return {void} Nothing. | 229 * @return {void} Nothing. |
228 */ | 230 */ |
229 remoting.ClientSession.prototype.sendIqWithParameters_ = function(parameters) { | 231 remoting.ClientSession.prototype.sendIqWithParameters_ = function(parameters) { |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
414 'video_bandwidth': this.plugin.videoBandwidth, | 416 'video_bandwidth': this.plugin.videoBandwidth, |
415 'capture_latency': this.plugin.videoCaptureLatency, | 417 'capture_latency': this.plugin.videoCaptureLatency, |
416 'encode_latency': this.plugin.videoEncodeLatency, | 418 'encode_latency': this.plugin.videoEncodeLatency, |
417 'decode_latency': this.plugin.videoDecodeLatency, | 419 'decode_latency': this.plugin.videoDecodeLatency, |
418 'render_latency': this.plugin.videoRenderLatency, | 420 'render_latency': this.plugin.videoRenderLatency, |
419 'roundtrip_latency': this.plugin.roundTripLatency | 421 'roundtrip_latency': this.plugin.roundTripLatency |
420 }; | 422 }; |
421 }; | 423 }; |
422 | 424 |
423 }()); | 425 }()); |
OLD | NEW |