use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AffectedCookie {
pub name: String,
pub path: String,
pub domain: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AffectedRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub requestId: Option<crate::network::RequestId>,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AffectedFrame {
pub frameId: crate::page::FrameId,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum CookieExclusionReason {
#[default]
ExcludeSameSiteUnspecifiedTreatedAsLax,
ExcludeSameSiteNoneInsecure,
ExcludeSameSiteLax,
ExcludeSameSiteStrict,
ExcludeDomainNonASCII,
ExcludeThirdPartyCookieBlockedInFirstPartySet,
ExcludeThirdPartyPhaseout,
ExcludePortMismatch,
ExcludeSchemeMismatch,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum CookieWarningReason {
#[default]
WarnSameSiteUnspecifiedCrossSiteContext,
WarnSameSiteNoneInsecure,
WarnSameSiteUnspecifiedLaxAllowUnsafe,
WarnSameSiteStrictLaxDowngradeStrict,
WarnSameSiteStrictCrossDowngradeStrict,
WarnSameSiteStrictCrossDowngradeLax,
WarnSameSiteLaxCrossDowngradeStrict,
WarnSameSiteLaxCrossDowngradeLax,
WarnAttributeValueExceedsMaxSize,
WarnDomainNonASCII,
WarnThirdPartyPhaseout,
WarnCrossSiteRedirectDowngradeChangesInclusion,
WarnDeprecationTrialMetadata,
WarnThirdPartyCookieHeuristic,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum CookieOperation {
#[default]
SetCookie,
ReadCookie,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum InsightType {
#[default]
GitHubResource,
GracePeriod,
Heuristics,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CookieIssueInsight {
#[serde(rename = "type")]
pub type_: InsightType,
#[serde(skip_serializing_if = "Option::is_none")]
pub tableEntryUrl: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CookieIssueDetails {
#[serde(skip_serializing_if = "Option::is_none")]
pub cookie: Option<AffectedCookie>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rawCookieLine: Option<String>,
pub cookieWarningReasons: Vec<CookieWarningReason>,
pub cookieExclusionReasons: Vec<CookieExclusionReason>,
pub operation: CookieOperation,
#[serde(skip_serializing_if = "Option::is_none")]
pub siteForCookies: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cookieUrl: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub request: Option<AffectedRequest>,
#[serde(skip_serializing_if = "Option::is_none")]
pub insight: Option<CookieIssueInsight>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PerformanceIssueType {
#[default]
DocumentCookie,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PerformanceIssueDetails {
pub performanceIssueType: PerformanceIssueType,
#[serde(skip_serializing_if = "Option::is_none")]
pub sourceCodeLocation: Option<SourceCodeLocation>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum MixedContentResolutionStatus {
#[default]
MixedContentBlocked,
MixedContentAutomaticallyUpgraded,
MixedContentWarning,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum MixedContentResourceType {
#[default]
AttributionSrc,
Audio,
Beacon,
CSPReport,
Download,
EventSource,
Favicon,
Font,
Form,
Frame,
Image,
Import,
JSON,
Manifest,
Ping,
PluginData,
PluginResource,
Prefetch,
Resource,
Script,
ServiceWorker,
SharedWorker,
SpeculationRules,
Stylesheet,
Track,
Video,
Worker,
XMLHttpRequest,
XSLT,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct MixedContentIssueDetails {
#[serde(skip_serializing_if = "Option::is_none")]
pub resourceType: Option<MixedContentResourceType>,
pub resolutionStatus: MixedContentResolutionStatus,
pub insecureURL: String,
pub mainResourceURL: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub request: Option<AffectedRequest>,
#[serde(skip_serializing_if = "Option::is_none")]
pub frame: Option<AffectedFrame>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum BlockedByResponseReason {
#[default]
CoepFrameResourceNeedsCoepHeader,
CoopSandboxedIFrameCannotNavigateToCoopPage,
CorpNotSameOrigin,
CorpNotSameOriginAfterDefaultedToSameOriginByCoep,
CorpNotSameOriginAfterDefaultedToSameOriginByDip,
CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip,
CorpNotSameSite,
SRIMessageSignatureMismatch,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct BlockedByResponseIssueDetails {
pub request: AffectedRequest,
#[serde(skip_serializing_if = "Option::is_none")]
pub parentFrame: Option<AffectedFrame>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blockedFrame: Option<AffectedFrame>,
pub reason: BlockedByResponseReason,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum HeavyAdResolutionStatus {
#[default]
HeavyAdBlocked,
HeavyAdWarning,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum HeavyAdReason {
#[default]
NetworkTotalLimit,
CpuTotalLimit,
CpuPeakLimit,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct HeavyAdIssueDetails {
pub resolution: HeavyAdResolutionStatus,
pub reason: HeavyAdReason,
pub frame: AffectedFrame,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum ContentSecurityPolicyViolationType {
#[default]
KInlineViolation,
KEvalViolation,
KURLViolation,
KSRIViolation,
KTrustedTypesSinkViolation,
KTrustedTypesPolicyViolation,
KWasmEvalViolation,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SourceCodeLocation {
#[serde(skip_serializing_if = "Option::is_none")]
pub scriptId: Option<crate::runtime::ScriptId>,
pub url: String,
pub lineNumber: i64,
pub columnNumber: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ContentSecurityPolicyIssueDetails {
#[serde(skip_serializing_if = "Option::is_none")]
pub blockedURL: Option<String>,
pub violatedDirective: String,
pub isReportOnly: bool,
pub contentSecurityPolicyViolationType: ContentSecurityPolicyViolationType,
#[serde(skip_serializing_if = "Option::is_none")]
pub frameAncestor: Option<AffectedFrame>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sourceCodeLocation: Option<SourceCodeLocation>,
#[serde(skip_serializing_if = "Option::is_none")]
pub violatingNodeId: Option<crate::dom::BackendNodeId>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum SharedArrayBufferIssueType {
#[default]
TransferIssue,
CreationIssue,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SharedArrayBufferIssueDetails {
pub sourceCodeLocation: SourceCodeLocation,
pub isWarning: bool,
#[serde(rename = "type")]
pub type_: SharedArrayBufferIssueType,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CorsIssueDetails {
pub corsErrorStatus: crate::network::CorsErrorStatus,
pub isWarning: bool,
pub request: AffectedRequest,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<SourceCodeLocation>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initiatorOrigin: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resourceIPAddressSpace: Option<crate::network::IPAddressSpace>,
#[serde(skip_serializing_if = "Option::is_none")]
pub clientSecurityState: Option<crate::network::ClientSecurityState>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum AttributionReportingIssueType {
#[default]
PermissionPolicyDisabled,
UntrustworthyReportingOrigin,
InsecureContext,
InvalidHeader,
InvalidRegisterTriggerHeader,
SourceAndTriggerHeaders,
SourceIgnored,
TriggerIgnored,
OsSourceIgnored,
OsTriggerIgnored,
InvalidRegisterOsSourceHeader,
InvalidRegisterOsTriggerHeader,
WebAndOsHeaders,
NoWebOrOsSupport,
NavigationRegistrationWithoutTransientUserActivation,
InvalidInfoHeader,
NoRegisterSourceHeader,
NoRegisterTriggerHeader,
NoRegisterOsSourceHeader,
NoRegisterOsTriggerHeader,
NavigationRegistrationUniqueScopeAlreadySet,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum SharedDictionaryError {
#[default]
UseErrorCrossOriginNoCorsRequest,
UseErrorDictionaryLoadFailure,
UseErrorMatchingDictionaryNotUsed,
UseErrorUnexpectedContentDictionaryHeader,
WriteErrorCossOriginNoCorsRequest,
WriteErrorDisallowedBySettings,
WriteErrorExpiredResponse,
WriteErrorFeatureDisabled,
WriteErrorInsufficientResources,
WriteErrorInvalidMatchField,
WriteErrorInvalidStructuredHeader,
WriteErrorInvalidTTLField,
WriteErrorNavigationRequest,
WriteErrorNoMatchField,
WriteErrorNonIntegerTTLField,
WriteErrorNonListMatchDestField,
WriteErrorNonSecureContext,
WriteErrorNonStringIdField,
WriteErrorNonStringInMatchDestList,
WriteErrorNonStringMatchField,
WriteErrorNonTokenTypeField,
WriteErrorRequestAborted,
WriteErrorShuttingDown,
WriteErrorTooLongIdField,
WriteErrorUnsupportedType,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum SRIMessageSignatureError {
#[default]
MissingSignatureHeader,
MissingSignatureInputHeader,
InvalidSignatureHeader,
InvalidSignatureInputHeader,
SignatureHeaderValueIsNotByteSequence,
SignatureHeaderValueIsParameterized,
SignatureHeaderValueIsIncorrectLength,
SignatureInputHeaderMissingLabel,
SignatureInputHeaderValueNotInnerList,
SignatureInputHeaderValueMissingComponents,
SignatureInputHeaderInvalidComponentType,
SignatureInputHeaderInvalidComponentName,
SignatureInputHeaderInvalidHeaderComponentParameter,
SignatureInputHeaderInvalidDerivedComponentParameter,
SignatureInputHeaderKeyIdLength,
SignatureInputHeaderInvalidParameter,
SignatureInputHeaderMissingRequiredParameters,
ValidationFailedSignatureExpired,
ValidationFailedInvalidLength,
ValidationFailedSignatureMismatch,
ValidationFailedIntegrityMismatch,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum UnencodedDigestError {
#[default]
MalformedDictionary,
UnknownAlgorithm,
IncorrectDigestType,
IncorrectDigestLength,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum ConnectionAllowlistError {
#[default]
InvalidHeader,
MoreThanOneList,
ItemNotInnerList,
InvalidAllowlistItemType,
ReportingEndpointNotToken,
InvalidUrlPattern,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttributionReportingIssueDetails {
pub violationType: AttributionReportingIssueType,
#[serde(skip_serializing_if = "Option::is_none")]
pub request: Option<AffectedRequest>,
#[serde(skip_serializing_if = "Option::is_none")]
pub violatingNodeId: Option<crate::dom::BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub invalidParameter: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct QuirksModeIssueDetails {
pub isLimitedQuirksMode: bool,
pub documentNodeId: crate::dom::BackendNodeId,
pub url: String,
pub frameId: crate::page::FrameId,
pub loaderId: crate::network::LoaderId,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct NavigatorUserAgentIssueDetails {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub location: Option<SourceCodeLocation>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SharedDictionaryIssueDetails {
pub sharedDictionaryError: SharedDictionaryError,
pub request: AffectedRequest,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SRIMessageSignatureIssueDetails {
pub error: SRIMessageSignatureError,
pub signatureBase: String,
pub integrityAssertions: Vec<String>,
pub request: AffectedRequest,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct UnencodedDigestIssueDetails {
pub error: UnencodedDigestError,
pub request: AffectedRequest,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ConnectionAllowlistIssueDetails {
pub error: ConnectionAllowlistError,
pub request: AffectedRequest,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum GenericIssueErrorType {
#[default]
FormLabelForNameError,
FormDuplicateIdForInputError,
FormInputWithNoLabelError,
FormAutocompleteAttributeEmptyError,
FormEmptyIdAndNameAttributesForInputError,
FormAriaLabelledByToNonExistingIdError,
FormInputAssignedAutocompleteValueToIdOrNameAttributeError,
FormLabelHasNeitherForNorNestedInputError,
FormLabelForMatchesNonExistingIdError,
FormInputHasWrongButWellIntendedAutocompleteValueError,
ResponseWasBlockedByORB,
NavigationEntryMarkedSkippable,
AutofillAndManualTextPolicyControlledFeaturesInfo,
AutofillPolicyControlledFeatureInfo,
ManualTextPolicyControlledFeatureInfo,
FormModelContextParameterMissingTitleAndDescription,
FormModelContextMissingToolName,
FormModelContextMissingToolDescription,
FormModelContextRequiredParameterMissingName,
FormModelContextParameterMissingName,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GenericIssueDetails {
pub errorType: GenericIssueErrorType,
#[serde(skip_serializing_if = "Option::is_none")]
pub frameId: Option<crate::page::FrameId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub violatingNodeId: Option<crate::dom::BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub violatingNodeAttribute: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub request: Option<AffectedRequest>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DeprecationIssueDetails {
#[serde(skip_serializing_if = "Option::is_none")]
pub affectedFrame: Option<AffectedFrame>,
pub sourceCodeLocation: SourceCodeLocation,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct BounceTrackingIssueDetails {
pub trackingSites: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CookieDeprecationMetadataIssueDetails {
pub allowedSites: Vec<String>,
pub optOutPercentage: f64,
pub isOptOutTopLevel: bool,
pub operation: CookieOperation,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum ClientHintIssueReason {
#[default]
MetaTagAllowListInvalidOrigin,
MetaTagModifiedHTML,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FederatedAuthRequestIssueDetails {
pub federatedAuthRequestIssueReason: FederatedAuthRequestIssueReason,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum FederatedAuthRequestIssueReason {
#[default]
ShouldEmbargo,
TooManyRequests,
WellKnownHttpNotFound,
WellKnownNoResponse,
WellKnownInvalidResponse,
WellKnownListEmpty,
WellKnownInvalidContentType,
ConfigNotInWellKnown,
WellKnownTooBig,
ConfigHttpNotFound,
ConfigNoResponse,
ConfigInvalidResponse,
ConfigInvalidContentType,
IdpNotPotentiallyTrustworthy,
DisabledInSettings,
DisabledInFlags,
ErrorFetchingSignin,
InvalidSigninResponse,
AccountsHttpNotFound,
AccountsNoResponse,
AccountsInvalidResponse,
AccountsListEmpty,
AccountsInvalidContentType,
IdTokenHttpNotFound,
IdTokenNoResponse,
IdTokenInvalidResponse,
IdTokenIdpErrorResponse,
IdTokenCrossSiteIdpErrorResponse,
IdTokenInvalidRequest,
IdTokenInvalidContentType,
ErrorIdToken,
Canceled,
RpPageNotVisible,
SilentMediationFailure,
NotSignedInWithIdp,
MissingTransientUserActivation,
ReplacedByActiveMode,
RelyingPartyOriginIsOpaque,
TypeNotMatching,
UiDismissedNoEmbargo,
CorsError,
SuppressedBySegmentationPlatform,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FederatedAuthUserInfoRequestIssueDetails {
pub federatedAuthUserInfoRequestIssueReason: FederatedAuthUserInfoRequestIssueReason,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum FederatedAuthUserInfoRequestIssueReason {
#[default]
NotSameOrigin,
NotIframe,
NotPotentiallyTrustworthy,
NoApiPermission,
NotSignedInWithIdp,
NoAccountSharingPermission,
InvalidConfigOrWellKnown,
InvalidAccountsResponse,
NoReturningUserFromFetchedAccounts,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClientHintIssueDetails {
pub sourceCodeLocation: SourceCodeLocation,
pub clientHintIssueReason: ClientHintIssueReason,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FailedRequestInfo {
pub url: String,
pub failureMessage: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub requestId: Option<crate::network::RequestId>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PartitioningBlobURLInfo {
#[default]
BlockedCrossPartitionFetching,
EnforceNoopenerForNavigation,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PartitioningBlobURLIssueDetails {
pub url: String,
pub partitioningBlobURLInfo: PartitioningBlobURLInfo,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum ElementAccessibilityIssueReason {
#[default]
DisallowedSelectChild,
DisallowedOptGroupChild,
NonPhrasingContentOptionChild,
InteractiveContentOptionChild,
InteractiveContentLegendChild,
InteractiveContentSummaryDescendant,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ElementAccessibilityIssueDetails {
pub nodeId: crate::dom::BackendNodeId,
pub elementAccessibilityIssueReason: ElementAccessibilityIssueReason,
pub hasDisallowedAttributes: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum StyleSheetLoadingIssueReason {
#[default]
LateImportRule,
RequestFailed,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct StylesheetLoadingIssueDetails {
pub sourceCodeLocation: SourceCodeLocation,
pub styleSheetLoadingIssueReason: StyleSheetLoadingIssueReason,
#[serde(skip_serializing_if = "Option::is_none")]
pub failedRequestInfo: Option<FailedRequestInfo>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PropertyRuleIssueReason {
#[default]
InvalidSyntax,
InvalidInitialValue,
InvalidInherits,
InvalidName,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PropertyRuleIssueDetails {
pub sourceCodeLocation: SourceCodeLocation,
pub propertyRuleIssueReason: PropertyRuleIssueReason,
#[serde(skip_serializing_if = "Option::is_none")]
pub propertyValue: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum UserReidentificationIssueType {
#[default]
BlockedFrameNavigation,
BlockedSubresource,
NoisedCanvasReadback,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct UserReidentificationIssueDetails {
#[serde(rename = "type")]
pub type_: UserReidentificationIssueType,
#[serde(skip_serializing_if = "Option::is_none")]
pub request: Option<AffectedRequest>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sourceCodeLocation: Option<SourceCodeLocation>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PermissionElementIssueType {
#[default]
InvalidType,
FencedFrameDisallowed,
CspFrameAncestorsMissing,
PermissionsPolicyBlocked,
PaddingRightUnsupported,
PaddingBottomUnsupported,
InsetBoxShadowUnsupported,
RequestInProgress,
UntrustedEvent,
RegistrationFailed,
TypeNotSupported,
InvalidTypeActivation,
SecurityChecksFailed,
ActivationDisabled,
GeolocationDeprecated,
InvalidDisplayStyle,
NonOpaqueColor,
LowContrast,
FontSizeTooSmall,
FontSizeTooLarge,
InvalidSizeValue,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PermissionElementIssueDetails {
pub issueType: PermissionElementIssueType,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "type")]
pub type_: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nodeId: Option<crate::dom::BackendNodeId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub isWarning: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub permissionName: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub occluderNodeInfo: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub occluderParentNodeInfo: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disableReason: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SelectivePermissionsInterventionIssueDetails {
pub apiName: String,
pub adAncestry: crate::network::AdAncestry,
#[serde(skip_serializing_if = "Option::is_none")]
pub stackTrace: Option<crate::runtime::StackTrace>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum InspectorIssueCode {
#[default]
CookieIssue,
MixedContentIssue,
BlockedByResponseIssue,
HeavyAdIssue,
ContentSecurityPolicyIssue,
SharedArrayBufferIssue,
CorsIssue,
AttributionReportingIssue,
QuirksModeIssue,
PartitioningBlobURLIssue,
NavigatorUserAgentIssue,
GenericIssue,
DeprecationIssue,
ClientHintIssue,
FederatedAuthRequestIssue,
BounceTrackingIssue,
CookieDeprecationMetadataIssue,
StylesheetLoadingIssue,
FederatedAuthUserInfoRequestIssue,
PropertyRuleIssue,
SharedDictionaryIssue,
ElementAccessibilityIssue,
SRIMessageSignatureIssue,
UnencodedDigestIssue,
ConnectionAllowlistIssue,
UserReidentificationIssue,
PermissionElementIssue,
PerformanceIssue,
SelectivePermissionsInterventionIssue,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct InspectorIssueDetails {
#[serde(skip_serializing_if = "Option::is_none")]
pub cookieIssueDetails: Option<CookieIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mixedContentIssueDetails: Option<MixedContentIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blockedByResponseIssueDetails: Option<BlockedByResponseIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub heavyAdIssueDetails: Option<HeavyAdIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub contentSecurityPolicyIssueDetails: Option<ContentSecurityPolicyIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sharedArrayBufferIssueDetails: Option<SharedArrayBufferIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub corsIssueDetails: Option<CorsIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub attributionReportingIssueDetails: Option<AttributionReportingIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub quirksModeIssueDetails: Option<QuirksModeIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub partitioningBlobURLIssueDetails: Option<PartitioningBlobURLIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub navigatorUserAgentIssueDetails: Option<NavigatorUserAgentIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub genericIssueDetails: Option<GenericIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deprecationIssueDetails: Option<DeprecationIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub clientHintIssueDetails: Option<ClientHintIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub federatedAuthRequestIssueDetails: Option<FederatedAuthRequestIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bounceTrackingIssueDetails: Option<BounceTrackingIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cookieDeprecationMetadataIssueDetails: Option<CookieDeprecationMetadataIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stylesheetLoadingIssueDetails: Option<StylesheetLoadingIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub propertyRuleIssueDetails: Option<PropertyRuleIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub federatedAuthUserInfoRequestIssueDetails: Option<FederatedAuthUserInfoRequestIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sharedDictionaryIssueDetails: Option<SharedDictionaryIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub elementAccessibilityIssueDetails: Option<ElementAccessibilityIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sriMessageSignatureIssueDetails: Option<SRIMessageSignatureIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unencodedDigestIssueDetails: Option<UnencodedDigestIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub connectionAllowlistIssueDetails: Option<ConnectionAllowlistIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub userReidentificationIssueDetails: Option<UserReidentificationIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub permissionElementIssueDetails: Option<PermissionElementIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub performanceIssueDetails: Option<PerformanceIssueDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub selectivePermissionsInterventionIssueDetails: Option<SelectivePermissionsInterventionIssueDetails>,
}
pub type IssueId = String;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct InspectorIssue {
pub code: InspectorIssueCode,
pub details: InspectorIssueDetails,
#[serde(skip_serializing_if = "Option::is_none")]
pub issueId: Option<IssueId>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetEncodedResponseParams {
pub requestId: crate::network::RequestId,
pub encoding: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub quality: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sizeOnly: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetEncodedResponseReturns {
#[serde(skip_serializing_if = "Option::is_none")]
pub body: Option<String>,
pub originalSize: u64,
pub encodedSize: u64,
}
impl GetEncodedResponseParams { pub const METHOD: &'static str = "Audits.getEncodedResponse"; }
impl crate::CdpCommand for GetEncodedResponseParams {
const METHOD: &'static str = "Audits.getEncodedResponse";
type Response = GetEncodedResponseReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct DisableParams {}
impl DisableParams { pub const METHOD: &'static str = "Audits.disable"; }
impl crate::CdpCommand for DisableParams {
const METHOD: &'static str = "Audits.disable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct EnableParams {}
impl EnableParams { pub const METHOD: &'static str = "Audits.enable"; }
impl crate::CdpCommand for EnableParams {
const METHOD: &'static str = "Audits.enable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CheckFormsIssuesReturns {
pub formIssues: Vec<GenericIssueDetails>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CheckFormsIssuesParams {}
impl CheckFormsIssuesParams { pub const METHOD: &'static str = "Audits.checkFormsIssues"; }
impl crate::CdpCommand for CheckFormsIssuesParams {
const METHOD: &'static str = "Audits.checkFormsIssues";
type Response = CheckFormsIssuesReturns;
}