#[repr(C)]pub struct TrustedTypePolicy {
reflector_: Reflector,
name: String,
create_html: Option<Rc<CreateHTMLCallback<DomTypeHolder>>>,
create_script: Option<Rc<CreateScriptCallback<DomTypeHolder>>>,
create_script_url: Option<Rc<CreateScriptURLCallback<DomTypeHolder>>>,
}
Fields§
§reflector_: Reflector
§name: String
§create_html: Option<Rc<CreateHTMLCallback<DomTypeHolder>>>
§create_script: Option<Rc<CreateScriptCallback<DomTypeHolder>>>
§create_script_url: Option<Rc<CreateScriptURLCallback<DomTypeHolder>>>
Implementations§
Source§impl TrustedTypePolicy
impl TrustedTypePolicy
fn __assert_parent_type(&self)
Source§impl TrustedTypePolicy
impl TrustedTypePolicy
fn new_inherited( name: String, options: &TrustedTypePolicyOptions<DomTypeHolder>, ) -> Self
pub(crate) fn new( name: String, options: &TrustedTypePolicyOptions<DomTypeHolder>, global: &GlobalScope, can_gc: CanGc, ) -> DomRoot<Self>
Sourcepub(crate) fn get_trusted_type_policy_value<S, PolicyCallback>(
&self,
policy_value_callback: PolicyCallback,
throw_if_missing: bool,
) -> Fallible<Option<S>>
pub(crate) fn get_trusted_type_policy_value<S, PolicyCallback>( &self, policy_value_callback: PolicyCallback, throw_if_missing: bool, ) -> Fallible<Option<S>>
This does not take all arguments as specified. That’s because the return type of the trusted type function and object are not the same. 2 of the 3 string callbacks return a DOMString, while the other one returns an USVString. Additionally, all three callbacks have a unique type signature in WebIDL.
To circumvent these type problems, rather than implementing the full functionality here, part of the algorithm is implemented on the caller side. There, we only call the callback and create the object. The rest of the machinery is ensuring the right values pass through to the relevant callbacks.
https://w3c.github.io/trusted-types/dist/spec/#get-trusted-type-policy-value-algorithm
Sourcepub(crate) fn create_trusted_type<R, S, PolicyCallback, TrustedTypeCallback>(
&self,
policy_value_callback: PolicyCallback,
trusted_type_creation_callback: TrustedTypeCallback,
) -> Fallible<DomRoot<R>>
pub(crate) fn create_trusted_type<R, S, PolicyCallback, TrustedTypeCallback>( &self, policy_value_callback: PolicyCallback, trusted_type_creation_callback: TrustedTypeCallback, ) -> Fallible<DomRoot<R>>
This does not take all arguments as specified. That’s because the return type of the trusted type function and object are not the same. 2 of the 3 string callbacks return a DOMString, while the other one returns an USVString. Additionally, all three callbacks have a unique type signature in WebIDL.
To circumvent these type problems, rather than implementing the full functionality here, part of the algorithm is implemented on the caller side. There, we only call the callback and create the object. The rest of the machinery is ensuring the right values pass through to the relevant callbacks.
https://w3c.github.io/trusted-types/dist/spec/#create-a-trusted-type-algorithm
Trait Implementations§
Source§impl DomObject for TrustedTypePolicy
impl DomObject for TrustedTypePolicy
Source§impl DomObjectWrap<DomTypeHolder> for TrustedTypePolicy
impl DomObjectWrap<DomTypeHolder> for TrustedTypePolicy
Source§const WRAP: unsafe fn(_: SafeJSContext, _: &GlobalScope, _: Option<HandleObject<'_>>, _: Box<Self>, _: CanGc) -> Root<Dom<Self>> = {script_bindings::codegen::GenericBindings::TrustedTypePolicyBinding::Wrap::<dom::bindings::codegen::DomTypeHolder::DomTypeHolder> as for<'a, 'b> unsafe fn(script_bindings::script_runtime::JSContext, &'a dom::globalscope::GlobalScope, std::option::Option<js::rust::Handle<'b, *mut js::jsapi::JSObject>>, std::boxed::Box<dom::trustedtypepolicy::TrustedTypePolicy>, script_bindings::script_runtime::CanGc) -> script_bindings::root::Root<script_bindings::root::Dom<dom::trustedtypepolicy::TrustedTypePolicy>>}
const WRAP: unsafe fn(_: SafeJSContext, _: &GlobalScope, _: Option<HandleObject<'_>>, _: Box<Self>, _: CanGc) -> Root<Dom<Self>> = {script_bindings::codegen::GenericBindings::TrustedTypePolicyBinding::Wrap::<dom::bindings::codegen::DomTypeHolder::DomTypeHolder> as for<'a, 'b> unsafe fn(script_bindings::script_runtime::JSContext, &'a dom::globalscope::GlobalScope, std::option::Option<js::rust::Handle<'b, *mut js::jsapi::JSObject>>, std::boxed::Box<dom::trustedtypepolicy::TrustedTypePolicy>, script_bindings::script_runtime::CanGc) -> script_bindings::root::Root<script_bindings::root::Dom<dom::trustedtypepolicy::TrustedTypePolicy>>}
Source§impl HasParent for TrustedTypePolicy
impl HasParent for TrustedTypePolicy
Source§impl IDLInterface for TrustedTypePolicy
impl IDLInterface for TrustedTypePolicy
Source§impl MallocSizeOf for TrustedTypePolicy
impl MallocSizeOf for TrustedTypePolicy
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Source§impl MutDomObject for TrustedTypePolicy
impl MutDomObject for TrustedTypePolicy
Source§impl PartialEq for TrustedTypePolicy
impl PartialEq for TrustedTypePolicy
Source§impl Traceable for TrustedTypePolicy
impl Traceable for TrustedTypePolicy
Source§impl TrustedTypePolicyMethods<DomTypeHolder> for TrustedTypePolicy
impl TrustedTypePolicyMethods<DomTypeHolder> for TrustedTypePolicy
Source§fn CreateHTML(
&self,
cx: JSContext,
input: DOMString,
arguments: Vec<HandleValue<'_>>,
can_gc: CanGc,
) -> Fallible<DomRoot<TrustedHTML>>
fn CreateHTML( &self, cx: JSContext, input: DOMString, arguments: Vec<HandleValue<'_>>, can_gc: CanGc, ) -> Fallible<DomRoot<TrustedHTML>>
Source§fn CreateScript(
&self,
cx: JSContext,
input: DOMString,
arguments: Vec<HandleValue<'_>>,
can_gc: CanGc,
) -> Fallible<DomRoot<TrustedScript>>
fn CreateScript( &self, cx: JSContext, input: DOMString, arguments: Vec<HandleValue<'_>>, can_gc: CanGc, ) -> Fallible<DomRoot<TrustedScript>>
Source§fn CreateScriptURL(
&self,
cx: JSContext,
input: DOMString,
arguments: Vec<HandleValue<'_>>,
can_gc: CanGc,
) -> Fallible<DomRoot<TrustedScriptURL>>
fn CreateScriptURL( &self, cx: JSContext, input: DOMString, arguments: Vec<HandleValue<'_>>, can_gc: CanGc, ) -> Fallible<DomRoot<TrustedScriptURL>>
impl Eq for TrustedTypePolicy
Auto Trait Implementations§
impl !Freeze for TrustedTypePolicy
impl !RefUnwindSafe for TrustedTypePolicy
impl !Send for TrustedTypePolicy
impl !Sync for TrustedTypePolicy
impl Unpin for TrustedTypePolicy
impl !UnwindSafe for TrustedTypePolicy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<D, T> DomGlobalGeneric<D> for T
impl<D, T> DomGlobalGeneric<D> for T
Source§fn global_(&self, realm: InRealm<'_>) -> Root<Dom<<D as DomTypes>::GlobalScope>>where
Self: Sized,
fn global_(&self, realm: InRealm<'_>) -> Root<Dom<<D as DomTypes>::GlobalScope>>where
Self: Sized,
GlobalScope
] of the realm that the DomObject
was created in. If this
object is a Node
, this will be different from it’s owning Document
if adopted by. For
Node
s it’s almost always better to use NodeTraits::owning_global
.Source§fn global(&self) -> Root<Dom<<D as DomTypes>::GlobalScope>>where
Self: Sized,
fn global(&self) -> Root<Dom<<D as DomTypes>::GlobalScope>>where
Self: Sized,
GlobalScope
] of the realm that the DomObject
was created in. If this
object is a Node
, this will be different from it’s owning Document
if adopted by. For
Node
s it’s almost always better to use NodeTraits::owning_global
.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more