mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
CanGc fixes in messageport.rs & workerglobalscope.rs (#34003)
Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
This commit is contained in:
parent
7ad8822d94
commit
fd6c100489
5 changed files with 7 additions and 6 deletions
|
@ -347,6 +347,7 @@ DOMInterfaces = {
|
||||||
|
|
||||||
'MessagePort': {
|
'MessagePort': {
|
||||||
'weakReferenceable': True,
|
'weakReferenceable': True,
|
||||||
|
'canGc': ['GetOnmessage'],
|
||||||
},
|
},
|
||||||
|
|
||||||
'NavigationPreloadManager': {
|
'NavigationPreloadManager': {
|
||||||
|
|
|
@ -464,7 +464,7 @@ impl DedicatedWorkerGlobalScope {
|
||||||
{
|
{
|
||||||
let _ar = AutoWorkerReset::new(&global, worker.clone());
|
let _ar = AutoWorkerReset::new(&global, worker.clone());
|
||||||
let _ac = enter_realm(scope);
|
let _ac = enter_realm(scope);
|
||||||
scope.execute_script(DOMString::from(source));
|
scope.execute_script(DOMString::from(source), CanGc::note());
|
||||||
}
|
}
|
||||||
|
|
||||||
let reporter_name = format!("dedicated-worker-reporter-{}", random::<u64>());
|
let reporter_name = format!("dedicated-worker-reporter-{}", random::<u64>());
|
||||||
|
|
|
@ -322,12 +322,12 @@ impl MessagePortMethods for MessagePort {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <https://html.spec.whatwg.org/multipage/#handler-messageport-onmessage>
|
/// <https://html.spec.whatwg.org/multipage/#handler-messageport-onmessage>
|
||||||
fn GetOnmessage(&self) -> Option<Rc<EventHandlerNonNull>> {
|
fn GetOnmessage(&self, can_gc: CanGc) -> Option<Rc<EventHandlerNonNull>> {
|
||||||
if self.detached.get() {
|
if self.detached.get() {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
let eventtarget = self.upcast::<EventTarget>();
|
let eventtarget = self.upcast::<EventTarget>();
|
||||||
eventtarget.get_event_handler_common("message", CanGc::note())
|
eventtarget.get_event_handler_common("message", can_gc)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <https://html.spec.whatwg.org/multipage/#handler-messageport-onmessage>
|
/// <https://html.spec.whatwg.org/multipage/#handler-messageport-onmessage>
|
||||||
|
|
|
@ -384,7 +384,7 @@ impl ServiceWorkerGlobalScope {
|
||||||
{
|
{
|
||||||
// TODO: use AutoWorkerReset as in dedicated worker?
|
// TODO: use AutoWorkerReset as in dedicated worker?
|
||||||
let _ac = enter_realm(scope);
|
let _ac = enter_realm(scope);
|
||||||
scope.execute_script(DOMString::from(source));
|
scope.execute_script(DOMString::from(source), CanGc::note());
|
||||||
}
|
}
|
||||||
|
|
||||||
global.dispatch_activate(CanGc::note());
|
global.dispatch_activate(CanGc::note());
|
||||||
|
|
|
@ -447,7 +447,7 @@ impl WorkerGlobalScopeMethods for WorkerGlobalScope {
|
||||||
|
|
||||||
impl WorkerGlobalScope {
|
impl WorkerGlobalScope {
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
pub fn execute_script(&self, source: DOMString) {
|
pub fn execute_script(&self, source: DOMString, can_gc: CanGc) {
|
||||||
let _aes = AutoEntryScript::new(self.upcast());
|
let _aes = AutoEntryScript::new(self.upcast());
|
||||||
let cx = self.runtime.borrow().as_ref().unwrap().cx();
|
let cx = self.runtime.borrow().as_ref().unwrap().cx();
|
||||||
rooted!(in(cx) let mut rval = UndefinedValue());
|
rooted!(in(cx) let mut rval = UndefinedValue());
|
||||||
|
@ -468,7 +468,7 @@ impl WorkerGlobalScope {
|
||||||
println!("evaluate_script failed");
|
println!("evaluate_script failed");
|
||||||
unsafe {
|
unsafe {
|
||||||
let ar = enter_realm(self);
|
let ar = enter_realm(self);
|
||||||
report_pending_exception(cx, true, InRealm::Entered(&ar), CanGc::note());
|
report_pending_exception(cx, true, InRealm::Entered(&ar), can_gc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue