From 7fd004adcee67ddf0b34b6d00f179c216461ac90 Mon Sep 17 00:00:00 2001 From: Barigbue Nbira Date: Tue, 8 Apr 2025 19:39:47 +0100 Subject: [PATCH] Remove unsafe annotation add to unsafe blocks (#36399) Remove the `unsafe` annotation from the `cross_origin_get` function and add `unsafe` blocks around unsafe code within the function Testing: Testing is not required as this change does not alter behaviour. Fixes: #36358 --------- Signed-off-by: Barigbue --- components/script_bindings/proxyhandler.rs | 40 +++++++++++++--------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/components/script_bindings/proxyhandler.rs b/components/script_bindings/proxyhandler.rs index beafaaed8bf..314d1369048 100644 --- a/components/script_bindings/proxyhandler.rs +++ b/components/script_bindings/proxyhandler.rs @@ -606,7 +606,7 @@ pub(crate) fn maybe_cross_origin_get_prototype( /// for a maybe-cross-origin object. /// /// [`CrossOriginGet`]: https://html.spec.whatwg.org/multipage/#crossoriginget-(-o,-p,-receiver-) -pub(crate) unsafe fn cross_origin_get( +pub(crate) fn cross_origin_get( cx: SafeJSContext, proxy: RawHandleObject, receiver: RawHandleValue, @@ -616,14 +616,16 @@ pub(crate) unsafe fn cross_origin_get( // > 1. Let `desc` be `? O.[[GetOwnProperty]](P)`. rooted!(in(*cx) let mut descriptor = PropertyDescriptor::default()); let mut is_none = false; - if !InvokeGetOwnPropertyDescriptor( - GetProxyHandler(*proxy), - *cx, - proxy, - id, - descriptor.handle_mut().into(), - &mut is_none, - ) { + if !unsafe { + InvokeGetOwnPropertyDescriptor( + GetProxyHandler(*proxy), + *cx, + proxy, + id, + descriptor.handle_mut().into(), + &mut is_none, + ) + } { return false; } @@ -654,16 +656,20 @@ pub(crate) unsafe fn cross_origin_get( } rooted!(in(*cx) let mut getter_jsval = UndefinedValue()); - getter.get().to_jsval(*cx, getter_jsval.handle_mut()); + unsafe { + getter.get().to_jsval(*cx, getter_jsval.handle_mut()); + } // > 7. Return `? Call(getter, Receiver)`. - jsapi::Call( - *cx, - receiver, - getter_jsval.handle().into(), - &jsapi::HandleValueArray::empty(), - vp, - ) + unsafe { + jsapi::Call( + *cx, + receiver, + getter_jsval.handle().into(), + &jsapi::HandleValueArray::empty(), + vp, + ) + } } /// Implementation of [`CrossOriginSet`].