blob: 90afbc86aabbdddd81a01bfc1ce5f30941b6f324 [file] [log] [blame]
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// API docs from [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web).
// Attributions and copyright licensing by Mozilla Contributors is licensed
// under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/.
// Generated from Web IDL definitions.
// ignore_for_file: unintended_html_in_doc_comment
@JS()
library;
import 'dart:js_interop';
import 'dom.dart';
import 'reporting.dart';
typedef SecurityPolicyViolationEventDisposition = String;
/// The `CSPViolationReportBody` interface contains the report data for a
/// Content Security Policy (CSP) violation. CSP violations are thrown when the
/// webpage attempts to load a resource that violates the CSP set by the HTTP
/// header.
///
/// > **Note:** this interface is similar, but not identical to, the
/// > [JSON objects](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP#violation_report_syntax)
/// > sent back to the
/// > [`report-uri`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri)
/// > or
/// > [`report-to`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-to)
/// > policy directive of the header.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/CSPViolationReportBody).
extension type CSPViolationReportBody._(JSObject _)
implements ReportBody, JSObject {
external JSObject toJSON();
external String get documentURL;
external String? get referrer;
external String? get blockedURL;
external String get effectiveDirective;
external String get originalPolicy;
external String? get sourceFile;
external String? get sample;
external SecurityPolicyViolationEventDisposition get disposition;
external int get statusCode;
external int? get lineNumber;
external int? get columnNumber;
}
/// The **`SecurityPolicyViolationEvent`** interface inherits from [Event], and
/// represents the event object of an event sent on a document or worker when
/// its content security policy is violated.
///
/// ---
///
/// API documentation sourced from
/// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/SecurityPolicyViolationEvent).
extension type SecurityPolicyViolationEvent._(JSObject _)
implements Event, JSObject {
external factory SecurityPolicyViolationEvent(
String type, [
SecurityPolicyViolationEventInit eventInitDict,
]);
/// The **`documentURI`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a string
/// representing the URI of the document or worker in which the violation was
/// found.
external String get documentURI;
/// The **`referrer`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a string
/// representing the referrer of the resources whose policy was violated. This
/// will be a URL
/// or `null`.
external String get referrer;
/// The **`blockedURI`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a string
/// representing the URI of the resource that was blocked because it violates
/// a policy.
external String get blockedURI;
/// The **`effectiveDirective`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a string
/// representing the directive whose enforcement uncovered the violation.
external String get effectiveDirective;
/// The **`violatedDirective`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a string
/// representing the directive whose enforcement uncovered the violation.
external String get violatedDirective;
/// The **`originalPolicy`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a string
/// containing the policy whose enforcement uncovered the violation.
external String get originalPolicy;
/// The **`sourceFile`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a string
/// representing the URI of the document or worker in which the violation was
/// found.
external String get sourceFile;
/// The **`sample`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a string
/// representing a sample of the resource that caused the violation.
external String get sample;
/// The **`disposition`** read-only property of the
/// [SecurityPolicyViolationEvent] interface indicates how the violated policy
/// is configured to be treated by the user agent.
external SecurityPolicyViolationEventDisposition get disposition;
/// The **`statusCode`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is a number representing the HTTP
/// status code of the document or worker in which the violation occurred.
external int get statusCode;
/// The **`lineNumber`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is the line number in the
/// document
/// or worker at which the violation occurred.
external int get lineNumber;
/// The **`columnNumber`** read-only property of the
/// [SecurityPolicyViolationEvent] interface is the column number in the
/// document or worker at which the violation occurred.
external int get columnNumber;
}
extension type SecurityPolicyViolationEventInit._(JSObject _)
implements EventInit, JSObject {
external factory SecurityPolicyViolationEventInit({
bool bubbles,
bool cancelable,
bool composed,
String documentURI,
String referrer,
String blockedURI,
String violatedDirective,
String effectiveDirective,
String originalPolicy,
String sourceFile,
String sample,
SecurityPolicyViolationEventDisposition disposition,
int statusCode,
int lineNumber,
int columnNumber,
});
external String get documentURI;
external set documentURI(String value);
external String get referrer;
external set referrer(String value);
external String get blockedURI;
external set blockedURI(String value);
external String get violatedDirective;
external set violatedDirective(String value);
external String get effectiveDirective;
external set effectiveDirective(String value);
external String get originalPolicy;
external set originalPolicy(String value);
external String get sourceFile;
external set sourceFile(String value);
external String get sample;
external set sample(String value);
external SecurityPolicyViolationEventDisposition get disposition;
external set disposition(SecurityPolicyViolationEventDisposition value);
external int get statusCode;
external set statusCode(int value);
external int get lineNumber;
external set lineNumber(int value);
external int get columnNumber;
external set columnNumber(int value);
}