aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/rtcsessiondescription.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2019-01-29 11:07:51 -0800
committerManish Goregaokar <manishsmail@gmail.com>2019-01-29 11:37:00 -0800
commitab04f0429bef3c2613c6a249d5a04a8cc9ca64de (patch)
treeed2271682fe562ca42fb755bacfe32e3499a659f /components/script/dom/rtcsessiondescription.rs
parent0d9f5385610cb694f03a932f1a3152bfbdfd952b (diff)
downloadservo-ab04f0429bef3c2613c6a249d5a04a8cc9ca64de.tar.gz
servo-ab04f0429bef3c2613c6a249d5a04a8cc9ca64de.zip
Add RTCSessionDescription::ToJSON
Diffstat (limited to 'components/script/dom/rtcsessiondescription.rs')
-rw-r--r--components/script/dom/rtcsessiondescription.rs16
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()
+ }
}