pub struct CrossOriginOpenerPolicy {
pub value: CrossOriginOpenerPolicyValue,
pub report_to: Option<Cow<'static, str>>,
}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§
Source§impl CrossOriginOpenerPolicy
impl CrossOriginOpenerPolicy
Sourcepub fn unsafe_none() -> Self
pub fn unsafe_none() -> Self
Builder shortcut: unsafe-none, no report-to.
Sourcepub fn same_origin_allow_popups() -> Self
pub fn same_origin_allow_popups() -> Self
Builder shortcut: same-origin-allow-popups, no report-to.
Sourcepub fn same_origin() -> Self
pub fn same_origin() -> Self
Builder shortcut: same-origin, no report-to.
Sourcepub fn noopener_allow_popups() -> Self
pub fn noopener_allow_popups() -> Self
Builder shortcut: noopener-allow-popups, no report-to.
pub fn with_report_to(self, endpoint: impl Into<Cow<'static, str>>) -> Self
pub fn set_report_to( &mut self, endpoint: impl Into<Cow<'static, str>>, ) -> &mut Self
Trait Implementations§
Source§impl Clone for CrossOriginOpenerPolicy
impl Clone for CrossOriginOpenerPolicy
Source§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 moreSource§impl Debug for CrossOriginOpenerPolicy
impl Debug for CrossOriginOpenerPolicy
Source§impl Display for CrossOriginOpenerPolicy
impl Display for CrossOriginOpenerPolicy
impl Eq for CrossOriginOpenerPolicy
Source§impl Hash for CrossOriginOpenerPolicy
impl Hash for CrossOriginOpenerPolicy
Source§impl HeaderDecode for CrossOriginOpenerPolicy
impl HeaderDecode for CrossOriginOpenerPolicy
Source§fn decode<'i, I: Iterator<Item = &'i HeaderValue>>(
values: &mut I,
) -> Result<Self, Error>
fn decode<'i, I: Iterator<Item = &'i HeaderValue>>( values: &mut I, ) -> Result<Self, Error>
HeaderValues.Source§impl HeaderEncode for CrossOriginOpenerPolicy
impl HeaderEncode for CrossOriginOpenerPolicy
Source§fn encode<E: Extend<HeaderValue>>(&self, values: &mut E)
fn encode<E: Extend<HeaderValue>>(&self, values: &mut E)
HeaderValue, and add it to a container
which has HeaderValue type as each element. Read moreSource§fn encode_to_value(&self) -> Option<HeaderValue>
fn encode_to_value(&self) -> Option<HeaderValue>
HeaderValue. Read moreSource§impl PartialEq for CrossOriginOpenerPolicy
impl PartialEq for CrossOriginOpenerPolicy
Source§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
Source§impl TypedHeader for CrossOriginOpenerPolicy
impl TypedHeader for CrossOriginOpenerPolicy
Source§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§
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,
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> 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