Struct CrossOriginOpenerPolicy
pub struct CrossOriginOpenerPolicy {
pub value: CrossOriginOpenerPolicyValue,
pub report_to: Option<Cow<'static, str>>,
}http only.Expand description
Cross-Origin-Opener-Policy (COOP) header.
Send same-origin (paired with a cross-origin-isolating
Cross-Origin-Embedder-Policy) to opt the document into process
isolation. Required for SharedArrayBuffer and other cross-origin-
isolated capabilities. The browser then internally tracks the
combined policy as same-origin-plus-COEP, which is not itself a
header-settable value.
The optional report-to parameter names a Reporting API endpoint
(defined in the Reporting-Endpoints header) where the browser
posts violation reports.
§Default semantics
When the header is absent the user agent applies unsafe-none. The
UnsafeNone variant
represents the header being present with that explicit value —
both produce the same browser behaviour but the presence is
distinguishable on the wire.
§Example
use rama_http_headers::{CrossOriginOpenerPolicy, CrossOriginOpenerPolicyValue};
let coop = CrossOriginOpenerPolicy {
value: CrossOriginOpenerPolicyValue::SameOrigin,
report_to: Some("coop-endpoint".into()),
};
assert_eq!(coop.to_string(), r#"same-origin; report-to="coop-endpoint""#);Fields§
§value: CrossOriginOpenerPolicyValue§report_to: Option<Cow<'static, str>>; report-to="<endpoint>" — endpoint name defined in the
Reporting-Endpoints header. Always emitted as a quoted
sf-string per RFC 8941.
Implementations§
§impl CrossOriginOpenerPolicy
impl CrossOriginOpenerPolicy
pub fn unsafe_none() -> CrossOriginOpenerPolicy
pub fn unsafe_none() -> CrossOriginOpenerPolicy
Builder shortcut: unsafe-none, no report-to.
pub fn same_origin_allow_popups() -> CrossOriginOpenerPolicy
pub fn same_origin_allow_popups() -> CrossOriginOpenerPolicy
Builder shortcut: same-origin-allow-popups, no report-to.
pub fn same_origin() -> CrossOriginOpenerPolicy
pub fn same_origin() -> CrossOriginOpenerPolicy
Builder shortcut: same-origin, no report-to.
pub fn noopener_allow_popups() -> CrossOriginOpenerPolicy
pub fn noopener_allow_popups() -> CrossOriginOpenerPolicy
Builder shortcut: noopener-allow-popups, no report-to.
pub fn with_report_to( self, endpoint: impl Into<Cow<'static, str>>, ) -> CrossOriginOpenerPolicy
pub fn set_report_to( &mut self, endpoint: impl Into<Cow<'static, str>>, ) -> &mut CrossOriginOpenerPolicy
Trait Implementations§
§impl Clone for CrossOriginOpenerPolicy
impl Clone for CrossOriginOpenerPolicy
§fn clone(&self) -> CrossOriginOpenerPolicy
fn clone(&self) -> CrossOriginOpenerPolicy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for CrossOriginOpenerPolicy
impl Debug for CrossOriginOpenerPolicy
§impl Display for CrossOriginOpenerPolicy
impl Display for CrossOriginOpenerPolicy
impl Eq for CrossOriginOpenerPolicy
§impl Hash for CrossOriginOpenerPolicy
impl Hash for CrossOriginOpenerPolicy
§impl HeaderDecode for CrossOriginOpenerPolicy
impl HeaderDecode for CrossOriginOpenerPolicy
§fn decode<'i, I>(values: &mut I) -> Result<CrossOriginOpenerPolicy, Error>where
I: Iterator<Item = &'i HeaderValue>,
fn decode<'i, I>(values: &mut I) -> Result<CrossOriginOpenerPolicy, Error>where
I: Iterator<Item = &'i HeaderValue>,
HeaderValues.§impl HeaderEncode for CrossOriginOpenerPolicy
impl HeaderEncode for CrossOriginOpenerPolicy
§fn encode<E>(&self, values: &mut E)where
E: Extend<HeaderValue>,
fn encode<E>(&self, values: &mut E)where
E: Extend<HeaderValue>,
HeaderValue, and add it to a container
which has HeaderValue type as each element. Read more§fn encode_to_value(&self) -> Option<HeaderValue>
fn encode_to_value(&self) -> Option<HeaderValue>
HeaderValue. Read more§impl PartialEq for CrossOriginOpenerPolicy
impl PartialEq for CrossOriginOpenerPolicy
§fn eq(&self, other: &CrossOriginOpenerPolicy) -> bool
fn eq(&self, other: &CrossOriginOpenerPolicy) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for CrossOriginOpenerPolicy
§impl TypedHeader for CrossOriginOpenerPolicy
impl TypedHeader for CrossOriginOpenerPolicy
§fn name() -> &'static HeaderName
fn name() -> &'static HeaderName
Auto Trait Implementations§
impl Freeze for CrossOriginOpenerPolicy
impl RefUnwindSafe for CrossOriginOpenerPolicy
impl Send for CrossOriginOpenerPolicy
impl Sync for CrossOriginOpenerPolicy
impl Unpin for CrossOriginOpenerPolicy
impl UnsafeUnpin for CrossOriginOpenerPolicy
impl UnwindSafe for CrossOriginOpenerPolicy
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer