aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r--components/script/dom/element.rs24
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(&());
}
}