aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_runtime.rs
diff options
context:
space:
mode:
authorCYBAI <cyb.ai.815@gmail.com>2020-01-24 12:43:49 +0900
committerCYBAI <cyb.ai.815@gmail.com>2020-02-16 09:55:10 +0900
commit403ffcf1eb5c659626f70dec72f76aaf7782986d (patch)
treedf2f2e06ed557fcaac17862791a6c1db1f8a7b57 /components/script/script_runtime.rs
parent795dab71fffe98434308732e4cb8ee682f28e465 (diff)
downloadservo-403ffcf1eb5c659626f70dec72f76aaf7782986d.tar.gz
servo-403ffcf1eb5c659626f70dec72f76aaf7782986d.zip
Always pass InRealm to GlobalScope::from_context to avoid getting null global
Diffstat (limited to 'components/script/script_runtime.rs')
-rw-r--r--components/script/script_runtime.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs
index b84178a166f..3aa1d79c2d9 100644
--- a/components/script/script_runtime.rs
+++ b/components/script/script_runtime.rs
@@ -30,6 +30,7 @@ use crate::dom::promise::Promise;
use crate::dom::promiserejectionevent::PromiseRejectionEvent;
use crate::dom::response::Response;
use crate::microtask::{EnqueuedPromiseCallback, Microtask, MicrotaskQueue};
+use crate::realms::{AlreadyInRealm, InRealm};
use crate::script_module::EnsureModuleHooksInitialized;
use crate::script_thread::trace_thread;
use crate::task::TaskBox;
@@ -232,7 +233,8 @@ unsafe extern "C" fn promise_rejection_tracker(
// Step 3.
let cx = JSContext::from_ptr(cx);
- let global = GlobalScope::from_context(*cx);
+ let in_realm_proof = AlreadyInRealm::assert_for_cx(cx);
+ let global = GlobalScope::from_context(*cx, InRealm::Already(&in_realm_proof));
wrap_panic(
AssertUnwindSafe(|| {
@@ -908,7 +910,8 @@ unsafe extern "C" fn consume_stream(
_consumer: *mut JSStreamConsumer,
) -> bool {
let cx = JSContext::from_ptr(_cx);
- let global = GlobalScope::from_context(*cx);
+ let in_realm_proof = AlreadyInRealm::assert_for_cx(cx);
+ let global = GlobalScope::from_context(*cx, InRealm::Already(&in_realm_proof));
//Step 2.1 Upon fulfillment of source, store the Response with value unwrappedSource.
if let Ok(unwrapped_source) =