diff --git a/dom/media/PeerConnection.js b/dom/media/PeerConnection.js index 712c2b0d13..e4612f8316 100644 --- a/dom/media/PeerConnection.js +++ b/dom/media/PeerConnection.js @@ -739,8 +739,7 @@ RTCPeerConnection.prototype = { this._impl.createOffer(options); })); p = this._addIdentityAssertion(p, origin); - return p.then( - sdp => new this._win.RTCSessionDescription({ type: "offer", sdp: sdp })); + return p.then(sdp => Cu.cloneInto({ type: "offer", sdp: sdp }, this._win)); }); }); }, @@ -774,9 +773,7 @@ RTCPeerConnection.prototype = { this._impl.createAnswer(); })); p = this._addIdentityAssertion(p, origin); - return p.then(sdp => { - return new this._win.RTCSessionDescription({ type: "answer", sdp: sdp }); - }); + return p.then(sdp => Cu.cloneInto({ type: "answer", sdp: sdp }, this._win)); }); }); }, @@ -1137,8 +1134,7 @@ RTCPeerConnection.prototype = { return null; } - return new this._win.RTCSessionDescription({ type: this._localType, - sdp: sdp }); + return new this._win.RTCSessionDescription({ type: this._localType, sdp }); }, get remoteDescription() { @@ -1147,8 +1143,7 @@ RTCPeerConnection.prototype = { if (sdp.length == 0) { return null; } - return new this._win.RTCSessionDescription({ type: this._remoteType, - sdp: sdp }); + return new this._win.RTCSessionDescription({ type: this._remoteType, sdp }); }, get peerIdentity() { return this._peerIdentity; },