diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2019-01-29 11:07:51 -0800 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2019-01-29 11:37:00 -0800 |
commit | ab04f0429bef3c2613c6a249d5a04a8cc9ca64de (patch) | |
tree | ed2271682fe562ca42fb755bacfe32e3499a659f /components/script/dom/rtcsessiondescription.rs | |
parent | 0d9f5385610cb694f03a932f1a3152bfbdfd952b (diff) | |
download | servo-ab04f0429bef3c2613c6a249d5a04a8cc9ca64de.tar.gz servo-ab04f0429bef3c2613c6a249d5a04a8cc9ca64de.zip |
Add RTCSessionDescription::ToJSON
Diffstat (limited to 'components/script/dom/rtcsessiondescription.rs')
-rw-r--r-- | components/script/dom/rtcsessiondescription.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/components/script/dom/rtcsessiondescription.rs b/components/script/dom/rtcsessiondescription.rs index 0ef79a321c6..27ab4ca3b41 100644 --- a/components/script/dom/rtcsessiondescription.rs +++ b/components/script/dom/rtcsessiondescription.rs @@ -15,6 +15,10 @@ use crate::dom::bindings::str::DOMString; use crate::dom::globalscope::GlobalScope; use crate::dom::window::Window; use dom_struct::dom_struct; +use js::conversions::ToJSValConvertible; +use js::jsapi::{JSContext, JSObject}; +use js::jsval::UndefinedValue; +use std::ptr::NonNull; #[dom_struct] pub struct RTCSessionDescription { @@ -66,4 +70,16 @@ impl RTCSessionDescriptionMethods for RTCSessionDescription { fn Sdp(&self) -> DOMString { self.sdp.clone() } + + #[allow(unsafe_code)] + /// https://w3c.github.io/webrtc-pc/#dom-rtcsessiondescription-tojson + unsafe fn ToJSON(&self, cx: *mut JSContext) -> NonNull<JSObject> { + let init = RTCSessionDescriptionInit { + type_: self.ty, + sdp: self.sdp.clone(), + }; + rooted!(in(cx) let mut jsval = UndefinedValue()); + init.to_jsval(cx, jsval.handle_mut()); + NonNull::new(jsval.to_object()).unwrap() + } } |