Skip to main content

cdp_protocol/
audits.rs

1// Auto-generated from Chrome at version 146.0.7680.165 domain: Audits
2#![allow(dead_code)]
3use super::dom;
4use super::network;
5use super::page;
6use super::runtime;
7#[allow(unused_imports)]
8use super::types::*;
9#[allow(unused_imports)]
10use derive_builder::Builder;
11#[allow(unused_imports)]
12use serde::{Deserialize, Serialize};
13#[allow(unused_imports)]
14use serde_json::Value as Json;
15pub type IssueId = String;
16#[allow(deprecated)]
17#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
18pub enum CookieExclusionReason {
19    #[serde(rename = "ExcludeSameSiteUnspecifiedTreatedAsLax")]
20    ExcludeSameSiteUnspecifiedTreatedAsLax,
21    #[serde(rename = "ExcludeSameSiteNoneInsecure")]
22    ExcludeSameSiteNoneInsecure,
23    #[serde(rename = "ExcludeSameSiteLax")]
24    ExcludeSameSiteLax,
25    #[serde(rename = "ExcludeSameSiteStrict")]
26    ExcludeSameSiteStrict,
27    #[serde(rename = "ExcludeDomainNonASCII")]
28    ExcludeDomainNonAscii,
29    #[serde(rename = "ExcludeThirdPartyCookieBlockedInFirstPartySet")]
30    ExcludeThirdPartyCookieBlockedInFirstPartySet,
31    #[serde(rename = "ExcludeThirdPartyPhaseout")]
32    ExcludeThirdPartyPhaseout,
33    #[serde(rename = "ExcludePortMismatch")]
34    ExcludePortMismatch,
35    #[serde(rename = "ExcludeSchemeMismatch")]
36    ExcludeSchemeMismatch,
37}
38#[allow(deprecated)]
39#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
40pub enum CookieWarningReason {
41    #[serde(rename = "WarnSameSiteUnspecifiedCrossSiteContext")]
42    WarnSameSiteUnspecifiedCrossSiteContext,
43    #[serde(rename = "WarnSameSiteNoneInsecure")]
44    WarnSameSiteNoneInsecure,
45    #[serde(rename = "WarnSameSiteUnspecifiedLaxAllowUnsafe")]
46    WarnSameSiteUnspecifiedLaxAllowUnsafe,
47    #[serde(rename = "WarnSameSiteStrictLaxDowngradeStrict")]
48    WarnSameSiteStrictLaxDowngradeStrict,
49    #[serde(rename = "WarnSameSiteStrictCrossDowngradeStrict")]
50    WarnSameSiteStrictCrossDowngradeStrict,
51    #[serde(rename = "WarnSameSiteStrictCrossDowngradeLax")]
52    WarnSameSiteStrictCrossDowngradeLax,
53    #[serde(rename = "WarnSameSiteLaxCrossDowngradeStrict")]
54    WarnSameSiteLaxCrossDowngradeStrict,
55    #[serde(rename = "WarnSameSiteLaxCrossDowngradeLax")]
56    WarnSameSiteLaxCrossDowngradeLax,
57    #[serde(rename = "WarnAttributeValueExceedsMaxSize")]
58    WarnAttributeValueExceedsMaxSize,
59    #[serde(rename = "WarnDomainNonASCII")]
60    WarnDomainNonAscii,
61    #[serde(rename = "WarnThirdPartyPhaseout")]
62    WarnThirdPartyPhaseout,
63    #[serde(rename = "WarnCrossSiteRedirectDowngradeChangesInclusion")]
64    WarnCrossSiteRedirectDowngradeChangesInclusion,
65    #[serde(rename = "WarnDeprecationTrialMetadata")]
66    WarnDeprecationTrialMetadata,
67    #[serde(rename = "WarnThirdPartyCookieHeuristic")]
68    WarnThirdPartyCookieHeuristic,
69}
70#[allow(deprecated)]
71#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
72pub enum CookieOperation {
73    #[serde(rename = "SetCookie")]
74    SetCookie,
75    #[serde(rename = "ReadCookie")]
76    ReadCookie,
77}
78#[allow(deprecated)]
79#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
80pub enum InsightType {
81    #[serde(rename = "GitHubResource")]
82    GitHubResource,
83    #[serde(rename = "GracePeriod")]
84    GracePeriod,
85    #[serde(rename = "Heuristics")]
86    Heuristics,
87}
88#[allow(deprecated)]
89#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
90pub enum MixedContentResolutionStatus {
91    #[serde(rename = "MixedContentBlocked")]
92    MixedContentBlocked,
93    #[serde(rename = "MixedContentAutomaticallyUpgraded")]
94    MixedContentAutomaticallyUpgraded,
95    #[serde(rename = "MixedContentWarning")]
96    MixedContentWarning,
97}
98#[allow(deprecated)]
99#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
100pub enum MixedContentResourceType {
101    #[serde(rename = "AttributionSrc")]
102    AttributionSrc,
103    #[serde(rename = "Audio")]
104    Audio,
105    #[serde(rename = "Beacon")]
106    Beacon,
107    #[serde(rename = "CSPReport")]
108    CspReport,
109    #[serde(rename = "Download")]
110    Download,
111    #[serde(rename = "EventSource")]
112    EventSource,
113    #[serde(rename = "Favicon")]
114    Favicon,
115    #[serde(rename = "Font")]
116    Font,
117    #[serde(rename = "Form")]
118    Form,
119    #[serde(rename = "Frame")]
120    Frame,
121    #[serde(rename = "Image")]
122    Image,
123    #[serde(rename = "Import")]
124    Import,
125    #[serde(rename = "JSON")]
126    Json,
127    #[serde(rename = "Manifest")]
128    Manifest,
129    #[serde(rename = "Ping")]
130    Ping,
131    #[serde(rename = "PluginData")]
132    PluginData,
133    #[serde(rename = "PluginResource")]
134    PluginResource,
135    #[serde(rename = "Prefetch")]
136    Prefetch,
137    #[serde(rename = "Resource")]
138    Resource,
139    #[serde(rename = "Script")]
140    Script,
141    #[serde(rename = "ServiceWorker")]
142    ServiceWorker,
143    #[serde(rename = "SharedWorker")]
144    SharedWorker,
145    #[serde(rename = "SpeculationRules")]
146    SpeculationRules,
147    #[serde(rename = "Stylesheet")]
148    Stylesheet,
149    #[serde(rename = "Track")]
150    Track,
151    #[serde(rename = "Video")]
152    Video,
153    #[serde(rename = "Worker")]
154    Worker,
155    #[serde(rename = "XMLHttpRequest")]
156    XmlHttpRequest,
157    #[serde(rename = "XSLT")]
158    Xslt,
159}
160#[allow(deprecated)]
161#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
162pub enum BlockedByResponseReason {
163    #[serde(rename = "CoepFrameResourceNeedsCoepHeader")]
164    CoepFrameResourceNeedsCoepHeader,
165    #[serde(rename = "CoopSandboxedIFrameCannotNavigateToCoopPage")]
166    CoopSandboxedIFrameCannotNavigateToCoopPage,
167    #[serde(rename = "CorpNotSameOrigin")]
168    CorpNotSameOrigin,
169    #[serde(rename = "CorpNotSameOriginAfterDefaultedToSameOriginByCoep")]
170    CorpNotSameOriginAfterDefaultedToSameOriginByCoep,
171    #[serde(rename = "CorpNotSameOriginAfterDefaultedToSameOriginByDip")]
172    CorpNotSameOriginAfterDefaultedToSameOriginByDip,
173    #[serde(rename = "CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip")]
174    CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip,
175    #[serde(rename = "CorpNotSameSite")]
176    CorpNotSameSite,
177    #[serde(rename = "SRIMessageSignatureMismatch")]
178    SriMessageSignatureMismatch,
179}
180#[allow(deprecated)]
181#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
182pub enum HeavyAdResolutionStatus {
183    #[serde(rename = "HeavyAdBlocked")]
184    HeavyAdBlocked,
185    #[serde(rename = "HeavyAdWarning")]
186    HeavyAdWarning,
187}
188#[allow(deprecated)]
189#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
190pub enum HeavyAdReason {
191    #[serde(rename = "NetworkTotalLimit")]
192    NetworkTotalLimit,
193    #[serde(rename = "CpuTotalLimit")]
194    CpuTotalLimit,
195    #[serde(rename = "CpuPeakLimit")]
196    CpuPeakLimit,
197}
198#[allow(deprecated)]
199#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
200pub enum ContentSecurityPolicyViolationType {
201    #[serde(rename = "kInlineViolation")]
202    KInlineViolation,
203    #[serde(rename = "kEvalViolation")]
204    KEvalViolation,
205    #[serde(rename = "kURLViolation")]
206    KUrlViolation,
207    #[serde(rename = "kSRIViolation")]
208    KSriViolation,
209    #[serde(rename = "kTrustedTypesSinkViolation")]
210    KTrustedTypesSinkViolation,
211    #[serde(rename = "kTrustedTypesPolicyViolation")]
212    KTrustedTypesPolicyViolation,
213    #[serde(rename = "kWasmEvalViolation")]
214    KWasmEvalViolation,
215}
216#[allow(deprecated)]
217#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
218pub enum SharedArrayBufferIssueType {
219    #[serde(rename = "TransferIssue")]
220    TransferIssue,
221    #[serde(rename = "CreationIssue")]
222    CreationIssue,
223}
224#[allow(deprecated)]
225#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
226pub enum AttributionReportingIssueType {
227    #[serde(rename = "PermissionPolicyDisabled")]
228    PermissionPolicyDisabled,
229    #[serde(rename = "UntrustworthyReportingOrigin")]
230    UntrustworthyReportingOrigin,
231    #[serde(rename = "InsecureContext")]
232    InsecureContext,
233    #[serde(rename = "InvalidHeader")]
234    InvalidHeader,
235    #[serde(rename = "InvalidRegisterTriggerHeader")]
236    InvalidRegisterTriggerHeader,
237    #[serde(rename = "SourceAndTriggerHeaders")]
238    SourceAndTriggerHeaders,
239    #[serde(rename = "SourceIgnored")]
240    SourceIgnored,
241    #[serde(rename = "TriggerIgnored")]
242    TriggerIgnored,
243    #[serde(rename = "OsSourceIgnored")]
244    OsSourceIgnored,
245    #[serde(rename = "OsTriggerIgnored")]
246    OsTriggerIgnored,
247    #[serde(rename = "InvalidRegisterOsSourceHeader")]
248    InvalidRegisterOsSourceHeader,
249    #[serde(rename = "InvalidRegisterOsTriggerHeader")]
250    InvalidRegisterOsTriggerHeader,
251    #[serde(rename = "WebAndOsHeaders")]
252    WebAndOsHeaders,
253    #[serde(rename = "NoWebOrOsSupport")]
254    NoWebOrOsSupport,
255    #[serde(rename = "NavigationRegistrationWithoutTransientUserActivation")]
256    NavigationRegistrationWithoutTransientUserActivation,
257    #[serde(rename = "InvalidInfoHeader")]
258    InvalidInfoHeader,
259    #[serde(rename = "NoRegisterSourceHeader")]
260    NoRegisterSourceHeader,
261    #[serde(rename = "NoRegisterTriggerHeader")]
262    NoRegisterTriggerHeader,
263    #[serde(rename = "NoRegisterOsSourceHeader")]
264    NoRegisterOsSourceHeader,
265    #[serde(rename = "NoRegisterOsTriggerHeader")]
266    NoRegisterOsTriggerHeader,
267    #[serde(rename = "NavigationRegistrationUniqueScopeAlreadySet")]
268    NavigationRegistrationUniqueScopeAlreadySet,
269}
270#[allow(deprecated)]
271#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
272pub enum SharedDictionaryError {
273    #[serde(rename = "UseErrorCrossOriginNoCorsRequest")]
274    UseErrorCrossOriginNoCorsRequest,
275    #[serde(rename = "UseErrorDictionaryLoadFailure")]
276    UseErrorDictionaryLoadFailure,
277    #[serde(rename = "UseErrorMatchingDictionaryNotUsed")]
278    UseErrorMatchingDictionaryNotUsed,
279    #[serde(rename = "UseErrorUnexpectedContentDictionaryHeader")]
280    UseErrorUnexpectedContentDictionaryHeader,
281    #[serde(rename = "WriteErrorCossOriginNoCorsRequest")]
282    WriteErrorCossOriginNoCorsRequest,
283    #[serde(rename = "WriteErrorDisallowedBySettings")]
284    WriteErrorDisallowedBySettings,
285    #[serde(rename = "WriteErrorExpiredResponse")]
286    WriteErrorExpiredResponse,
287    #[serde(rename = "WriteErrorFeatureDisabled")]
288    WriteErrorFeatureDisabled,
289    #[serde(rename = "WriteErrorInsufficientResources")]
290    WriteErrorInsufficientResources,
291    #[serde(rename = "WriteErrorInvalidMatchField")]
292    WriteErrorInvalidMatchField,
293    #[serde(rename = "WriteErrorInvalidStructuredHeader")]
294    WriteErrorInvalidStructuredHeader,
295    #[serde(rename = "WriteErrorInvalidTTLField")]
296    WriteErrorInvalidTtlField,
297    #[serde(rename = "WriteErrorNavigationRequest")]
298    WriteErrorNavigationRequest,
299    #[serde(rename = "WriteErrorNoMatchField")]
300    WriteErrorNoMatchField,
301    #[serde(rename = "WriteErrorNonIntegerTTLField")]
302    WriteErrorNonIntegerTtlField,
303    #[serde(rename = "WriteErrorNonListMatchDestField")]
304    WriteErrorNonListMatchDestField,
305    #[serde(rename = "WriteErrorNonSecureContext")]
306    WriteErrorNonSecureContext,
307    #[serde(rename = "WriteErrorNonStringIdField")]
308    WriteErrorNonStringIdField,
309    #[serde(rename = "WriteErrorNonStringInMatchDestList")]
310    WriteErrorNonStringInMatchDestList,
311    #[serde(rename = "WriteErrorNonStringMatchField")]
312    WriteErrorNonStringMatchField,
313    #[serde(rename = "WriteErrorNonTokenTypeField")]
314    WriteErrorNonTokenTypeField,
315    #[serde(rename = "WriteErrorRequestAborted")]
316    WriteErrorRequestAborted,
317    #[serde(rename = "WriteErrorShuttingDown")]
318    WriteErrorShuttingDown,
319    #[serde(rename = "WriteErrorTooLongIdField")]
320    WriteErrorTooLongIdField,
321    #[serde(rename = "WriteErrorUnsupportedType")]
322    WriteErrorUnsupportedType,
323}
324#[allow(deprecated)]
325#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
326pub enum SriMessageSignatureError {
327    #[serde(rename = "MissingSignatureHeader")]
328    MissingSignatureHeader,
329    #[serde(rename = "MissingSignatureInputHeader")]
330    MissingSignatureInputHeader,
331    #[serde(rename = "InvalidSignatureHeader")]
332    InvalidSignatureHeader,
333    #[serde(rename = "InvalidSignatureInputHeader")]
334    InvalidSignatureInputHeader,
335    #[serde(rename = "SignatureHeaderValueIsNotByteSequence")]
336    SignatureHeaderValueIsNotByteSequence,
337    #[serde(rename = "SignatureHeaderValueIsParameterized")]
338    SignatureHeaderValueIsParameterized,
339    #[serde(rename = "SignatureHeaderValueIsIncorrectLength")]
340    SignatureHeaderValueIsIncorrectLength,
341    #[serde(rename = "SignatureInputHeaderMissingLabel")]
342    SignatureInputHeaderMissingLabel,
343    #[serde(rename = "SignatureInputHeaderValueNotInnerList")]
344    SignatureInputHeaderValueNotInnerList,
345    #[serde(rename = "SignatureInputHeaderValueMissingComponents")]
346    SignatureInputHeaderValueMissingComponents,
347    #[serde(rename = "SignatureInputHeaderInvalidComponentType")]
348    SignatureInputHeaderInvalidComponentType,
349    #[serde(rename = "SignatureInputHeaderInvalidComponentName")]
350    SignatureInputHeaderInvalidComponentName,
351    #[serde(rename = "SignatureInputHeaderInvalidHeaderComponentParameter")]
352    SignatureInputHeaderInvalidHeaderComponentParameter,
353    #[serde(rename = "SignatureInputHeaderInvalidDerivedComponentParameter")]
354    SignatureInputHeaderInvalidDerivedComponentParameter,
355    #[serde(rename = "SignatureInputHeaderKeyIdLength")]
356    SignatureInputHeaderKeyIdLength,
357    #[serde(rename = "SignatureInputHeaderInvalidParameter")]
358    SignatureInputHeaderInvalidParameter,
359    #[serde(rename = "SignatureInputHeaderMissingRequiredParameters")]
360    SignatureInputHeaderMissingRequiredParameters,
361    #[serde(rename = "ValidationFailedSignatureExpired")]
362    ValidationFailedSignatureExpired,
363    #[serde(rename = "ValidationFailedInvalidLength")]
364    ValidationFailedInvalidLength,
365    #[serde(rename = "ValidationFailedSignatureMismatch")]
366    ValidationFailedSignatureMismatch,
367    #[serde(rename = "ValidationFailedIntegrityMismatch")]
368    ValidationFailedIntegrityMismatch,
369}
370#[allow(deprecated)]
371#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
372pub enum UnencodedDigestError {
373    #[serde(rename = "MalformedDictionary")]
374    MalformedDictionary,
375    #[serde(rename = "UnknownAlgorithm")]
376    UnknownAlgorithm,
377    #[serde(rename = "IncorrectDigestType")]
378    IncorrectDigestType,
379    #[serde(rename = "IncorrectDigestLength")]
380    IncorrectDigestLength,
381}
382#[allow(deprecated)]
383#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
384pub enum ConnectionAllowlistError {
385    #[serde(rename = "InvalidHeader")]
386    InvalidHeader,
387    #[serde(rename = "MoreThanOneList")]
388    MoreThanOneList,
389    #[serde(rename = "ItemNotInnerList")]
390    ItemNotInnerList,
391    #[serde(rename = "InvalidAllowlistItemType")]
392    InvalidAllowlistItemType,
393    #[serde(rename = "ReportingEndpointNotToken")]
394    ReportingEndpointNotToken,
395    #[serde(rename = "InvalidUrlPattern")]
396    InvalidUrlPattern,
397}
398#[allow(deprecated)]
399#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
400pub enum GenericIssueErrorType {
401    #[serde(rename = "FormLabelForNameError")]
402    FormLabelForNameError,
403    #[serde(rename = "FormDuplicateIdForInputError")]
404    FormDuplicateIdForInputError,
405    #[serde(rename = "FormInputWithNoLabelError")]
406    FormInputWithNoLabelError,
407    #[serde(rename = "FormAutocompleteAttributeEmptyError")]
408    FormAutocompleteAttributeEmptyError,
409    #[serde(rename = "FormEmptyIdAndNameAttributesForInputError")]
410    FormEmptyIdAndNameAttributesForInputError,
411    #[serde(rename = "FormAriaLabelledByToNonExistingIdError")]
412    FormAriaLabelledByToNonExistingIdError,
413    #[serde(rename = "FormInputAssignedAutocompleteValueToIdOrNameAttributeError")]
414    FormInputAssignedAutocompleteValueToIdOrNameAttributeError,
415    #[serde(rename = "FormLabelHasNeitherForNorNestedInputError")]
416    FormLabelHasNeitherForNorNestedInputError,
417    #[serde(rename = "FormLabelForMatchesNonExistingIdError")]
418    FormLabelForMatchesNonExistingIdError,
419    #[serde(rename = "FormInputHasWrongButWellIntendedAutocompleteValueError")]
420    FormInputHasWrongButWellIntendedAutocompleteValueError,
421    #[serde(rename = "ResponseWasBlockedByORB")]
422    ResponseWasBlockedByOrb,
423    #[serde(rename = "NavigationEntryMarkedSkippable")]
424    NavigationEntryMarkedSkippable,
425    #[serde(rename = "AutofillAndManualTextPolicyControlledFeaturesInfo")]
426    AutofillAndManualTextPolicyControlledFeaturesInfo,
427    #[serde(rename = "AutofillPolicyControlledFeatureInfo")]
428    AutofillPolicyControlledFeatureInfo,
429    #[serde(rename = "ManualTextPolicyControlledFeatureInfo")]
430    ManualTextPolicyControlledFeatureInfo,
431}
432#[allow(deprecated)]
433#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
434pub enum ClientHintIssueReason {
435    #[serde(rename = "MetaTagAllowListInvalidOrigin")]
436    MetaTagAllowListInvalidOrigin,
437    #[serde(rename = "MetaTagModifiedHTML")]
438    MetaTagModifiedHtml,
439}
440#[allow(deprecated)]
441#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
442pub enum FederatedAuthRequestIssueReason {
443    #[serde(rename = "ShouldEmbargo")]
444    ShouldEmbargo,
445    #[serde(rename = "TooManyRequests")]
446    TooManyRequests,
447    #[serde(rename = "WellKnownHttpNotFound")]
448    WellKnownHttpNotFound,
449    #[serde(rename = "WellKnownNoResponse")]
450    WellKnownNoResponse,
451    #[serde(rename = "WellKnownInvalidResponse")]
452    WellKnownInvalidResponse,
453    #[serde(rename = "WellKnownListEmpty")]
454    WellKnownListEmpty,
455    #[serde(rename = "WellKnownInvalidContentType")]
456    WellKnownInvalidContentType,
457    #[serde(rename = "ConfigNotInWellKnown")]
458    ConfigNotInWellKnown,
459    #[serde(rename = "WellKnownTooBig")]
460    WellKnownTooBig,
461    #[serde(rename = "ConfigHttpNotFound")]
462    ConfigHttpNotFound,
463    #[serde(rename = "ConfigNoResponse")]
464    ConfigNoResponse,
465    #[serde(rename = "ConfigInvalidResponse")]
466    ConfigInvalidResponse,
467    #[serde(rename = "ConfigInvalidContentType")]
468    ConfigInvalidContentType,
469    #[serde(rename = "ClientMetadataHttpNotFound")]
470    ClientMetadataHttpNotFound,
471    #[serde(rename = "ClientMetadataNoResponse")]
472    ClientMetadataNoResponse,
473    #[serde(rename = "ClientMetadataInvalidResponse")]
474    ClientMetadataInvalidResponse,
475    #[serde(rename = "ClientMetadataInvalidContentType")]
476    ClientMetadataInvalidContentType,
477    #[serde(rename = "IdpNotPotentiallyTrustworthy")]
478    IdpNotPotentiallyTrustworthy,
479    #[serde(rename = "DisabledInSettings")]
480    DisabledInSettings,
481    #[serde(rename = "DisabledInFlags")]
482    DisabledInFlags,
483    #[serde(rename = "ErrorFetchingSignin")]
484    ErrorFetchingSignin,
485    #[serde(rename = "InvalidSigninResponse")]
486    InvalidSigninResponse,
487    #[serde(rename = "AccountsHttpNotFound")]
488    AccountsHttpNotFound,
489    #[serde(rename = "AccountsNoResponse")]
490    AccountsNoResponse,
491    #[serde(rename = "AccountsInvalidResponse")]
492    AccountsInvalidResponse,
493    #[serde(rename = "AccountsListEmpty")]
494    AccountsListEmpty,
495    #[serde(rename = "AccountsInvalidContentType")]
496    AccountsInvalidContentType,
497    #[serde(rename = "IdTokenHttpNotFound")]
498    IdTokenHttpNotFound,
499    #[serde(rename = "IdTokenNoResponse")]
500    IdTokenNoResponse,
501    #[serde(rename = "IdTokenInvalidResponse")]
502    IdTokenInvalidResponse,
503    #[serde(rename = "IdTokenIdpErrorResponse")]
504    IdTokenIdpErrorResponse,
505    #[serde(rename = "IdTokenCrossSiteIdpErrorResponse")]
506    IdTokenCrossSiteIdpErrorResponse,
507    #[serde(rename = "IdTokenInvalidRequest")]
508    IdTokenInvalidRequest,
509    #[serde(rename = "IdTokenInvalidContentType")]
510    IdTokenInvalidContentType,
511    #[serde(rename = "ErrorIdToken")]
512    ErrorIdToken,
513    #[serde(rename = "Canceled")]
514    Canceled,
515    #[serde(rename = "RpPageNotVisible")]
516    RpPageNotVisible,
517    #[serde(rename = "SilentMediationFailure")]
518    SilentMediationFailure,
519    #[serde(rename = "ThirdPartyCookiesBlocked")]
520    ThirdPartyCookiesBlocked,
521    #[serde(rename = "NotSignedInWithIdp")]
522    NotSignedInWithIdp,
523    #[serde(rename = "MissingTransientUserActivation")]
524    MissingTransientUserActivation,
525    #[serde(rename = "ReplacedByActiveMode")]
526    ReplacedByActiveMode,
527    #[serde(rename = "InvalidFieldsSpecified")]
528    InvalidFieldsSpecified,
529    #[serde(rename = "RelyingPartyOriginIsOpaque")]
530    RelyingPartyOriginIsOpaque,
531    #[serde(rename = "TypeNotMatching")]
532    TypeNotMatching,
533    #[serde(rename = "UiDismissedNoEmbargo")]
534    UiDismissedNoEmbargo,
535    #[serde(rename = "CorsError")]
536    CorsError,
537    #[serde(rename = "SuppressedBySegmentationPlatform")]
538    SuppressedBySegmentationPlatform,
539}
540#[allow(deprecated)]
541#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
542pub enum FederatedAuthUserInfoRequestIssueReason {
543    #[serde(rename = "NotSameOrigin")]
544    NotSameOrigin,
545    #[serde(rename = "NotIframe")]
546    NotIframe,
547    #[serde(rename = "NotPotentiallyTrustworthy")]
548    NotPotentiallyTrustworthy,
549    #[serde(rename = "NoApiPermission")]
550    NoApiPermission,
551    #[serde(rename = "NotSignedInWithIdp")]
552    NotSignedInWithIdp,
553    #[serde(rename = "NoAccountSharingPermission")]
554    NoAccountSharingPermission,
555    #[serde(rename = "InvalidConfigOrWellKnown")]
556    InvalidConfigOrWellKnown,
557    #[serde(rename = "InvalidAccountsResponse")]
558    InvalidAccountsResponse,
559    #[serde(rename = "NoReturningUserFromFetchedAccounts")]
560    NoReturningUserFromFetchedAccounts,
561}
562#[allow(deprecated)]
563#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
564pub enum PartitioningBlobUrlInfo {
565    #[serde(rename = "BlockedCrossPartitionFetching")]
566    BlockedCrossPartitionFetching,
567    #[serde(rename = "EnforceNoopenerForNavigation")]
568    EnforceNoopenerForNavigation,
569}
570#[allow(deprecated)]
571#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
572pub enum ElementAccessibilityIssueReason {
573    #[serde(rename = "DisallowedSelectChild")]
574    DisallowedSelectChild,
575    #[serde(rename = "DisallowedOptGroupChild")]
576    DisallowedOptGroupChild,
577    #[serde(rename = "NonPhrasingContentOptionChild")]
578    NonPhrasingContentOptionChild,
579    #[serde(rename = "InteractiveContentOptionChild")]
580    InteractiveContentOptionChild,
581    #[serde(rename = "InteractiveContentLegendChild")]
582    InteractiveContentLegendChild,
583    #[serde(rename = "InteractiveContentSummaryDescendant")]
584    InteractiveContentSummaryDescendant,
585}
586#[allow(deprecated)]
587#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
588pub enum StyleSheetLoadingIssueReason {
589    #[serde(rename = "LateImportRule")]
590    LateImportRule,
591    #[serde(rename = "RequestFailed")]
592    RequestFailed,
593}
594#[allow(deprecated)]
595#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
596pub enum PropertyRuleIssueReason {
597    #[serde(rename = "InvalidSyntax")]
598    InvalidSyntax,
599    #[serde(rename = "InvalidInitialValue")]
600    InvalidInitialValue,
601    #[serde(rename = "InvalidInherits")]
602    InvalidInherits,
603    #[serde(rename = "InvalidName")]
604    InvalidName,
605}
606#[allow(deprecated)]
607#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
608pub enum UserReidentificationIssueType {
609    #[serde(rename = "BlockedFrameNavigation")]
610    BlockedFrameNavigation,
611    #[serde(rename = "BlockedSubresource")]
612    BlockedSubresource,
613    #[serde(rename = "NoisedCanvasReadback")]
614    NoisedCanvasReadback,
615}
616#[allow(deprecated)]
617#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
618pub enum PermissionElementIssueType {
619    #[serde(rename = "InvalidType")]
620    InvalidType,
621    #[serde(rename = "FencedFrameDisallowed")]
622    FencedFrameDisallowed,
623    #[serde(rename = "CspFrameAncestorsMissing")]
624    CspFrameAncestorsMissing,
625    #[serde(rename = "PermissionsPolicyBlocked")]
626    PermissionsPolicyBlocked,
627    #[serde(rename = "PaddingRightUnsupported")]
628    PaddingRightUnsupported,
629    #[serde(rename = "PaddingBottomUnsupported")]
630    PaddingBottomUnsupported,
631    #[serde(rename = "InsetBoxShadowUnsupported")]
632    InsetBoxShadowUnsupported,
633    #[serde(rename = "RequestInProgress")]
634    RequestInProgress,
635    #[serde(rename = "UntrustedEvent")]
636    UntrustedEvent,
637    #[serde(rename = "RegistrationFailed")]
638    RegistrationFailed,
639    #[serde(rename = "TypeNotSupported")]
640    TypeNotSupported,
641    #[serde(rename = "InvalidTypeActivation")]
642    InvalidTypeActivation,
643    #[serde(rename = "SecurityChecksFailed")]
644    SecurityChecksFailed,
645    #[serde(rename = "ActivationDisabled")]
646    ActivationDisabled,
647    #[serde(rename = "GeolocationDeprecated")]
648    GeolocationDeprecated,
649    #[serde(rename = "InvalidDisplayStyle")]
650    InvalidDisplayStyle,
651    #[serde(rename = "NonOpaqueColor")]
652    NonOpaqueColor,
653    #[serde(rename = "LowContrast")]
654    LowContrast,
655    #[serde(rename = "FontSizeTooSmall")]
656    FontSizeTooSmall,
657    #[serde(rename = "FontSizeTooLarge")]
658    FontSizeTooLarge,
659    #[serde(rename = "InvalidSizeValue")]
660    InvalidSizeValue,
661}
662#[allow(deprecated)]
663#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
664pub enum InspectorIssueCode {
665    #[serde(rename = "CookieIssue")]
666    CookieIssue,
667    #[serde(rename = "MixedContentIssue")]
668    MixedContentIssue,
669    #[serde(rename = "BlockedByResponseIssue")]
670    BlockedByResponseIssue,
671    #[serde(rename = "HeavyAdIssue")]
672    HeavyAdIssue,
673    #[serde(rename = "ContentSecurityPolicyIssue")]
674    ContentSecurityPolicyIssue,
675    #[serde(rename = "SharedArrayBufferIssue")]
676    SharedArrayBufferIssue,
677    #[serde(rename = "LowTextContrastIssue")]
678    LowTextContrastIssue,
679    #[serde(rename = "CorsIssue")]
680    CorsIssue,
681    #[serde(rename = "AttributionReportingIssue")]
682    AttributionReportingIssue,
683    #[serde(rename = "QuirksModeIssue")]
684    QuirksModeIssue,
685    #[serde(rename = "PartitioningBlobURLIssue")]
686    PartitioningBlobUrlIssue,
687    #[serde(rename = "NavigatorUserAgentIssue")]
688    NavigatorUserAgentIssue,
689    #[serde(rename = "GenericIssue")]
690    GenericIssue,
691    #[serde(rename = "DeprecationIssue")]
692    DeprecationIssue,
693    #[serde(rename = "ClientHintIssue")]
694    ClientHintIssue,
695    #[serde(rename = "FederatedAuthRequestIssue")]
696    FederatedAuthRequestIssue,
697    #[serde(rename = "BounceTrackingIssue")]
698    BounceTrackingIssue,
699    #[serde(rename = "CookieDeprecationMetadataIssue")]
700    CookieDeprecationMetadataIssue,
701    #[serde(rename = "StylesheetLoadingIssue")]
702    StylesheetLoadingIssue,
703    #[serde(rename = "FederatedAuthUserInfoRequestIssue")]
704    FederatedAuthUserInfoRequestIssue,
705    #[serde(rename = "PropertyRuleIssue")]
706    PropertyRuleIssue,
707    #[serde(rename = "SharedDictionaryIssue")]
708    SharedDictionaryIssue,
709    #[serde(rename = "ElementAccessibilityIssue")]
710    ElementAccessibilityIssue,
711    #[serde(rename = "SRIMessageSignatureIssue")]
712    SriMessageSignatureIssue,
713    #[serde(rename = "UnencodedDigestIssue")]
714    UnencodedDigestIssue,
715    #[serde(rename = "ConnectionAllowlistIssue")]
716    ConnectionAllowlistIssue,
717    #[serde(rename = "UserReidentificationIssue")]
718    UserReidentificationIssue,
719    #[serde(rename = "PermissionElementIssue")]
720    PermissionElementIssue,
721}
722#[allow(deprecated)]
723#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
724pub enum GetEncodedResponseEncodingOption {
725    #[serde(rename = "webp")]
726    Webp,
727    #[serde(rename = "jpeg")]
728    Jpeg,
729    #[serde(rename = "png")]
730    Png,
731}
732#[allow(deprecated)]
733#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
734#[builder(setter(into, strip_option))]
735#[serde(rename_all = "camelCase")]
736#[doc = "Information about a cookie that is affected by an inspector issue."]
737pub struct AffectedCookie {
738    #[serde(default)]
739    #[doc = "The following three properties uniquely identify a cookie"]
740    pub name: String,
741    #[serde(default)]
742    pub path: String,
743    #[serde(default)]
744    pub domain: String,
745}
746#[allow(deprecated)]
747#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
748#[builder(setter(into, strip_option))]
749#[serde(rename_all = "camelCase")]
750#[doc = "Information about a request that is affected by an inspector issue."]
751pub struct AffectedRequest {
752    #[builder(default)]
753    #[serde(skip_serializing_if = "Option::is_none")]
754    #[doc = "The unique request id."]
755    pub request_id: Option<network::RequestId>,
756    #[serde(default)]
757    pub url: String,
758}
759#[allow(deprecated)]
760#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
761#[builder(setter(into, strip_option))]
762#[serde(rename_all = "camelCase")]
763#[doc = "Information about the frame affected by an inspector issue."]
764pub struct AffectedFrame {
765    pub frame_id: page::FrameId,
766}
767#[allow(deprecated)]
768#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
769#[builder(setter(into, strip_option))]
770#[serde(rename_all = "camelCase")]
771#[doc = "Information about the suggested solution to a cookie issue."]
772pub struct CookieIssueInsight {
773    pub r#type: InsightType,
774    #[builder(default)]
775    #[serde(skip_serializing_if = "Option::is_none")]
776    #[serde(default)]
777    #[doc = "Link to table entry in third-party cookie migration readiness list."]
778    pub table_entry_url: Option<String>,
779}
780#[allow(deprecated)]
781#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
782#[builder(setter(into, strip_option))]
783#[serde(rename_all = "camelCase")]
784#[doc = "This information is currently necessary, as the front-end has a difficult\n time finding a specific cookie. With this, we can convey specific error\n information without the cookie."]
785pub struct CookieIssueDetails {
786    #[builder(default)]
787    #[serde(skip_serializing_if = "Option::is_none")]
788    #[doc = "If AffectedCookie is not set then rawCookieLine contains the raw\n Set-Cookie header string. This hints at a problem where the\n cookie line is syntactically or semantically malformed in a way\n that no valid cookie could be created."]
789    pub cookie: Option<AffectedCookie>,
790    #[builder(default)]
791    #[serde(skip_serializing_if = "Option::is_none")]
792    #[serde(default)]
793    pub raw_cookie_line: Option<String>,
794    pub cookie_warning_reasons: Vec<CookieWarningReason>,
795    pub cookie_exclusion_reasons: Vec<CookieExclusionReason>,
796    #[doc = "Optionally identifies the site-for-cookies and the cookie url, which\n may be used by the front-end as additional context."]
797    pub operation: CookieOperation,
798    #[builder(default)]
799    #[serde(skip_serializing_if = "Option::is_none")]
800    #[serde(default)]
801    pub site_for_cookies: Option<String>,
802    #[builder(default)]
803    #[serde(skip_serializing_if = "Option::is_none")]
804    #[serde(default)]
805    pub cookie_url: Option<String>,
806    #[builder(default)]
807    #[serde(skip_serializing_if = "Option::is_none")]
808    pub request: Option<AffectedRequest>,
809    #[builder(default)]
810    #[serde(skip_serializing_if = "Option::is_none")]
811    #[doc = "The recommended solution to the issue."]
812    pub insight: Option<CookieIssueInsight>,
813}
814#[allow(deprecated)]
815#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
816#[builder(setter(into, strip_option))]
817#[serde(rename_all = "camelCase")]
818pub struct MixedContentIssueDetails {
819    #[builder(default)]
820    #[serde(skip_serializing_if = "Option::is_none")]
821    #[doc = "The type of resource causing the mixed content issue (css, js, iframe,\n form,...). Marked as optional because it is mapped to from\n blink::mojom::RequestContextType, which will be replaced\n by network::mojom::RequestDestination"]
822    pub resource_type: Option<MixedContentResourceType>,
823    #[doc = "The way the mixed content issue is being resolved."]
824    pub resolution_status: MixedContentResolutionStatus,
825    #[serde(default)]
826    #[doc = "The unsafe http url causing the mixed content issue."]
827    #[serde(rename = "insecureURL")]
828    pub insecure_url: String,
829    #[serde(default)]
830    #[doc = "The url responsible for the call to an unsafe url."]
831    #[serde(rename = "mainResourceURL")]
832    pub main_resource_url: String,
833    #[builder(default)]
834    #[serde(skip_serializing_if = "Option::is_none")]
835    #[doc = "The mixed content request.\n Does not always exist (e.g. for unsafe form submission urls)."]
836    pub request: Option<AffectedRequest>,
837    #[builder(default)]
838    #[serde(skip_serializing_if = "Option::is_none")]
839    #[doc = "Optional because not every mixed content issue is necessarily linked to a frame."]
840    pub frame: Option<AffectedFrame>,
841}
842#[allow(deprecated)]
843#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
844#[builder(setter(into, strip_option))]
845#[serde(rename_all = "camelCase")]
846#[doc = "Details for a request that has been blocked with the BLOCKED_BY_RESPONSE\n code. Currently only used for COEP/COOP, but may be extended to include\n some CSP errors in the future."]
847pub struct BlockedByResponseIssueDetails {
848    pub request: AffectedRequest,
849    #[builder(default)]
850    #[serde(skip_serializing_if = "Option::is_none")]
851    pub parent_frame: Option<AffectedFrame>,
852    #[builder(default)]
853    #[serde(skip_serializing_if = "Option::is_none")]
854    pub blocked_frame: Option<AffectedFrame>,
855    pub reason: BlockedByResponseReason,
856}
857#[allow(deprecated)]
858#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
859#[builder(setter(into, strip_option))]
860#[serde(rename_all = "camelCase")]
861pub struct HeavyAdIssueDetails {
862    #[doc = "The resolution status, either blocking the content or warning."]
863    pub resolution: HeavyAdResolutionStatus,
864    #[doc = "The reason the ad was blocked, total network or cpu or peak cpu."]
865    pub reason: HeavyAdReason,
866    #[doc = "The frame that was blocked."]
867    pub frame: AffectedFrame,
868}
869#[allow(deprecated)]
870#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
871#[builder(setter(into, strip_option))]
872#[serde(rename_all = "camelCase")]
873pub struct SourceCodeLocation {
874    #[builder(default)]
875    #[serde(skip_serializing_if = "Option::is_none")]
876    pub script_id: Option<runtime::ScriptId>,
877    #[serde(default)]
878    pub url: String,
879    #[serde(default)]
880    pub line_number: JsUInt,
881    #[serde(default)]
882    pub column_number: JsUInt,
883}
884#[allow(deprecated)]
885#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
886#[builder(setter(into, strip_option))]
887#[serde(rename_all = "camelCase")]
888pub struct ContentSecurityPolicyIssueDetails {
889    #[builder(default)]
890    #[serde(skip_serializing_if = "Option::is_none")]
891    #[serde(default)]
892    #[doc = "The url not included in allowed sources."]
893    #[serde(rename = "blockedURL")]
894    pub blocked_url: Option<String>,
895    #[serde(default)]
896    #[doc = "Specific directive that is violated, causing the CSP issue."]
897    pub violated_directive: String,
898    #[serde(default)]
899    pub is_report_only: bool,
900    pub content_security_policy_violation_type: ContentSecurityPolicyViolationType,
901    #[builder(default)]
902    #[serde(skip_serializing_if = "Option::is_none")]
903    pub frame_ancestor: Option<AffectedFrame>,
904    #[builder(default)]
905    #[serde(skip_serializing_if = "Option::is_none")]
906    pub source_code_location: Option<SourceCodeLocation>,
907    #[builder(default)]
908    #[serde(skip_serializing_if = "Option::is_none")]
909    pub violating_node_id: Option<dom::BackendNodeId>,
910}
911#[allow(deprecated)]
912#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
913#[builder(setter(into, strip_option))]
914#[serde(rename_all = "camelCase")]
915#[doc = "Details for a issue arising from an SAB being instantiated in, or\n transferred to a context that is not cross-origin isolated."]
916pub struct SharedArrayBufferIssueDetails {
917    pub source_code_location: SourceCodeLocation,
918    #[serde(default)]
919    pub is_warning: bool,
920    pub r#type: SharedArrayBufferIssueType,
921}
922#[allow(deprecated)]
923#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
924#[builder(setter(into, strip_option))]
925#[serde(rename_all = "camelCase")]
926pub struct LowTextContrastIssueDetails {
927    pub violating_node_id: dom::BackendNodeId,
928    #[serde(default)]
929    pub violating_node_selector: String,
930    #[serde(default)]
931    pub contrast_ratio: JsFloat,
932    #[serde(default)]
933    #[serde(rename = "thresholdAA")]
934    pub threshold_aa: JsFloat,
935    #[serde(default)]
936    #[serde(rename = "thresholdAAA")]
937    pub threshold_aaa: JsFloat,
938    #[serde(default)]
939    pub font_size: String,
940    #[serde(default)]
941    pub font_weight: String,
942}
943#[allow(deprecated)]
944#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
945#[builder(setter(into, strip_option))]
946#[serde(rename_all = "camelCase")]
947#[doc = "Details for a CORS related issue, e.g. a warning or error related to\n CORS RFC1918 enforcement."]
948pub struct CorsIssueDetails {
949    pub cors_error_status: network::CorsErrorStatus,
950    #[serde(default)]
951    pub is_warning: bool,
952    pub request: AffectedRequest,
953    #[builder(default)]
954    #[serde(skip_serializing_if = "Option::is_none")]
955    pub location: Option<SourceCodeLocation>,
956    #[builder(default)]
957    #[serde(skip_serializing_if = "Option::is_none")]
958    #[serde(default)]
959    pub initiator_origin: Option<String>,
960    #[builder(default)]
961    #[serde(skip_serializing_if = "Option::is_none")]
962    #[serde(rename = "resourceIPAddressSpace")]
963    pub resource_ip_address_space: Option<network::IpAddressSpace>,
964    #[builder(default)]
965    #[serde(skip_serializing_if = "Option::is_none")]
966    pub client_security_state: Option<network::ClientSecurityState>,
967}
968#[allow(deprecated)]
969#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
970#[builder(setter(into, strip_option))]
971#[serde(rename_all = "camelCase")]
972#[doc = "Details for issues around \"Attribution Reporting API\" usage.\n Explainer: <https://github.com/WICG/attribution-reporting-api>"]
973pub struct AttributionReportingIssueDetails {
974    pub violation_type: AttributionReportingIssueType,
975    #[builder(default)]
976    #[serde(skip_serializing_if = "Option::is_none")]
977    pub request: Option<AffectedRequest>,
978    #[builder(default)]
979    #[serde(skip_serializing_if = "Option::is_none")]
980    pub violating_node_id: Option<dom::BackendNodeId>,
981    #[builder(default)]
982    #[serde(skip_serializing_if = "Option::is_none")]
983    #[serde(default)]
984    pub invalid_parameter: Option<String>,
985}
986#[allow(deprecated)]
987#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
988#[builder(setter(into, strip_option))]
989#[serde(rename_all = "camelCase")]
990#[doc = "Details for issues about documents in Quirks Mode\n or Limited Quirks Mode that affects page layouting."]
991pub struct QuirksModeIssueDetails {
992    #[serde(default)]
993    #[doc = "If false, it means the document's mode is \"quirks\"\n instead of \"limited-quirks\"."]
994    pub is_limited_quirks_mode: bool,
995    pub document_node_id: dom::BackendNodeId,
996    #[serde(default)]
997    pub url: String,
998    pub frame_id: page::FrameId,
999    pub loader_id: network::LoaderId,
1000}
1001#[allow(deprecated)]
1002#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1003#[builder(setter(into, strip_option))]
1004#[serde(rename_all = "camelCase")]
1005#[deprecated]
1006pub struct NavigatorUserAgentIssueDetails {
1007    #[serde(default)]
1008    pub url: String,
1009    #[builder(default)]
1010    #[serde(skip_serializing_if = "Option::is_none")]
1011    pub location: Option<SourceCodeLocation>,
1012}
1013#[allow(deprecated)]
1014#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1015#[builder(setter(into, strip_option))]
1016#[serde(rename_all = "camelCase")]
1017pub struct SharedDictionaryIssueDetails {
1018    pub shared_dictionary_error: SharedDictionaryError,
1019    pub request: AffectedRequest,
1020}
1021#[allow(deprecated)]
1022#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1023#[builder(setter(into, strip_option))]
1024#[serde(rename_all = "camelCase")]
1025pub struct SriMessageSignatureIssueDetails {
1026    pub error: SriMessageSignatureError,
1027    #[serde(default)]
1028    pub signature_base: String,
1029    #[serde(default)]
1030    pub integrity_assertions: Vec<String>,
1031    pub request: AffectedRequest,
1032}
1033#[allow(deprecated)]
1034#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1035#[builder(setter(into, strip_option))]
1036#[serde(rename_all = "camelCase")]
1037pub struct UnencodedDigestIssueDetails {
1038    pub error: UnencodedDigestError,
1039    pub request: AffectedRequest,
1040}
1041#[allow(deprecated)]
1042#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1043#[builder(setter(into, strip_option))]
1044#[serde(rename_all = "camelCase")]
1045pub struct ConnectionAllowlistIssueDetails {
1046    pub error: ConnectionAllowlistError,
1047    pub request: AffectedRequest,
1048}
1049#[allow(deprecated)]
1050#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1051#[builder(setter(into, strip_option))]
1052#[serde(rename_all = "camelCase")]
1053#[doc = "Depending on the concrete errorType, different properties are set."]
1054pub struct GenericIssueDetails {
1055    #[doc = "Issues with the same errorType are aggregated in the frontend."]
1056    pub error_type: GenericIssueErrorType,
1057    #[builder(default)]
1058    #[serde(skip_serializing_if = "Option::is_none")]
1059    pub frame_id: Option<page::FrameId>,
1060    #[builder(default)]
1061    #[serde(skip_serializing_if = "Option::is_none")]
1062    pub violating_node_id: Option<dom::BackendNodeId>,
1063    #[builder(default)]
1064    #[serde(skip_serializing_if = "Option::is_none")]
1065    #[serde(default)]
1066    pub violating_node_attribute: Option<String>,
1067    #[builder(default)]
1068    #[serde(skip_serializing_if = "Option::is_none")]
1069    pub request: Option<AffectedRequest>,
1070}
1071#[allow(deprecated)]
1072#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1073#[builder(setter(into, strip_option))]
1074#[serde(rename_all = "camelCase")]
1075#[doc = "This issue tracks information needed to print a deprecation message.\n <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md>"]
1076pub struct DeprecationIssueDetails {
1077    #[builder(default)]
1078    #[serde(skip_serializing_if = "Option::is_none")]
1079    pub affected_frame: Option<AffectedFrame>,
1080    pub source_code_location: SourceCodeLocation,
1081    #[serde(default)]
1082    #[doc = "One of the deprecation names from third_party/blink/renderer/core/frame/deprecation/deprecation.json5"]
1083    pub r#type: String,
1084}
1085#[allow(deprecated)]
1086#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1087#[builder(setter(into, strip_option))]
1088#[serde(rename_all = "camelCase")]
1089#[doc = "This issue warns about sites in the redirect chain of a finished navigation\n that may be flagged as trackers and have their state cleared if they don't\n receive a user interaction. Note that in this context 'site' means eTLD+1.\n For example, if the URL `https://example.test:80/bounce` was in the\n redirect chain, the site reported would be `example.test`."]
1090pub struct BounceTrackingIssueDetails {
1091    #[serde(default)]
1092    pub tracking_sites: Vec<String>,
1093}
1094#[allow(deprecated)]
1095#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1096#[builder(setter(into, strip_option))]
1097#[serde(rename_all = "camelCase")]
1098#[doc = "This issue warns about third-party sites that are accessing cookies on the\n current page, and have been permitted due to having a global metadata grant.\n Note that in this context 'site' means eTLD+1. For example, if the URL\n `https://example.test:80/web_page` was accessing cookies, the site reported\n would be `example.test`."]
1099pub struct CookieDeprecationMetadataIssueDetails {
1100    #[serde(default)]
1101    pub allowed_sites: Vec<String>,
1102    #[serde(default)]
1103    pub opt_out_percentage: JsFloat,
1104    #[serde(default)]
1105    pub is_opt_out_top_level: bool,
1106    pub operation: CookieOperation,
1107}
1108#[allow(deprecated)]
1109#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1110#[builder(setter(into, strip_option))]
1111#[serde(rename_all = "camelCase")]
1112pub struct FederatedAuthRequestIssueDetails {
1113    pub federated_auth_request_issue_reason: FederatedAuthRequestIssueReason,
1114}
1115#[allow(deprecated)]
1116#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1117#[builder(setter(into, strip_option))]
1118#[serde(rename_all = "camelCase")]
1119pub struct FederatedAuthUserInfoRequestIssueDetails {
1120    pub federated_auth_user_info_request_issue_reason: FederatedAuthUserInfoRequestIssueReason,
1121}
1122#[allow(deprecated)]
1123#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1124#[builder(setter(into, strip_option))]
1125#[serde(rename_all = "camelCase")]
1126#[doc = "This issue tracks client hints related issues. It's used to deprecate old\n features, encourage the use of new ones, and provide general guidance."]
1127pub struct ClientHintIssueDetails {
1128    pub source_code_location: SourceCodeLocation,
1129    pub client_hint_issue_reason: ClientHintIssueReason,
1130}
1131#[allow(deprecated)]
1132#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1133#[builder(setter(into, strip_option))]
1134#[serde(rename_all = "camelCase")]
1135pub struct FailedRequestInfo {
1136    #[serde(default)]
1137    #[doc = "The URL that failed to load."]
1138    pub url: String,
1139    #[serde(default)]
1140    #[doc = "The failure message for the failed request."]
1141    pub failure_message: String,
1142    #[builder(default)]
1143    #[serde(skip_serializing_if = "Option::is_none")]
1144    pub request_id: Option<network::RequestId>,
1145}
1146#[allow(deprecated)]
1147#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1148#[builder(setter(into, strip_option))]
1149#[serde(rename_all = "camelCase")]
1150pub struct PartitioningBlobUrlIssueDetails {
1151    #[serde(default)]
1152    #[doc = "The BlobURL that failed to load."]
1153    pub url: String,
1154    #[doc = "Additional information about the Partitioning Blob URL issue."]
1155    #[serde(rename = "partitioningBlobURLInfo")]
1156    pub partitioning_blob_url_info: PartitioningBlobUrlInfo,
1157}
1158#[allow(deprecated)]
1159#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1160#[builder(setter(into, strip_option))]
1161#[serde(rename_all = "camelCase")]
1162#[doc = "This issue warns about errors in the select or summary element content model."]
1163pub struct ElementAccessibilityIssueDetails {
1164    pub node_id: dom::BackendNodeId,
1165    pub element_accessibility_issue_reason: ElementAccessibilityIssueReason,
1166    #[serde(default)]
1167    pub has_disallowed_attributes: bool,
1168}
1169#[allow(deprecated)]
1170#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1171#[builder(setter(into, strip_option))]
1172#[serde(rename_all = "camelCase")]
1173#[doc = "This issue warns when a referenced stylesheet couldn't be loaded."]
1174pub struct StylesheetLoadingIssueDetails {
1175    #[doc = "Source code position that referenced the failing stylesheet."]
1176    pub source_code_location: SourceCodeLocation,
1177    #[doc = "Reason why the stylesheet couldn't be loaded."]
1178    pub style_sheet_loading_issue_reason: StyleSheetLoadingIssueReason,
1179    #[builder(default)]
1180    #[serde(skip_serializing_if = "Option::is_none")]
1181    #[doc = "Contains additional info when the failure was due to a request."]
1182    pub failed_request_info: Option<FailedRequestInfo>,
1183}
1184#[allow(deprecated)]
1185#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1186#[builder(setter(into, strip_option))]
1187#[serde(rename_all = "camelCase")]
1188#[doc = "This issue warns about errors in property rules that lead to property\n registrations being ignored."]
1189pub struct PropertyRuleIssueDetails {
1190    #[doc = "Source code position of the property rule."]
1191    pub source_code_location: SourceCodeLocation,
1192    #[doc = "Reason why the property rule was discarded."]
1193    pub property_rule_issue_reason: PropertyRuleIssueReason,
1194    #[builder(default)]
1195    #[serde(skip_serializing_if = "Option::is_none")]
1196    #[serde(default)]
1197    #[doc = "The value of the property rule property that failed to parse"]
1198    pub property_value: Option<String>,
1199}
1200#[allow(deprecated)]
1201#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1202#[builder(setter(into, strip_option))]
1203#[serde(rename_all = "camelCase")]
1204#[doc = "This issue warns about uses of APIs that may be considered misuse to\n re-identify users."]
1205pub struct UserReidentificationIssueDetails {
1206    pub r#type: UserReidentificationIssueType,
1207    #[builder(default)]
1208    #[serde(skip_serializing_if = "Option::is_none")]
1209    #[doc = "Applies to BlockedFrameNavigation and BlockedSubresource issue types."]
1210    pub request: Option<AffectedRequest>,
1211    #[builder(default)]
1212    #[serde(skip_serializing_if = "Option::is_none")]
1213    #[doc = "Applies to NoisedCanvasReadback issue type."]
1214    pub source_code_location: Option<SourceCodeLocation>,
1215}
1216#[allow(deprecated)]
1217#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1218#[builder(setter(into, strip_option))]
1219#[serde(rename_all = "camelCase")]
1220#[doc = "This issue warns about improper usage of the \\<permission\\> element."]
1221pub struct PermissionElementIssueDetails {
1222    pub issue_type: PermissionElementIssueType,
1223    #[builder(default)]
1224    #[serde(skip_serializing_if = "Option::is_none")]
1225    #[serde(default)]
1226    #[doc = "The value of the type attribute."]
1227    pub r#type: Option<String>,
1228    #[builder(default)]
1229    #[serde(skip_serializing_if = "Option::is_none")]
1230    #[doc = "The node ID of the \\<permission\\> element."]
1231    pub node_id: Option<dom::BackendNodeId>,
1232    #[builder(default)]
1233    #[serde(skip_serializing_if = "Option::is_none")]
1234    #[serde(default)]
1235    #[doc = "True if the issue is a warning, false if it is an error."]
1236    pub is_warning: Option<bool>,
1237    #[builder(default)]
1238    #[serde(skip_serializing_if = "Option::is_none")]
1239    #[serde(default)]
1240    #[doc = "Fields for message construction:\n Used for messages that reference a specific permission name"]
1241    pub permission_name: Option<String>,
1242    #[builder(default)]
1243    #[serde(skip_serializing_if = "Option::is_none")]
1244    #[serde(default)]
1245    #[doc = "Used for messages about occlusion"]
1246    pub occluder_node_info: Option<String>,
1247    #[builder(default)]
1248    #[serde(skip_serializing_if = "Option::is_none")]
1249    #[serde(default)]
1250    #[doc = "Used for messages about occluder's parent"]
1251    pub occluder_parent_node_info: Option<String>,
1252    #[builder(default)]
1253    #[serde(skip_serializing_if = "Option::is_none")]
1254    #[serde(default)]
1255    #[doc = "Used for messages about activation disabled reason"]
1256    pub disable_reason: Option<String>,
1257}
1258#[allow(deprecated)]
1259#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1260#[builder(setter(into, strip_option))]
1261#[serde(rename_all = "camelCase")]
1262#[doc = "This struct holds a list of optional fields with additional information\n specific to the kind of issue. When adding a new issue code, please also\n add a new optional field to this type."]
1263pub struct InspectorIssueDetails {
1264    #[builder(default)]
1265    #[serde(skip_serializing_if = "Option::is_none")]
1266    pub cookie_issue_details: Option<CookieIssueDetails>,
1267    #[builder(default)]
1268    #[serde(skip_serializing_if = "Option::is_none")]
1269    pub mixed_content_issue_details: Option<MixedContentIssueDetails>,
1270    #[builder(default)]
1271    #[serde(skip_serializing_if = "Option::is_none")]
1272    pub blocked_by_response_issue_details: Option<BlockedByResponseIssueDetails>,
1273    #[builder(default)]
1274    #[serde(skip_serializing_if = "Option::is_none")]
1275    pub heavy_ad_issue_details: Option<HeavyAdIssueDetails>,
1276    #[builder(default)]
1277    #[serde(skip_serializing_if = "Option::is_none")]
1278    pub content_security_policy_issue_details: Option<ContentSecurityPolicyIssueDetails>,
1279    #[builder(default)]
1280    #[serde(skip_serializing_if = "Option::is_none")]
1281    pub shared_array_buffer_issue_details: Option<SharedArrayBufferIssueDetails>,
1282    #[builder(default)]
1283    #[serde(skip_serializing_if = "Option::is_none")]
1284    pub low_text_contrast_issue_details: Option<LowTextContrastIssueDetails>,
1285    #[builder(default)]
1286    #[serde(skip_serializing_if = "Option::is_none")]
1287    pub cors_issue_details: Option<CorsIssueDetails>,
1288    #[builder(default)]
1289    #[serde(skip_serializing_if = "Option::is_none")]
1290    pub attribution_reporting_issue_details: Option<AttributionReportingIssueDetails>,
1291    #[builder(default)]
1292    #[serde(skip_serializing_if = "Option::is_none")]
1293    pub quirks_mode_issue_details: Option<QuirksModeIssueDetails>,
1294    #[builder(default)]
1295    #[serde(skip_serializing_if = "Option::is_none")]
1296    #[serde(rename = "partitioningBlobURLIssueDetails")]
1297    pub partitioning_blob_url_issue_details: Option<PartitioningBlobUrlIssueDetails>,
1298    #[builder(default)]
1299    #[serde(skip_serializing_if = "Option::is_none")]
1300    #[deprecated]
1301    pub navigator_user_agent_issue_details: Option<NavigatorUserAgentIssueDetails>,
1302    #[builder(default)]
1303    #[serde(skip_serializing_if = "Option::is_none")]
1304    pub generic_issue_details: Option<GenericIssueDetails>,
1305    #[builder(default)]
1306    #[serde(skip_serializing_if = "Option::is_none")]
1307    pub deprecation_issue_details: Option<DeprecationIssueDetails>,
1308    #[builder(default)]
1309    #[serde(skip_serializing_if = "Option::is_none")]
1310    pub client_hint_issue_details: Option<ClientHintIssueDetails>,
1311    #[builder(default)]
1312    #[serde(skip_serializing_if = "Option::is_none")]
1313    pub federated_auth_request_issue_details: Option<FederatedAuthRequestIssueDetails>,
1314    #[builder(default)]
1315    #[serde(skip_serializing_if = "Option::is_none")]
1316    pub bounce_tracking_issue_details: Option<BounceTrackingIssueDetails>,
1317    #[builder(default)]
1318    #[serde(skip_serializing_if = "Option::is_none")]
1319    pub cookie_deprecation_metadata_issue_details: Option<CookieDeprecationMetadataIssueDetails>,
1320    #[builder(default)]
1321    #[serde(skip_serializing_if = "Option::is_none")]
1322    pub stylesheet_loading_issue_details: Option<StylesheetLoadingIssueDetails>,
1323    #[builder(default)]
1324    #[serde(skip_serializing_if = "Option::is_none")]
1325    pub property_rule_issue_details: Option<PropertyRuleIssueDetails>,
1326    #[builder(default)]
1327    #[serde(skip_serializing_if = "Option::is_none")]
1328    pub federated_auth_user_info_request_issue_details:
1329        Option<FederatedAuthUserInfoRequestIssueDetails>,
1330    #[builder(default)]
1331    #[serde(skip_serializing_if = "Option::is_none")]
1332    pub shared_dictionary_issue_details: Option<SharedDictionaryIssueDetails>,
1333    #[builder(default)]
1334    #[serde(skip_serializing_if = "Option::is_none")]
1335    pub element_accessibility_issue_details: Option<ElementAccessibilityIssueDetails>,
1336    #[builder(default)]
1337    #[serde(skip_serializing_if = "Option::is_none")]
1338    pub sri_message_signature_issue_details: Option<SriMessageSignatureIssueDetails>,
1339    #[builder(default)]
1340    #[serde(skip_serializing_if = "Option::is_none")]
1341    pub unencoded_digest_issue_details: Option<UnencodedDigestIssueDetails>,
1342    #[builder(default)]
1343    #[serde(skip_serializing_if = "Option::is_none")]
1344    pub connection_allowlist_issue_details: Option<ConnectionAllowlistIssueDetails>,
1345    #[builder(default)]
1346    #[serde(skip_serializing_if = "Option::is_none")]
1347    pub user_reidentification_issue_details: Option<UserReidentificationIssueDetails>,
1348    #[builder(default)]
1349    #[serde(skip_serializing_if = "Option::is_none")]
1350    pub permission_element_issue_details: Option<PermissionElementIssueDetails>,
1351}
1352#[allow(deprecated)]
1353#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1354#[builder(setter(into, strip_option))]
1355#[serde(rename_all = "camelCase")]
1356#[doc = "An inspector issue reported from the back-end."]
1357pub struct InspectorIssue {
1358    pub code: InspectorIssueCode,
1359    pub details: InspectorIssueDetails,
1360    #[builder(default)]
1361    #[serde(skip_serializing_if = "Option::is_none")]
1362    #[doc = "A unique id for this issue. May be omitted if no other entity (e.g.\n exception, CDP message, etc.) is referencing this issue."]
1363    pub issue_id: Option<IssueId>,
1364}
1365#[allow(deprecated)]
1366#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1367#[builder(setter(into, strip_option))]
1368#[serde(rename_all = "camelCase")]
1369#[doc = "Returns the response body and size if it were re-encoded with the specified settings. Only\n applies to images."]
1370pub struct GetEncodedResponse {
1371    #[doc = "Identifier of the network request to get content for."]
1372    pub request_id: network::RequestId,
1373    #[doc = "The encoding to use."]
1374    pub encoding: GetEncodedResponseEncodingOption,
1375    #[builder(default)]
1376    #[serde(skip_serializing_if = "Option::is_none")]
1377    #[serde(default)]
1378    #[doc = "The quality of the encoding (0-1). (defaults to 1)"]
1379    pub quality: Option<JsFloat>,
1380    #[builder(default)]
1381    #[serde(skip_serializing_if = "Option::is_none")]
1382    #[serde(default)]
1383    #[doc = "Whether to only return the size information (defaults to false)."]
1384    pub size_only: Option<bool>,
1385}
1386#[allow(deprecated)]
1387#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
1388pub struct Disable(pub Option<Json>);
1389#[allow(deprecated)]
1390#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
1391pub struct Enable(pub Option<Json>);
1392#[allow(deprecated)]
1393#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1394#[builder(setter(into, strip_option))]
1395#[serde(rename_all = "camelCase")]
1396#[doc = "Runs the contrast check for the target page. Found issues are reported\n using Audits.issueAdded event."]
1397pub struct CheckContrast {
1398    #[builder(default)]
1399    #[serde(skip_serializing_if = "Option::is_none")]
1400    #[serde(default)]
1401    #[doc = "Whether to report WCAG AAA level issues. Default is false."]
1402    #[serde(rename = "reportAAA")]
1403    pub report_aaa: Option<bool>,
1404}
1405#[allow(deprecated)]
1406#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
1407pub struct CheckFormsIssues(pub Option<Json>);
1408#[allow(deprecated)]
1409#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1410#[serde(rename_all = "camelCase")]
1411#[doc = "Returns the response body and size if it were re-encoded with the specified settings. Only\n applies to images."]
1412pub struct GetEncodedResponseReturnObject {
1413    #[builder(default)]
1414    #[serde(skip_serializing_if = "Option::is_none")]
1415    #[doc = "The encoded body as a base64 string. Omitted if sizeOnly is true."]
1416    pub body: Option<String>,
1417    #[serde(default)]
1418    #[doc = "Size before re-encoding."]
1419    pub original_size: JsUInt,
1420    #[serde(default)]
1421    #[doc = "Size after re-encoding."]
1422    pub encoded_size: JsUInt,
1423}
1424#[allow(deprecated)]
1425#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
1426#[doc = "Disables issues domain, prevents further issues from being reported to the client."]
1427pub struct DisableReturnObject(pub Option<Json>);
1428#[allow(deprecated)]
1429#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
1430#[doc = "Enables issues domain, sends the issues collected so far to the client by means of the\n `issueAdded` event."]
1431pub struct EnableReturnObject(pub Option<Json>);
1432#[allow(deprecated)]
1433#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
1434#[doc = "Runs the contrast check for the target page. Found issues are reported\n using Audits.issueAdded event."]
1435pub struct CheckContrastReturnObject(pub Option<Json>);
1436#[allow(deprecated)]
1437#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1438#[serde(rename_all = "camelCase")]
1439#[doc = "Runs the form issues check for the target page. Found issues are reported\n using Audits.issueAdded event."]
1440pub struct CheckFormsIssuesReturnObject {
1441    pub form_issues: Vec<GenericIssueDetails>,
1442}
1443#[allow(deprecated)]
1444impl Method for GetEncodedResponse {
1445    const NAME: &'static str = "Audits.getEncodedResponse";
1446    type ReturnObject = GetEncodedResponseReturnObject;
1447}
1448#[allow(deprecated)]
1449impl Method for Disable {
1450    const NAME: &'static str = "Audits.disable";
1451    type ReturnObject = DisableReturnObject;
1452}
1453#[allow(deprecated)]
1454impl Method for Enable {
1455    const NAME: &'static str = "Audits.enable";
1456    type ReturnObject = EnableReturnObject;
1457}
1458#[allow(deprecated)]
1459impl Method for CheckContrast {
1460    const NAME: &'static str = "Audits.checkContrast";
1461    type ReturnObject = CheckContrastReturnObject;
1462}
1463#[allow(deprecated)]
1464impl Method for CheckFormsIssues {
1465    const NAME: &'static str = "Audits.checkFormsIssues";
1466    type ReturnObject = CheckFormsIssuesReturnObject;
1467}
1468#[allow(dead_code)]
1469pub mod events {
1470    #[allow(unused_imports)]
1471    use super::super::types::*;
1472    #[allow(unused_imports)]
1473    use derive_builder::Builder;
1474    #[allow(unused_imports)]
1475    use serde::{Deserialize, Serialize};
1476    #[allow(unused_imports)]
1477    use serde_json::Value as Json;
1478    #[allow(deprecated)]
1479    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
1480    pub struct IssueAddedEvent {
1481        pub params: IssueAddedEventParams,
1482    }
1483    #[allow(deprecated)]
1484    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
1485    #[serde(rename_all = "camelCase")]
1486    pub struct IssueAddedEventParams {
1487        pub issue: super::InspectorIssue,
1488    }
1489}