// Generated from WebIDL - DO NOT EDIT
// Source: @webref/idl/CSP
///|
/// SecurityPolicyViolationEventDisposition enum
pub(all) enum SecurityPolicyViolationEventDisposition {
Enforce
Report
} derive(Eq, Show)
///|
/// Convert to string value
pub fn SecurityPolicyViolationEventDisposition::to_string(
self : SecurityPolicyViolationEventDisposition,
) -> String {
match self {
SecurityPolicyViolationEventDisposition::Enforce => "enforce"
SecurityPolicyViolationEventDisposition::Report => "report"
}
}
///|
/// Parse from string value
pub fn SecurityPolicyViolationEventDisposition::from_string(
s : String,
) -> SecurityPolicyViolationEventDisposition? {
match s {
"enforce" => Some(SecurityPolicyViolationEventDisposition::Enforce)
"report" => Some(SecurityPolicyViolationEventDisposition::Report)
_ => None
}
}
///|
/// CSPViolationReportBody dictionary
pub(all) struct CSPViolationReportBody {
documentURL : String?
referrer : Nullable[String]
blockedURL : Nullable[String]
effectiveDirective : String?
originalPolicy : String?
sourceFile : Nullable[String]
sample : Nullable[String]
disposition : SecurityPolicyViolationEventDisposition?
statusCode : Int?
lineNumber : Nullable[Int]
columnNumber : Nullable[Int]
}
///|
/// Create a new CSPViolationReportBody with default values
pub fn CSPViolationReportBody::default() -> CSPViolationReportBody {
CSPViolationReportBody::{
documentURL: None,
referrer: Nullable::Undefined,
blockedURL: Nullable::Undefined,
effectiveDirective: None,
originalPolicy: None,
sourceFile: Nullable::Undefined,
sample: Nullable::Undefined,
disposition: None,
statusCode: None,
lineNumber: Nullable::Undefined,
columnNumber: Nullable::Undefined,
}
}
///|
extern "js" fn CSPViolationReportBody::to_js_ffi(
self : CSPViolationReportBody,
) -> JsValue =
#| (self) => ({
#| documentURL: self.documentURL,
#| referrer: ((() => { const v = self.referrer; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })()),
#| blockedURL: ((() => { const v = self.blockedURL; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })()),
#| effectiveDirective: self.effectiveDirective,
#| originalPolicy: self.originalPolicy,
#| sourceFile: ((() => { const v = self.sourceFile; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })()),
#| sample: ((() => { const v = self.sample; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })()),
#| disposition: ((() => { const v = self.disposition; if (v === undefined) return undefined; return ['enforce', 'report'][v]; })()),
#| statusCode: self.statusCode,
#| lineNumber: ((() => { const v = self.lineNumber; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })()),
#| columnNumber: ((() => { const v = self.columnNumber; if (v.$tag === 0) return undefined; if (v.$tag === 1) return null; return v._0; })())
#| })
///|
/// Convert to JsValue
pub fn CSPViolationReportBody::to_js(self : CSPViolationReportBody) -> JsValue {
CSPViolationReportBody::to_js_ffi(self)
}
///|
extern "js" fn CSPViolationReportBody::from_js_ffi(
value : JsValue,
) -> CSPViolationReportBody =
#| (v) => ({
#| documentURL: v.documentURL,
#| referrer: (v.referrer === undefined ? { $tag: 0 } : v.referrer === null ? { $tag: 1 } : { $tag: 2, _0: v.referrer }),
#| blockedURL: (v.blockedURL === undefined ? { $tag: 0 } : v.blockedURL === null ? { $tag: 1 } : { $tag: 2, _0: v.blockedURL }),
#| effectiveDirective: v.effectiveDirective,
#| originalPolicy: v.originalPolicy,
#| sourceFile: (v.sourceFile === undefined ? { $tag: 0 } : v.sourceFile === null ? { $tag: 1 } : { $tag: 2, _0: v.sourceFile }),
#| sample: (v.sample === undefined ? { $tag: 0 } : v.sample === null ? { $tag: 1 } : { $tag: 2, _0: v.sample }),
#| disposition: (v.disposition === undefined ? undefined : ['enforce', 'report'].indexOf(v.disposition)),
#| statusCode: v.statusCode,
#| lineNumber: (v.lineNumber === undefined ? { $tag: 0 } : v.lineNumber === null ? { $tag: 1 } : { $tag: 2, _0: v.lineNumber }),
#| columnNumber: (v.columnNumber === undefined ? { $tag: 0 } : v.columnNumber === null ? { $tag: 1 } : { $tag: 2, _0: v.columnNumber })
#| })
///|
/// Convert from JsValue
pub fn CSPViolationReportBody::from_js(
value : JsValue,
) -> CSPViolationReportBody {
CSPViolationReportBody::from_js_ffi(value)
}
///|
/// SecurityPolicyViolationEventInit dictionary
pub(all) struct SecurityPolicyViolationEventInit {
documentURI : String?
referrer : String?
blockedURI : String?
violatedDirective : String?
effectiveDirective : String?
originalPolicy : String?
sourceFile : String?
sample : String?
disposition : SecurityPolicyViolationEventDisposition?
statusCode : Int?
lineNumber : Int?
columnNumber : Int?
}
///|
/// Create a new SecurityPolicyViolationEventInit with default values
pub fn SecurityPolicyViolationEventInit::default() -> SecurityPolicyViolationEventInit {
SecurityPolicyViolationEventInit::{
documentURI: None,
referrer: None,
blockedURI: None,
violatedDirective: None,
effectiveDirective: None,
originalPolicy: None,
sourceFile: None,
sample: None,
disposition: None,
statusCode: None,
lineNumber: None,
columnNumber: None,
}
}
///|
extern "js" fn SecurityPolicyViolationEventInit::to_js_ffi(
self : SecurityPolicyViolationEventInit,
) -> JsValue =
#| (self) => ({
#| documentURI: self.documentURI,
#| referrer: self.referrer,
#| blockedURI: self.blockedURI,
#| violatedDirective: self.violatedDirective,
#| effectiveDirective: self.effectiveDirective,
#| originalPolicy: self.originalPolicy,
#| sourceFile: self.sourceFile,
#| sample: self.sample,
#| disposition: ((() => { const v = self.disposition; if (v === undefined) return undefined; return ['enforce', 'report'][v]; })()),
#| statusCode: self.statusCode,
#| lineNumber: self.lineNumber,
#| columnNumber: self.columnNumber
#| })
///|
/// Convert to JsValue
pub fn SecurityPolicyViolationEventInit::to_js(
self : SecurityPolicyViolationEventInit,
) -> JsValue {
SecurityPolicyViolationEventInit::to_js_ffi(self)
}
///|
extern "js" fn SecurityPolicyViolationEventInit::from_js_ffi(
value : JsValue,
) -> SecurityPolicyViolationEventInit =
#| (v) => ({
#| documentURI: v.documentURI,
#| referrer: v.referrer,
#| blockedURI: v.blockedURI,
#| violatedDirective: v.violatedDirective,
#| effectiveDirective: v.effectiveDirective,
#| originalPolicy: v.originalPolicy,
#| sourceFile: v.sourceFile,
#| sample: v.sample,
#| disposition: (v.disposition === undefined ? undefined : ['enforce', 'report'].indexOf(v.disposition)),
#| statusCode: v.statusCode,
#| lineNumber: v.lineNumber,
#| columnNumber: v.columnNumber
#| })
///|
/// Convert from JsValue
pub fn SecurityPolicyViolationEventInit::from_js(
value : JsValue,
) -> SecurityPolicyViolationEventInit {
SecurityPolicyViolationEventInit::from_js_ffi(value)
}
///|
/// SecurityPolicyViolationEvent interface
pub type SecurityPolicyViolationEvent
///|
pub extern "js" fn SecurityPolicyViolationEvent::to_js_value(
self : SecurityPolicyViolationEvent,
) -> JsValue =
#| (self) => self
///|
/// Cast JsValue to SecurityPolicyViolationEvent (unchecked)
pub extern "js" fn SecurityPolicyViolationEvent::from_js_value(
v : JsValue,
) -> SecurityPolicyViolationEvent =
#| (v) => v
///|
/// Safely cast JsValue to SecurityPolicyViolationEvent (checked with instanceof)
pub extern "js" fn SecurityPolicyViolationEvent::from_js_value_opt(
v : JsValue,
) -> SecurityPolicyViolationEvent? =
#| (v) => (v instanceof SecurityPolicyViolationEvent) ? { $tag: 1, _0: v } : { $tag: 0 }
///|
/// Safely cast JsValue to SecurityPolicyViolationEvent (checked with instanceof)
pub extern "js" fn JsValue::as_security_policy_violation_event(
self : JsValue,
) -> SecurityPolicyViolationEvent? =
#| (self) => (self instanceof SecurityPolicyViolationEvent) ? { $tag: 1, _0: self } : { $tag: 0 }
///|
/// Cast JsValue to SecurityPolicyViolationEvent (unchecked)
pub extern "js" fn JsValue::to_security_policy_violation_event(
self : JsValue,
) -> SecurityPolicyViolationEvent =
#| (self) => self
///|
pub extern "js" fn SecurityPolicyViolationEvent::to_event(
self : SecurityPolicyViolationEvent,
) -> Event =
#| (self) => self
///|
pub extern "js" fn SecurityPolicyViolationEvent::new(
type_ : String,
) -> SecurityPolicyViolationEvent =
#| (type_) => new SecurityPolicyViolationEvent(type_)
///|
extern "js" fn SecurityPolicyViolationEvent::new_with_event_init_dict_ffi(
type_ : String,
event_init_dict : JsValue,
) -> SecurityPolicyViolationEvent =
#| (type_, event_init_dict) => new SecurityPolicyViolationEvent(type_, event_init_dict)
///|
pub fn SecurityPolicyViolationEvent::new_with_event_init_dict(
type_ : String,
event_init_dict : SecurityPolicyViolationEventInit,
) -> SecurityPolicyViolationEvent {
SecurityPolicyViolationEvent::new_with_event_init_dict_ffi(
type_,
event_init_dict.to_js(),
)
}
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_document_uri(
self : SecurityPolicyViolationEvent,
) -> String =
#| (self) => self.documentURI
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_referrer(
self : SecurityPolicyViolationEvent,
) -> String =
#| (self) => self.referrer
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_blocked_uri(
self : SecurityPolicyViolationEvent,
) -> String =
#| (self) => self.blockedURI
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_effective_directive(
self : SecurityPolicyViolationEvent,
) -> String =
#| (self) => self.effectiveDirective
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_violated_directive(
self : SecurityPolicyViolationEvent,
) -> String =
#| (self) => self.violatedDirective
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_original_policy(
self : SecurityPolicyViolationEvent,
) -> String =
#| (self) => self.originalPolicy
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_source_file(
self : SecurityPolicyViolationEvent,
) -> String =
#| (self) => self.sourceFile
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_sample(
self : SecurityPolicyViolationEvent,
) -> String =
#| (self) => self.sample
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_disposition(
self : SecurityPolicyViolationEvent,
) -> SecurityPolicyViolationEventDisposition =
#| (self) => ['enforce', 'report'].indexOf(self.disposition)
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_status_code(
self : SecurityPolicyViolationEvent,
) -> Int =
#| (self) => self.statusCode
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_line_number(
self : SecurityPolicyViolationEvent,
) -> Int =
#| (self) => self.lineNumber
///|
pub extern "js" fn SecurityPolicyViolationEvent::get_column_number(
self : SecurityPolicyViolationEvent,
) -> Int =
#| (self) => self.columnNumber