refactor: add CanGc as argument to Promise::reject_error (#35646)

Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
This commit is contained in:
Yerkebulan Tulibergenov 2025-02-25 02:12:58 -08:00 committed by GitHub
parent c844ed232a
commit 38b71087bd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
43 changed files with 323 additions and 249 deletions

View file

@ -836,14 +836,14 @@ impl XRSessionMethods<crate::DomTypeHolder> for XRSession {
if !self.is_immersive() &&
(ty == XRReferenceSpaceType::Bounded_floor || ty == XRReferenceSpaceType::Unbounded)
{
p.reject_error(Error::NotSupported);
p.reject_error(Error::NotSupported, can_gc);
return p;
}
match ty {
XRReferenceSpaceType::Unbounded => {
// XXXmsub2 figure out how to support this
p.reject_error(Error::NotSupported)
p.reject_error(Error::NotSupported, can_gc)
},
ty => {
if ty != XRReferenceSpaceType::Viewer &&
@ -857,7 +857,7 @@ impl XRSessionMethods<crate::DomTypeHolder> for XRSession {
.iter()
.any(|f| *f == s)
{
p.reject_error(Error::NotSupported);
p.reject_error(Error::NotSupported, can_gc);
return p;
}
}
@ -927,7 +927,7 @@ impl XRSessionMethods<crate::DomTypeHolder> for XRSession {
.iter()
.any(|f| f == "hit-test")
{
p.reject_error(Error::NotSupported);
p.reject_error(Error::NotSupported, can_gc);
return p;
}
@ -1035,12 +1035,15 @@ impl XRSessionMethods<crate::DomTypeHolder> for XRSession {
supported_frame_rates.is_empty() ||
self.ended.get()
{
promise.reject_error(Error::InvalidState);
promise.reject_error(Error::InvalidState, can_gc);
return promise;
}
if !supported_frame_rates.contains(&*rate) {
promise.reject_error(Error::Type("Provided framerate not supported".into()));
promise.reject_error(
Error::Type("Provided framerate not supported".into()),
can_gc,
);
return promise;
}
}

View file

@ -171,13 +171,13 @@ impl XRSystemMethods<crate::DomTypeHolder> for XRSystem {
if pref!(dom_webxr_unsafe_assume_user_intent) {
warn!("The dom.webxr.unsafe-assume-user-intent preference assumes user intent to enter WebXR.");
} else {
promise.reject_error(Error::Security);
promise.reject_error(Error::Security, can_gc);
return promise;
}
}
if self.pending_or_active_session() {
promise.reject_error(Error::InvalidState);
promise.reject_error(Error::InvalidState, can_gc);
return promise;
}
@ -200,7 +200,7 @@ impl XRSystemMethods<crate::DomTypeHolder> for XRSystem {
if mode != XRSessionMode::Inline {
self.pending_immersive_session.set(false);
}
promise.reject_error(Error::NotSupported);
promise.reject_error(Error::NotSupported, can_gc);
return promise;
}
}
@ -291,7 +291,7 @@ impl XRSystem {
if mode != XRSessionMode::Inline {
self.pending_immersive_session.set(false);
}
promise.reject_error(Error::NotSupported);
promise.reject_error(Error::NotSupported, can_gc);
return;
},
};

View file

@ -77,7 +77,7 @@ impl XRTestMethods<crate::DomTypeHolder> for XRTest {
match get_origin(o) {
Ok(origin) => Some(origin),
Err(e) => {
p.reject_error(e);
p.reject_error(e, can_gc);
return p;
},
}
@ -89,7 +89,7 @@ impl XRTestMethods<crate::DomTypeHolder> for XRTest {
match get_origin(o) {
Ok(origin) => Some(origin),
Err(e) => {
p.reject_error(e);
p.reject_error(e, can_gc);
return p;
},
}
@ -100,7 +100,7 @@ impl XRTestMethods<crate::DomTypeHolder> for XRTest {
let views = match get_views(&init.views) {
Ok(views) => views,
Err(e) => {
p.reject_error(e);
p.reject_error(e, can_gc);
return p;
},
};
@ -115,7 +115,7 @@ impl XRTestMethods<crate::DomTypeHolder> for XRTest {
let w = match get_world(w) {
Ok(w) => w,
Err(e) => {
p.reject_error(e);
p.reject_error(e, can_gc);
return p;
},
};