diff options
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r-- | components/script/dom/element.rs | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index cad8c87900a..0fe36814b33 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -82,7 +82,7 @@ use html5ever::serialize; use html5ever::serialize::SerializeOpts; use html5ever::serialize::TraversalScope; use html5ever::serialize::TraversalScope::{ChildrenOnly, IncludeNode}; -use js::jsapi::{HandleValue, Heap, JSAutoCompartment}; +use js::jsapi::Heap; use js::jsval::JSVal; use net_traits::request::CorsSettings; use ref_filter_map::ref_filter_map; @@ -3057,17 +3057,13 @@ impl TaskOnce for ElementPerformFullscreenEnter { #[allow(unrooted_must_root)] fn run_once(self) { let element = self.element.root(); + let promise = self.promise.root(); let document = document_from_node(element.r()); // Step 7.1 if self.error || !element.fullscreen_element_ready_check() { - // JSAutoCompartment needs to be manually made. - // Otherwise, Servo will crash. - let promise = self.promise.root(); - let promise_cx = promise.global().get_cx(); - let _ac = JSAutoCompartment::new(promise_cx, promise.reflector().get_jsobject().get()); document.upcast::<EventTarget>().fire_event(atom!("fullscreenerror")); - promise.reject_error(promise.global().get_cx(), Error::Type(String::from("fullscreen is not connected"))); + promise.reject_error(Error::Type(String::from("fullscreen is not connected"))); return } @@ -3083,12 +3079,7 @@ impl TaskOnce for ElementPerformFullscreenEnter { document.upcast::<EventTarget>().fire_event(atom!("fullscreenchange")); // Step 7.7 - // JSAutoCompartment needs to be manually made. - // Otherwise, Servo will crash. - let promise = self.promise.root(); - let promise_cx = promise.global().get_cx(); - let _ac = JSAutoCompartment::new(promise_cx, promise.reflector().get_jsobject().get()); - promise.resolve(promise.global().get_cx(), HandleValue::undefined()); + promise.resolve_native(&()); } } @@ -3125,12 +3116,7 @@ impl TaskOnce for ElementPerformFullscreenExit { document.upcast::<EventTarget>().fire_event(atom!("fullscreenchange")); // Step 9.10 - let promise = self.promise.root(); - // JSAutoCompartment needs to be manually made. - // Otherwise, Servo will crash. - let promise_cx = promise.global().get_cx(); - let _ac = JSAutoCompartment::new(promise_cx, promise.reflector().get_jsobject().get()); - promise.resolve(promise.global().get_cx(), HandleValue::undefined()); + self.promise.root().resolve_native(&()); } } |