1use serde::{Serialize, Deserialize};
5use serde_json::Value as JsonValue;
6use std::borrow::Cow;
7
8#[derive(Debug, Clone, Serialize, Deserialize, Default)]
11#[serde(rename_all = "camelCase")]
12pub struct AffectedCookie<'a> {
13 name: Cow<'a, str>,
15 path: Cow<'a, str>,
16 domain: Cow<'a, str>,
17}
18
19impl<'a> AffectedCookie<'a> {
20 pub fn builder(name: impl Into<Cow<'a, str>>, path: impl Into<Cow<'a, str>>, domain: impl Into<Cow<'a, str>>) -> AffectedCookieBuilder<'a> {
21 AffectedCookieBuilder {
22 name: name.into(),
23 path: path.into(),
24 domain: domain.into(),
25 }
26 }
27 pub fn name(&self) -> &str { self.name.as_ref() }
28 pub fn path(&self) -> &str { self.path.as_ref() }
29 pub fn domain(&self) -> &str { self.domain.as_ref() }
30}
31
32
33pub struct AffectedCookieBuilder<'a> {
34 name: Cow<'a, str>,
35 path: Cow<'a, str>,
36 domain: Cow<'a, str>,
37}
38
39impl<'a> AffectedCookieBuilder<'a> {
40 pub fn build(self) -> AffectedCookie<'a> {
41 AffectedCookie {
42 name: self.name,
43 path: self.path,
44 domain: self.domain,
45 }
46 }
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize, Default)]
52#[serde(rename_all = "camelCase")]
53pub struct AffectedRequest<'a> {
54 #[serde(skip_serializing_if = "Option::is_none")]
56 requestId: Option<crate::network::RequestId<'a>>,
57 url: Cow<'a, str>,
58}
59
60impl<'a> AffectedRequest<'a> {
61 pub fn builder(url: impl Into<Cow<'a, str>>) -> AffectedRequestBuilder<'a> {
62 AffectedRequestBuilder {
63 requestId: None,
64 url: url.into(),
65 }
66 }
67 pub fn requestId(&self) -> Option<&crate::network::RequestId<'a>> { self.requestId.as_ref() }
68 pub fn url(&self) -> &str { self.url.as_ref() }
69}
70
71
72pub struct AffectedRequestBuilder<'a> {
73 requestId: Option<crate::network::RequestId<'a>>,
74 url: Cow<'a, str>,
75}
76
77impl<'a> AffectedRequestBuilder<'a> {
78 pub fn requestId(mut self, requestId: crate::network::RequestId<'a>) -> Self { self.requestId = Some(requestId); self }
80 pub fn build(self) -> AffectedRequest<'a> {
81 AffectedRequest {
82 requestId: self.requestId,
83 url: self.url,
84 }
85 }
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize, Default)]
91#[serde(rename_all = "camelCase")]
92pub struct AffectedFrame<'a> {
93 frameId: crate::page::FrameId<'a>,
94}
95
96impl<'a> AffectedFrame<'a> {
97 pub fn builder(frameId: crate::page::FrameId<'a>) -> AffectedFrameBuilder<'a> {
98 AffectedFrameBuilder {
99 frameId: frameId,
100 }
101 }
102 pub fn frameId(&self) -> &crate::page::FrameId<'a> { &self.frameId }
103}
104
105
106pub struct AffectedFrameBuilder<'a> {
107 frameId: crate::page::FrameId<'a>,
108}
109
110impl<'a> AffectedFrameBuilder<'a> {
111 pub fn build(self) -> AffectedFrame<'a> {
112 AffectedFrame {
113 frameId: self.frameId,
114 }
115 }
116}
117
118
119#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
120pub enum CookieExclusionReason {
121 #[default]
122 #[serde(rename = "ExcludeSameSiteUnspecifiedTreatedAsLax")]
123 ExcludeSameSiteUnspecifiedTreatedAsLax,
124 #[serde(rename = "ExcludeSameSiteNoneInsecure")]
125 ExcludeSameSiteNoneInsecure,
126 #[serde(rename = "ExcludeSameSiteLax")]
127 ExcludeSameSiteLax,
128 #[serde(rename = "ExcludeSameSiteStrict")]
129 ExcludeSameSiteStrict,
130 #[serde(rename = "ExcludeDomainNonASCII")]
131 ExcludeDomainNonASCII,
132 #[serde(rename = "ExcludeThirdPartyCookieBlockedInFirstPartySet")]
133 ExcludeThirdPartyCookieBlockedInFirstPartySet,
134 #[serde(rename = "ExcludeThirdPartyPhaseout")]
135 ExcludeThirdPartyPhaseout,
136 #[serde(rename = "ExcludePortMismatch")]
137 ExcludePortMismatch,
138 #[serde(rename = "ExcludeSchemeMismatch")]
139 ExcludeSchemeMismatch,
140}
141
142
143#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
144pub enum CookieWarningReason {
145 #[default]
146 #[serde(rename = "WarnSameSiteUnspecifiedCrossSiteContext")]
147 WarnSameSiteUnspecifiedCrossSiteContext,
148 #[serde(rename = "WarnSameSiteNoneInsecure")]
149 WarnSameSiteNoneInsecure,
150 #[serde(rename = "WarnSameSiteUnspecifiedLaxAllowUnsafe")]
151 WarnSameSiteUnspecifiedLaxAllowUnsafe,
152 #[serde(rename = "WarnSameSiteStrictLaxDowngradeStrict")]
153 WarnSameSiteStrictLaxDowngradeStrict,
154 #[serde(rename = "WarnSameSiteStrictCrossDowngradeStrict")]
155 WarnSameSiteStrictCrossDowngradeStrict,
156 #[serde(rename = "WarnSameSiteStrictCrossDowngradeLax")]
157 WarnSameSiteStrictCrossDowngradeLax,
158 #[serde(rename = "WarnSameSiteLaxCrossDowngradeStrict")]
159 WarnSameSiteLaxCrossDowngradeStrict,
160 #[serde(rename = "WarnSameSiteLaxCrossDowngradeLax")]
161 WarnSameSiteLaxCrossDowngradeLax,
162 #[serde(rename = "WarnAttributeValueExceedsMaxSize")]
163 WarnAttributeValueExceedsMaxSize,
164 #[serde(rename = "WarnDomainNonASCII")]
165 WarnDomainNonASCII,
166 #[serde(rename = "WarnThirdPartyPhaseout")]
167 WarnThirdPartyPhaseout,
168 #[serde(rename = "WarnCrossSiteRedirectDowngradeChangesInclusion")]
169 WarnCrossSiteRedirectDowngradeChangesInclusion,
170 #[serde(rename = "WarnDeprecationTrialMetadata")]
171 WarnDeprecationTrialMetadata,
172 #[serde(rename = "WarnThirdPartyCookieHeuristic")]
173 WarnThirdPartyCookieHeuristic,
174}
175
176
177#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
178pub enum CookieOperation {
179 #[default]
180 #[serde(rename = "SetCookie")]
181 SetCookie,
182 #[serde(rename = "ReadCookie")]
183 ReadCookie,
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
189pub enum InsightType {
190 #[default]
191 #[serde(rename = "GitHubResource")]
192 GitHubResource,
193 #[serde(rename = "GracePeriod")]
194 GracePeriod,
195 #[serde(rename = "Heuristics")]
196 Heuristics,
197}
198
199#[derive(Debug, Clone, Serialize, Deserialize, Default)]
202#[serde(rename_all = "camelCase")]
203pub struct CookieIssueInsight<'a> {
204 #[serde(rename = "type")]
205 type_: InsightType,
206 #[serde(skip_serializing_if = "Option::is_none")]
208 tableEntryUrl: Option<Cow<'a, str>>,
209}
210
211impl<'a> CookieIssueInsight<'a> {
212 pub fn builder(type_: InsightType) -> CookieIssueInsightBuilder<'a> {
213 CookieIssueInsightBuilder {
214 type_: type_,
215 tableEntryUrl: None,
216 }
217 }
218 pub fn type_(&self) -> &InsightType { &self.type_ }
219 pub fn tableEntryUrl(&self) -> Option<&str> { self.tableEntryUrl.as_deref() }
220}
221
222
223pub struct CookieIssueInsightBuilder<'a> {
224 type_: InsightType,
225 tableEntryUrl: Option<Cow<'a, str>>,
226}
227
228impl<'a> CookieIssueInsightBuilder<'a> {
229 pub fn tableEntryUrl(mut self, tableEntryUrl: impl Into<Cow<'a, str>>) -> Self { self.tableEntryUrl = Some(tableEntryUrl.into()); self }
231 pub fn build(self) -> CookieIssueInsight<'a> {
232 CookieIssueInsight {
233 type_: self.type_,
234 tableEntryUrl: self.tableEntryUrl,
235 }
236 }
237}
238
239#[derive(Debug, Clone, Serialize, Deserialize, Default)]
244#[serde(rename_all = "camelCase")]
245pub struct CookieIssueDetails<'a> {
246 #[serde(skip_serializing_if = "Option::is_none")]
251 cookie: Option<AffectedCookie<'a>>,
252 #[serde(skip_serializing_if = "Option::is_none")]
253 rawCookieLine: Option<Cow<'a, str>>,
254 cookieWarningReasons: Vec<CookieWarningReason>,
255 cookieExclusionReasons: Vec<CookieExclusionReason>,
256 operation: CookieOperation,
259 #[serde(skip_serializing_if = "Option::is_none")]
260 siteForCookies: Option<Cow<'a, str>>,
261 #[serde(skip_serializing_if = "Option::is_none")]
262 cookieUrl: Option<Cow<'a, str>>,
263 #[serde(skip_serializing_if = "Option::is_none")]
264 request: Option<AffectedRequest<'a>>,
265 #[serde(skip_serializing_if = "Option::is_none")]
267 insight: Option<CookieIssueInsight<'a>>,
268}
269
270impl<'a> CookieIssueDetails<'a> {
271 pub fn builder(cookieWarningReasons: Vec<CookieWarningReason>, cookieExclusionReasons: Vec<CookieExclusionReason>, operation: CookieOperation) -> CookieIssueDetailsBuilder<'a> {
272 CookieIssueDetailsBuilder {
273 cookie: None,
274 rawCookieLine: None,
275 cookieWarningReasons: cookieWarningReasons,
276 cookieExclusionReasons: cookieExclusionReasons,
277 operation: operation,
278 siteForCookies: None,
279 cookieUrl: None,
280 request: None,
281 insight: None,
282 }
283 }
284 pub fn cookie(&self) -> Option<&AffectedCookie<'a>> { self.cookie.as_ref() }
285 pub fn rawCookieLine(&self) -> Option<&str> { self.rawCookieLine.as_deref() }
286 pub fn cookieWarningReasons(&self) -> &[CookieWarningReason] { &self.cookieWarningReasons }
287 pub fn cookieExclusionReasons(&self) -> &[CookieExclusionReason] { &self.cookieExclusionReasons }
288 pub fn operation(&self) -> &CookieOperation { &self.operation }
289 pub fn siteForCookies(&self) -> Option<&str> { self.siteForCookies.as_deref() }
290 pub fn cookieUrl(&self) -> Option<&str> { self.cookieUrl.as_deref() }
291 pub fn request(&self) -> Option<&AffectedRequest<'a>> { self.request.as_ref() }
292 pub fn insight(&self) -> Option<&CookieIssueInsight<'a>> { self.insight.as_ref() }
293}
294
295
296pub struct CookieIssueDetailsBuilder<'a> {
297 cookie: Option<AffectedCookie<'a>>,
298 rawCookieLine: Option<Cow<'a, str>>,
299 cookieWarningReasons: Vec<CookieWarningReason>,
300 cookieExclusionReasons: Vec<CookieExclusionReason>,
301 operation: CookieOperation,
302 siteForCookies: Option<Cow<'a, str>>,
303 cookieUrl: Option<Cow<'a, str>>,
304 request: Option<AffectedRequest<'a>>,
305 insight: Option<CookieIssueInsight<'a>>,
306}
307
308impl<'a> CookieIssueDetailsBuilder<'a> {
309 pub fn cookie(mut self, cookie: AffectedCookie<'a>) -> Self { self.cookie = Some(cookie); self }
314 pub fn rawCookieLine(mut self, rawCookieLine: impl Into<Cow<'a, str>>) -> Self { self.rawCookieLine = Some(rawCookieLine.into()); self }
315 pub fn siteForCookies(mut self, siteForCookies: impl Into<Cow<'a, str>>) -> Self { self.siteForCookies = Some(siteForCookies.into()); self }
316 pub fn cookieUrl(mut self, cookieUrl: impl Into<Cow<'a, str>>) -> Self { self.cookieUrl = Some(cookieUrl.into()); self }
317 pub fn request(mut self, request: AffectedRequest<'a>) -> Self { self.request = Some(request); self }
318 pub fn insight(mut self, insight: CookieIssueInsight<'a>) -> Self { self.insight = Some(insight); self }
320 pub fn build(self) -> CookieIssueDetails<'a> {
321 CookieIssueDetails {
322 cookie: self.cookie,
323 rawCookieLine: self.rawCookieLine,
324 cookieWarningReasons: self.cookieWarningReasons,
325 cookieExclusionReasons: self.cookieExclusionReasons,
326 operation: self.operation,
327 siteForCookies: self.siteForCookies,
328 cookieUrl: self.cookieUrl,
329 request: self.request,
330 insight: self.insight,
331 }
332 }
333}
334
335
336#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
337pub enum PerformanceIssueType {
338 #[default]
339 #[serde(rename = "DocumentCookie")]
340 DocumentCookie,
341}
342
343#[derive(Debug, Clone, Serialize, Deserialize, Default)]
346#[serde(rename_all = "camelCase")]
347pub struct PerformanceIssueDetails<'a> {
348 performanceIssueType: PerformanceIssueType,
349 #[serde(skip_serializing_if = "Option::is_none")]
350 sourceCodeLocation: Option<SourceCodeLocation<'a>>,
351}
352
353impl<'a> PerformanceIssueDetails<'a> {
354 pub fn builder(performanceIssueType: PerformanceIssueType) -> PerformanceIssueDetailsBuilder<'a> {
355 PerformanceIssueDetailsBuilder {
356 performanceIssueType: performanceIssueType,
357 sourceCodeLocation: None,
358 }
359 }
360 pub fn performanceIssueType(&self) -> &PerformanceIssueType { &self.performanceIssueType }
361 pub fn sourceCodeLocation(&self) -> Option<&SourceCodeLocation<'a>> { self.sourceCodeLocation.as_ref() }
362}
363
364
365pub struct PerformanceIssueDetailsBuilder<'a> {
366 performanceIssueType: PerformanceIssueType,
367 sourceCodeLocation: Option<SourceCodeLocation<'a>>,
368}
369
370impl<'a> PerformanceIssueDetailsBuilder<'a> {
371 pub fn sourceCodeLocation(mut self, sourceCodeLocation: SourceCodeLocation<'a>) -> Self { self.sourceCodeLocation = Some(sourceCodeLocation); self }
372 pub fn build(self) -> PerformanceIssueDetails<'a> {
373 PerformanceIssueDetails {
374 performanceIssueType: self.performanceIssueType,
375 sourceCodeLocation: self.sourceCodeLocation,
376 }
377 }
378}
379
380
381#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
382pub enum MixedContentResolutionStatus {
383 #[default]
384 #[serde(rename = "MixedContentBlocked")]
385 MixedContentBlocked,
386 #[serde(rename = "MixedContentAutomaticallyUpgraded")]
387 MixedContentAutomaticallyUpgraded,
388 #[serde(rename = "MixedContentWarning")]
389 MixedContentWarning,
390}
391
392
393#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
394pub enum MixedContentResourceType {
395 #[default]
396 #[serde(rename = "AttributionSrc")]
397 AttributionSrc,
398 #[serde(rename = "Audio")]
399 Audio,
400 #[serde(rename = "Beacon")]
401 Beacon,
402 #[serde(rename = "CSPReport")]
403 CSPReport,
404 #[serde(rename = "Download")]
405 Download,
406 #[serde(rename = "EventSource")]
407 EventSource,
408 #[serde(rename = "Favicon")]
409 Favicon,
410 #[serde(rename = "Font")]
411 Font,
412 #[serde(rename = "Form")]
413 Form,
414 #[serde(rename = "Frame")]
415 Frame,
416 #[serde(rename = "Image")]
417 Image,
418 #[serde(rename = "Import")]
419 Import,
420 #[serde(rename = "JSON")]
421 JSON,
422 #[serde(rename = "Manifest")]
423 Manifest,
424 #[serde(rename = "Ping")]
425 Ping,
426 #[serde(rename = "PluginData")]
427 PluginData,
428 #[serde(rename = "PluginResource")]
429 PluginResource,
430 #[serde(rename = "Prefetch")]
431 Prefetch,
432 #[serde(rename = "Resource")]
433 Resource,
434 #[serde(rename = "Script")]
435 Script,
436 #[serde(rename = "ServiceWorker")]
437 ServiceWorker,
438 #[serde(rename = "SharedWorker")]
439 SharedWorker,
440 #[serde(rename = "SpeculationRules")]
441 SpeculationRules,
442 #[serde(rename = "Stylesheet")]
443 Stylesheet,
444 #[serde(rename = "Track")]
445 Track,
446 #[serde(rename = "Video")]
447 Video,
448 #[serde(rename = "Worker")]
449 Worker,
450 #[serde(rename = "XMLHttpRequest")]
451 XMLHttpRequest,
452 #[serde(rename = "XSLT")]
453 XSLT,
454}
455
456
457#[derive(Debug, Clone, Serialize, Deserialize, Default)]
458#[serde(rename_all = "camelCase")]
459pub struct MixedContentIssueDetails<'a> {
460 #[serde(skip_serializing_if = "Option::is_none")]
465 resourceType: Option<MixedContentResourceType>,
466 resolutionStatus: MixedContentResolutionStatus,
468 insecureURL: Cow<'a, str>,
470 mainResourceURL: Cow<'a, str>,
472 #[serde(skip_serializing_if = "Option::is_none")]
475 request: Option<AffectedRequest<'a>>,
476 #[serde(skip_serializing_if = "Option::is_none")]
478 frame: Option<AffectedFrame<'a>>,
479}
480
481impl<'a> MixedContentIssueDetails<'a> {
482 pub fn builder(resolutionStatus: MixedContentResolutionStatus, insecureURL: impl Into<Cow<'a, str>>, mainResourceURL: impl Into<Cow<'a, str>>) -> MixedContentIssueDetailsBuilder<'a> {
483 MixedContentIssueDetailsBuilder {
484 resourceType: None,
485 resolutionStatus: resolutionStatus,
486 insecureURL: insecureURL.into(),
487 mainResourceURL: mainResourceURL.into(),
488 request: None,
489 frame: None,
490 }
491 }
492 pub fn resourceType(&self) -> Option<&MixedContentResourceType> { self.resourceType.as_ref() }
493 pub fn resolutionStatus(&self) -> &MixedContentResolutionStatus { &self.resolutionStatus }
494 pub fn insecureURL(&self) -> &str { self.insecureURL.as_ref() }
495 pub fn mainResourceURL(&self) -> &str { self.mainResourceURL.as_ref() }
496 pub fn request(&self) -> Option<&AffectedRequest<'a>> { self.request.as_ref() }
497 pub fn frame(&self) -> Option<&AffectedFrame<'a>> { self.frame.as_ref() }
498}
499
500
501pub struct MixedContentIssueDetailsBuilder<'a> {
502 resourceType: Option<MixedContentResourceType>,
503 resolutionStatus: MixedContentResolutionStatus,
504 insecureURL: Cow<'a, str>,
505 mainResourceURL: Cow<'a, str>,
506 request: Option<AffectedRequest<'a>>,
507 frame: Option<AffectedFrame<'a>>,
508}
509
510impl<'a> MixedContentIssueDetailsBuilder<'a> {
511 pub fn resourceType(mut self, resourceType: MixedContentResourceType) -> Self { self.resourceType = Some(resourceType); self }
516 pub fn request(mut self, request: AffectedRequest<'a>) -> Self { self.request = Some(request); self }
519 pub fn frame(mut self, frame: AffectedFrame<'a>) -> Self { self.frame = Some(frame); self }
521 pub fn build(self) -> MixedContentIssueDetails<'a> {
522 MixedContentIssueDetails {
523 resourceType: self.resourceType,
524 resolutionStatus: self.resolutionStatus,
525 insecureURL: self.insecureURL,
526 mainResourceURL: self.mainResourceURL,
527 request: self.request,
528 frame: self.frame,
529 }
530 }
531}
532
533#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
537pub enum BlockedByResponseReason {
538 #[default]
539 #[serde(rename = "CoepFrameResourceNeedsCoepHeader")]
540 CoepFrameResourceNeedsCoepHeader,
541 #[serde(rename = "CoopSandboxedIFrameCannotNavigateToCoopPage")]
542 CoopSandboxedIFrameCannotNavigateToCoopPage,
543 #[serde(rename = "CorpNotSameOrigin")]
544 CorpNotSameOrigin,
545 #[serde(rename = "CorpNotSameOriginAfterDefaultedToSameOriginByCoep")]
546 CorpNotSameOriginAfterDefaultedToSameOriginByCoep,
547 #[serde(rename = "CorpNotSameOriginAfterDefaultedToSameOriginByDip")]
548 CorpNotSameOriginAfterDefaultedToSameOriginByDip,
549 #[serde(rename = "CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip")]
550 CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip,
551 #[serde(rename = "CorpNotSameSite")]
552 CorpNotSameSite,
553 #[serde(rename = "SRIMessageSignatureMismatch")]
554 SRIMessageSignatureMismatch,
555}
556
557#[derive(Debug, Clone, Serialize, Deserialize, Default)]
562#[serde(rename_all = "camelCase")]
563pub struct BlockedByResponseIssueDetails<'a> {
564 request: AffectedRequest<'a>,
565 #[serde(skip_serializing_if = "Option::is_none")]
566 parentFrame: Option<AffectedFrame<'a>>,
567 #[serde(skip_serializing_if = "Option::is_none")]
568 blockedFrame: Option<AffectedFrame<'a>>,
569 reason: BlockedByResponseReason,
570}
571
572impl<'a> BlockedByResponseIssueDetails<'a> {
573 pub fn builder(request: AffectedRequest<'a>, reason: BlockedByResponseReason) -> BlockedByResponseIssueDetailsBuilder<'a> {
574 BlockedByResponseIssueDetailsBuilder {
575 request: request,
576 parentFrame: None,
577 blockedFrame: None,
578 reason: reason,
579 }
580 }
581 pub fn request(&self) -> &AffectedRequest<'a> { &self.request }
582 pub fn parentFrame(&self) -> Option<&AffectedFrame<'a>> { self.parentFrame.as_ref() }
583 pub fn blockedFrame(&self) -> Option<&AffectedFrame<'a>> { self.blockedFrame.as_ref() }
584 pub fn reason(&self) -> &BlockedByResponseReason { &self.reason }
585}
586
587
588pub struct BlockedByResponseIssueDetailsBuilder<'a> {
589 request: AffectedRequest<'a>,
590 parentFrame: Option<AffectedFrame<'a>>,
591 blockedFrame: Option<AffectedFrame<'a>>,
592 reason: BlockedByResponseReason,
593}
594
595impl<'a> BlockedByResponseIssueDetailsBuilder<'a> {
596 pub fn parentFrame(mut self, parentFrame: AffectedFrame<'a>) -> Self { self.parentFrame = Some(parentFrame); self }
597 pub fn blockedFrame(mut self, blockedFrame: AffectedFrame<'a>) -> Self { self.blockedFrame = Some(blockedFrame); self }
598 pub fn build(self) -> BlockedByResponseIssueDetails<'a> {
599 BlockedByResponseIssueDetails {
600 request: self.request,
601 parentFrame: self.parentFrame,
602 blockedFrame: self.blockedFrame,
603 reason: self.reason,
604 }
605 }
606}
607
608
609#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
610pub enum HeavyAdResolutionStatus {
611 #[default]
612 #[serde(rename = "HeavyAdBlocked")]
613 HeavyAdBlocked,
614 #[serde(rename = "HeavyAdWarning")]
615 HeavyAdWarning,
616}
617
618
619#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
620pub enum HeavyAdReason {
621 #[default]
622 #[serde(rename = "NetworkTotalLimit")]
623 NetworkTotalLimit,
624 #[serde(rename = "CpuTotalLimit")]
625 CpuTotalLimit,
626 #[serde(rename = "CpuPeakLimit")]
627 CpuPeakLimit,
628}
629
630
631#[derive(Debug, Clone, Serialize, Deserialize, Default)]
632#[serde(rename_all = "camelCase")]
633pub struct HeavyAdIssueDetails<'a> {
634 resolution: HeavyAdResolutionStatus,
636 reason: HeavyAdReason,
638 frame: AffectedFrame<'a>,
640}
641
642impl<'a> HeavyAdIssueDetails<'a> {
643 pub fn builder(resolution: HeavyAdResolutionStatus, reason: HeavyAdReason, frame: AffectedFrame<'a>) -> HeavyAdIssueDetailsBuilder<'a> {
644 HeavyAdIssueDetailsBuilder {
645 resolution: resolution,
646 reason: reason,
647 frame: frame,
648 }
649 }
650 pub fn resolution(&self) -> &HeavyAdResolutionStatus { &self.resolution }
651 pub fn reason(&self) -> &HeavyAdReason { &self.reason }
652 pub fn frame(&self) -> &AffectedFrame<'a> { &self.frame }
653}
654
655
656pub struct HeavyAdIssueDetailsBuilder<'a> {
657 resolution: HeavyAdResolutionStatus,
658 reason: HeavyAdReason,
659 frame: AffectedFrame<'a>,
660}
661
662impl<'a> HeavyAdIssueDetailsBuilder<'a> {
663 pub fn build(self) -> HeavyAdIssueDetails<'a> {
664 HeavyAdIssueDetails {
665 resolution: self.resolution,
666 reason: self.reason,
667 frame: self.frame,
668 }
669 }
670}
671
672
673#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
674pub enum ContentSecurityPolicyViolationType {
675 #[default]
676 #[serde(rename = "kInlineViolation")]
677 KInlineViolation,
678 #[serde(rename = "kEvalViolation")]
679 KEvalViolation,
680 #[serde(rename = "kURLViolation")]
681 KURLViolation,
682 #[serde(rename = "kSRIViolation")]
683 KSRIViolation,
684 #[serde(rename = "kTrustedTypesSinkViolation")]
685 KTrustedTypesSinkViolation,
686 #[serde(rename = "kTrustedTypesPolicyViolation")]
687 KTrustedTypesPolicyViolation,
688 #[serde(rename = "kWasmEvalViolation")]
689 KWasmEvalViolation,
690}
691
692
693#[derive(Debug, Clone, Serialize, Deserialize, Default)]
694#[serde(rename_all = "camelCase")]
695pub struct SourceCodeLocation<'a> {
696 #[serde(skip_serializing_if = "Option::is_none")]
697 scriptId: Option<crate::runtime::ScriptId<'a>>,
698 url: Cow<'a, str>,
699 lineNumber: i64,
700 columnNumber: i64,
701}
702
703impl<'a> SourceCodeLocation<'a> {
704 pub fn builder(url: impl Into<Cow<'a, str>>, lineNumber: i64, columnNumber: i64) -> SourceCodeLocationBuilder<'a> {
705 SourceCodeLocationBuilder {
706 scriptId: None,
707 url: url.into(),
708 lineNumber: lineNumber,
709 columnNumber: columnNumber,
710 }
711 }
712 pub fn scriptId(&self) -> Option<&crate::runtime::ScriptId<'a>> { self.scriptId.as_ref() }
713 pub fn url(&self) -> &str { self.url.as_ref() }
714 pub fn lineNumber(&self) -> i64 { self.lineNumber }
715 pub fn columnNumber(&self) -> i64 { self.columnNumber }
716}
717
718
719pub struct SourceCodeLocationBuilder<'a> {
720 scriptId: Option<crate::runtime::ScriptId<'a>>,
721 url: Cow<'a, str>,
722 lineNumber: i64,
723 columnNumber: i64,
724}
725
726impl<'a> SourceCodeLocationBuilder<'a> {
727 pub fn scriptId(mut self, scriptId: crate::runtime::ScriptId<'a>) -> Self { self.scriptId = Some(scriptId); self }
728 pub fn build(self) -> SourceCodeLocation<'a> {
729 SourceCodeLocation {
730 scriptId: self.scriptId,
731 url: self.url,
732 lineNumber: self.lineNumber,
733 columnNumber: self.columnNumber,
734 }
735 }
736}
737
738
739#[derive(Debug, Clone, Serialize, Deserialize, Default)]
740#[serde(rename_all = "camelCase")]
741pub struct ContentSecurityPolicyIssueDetails<'a> {
742 #[serde(skip_serializing_if = "Option::is_none")]
744 blockedURL: Option<Cow<'a, str>>,
745 violatedDirective: Cow<'a, str>,
747 isReportOnly: bool,
748 contentSecurityPolicyViolationType: ContentSecurityPolicyViolationType,
749 #[serde(skip_serializing_if = "Option::is_none")]
750 frameAncestor: Option<AffectedFrame<'a>>,
751 #[serde(skip_serializing_if = "Option::is_none")]
752 sourceCodeLocation: Option<SourceCodeLocation<'a>>,
753 #[serde(skip_serializing_if = "Option::is_none")]
754 violatingNodeId: Option<crate::dom::BackendNodeId>,
755}
756
757impl<'a> ContentSecurityPolicyIssueDetails<'a> {
758 pub fn builder(violatedDirective: impl Into<Cow<'a, str>>, isReportOnly: bool, contentSecurityPolicyViolationType: ContentSecurityPolicyViolationType) -> ContentSecurityPolicyIssueDetailsBuilder<'a> {
759 ContentSecurityPolicyIssueDetailsBuilder {
760 blockedURL: None,
761 violatedDirective: violatedDirective.into(),
762 isReportOnly: isReportOnly,
763 contentSecurityPolicyViolationType: contentSecurityPolicyViolationType,
764 frameAncestor: None,
765 sourceCodeLocation: None,
766 violatingNodeId: None,
767 }
768 }
769 pub fn blockedURL(&self) -> Option<&str> { self.blockedURL.as_deref() }
770 pub fn violatedDirective(&self) -> &str { self.violatedDirective.as_ref() }
771 pub fn isReportOnly(&self) -> bool { self.isReportOnly }
772 pub fn contentSecurityPolicyViolationType(&self) -> &ContentSecurityPolicyViolationType { &self.contentSecurityPolicyViolationType }
773 pub fn frameAncestor(&self) -> Option<&AffectedFrame<'a>> { self.frameAncestor.as_ref() }
774 pub fn sourceCodeLocation(&self) -> Option<&SourceCodeLocation<'a>> { self.sourceCodeLocation.as_ref() }
775 pub fn violatingNodeId(&self) -> Option<&crate::dom::BackendNodeId> { self.violatingNodeId.as_ref() }
776}
777
778
779pub struct ContentSecurityPolicyIssueDetailsBuilder<'a> {
780 blockedURL: Option<Cow<'a, str>>,
781 violatedDirective: Cow<'a, str>,
782 isReportOnly: bool,
783 contentSecurityPolicyViolationType: ContentSecurityPolicyViolationType,
784 frameAncestor: Option<AffectedFrame<'a>>,
785 sourceCodeLocation: Option<SourceCodeLocation<'a>>,
786 violatingNodeId: Option<crate::dom::BackendNodeId>,
787}
788
789impl<'a> ContentSecurityPolicyIssueDetailsBuilder<'a> {
790 pub fn blockedURL(mut self, blockedURL: impl Into<Cow<'a, str>>) -> Self { self.blockedURL = Some(blockedURL.into()); self }
792 pub fn frameAncestor(mut self, frameAncestor: AffectedFrame<'a>) -> Self { self.frameAncestor = Some(frameAncestor); self }
793 pub fn sourceCodeLocation(mut self, sourceCodeLocation: SourceCodeLocation<'a>) -> Self { self.sourceCodeLocation = Some(sourceCodeLocation); self }
794 pub fn violatingNodeId(mut self, violatingNodeId: crate::dom::BackendNodeId) -> Self { self.violatingNodeId = Some(violatingNodeId); self }
795 pub fn build(self) -> ContentSecurityPolicyIssueDetails<'a> {
796 ContentSecurityPolicyIssueDetails {
797 blockedURL: self.blockedURL,
798 violatedDirective: self.violatedDirective,
799 isReportOnly: self.isReportOnly,
800 contentSecurityPolicyViolationType: self.contentSecurityPolicyViolationType,
801 frameAncestor: self.frameAncestor,
802 sourceCodeLocation: self.sourceCodeLocation,
803 violatingNodeId: self.violatingNodeId,
804 }
805 }
806}
807
808
809#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
810pub enum SharedArrayBufferIssueType {
811 #[default]
812 #[serde(rename = "TransferIssue")]
813 TransferIssue,
814 #[serde(rename = "CreationIssue")]
815 CreationIssue,
816}
817
818#[derive(Debug, Clone, Serialize, Deserialize, Default)]
822#[serde(rename_all = "camelCase")]
823pub struct SharedArrayBufferIssueDetails<'a> {
824 sourceCodeLocation: SourceCodeLocation<'a>,
825 isWarning: bool,
826 #[serde(rename = "type")]
827 type_: SharedArrayBufferIssueType,
828}
829
830impl<'a> SharedArrayBufferIssueDetails<'a> {
831 pub fn builder(sourceCodeLocation: SourceCodeLocation<'a>, isWarning: bool, type_: SharedArrayBufferIssueType) -> SharedArrayBufferIssueDetailsBuilder<'a> {
832 SharedArrayBufferIssueDetailsBuilder {
833 sourceCodeLocation: sourceCodeLocation,
834 isWarning: isWarning,
835 type_: type_,
836 }
837 }
838 pub fn sourceCodeLocation(&self) -> &SourceCodeLocation<'a> { &self.sourceCodeLocation }
839 pub fn isWarning(&self) -> bool { self.isWarning }
840 pub fn type_(&self) -> &SharedArrayBufferIssueType { &self.type_ }
841}
842
843
844pub struct SharedArrayBufferIssueDetailsBuilder<'a> {
845 sourceCodeLocation: SourceCodeLocation<'a>,
846 isWarning: bool,
847 type_: SharedArrayBufferIssueType,
848}
849
850impl<'a> SharedArrayBufferIssueDetailsBuilder<'a> {
851 pub fn build(self) -> SharedArrayBufferIssueDetails<'a> {
852 SharedArrayBufferIssueDetails {
853 sourceCodeLocation: self.sourceCodeLocation,
854 isWarning: self.isWarning,
855 type_: self.type_,
856 }
857 }
858}
859
860#[derive(Debug, Clone, Serialize, Deserialize, Default)]
864#[serde(rename_all = "camelCase")]
865pub struct CorsIssueDetails<'a> {
866 corsErrorStatus: crate::network::CorsErrorStatus<'a>,
867 isWarning: bool,
868 request: AffectedRequest<'a>,
869 #[serde(skip_serializing_if = "Option::is_none")]
870 location: Option<SourceCodeLocation<'a>>,
871 #[serde(skip_serializing_if = "Option::is_none")]
872 initiatorOrigin: Option<Cow<'a, str>>,
873 #[serde(skip_serializing_if = "Option::is_none")]
874 resourceIPAddressSpace: Option<crate::network::IPAddressSpace>,
875 #[serde(skip_serializing_if = "Option::is_none")]
876 clientSecurityState: Option<crate::network::ClientSecurityState>,
877}
878
879impl<'a> CorsIssueDetails<'a> {
880 pub fn builder(corsErrorStatus: crate::network::CorsErrorStatus<'a>, isWarning: bool, request: AffectedRequest<'a>) -> CorsIssueDetailsBuilder<'a> {
881 CorsIssueDetailsBuilder {
882 corsErrorStatus: corsErrorStatus,
883 isWarning: isWarning,
884 request: request,
885 location: None,
886 initiatorOrigin: None,
887 resourceIPAddressSpace: None,
888 clientSecurityState: None,
889 }
890 }
891 pub fn corsErrorStatus(&self) -> &crate::network::CorsErrorStatus<'a> { &self.corsErrorStatus }
892 pub fn isWarning(&self) -> bool { self.isWarning }
893 pub fn request(&self) -> &AffectedRequest<'a> { &self.request }
894 pub fn location(&self) -> Option<&SourceCodeLocation<'a>> { self.location.as_ref() }
895 pub fn initiatorOrigin(&self) -> Option<&str> { self.initiatorOrigin.as_deref() }
896 pub fn resourceIPAddressSpace(&self) -> Option<&crate::network::IPAddressSpace> { self.resourceIPAddressSpace.as_ref() }
897 pub fn clientSecurityState(&self) -> Option<&crate::network::ClientSecurityState> { self.clientSecurityState.as_ref() }
898}
899
900
901pub struct CorsIssueDetailsBuilder<'a> {
902 corsErrorStatus: crate::network::CorsErrorStatus<'a>,
903 isWarning: bool,
904 request: AffectedRequest<'a>,
905 location: Option<SourceCodeLocation<'a>>,
906 initiatorOrigin: Option<Cow<'a, str>>,
907 resourceIPAddressSpace: Option<crate::network::IPAddressSpace>,
908 clientSecurityState: Option<crate::network::ClientSecurityState>,
909}
910
911impl<'a> CorsIssueDetailsBuilder<'a> {
912 pub fn location(mut self, location: SourceCodeLocation<'a>) -> Self { self.location = Some(location); self }
913 pub fn initiatorOrigin(mut self, initiatorOrigin: impl Into<Cow<'a, str>>) -> Self { self.initiatorOrigin = Some(initiatorOrigin.into()); self }
914 pub fn resourceIPAddressSpace(mut self, resourceIPAddressSpace: crate::network::IPAddressSpace) -> Self { self.resourceIPAddressSpace = Some(resourceIPAddressSpace); self }
915 pub fn clientSecurityState(mut self, clientSecurityState: crate::network::ClientSecurityState) -> Self { self.clientSecurityState = Some(clientSecurityState); self }
916 pub fn build(self) -> CorsIssueDetails<'a> {
917 CorsIssueDetails {
918 corsErrorStatus: self.corsErrorStatus,
919 isWarning: self.isWarning,
920 request: self.request,
921 location: self.location,
922 initiatorOrigin: self.initiatorOrigin,
923 resourceIPAddressSpace: self.resourceIPAddressSpace,
924 clientSecurityState: self.clientSecurityState,
925 }
926 }
927}
928
929
930#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
931pub enum AttributionReportingIssueType {
932 #[default]
933 #[serde(rename = "PermissionPolicyDisabled")]
934 PermissionPolicyDisabled,
935 #[serde(rename = "UntrustworthyReportingOrigin")]
936 UntrustworthyReportingOrigin,
937 #[serde(rename = "InsecureContext")]
938 InsecureContext,
939 #[serde(rename = "InvalidHeader")]
940 InvalidHeader,
941 #[serde(rename = "InvalidRegisterTriggerHeader")]
942 InvalidRegisterTriggerHeader,
943 #[serde(rename = "SourceAndTriggerHeaders")]
944 SourceAndTriggerHeaders,
945 #[serde(rename = "SourceIgnored")]
946 SourceIgnored,
947 #[serde(rename = "TriggerIgnored")]
948 TriggerIgnored,
949 #[serde(rename = "OsSourceIgnored")]
950 OsSourceIgnored,
951 #[serde(rename = "OsTriggerIgnored")]
952 OsTriggerIgnored,
953 #[serde(rename = "InvalidRegisterOsSourceHeader")]
954 InvalidRegisterOsSourceHeader,
955 #[serde(rename = "InvalidRegisterOsTriggerHeader")]
956 InvalidRegisterOsTriggerHeader,
957 #[serde(rename = "WebAndOsHeaders")]
958 WebAndOsHeaders,
959 #[serde(rename = "NoWebOrOsSupport")]
960 NoWebOrOsSupport,
961 #[serde(rename = "NavigationRegistrationWithoutTransientUserActivation")]
962 NavigationRegistrationWithoutTransientUserActivation,
963 #[serde(rename = "InvalidInfoHeader")]
964 InvalidInfoHeader,
965 #[serde(rename = "NoRegisterSourceHeader")]
966 NoRegisterSourceHeader,
967 #[serde(rename = "NoRegisterTriggerHeader")]
968 NoRegisterTriggerHeader,
969 #[serde(rename = "NoRegisterOsSourceHeader")]
970 NoRegisterOsSourceHeader,
971 #[serde(rename = "NoRegisterOsTriggerHeader")]
972 NoRegisterOsTriggerHeader,
973 #[serde(rename = "NavigationRegistrationUniqueScopeAlreadySet")]
974 NavigationRegistrationUniqueScopeAlreadySet,
975}
976
977
978#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
979pub enum SharedDictionaryError {
980 #[default]
981 #[serde(rename = "UseErrorCrossOriginNoCorsRequest")]
982 UseErrorCrossOriginNoCorsRequest,
983 #[serde(rename = "UseErrorDictionaryLoadFailure")]
984 UseErrorDictionaryLoadFailure,
985 #[serde(rename = "UseErrorMatchingDictionaryNotUsed")]
986 UseErrorMatchingDictionaryNotUsed,
987 #[serde(rename = "UseErrorUnexpectedContentDictionaryHeader")]
988 UseErrorUnexpectedContentDictionaryHeader,
989 #[serde(rename = "WriteErrorCossOriginNoCorsRequest")]
990 WriteErrorCossOriginNoCorsRequest,
991 #[serde(rename = "WriteErrorDisallowedBySettings")]
992 WriteErrorDisallowedBySettings,
993 #[serde(rename = "WriteErrorExpiredResponse")]
994 WriteErrorExpiredResponse,
995 #[serde(rename = "WriteErrorFeatureDisabled")]
996 WriteErrorFeatureDisabled,
997 #[serde(rename = "WriteErrorInsufficientResources")]
998 WriteErrorInsufficientResources,
999 #[serde(rename = "WriteErrorInvalidMatchField")]
1000 WriteErrorInvalidMatchField,
1001 #[serde(rename = "WriteErrorInvalidStructuredHeader")]
1002 WriteErrorInvalidStructuredHeader,
1003 #[serde(rename = "WriteErrorInvalidTTLField")]
1004 WriteErrorInvalidTTLField,
1005 #[serde(rename = "WriteErrorNavigationRequest")]
1006 WriteErrorNavigationRequest,
1007 #[serde(rename = "WriteErrorNoMatchField")]
1008 WriteErrorNoMatchField,
1009 #[serde(rename = "WriteErrorNonIntegerTTLField")]
1010 WriteErrorNonIntegerTTLField,
1011 #[serde(rename = "WriteErrorNonListMatchDestField")]
1012 WriteErrorNonListMatchDestField,
1013 #[serde(rename = "WriteErrorNonSecureContext")]
1014 WriteErrorNonSecureContext,
1015 #[serde(rename = "WriteErrorNonStringIdField")]
1016 WriteErrorNonStringIdField,
1017 #[serde(rename = "WriteErrorNonStringInMatchDestList")]
1018 WriteErrorNonStringInMatchDestList,
1019 #[serde(rename = "WriteErrorNonStringMatchField")]
1020 WriteErrorNonStringMatchField,
1021 #[serde(rename = "WriteErrorNonTokenTypeField")]
1022 WriteErrorNonTokenTypeField,
1023 #[serde(rename = "WriteErrorRequestAborted")]
1024 WriteErrorRequestAborted,
1025 #[serde(rename = "WriteErrorShuttingDown")]
1026 WriteErrorShuttingDown,
1027 #[serde(rename = "WriteErrorTooLongIdField")]
1028 WriteErrorTooLongIdField,
1029 #[serde(rename = "WriteErrorUnsupportedType")]
1030 WriteErrorUnsupportedType,
1031}
1032
1033
1034#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1035pub enum SRIMessageSignatureError {
1036 #[default]
1037 #[serde(rename = "MissingSignatureHeader")]
1038 MissingSignatureHeader,
1039 #[serde(rename = "MissingSignatureInputHeader")]
1040 MissingSignatureInputHeader,
1041 #[serde(rename = "InvalidSignatureHeader")]
1042 InvalidSignatureHeader,
1043 #[serde(rename = "InvalidSignatureInputHeader")]
1044 InvalidSignatureInputHeader,
1045 #[serde(rename = "SignatureHeaderValueIsNotByteSequence")]
1046 SignatureHeaderValueIsNotByteSequence,
1047 #[serde(rename = "SignatureHeaderValueIsParameterized")]
1048 SignatureHeaderValueIsParameterized,
1049 #[serde(rename = "SignatureHeaderValueIsIncorrectLength")]
1050 SignatureHeaderValueIsIncorrectLength,
1051 #[serde(rename = "SignatureInputHeaderMissingLabel")]
1052 SignatureInputHeaderMissingLabel,
1053 #[serde(rename = "SignatureInputHeaderValueNotInnerList")]
1054 SignatureInputHeaderValueNotInnerList,
1055 #[serde(rename = "SignatureInputHeaderValueMissingComponents")]
1056 SignatureInputHeaderValueMissingComponents,
1057 #[serde(rename = "SignatureInputHeaderInvalidComponentType")]
1058 SignatureInputHeaderInvalidComponentType,
1059 #[serde(rename = "SignatureInputHeaderInvalidComponentName")]
1060 SignatureInputHeaderInvalidComponentName,
1061 #[serde(rename = "SignatureInputHeaderInvalidHeaderComponentParameter")]
1062 SignatureInputHeaderInvalidHeaderComponentParameter,
1063 #[serde(rename = "SignatureInputHeaderInvalidDerivedComponentParameter")]
1064 SignatureInputHeaderInvalidDerivedComponentParameter,
1065 #[serde(rename = "SignatureInputHeaderKeyIdLength")]
1066 SignatureInputHeaderKeyIdLength,
1067 #[serde(rename = "SignatureInputHeaderInvalidParameter")]
1068 SignatureInputHeaderInvalidParameter,
1069 #[serde(rename = "SignatureInputHeaderMissingRequiredParameters")]
1070 SignatureInputHeaderMissingRequiredParameters,
1071 #[serde(rename = "ValidationFailedSignatureExpired")]
1072 ValidationFailedSignatureExpired,
1073 #[serde(rename = "ValidationFailedInvalidLength")]
1074 ValidationFailedInvalidLength,
1075 #[serde(rename = "ValidationFailedSignatureMismatch")]
1076 ValidationFailedSignatureMismatch,
1077 #[serde(rename = "ValidationFailedIntegrityMismatch")]
1078 ValidationFailedIntegrityMismatch,
1079}
1080
1081
1082#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1083pub enum UnencodedDigestError {
1084 #[default]
1085 #[serde(rename = "MalformedDictionary")]
1086 MalformedDictionary,
1087 #[serde(rename = "UnknownAlgorithm")]
1088 UnknownAlgorithm,
1089 #[serde(rename = "IncorrectDigestType")]
1090 IncorrectDigestType,
1091 #[serde(rename = "IncorrectDigestLength")]
1092 IncorrectDigestLength,
1093}
1094
1095
1096#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1097pub enum ConnectionAllowlistError {
1098 #[default]
1099 #[serde(rename = "InvalidHeader")]
1100 InvalidHeader,
1101 #[serde(rename = "MoreThanOneList")]
1102 MoreThanOneList,
1103 #[serde(rename = "ItemNotInnerList")]
1104 ItemNotInnerList,
1105 #[serde(rename = "InvalidAllowlistItemType")]
1106 InvalidAllowlistItemType,
1107 #[serde(rename = "ReportingEndpointNotToken")]
1108 ReportingEndpointNotToken,
1109 #[serde(rename = "InvalidUrlPattern")]
1110 InvalidUrlPattern,
1111}
1112
1113#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1117#[serde(rename_all = "camelCase")]
1118pub struct AttributionReportingIssueDetails<'a> {
1119 violationType: AttributionReportingIssueType,
1120 #[serde(skip_serializing_if = "Option::is_none")]
1121 request: Option<AffectedRequest<'a>>,
1122 #[serde(skip_serializing_if = "Option::is_none")]
1123 violatingNodeId: Option<crate::dom::BackendNodeId>,
1124 #[serde(skip_serializing_if = "Option::is_none")]
1125 invalidParameter: Option<Cow<'a, str>>,
1126}
1127
1128impl<'a> AttributionReportingIssueDetails<'a> {
1129 pub fn builder(violationType: AttributionReportingIssueType) -> AttributionReportingIssueDetailsBuilder<'a> {
1130 AttributionReportingIssueDetailsBuilder {
1131 violationType: violationType,
1132 request: None,
1133 violatingNodeId: None,
1134 invalidParameter: None,
1135 }
1136 }
1137 pub fn violationType(&self) -> &AttributionReportingIssueType { &self.violationType }
1138 pub fn request(&self) -> Option<&AffectedRequest<'a>> { self.request.as_ref() }
1139 pub fn violatingNodeId(&self) -> Option<&crate::dom::BackendNodeId> { self.violatingNodeId.as_ref() }
1140 pub fn invalidParameter(&self) -> Option<&str> { self.invalidParameter.as_deref() }
1141}
1142
1143
1144pub struct AttributionReportingIssueDetailsBuilder<'a> {
1145 violationType: AttributionReportingIssueType,
1146 request: Option<AffectedRequest<'a>>,
1147 violatingNodeId: Option<crate::dom::BackendNodeId>,
1148 invalidParameter: Option<Cow<'a, str>>,
1149}
1150
1151impl<'a> AttributionReportingIssueDetailsBuilder<'a> {
1152 pub fn request(mut self, request: AffectedRequest<'a>) -> Self { self.request = Some(request); self }
1153 pub fn violatingNodeId(mut self, violatingNodeId: crate::dom::BackendNodeId) -> Self { self.violatingNodeId = Some(violatingNodeId); self }
1154 pub fn invalidParameter(mut self, invalidParameter: impl Into<Cow<'a, str>>) -> Self { self.invalidParameter = Some(invalidParameter.into()); self }
1155 pub fn build(self) -> AttributionReportingIssueDetails<'a> {
1156 AttributionReportingIssueDetails {
1157 violationType: self.violationType,
1158 request: self.request,
1159 violatingNodeId: self.violatingNodeId,
1160 invalidParameter: self.invalidParameter,
1161 }
1162 }
1163}
1164
1165#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1169#[serde(rename_all = "camelCase")]
1170pub struct QuirksModeIssueDetails<'a> {
1171 isLimitedQuirksMode: bool,
1174 documentNodeId: crate::dom::BackendNodeId,
1175 url: Cow<'a, str>,
1176 frameId: crate::page::FrameId<'a>,
1177 loaderId: crate::network::LoaderId<'a>,
1178}
1179
1180impl<'a> QuirksModeIssueDetails<'a> {
1181 pub fn builder(isLimitedQuirksMode: bool, documentNodeId: crate::dom::BackendNodeId, url: impl Into<Cow<'a, str>>, frameId: crate::page::FrameId<'a>, loaderId: crate::network::LoaderId<'a>) -> QuirksModeIssueDetailsBuilder<'a> {
1182 QuirksModeIssueDetailsBuilder {
1183 isLimitedQuirksMode: isLimitedQuirksMode,
1184 documentNodeId: documentNodeId,
1185 url: url.into(),
1186 frameId: frameId,
1187 loaderId: loaderId,
1188 }
1189 }
1190 pub fn isLimitedQuirksMode(&self) -> bool { self.isLimitedQuirksMode }
1191 pub fn documentNodeId(&self) -> &crate::dom::BackendNodeId { &self.documentNodeId }
1192 pub fn url(&self) -> &str { self.url.as_ref() }
1193 pub fn frameId(&self) -> &crate::page::FrameId<'a> { &self.frameId }
1194 pub fn loaderId(&self) -> &crate::network::LoaderId<'a> { &self.loaderId }
1195}
1196
1197
1198pub struct QuirksModeIssueDetailsBuilder<'a> {
1199 isLimitedQuirksMode: bool,
1200 documentNodeId: crate::dom::BackendNodeId,
1201 url: Cow<'a, str>,
1202 frameId: crate::page::FrameId<'a>,
1203 loaderId: crate::network::LoaderId<'a>,
1204}
1205
1206impl<'a> QuirksModeIssueDetailsBuilder<'a> {
1207 pub fn build(self) -> QuirksModeIssueDetails<'a> {
1208 QuirksModeIssueDetails {
1209 isLimitedQuirksMode: self.isLimitedQuirksMode,
1210 documentNodeId: self.documentNodeId,
1211 url: self.url,
1212 frameId: self.frameId,
1213 loaderId: self.loaderId,
1214 }
1215 }
1216}
1217
1218
1219#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1220#[serde(rename_all = "camelCase")]
1221pub struct NavigatorUserAgentIssueDetails<'a> {
1222 url: Cow<'a, str>,
1223 #[serde(skip_serializing_if = "Option::is_none")]
1224 location: Option<SourceCodeLocation<'a>>,
1225}
1226
1227impl<'a> NavigatorUserAgentIssueDetails<'a> {
1228 pub fn builder(url: impl Into<Cow<'a, str>>) -> NavigatorUserAgentIssueDetailsBuilder<'a> {
1229 NavigatorUserAgentIssueDetailsBuilder {
1230 url: url.into(),
1231 location: None,
1232 }
1233 }
1234 pub fn url(&self) -> &str { self.url.as_ref() }
1235 pub fn location(&self) -> Option<&SourceCodeLocation<'a>> { self.location.as_ref() }
1236}
1237
1238
1239pub struct NavigatorUserAgentIssueDetailsBuilder<'a> {
1240 url: Cow<'a, str>,
1241 location: Option<SourceCodeLocation<'a>>,
1242}
1243
1244impl<'a> NavigatorUserAgentIssueDetailsBuilder<'a> {
1245 pub fn location(mut self, location: SourceCodeLocation<'a>) -> Self { self.location = Some(location); self }
1246 pub fn build(self) -> NavigatorUserAgentIssueDetails<'a> {
1247 NavigatorUserAgentIssueDetails {
1248 url: self.url,
1249 location: self.location,
1250 }
1251 }
1252}
1253
1254
1255#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1256#[serde(rename_all = "camelCase")]
1257pub struct SharedDictionaryIssueDetails<'a> {
1258 sharedDictionaryError: SharedDictionaryError,
1259 request: AffectedRequest<'a>,
1260}
1261
1262impl<'a> SharedDictionaryIssueDetails<'a> {
1263 pub fn builder(sharedDictionaryError: SharedDictionaryError, request: AffectedRequest<'a>) -> SharedDictionaryIssueDetailsBuilder<'a> {
1264 SharedDictionaryIssueDetailsBuilder {
1265 sharedDictionaryError: sharedDictionaryError,
1266 request: request,
1267 }
1268 }
1269 pub fn sharedDictionaryError(&self) -> &SharedDictionaryError { &self.sharedDictionaryError }
1270 pub fn request(&self) -> &AffectedRequest<'a> { &self.request }
1271}
1272
1273
1274pub struct SharedDictionaryIssueDetailsBuilder<'a> {
1275 sharedDictionaryError: SharedDictionaryError,
1276 request: AffectedRequest<'a>,
1277}
1278
1279impl<'a> SharedDictionaryIssueDetailsBuilder<'a> {
1280 pub fn build(self) -> SharedDictionaryIssueDetails<'a> {
1281 SharedDictionaryIssueDetails {
1282 sharedDictionaryError: self.sharedDictionaryError,
1283 request: self.request,
1284 }
1285 }
1286}
1287
1288
1289#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1290#[serde(rename_all = "camelCase")]
1291pub struct SRIMessageSignatureIssueDetails<'a> {
1292 error: SRIMessageSignatureError,
1293 signatureBase: Cow<'a, str>,
1294 integrityAssertions: Vec<Cow<'a, str>>,
1295 request: AffectedRequest<'a>,
1296}
1297
1298impl<'a> SRIMessageSignatureIssueDetails<'a> {
1299 pub fn builder(error: SRIMessageSignatureError, signatureBase: impl Into<Cow<'a, str>>, integrityAssertions: Vec<Cow<'a, str>>, request: AffectedRequest<'a>) -> SRIMessageSignatureIssueDetailsBuilder<'a> {
1300 SRIMessageSignatureIssueDetailsBuilder {
1301 error: error,
1302 signatureBase: signatureBase.into(),
1303 integrityAssertions: integrityAssertions,
1304 request: request,
1305 }
1306 }
1307 pub fn error(&self) -> &SRIMessageSignatureError { &self.error }
1308 pub fn signatureBase(&self) -> &str { self.signatureBase.as_ref() }
1309 pub fn integrityAssertions(&self) -> &[Cow<'a, str>] { &self.integrityAssertions }
1310 pub fn request(&self) -> &AffectedRequest<'a> { &self.request }
1311}
1312
1313
1314pub struct SRIMessageSignatureIssueDetailsBuilder<'a> {
1315 error: SRIMessageSignatureError,
1316 signatureBase: Cow<'a, str>,
1317 integrityAssertions: Vec<Cow<'a, str>>,
1318 request: AffectedRequest<'a>,
1319}
1320
1321impl<'a> SRIMessageSignatureIssueDetailsBuilder<'a> {
1322 pub fn build(self) -> SRIMessageSignatureIssueDetails<'a> {
1323 SRIMessageSignatureIssueDetails {
1324 error: self.error,
1325 signatureBase: self.signatureBase,
1326 integrityAssertions: self.integrityAssertions,
1327 request: self.request,
1328 }
1329 }
1330}
1331
1332
1333#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1334#[serde(rename_all = "camelCase")]
1335pub struct UnencodedDigestIssueDetails<'a> {
1336 error: UnencodedDigestError,
1337 request: AffectedRequest<'a>,
1338}
1339
1340impl<'a> UnencodedDigestIssueDetails<'a> {
1341 pub fn builder(error: UnencodedDigestError, request: AffectedRequest<'a>) -> UnencodedDigestIssueDetailsBuilder<'a> {
1342 UnencodedDigestIssueDetailsBuilder {
1343 error: error,
1344 request: request,
1345 }
1346 }
1347 pub fn error(&self) -> &UnencodedDigestError { &self.error }
1348 pub fn request(&self) -> &AffectedRequest<'a> { &self.request }
1349}
1350
1351
1352pub struct UnencodedDigestIssueDetailsBuilder<'a> {
1353 error: UnencodedDigestError,
1354 request: AffectedRequest<'a>,
1355}
1356
1357impl<'a> UnencodedDigestIssueDetailsBuilder<'a> {
1358 pub fn build(self) -> UnencodedDigestIssueDetails<'a> {
1359 UnencodedDigestIssueDetails {
1360 error: self.error,
1361 request: self.request,
1362 }
1363 }
1364}
1365
1366
1367#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1368#[serde(rename_all = "camelCase")]
1369pub struct ConnectionAllowlistIssueDetails<'a> {
1370 error: ConnectionAllowlistError,
1371 request: AffectedRequest<'a>,
1372}
1373
1374impl<'a> ConnectionAllowlistIssueDetails<'a> {
1375 pub fn builder(error: ConnectionAllowlistError, request: AffectedRequest<'a>) -> ConnectionAllowlistIssueDetailsBuilder<'a> {
1376 ConnectionAllowlistIssueDetailsBuilder {
1377 error: error,
1378 request: request,
1379 }
1380 }
1381 pub fn error(&self) -> &ConnectionAllowlistError { &self.error }
1382 pub fn request(&self) -> &AffectedRequest<'a> { &self.request }
1383}
1384
1385
1386pub struct ConnectionAllowlistIssueDetailsBuilder<'a> {
1387 error: ConnectionAllowlistError,
1388 request: AffectedRequest<'a>,
1389}
1390
1391impl<'a> ConnectionAllowlistIssueDetailsBuilder<'a> {
1392 pub fn build(self) -> ConnectionAllowlistIssueDetails<'a> {
1393 ConnectionAllowlistIssueDetails {
1394 error: self.error,
1395 request: self.request,
1396 }
1397 }
1398}
1399
1400
1401#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1402pub enum GenericIssueErrorType {
1403 #[default]
1404 #[serde(rename = "FormLabelForNameError")]
1405 FormLabelForNameError,
1406 #[serde(rename = "FormDuplicateIdForInputError")]
1407 FormDuplicateIdForInputError,
1408 #[serde(rename = "FormInputWithNoLabelError")]
1409 FormInputWithNoLabelError,
1410 #[serde(rename = "FormAutocompleteAttributeEmptyError")]
1411 FormAutocompleteAttributeEmptyError,
1412 #[serde(rename = "FormEmptyIdAndNameAttributesForInputError")]
1413 FormEmptyIdAndNameAttributesForInputError,
1414 #[serde(rename = "FormAriaLabelledByToNonExistingIdError")]
1415 FormAriaLabelledByToNonExistingIdError,
1416 #[serde(rename = "FormInputAssignedAutocompleteValueToIdOrNameAttributeError")]
1417 FormInputAssignedAutocompleteValueToIdOrNameAttributeError,
1418 #[serde(rename = "FormLabelHasNeitherForNorNestedInputError")]
1419 FormLabelHasNeitherForNorNestedInputError,
1420 #[serde(rename = "FormLabelForMatchesNonExistingIdError")]
1421 FormLabelForMatchesNonExistingIdError,
1422 #[serde(rename = "FormInputHasWrongButWellIntendedAutocompleteValueError")]
1423 FormInputHasWrongButWellIntendedAutocompleteValueError,
1424 #[serde(rename = "ResponseWasBlockedByORB")]
1425 ResponseWasBlockedByORB,
1426 #[serde(rename = "NavigationEntryMarkedSkippable")]
1427 NavigationEntryMarkedSkippable,
1428 #[serde(rename = "AutofillAndManualTextPolicyControlledFeaturesInfo")]
1429 AutofillAndManualTextPolicyControlledFeaturesInfo,
1430 #[serde(rename = "AutofillPolicyControlledFeatureInfo")]
1431 AutofillPolicyControlledFeatureInfo,
1432 #[serde(rename = "ManualTextPolicyControlledFeatureInfo")]
1433 ManualTextPolicyControlledFeatureInfo,
1434 #[serde(rename = "FormModelContextParameterMissingTitleAndDescription")]
1435 FormModelContextParameterMissingTitleAndDescription,
1436 #[serde(rename = "FormModelContextMissingToolName")]
1437 FormModelContextMissingToolName,
1438 #[serde(rename = "FormModelContextMissingToolDescription")]
1439 FormModelContextMissingToolDescription,
1440 #[serde(rename = "FormModelContextRequiredParameterMissingName")]
1441 FormModelContextRequiredParameterMissingName,
1442 #[serde(rename = "FormModelContextParameterMissingName")]
1443 FormModelContextParameterMissingName,
1444}
1445
1446#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1449#[serde(rename_all = "camelCase")]
1450pub struct GenericIssueDetails<'a> {
1451 errorType: GenericIssueErrorType,
1453 #[serde(skip_serializing_if = "Option::is_none")]
1454 frameId: Option<crate::page::FrameId<'a>>,
1455 #[serde(skip_serializing_if = "Option::is_none")]
1456 violatingNodeId: Option<crate::dom::BackendNodeId>,
1457 #[serde(skip_serializing_if = "Option::is_none")]
1458 violatingNodeAttribute: Option<Cow<'a, str>>,
1459 #[serde(skip_serializing_if = "Option::is_none")]
1460 request: Option<AffectedRequest<'a>>,
1461}
1462
1463impl<'a> GenericIssueDetails<'a> {
1464 pub fn builder(errorType: GenericIssueErrorType) -> GenericIssueDetailsBuilder<'a> {
1465 GenericIssueDetailsBuilder {
1466 errorType: errorType,
1467 frameId: None,
1468 violatingNodeId: None,
1469 violatingNodeAttribute: None,
1470 request: None,
1471 }
1472 }
1473 pub fn errorType(&self) -> &GenericIssueErrorType { &self.errorType }
1474 pub fn frameId(&self) -> Option<&crate::page::FrameId<'a>> { self.frameId.as_ref() }
1475 pub fn violatingNodeId(&self) -> Option<&crate::dom::BackendNodeId> { self.violatingNodeId.as_ref() }
1476 pub fn violatingNodeAttribute(&self) -> Option<&str> { self.violatingNodeAttribute.as_deref() }
1477 pub fn request(&self) -> Option<&AffectedRequest<'a>> { self.request.as_ref() }
1478}
1479
1480
1481pub struct GenericIssueDetailsBuilder<'a> {
1482 errorType: GenericIssueErrorType,
1483 frameId: Option<crate::page::FrameId<'a>>,
1484 violatingNodeId: Option<crate::dom::BackendNodeId>,
1485 violatingNodeAttribute: Option<Cow<'a, str>>,
1486 request: Option<AffectedRequest<'a>>,
1487}
1488
1489impl<'a> GenericIssueDetailsBuilder<'a> {
1490 pub fn frameId(mut self, frameId: crate::page::FrameId<'a>) -> Self { self.frameId = Some(frameId); self }
1491 pub fn violatingNodeId(mut self, violatingNodeId: crate::dom::BackendNodeId) -> Self { self.violatingNodeId = Some(violatingNodeId); self }
1492 pub fn violatingNodeAttribute(mut self, violatingNodeAttribute: impl Into<Cow<'a, str>>) -> Self { self.violatingNodeAttribute = Some(violatingNodeAttribute.into()); self }
1493 pub fn request(mut self, request: AffectedRequest<'a>) -> Self { self.request = Some(request); self }
1494 pub fn build(self) -> GenericIssueDetails<'a> {
1495 GenericIssueDetails {
1496 errorType: self.errorType,
1497 frameId: self.frameId,
1498 violatingNodeId: self.violatingNodeId,
1499 violatingNodeAttribute: self.violatingNodeAttribute,
1500 request: self.request,
1501 }
1502 }
1503}
1504
1505#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1509#[serde(rename_all = "camelCase")]
1510pub struct DeprecationIssueDetails<'a> {
1511 #[serde(skip_serializing_if = "Option::is_none")]
1512 affectedFrame: Option<AffectedFrame<'a>>,
1513 sourceCodeLocation: SourceCodeLocation<'a>,
1514 #[serde(rename = "type")]
1516 type_: Cow<'a, str>,
1517}
1518
1519impl<'a> DeprecationIssueDetails<'a> {
1520 pub fn builder(sourceCodeLocation: SourceCodeLocation<'a>, type_: impl Into<Cow<'a, str>>) -> DeprecationIssueDetailsBuilder<'a> {
1521 DeprecationIssueDetailsBuilder {
1522 affectedFrame: None,
1523 sourceCodeLocation: sourceCodeLocation,
1524 type_: type_.into(),
1525 }
1526 }
1527 pub fn affectedFrame(&self) -> Option<&AffectedFrame<'a>> { self.affectedFrame.as_ref() }
1528 pub fn sourceCodeLocation(&self) -> &SourceCodeLocation<'a> { &self.sourceCodeLocation }
1529 pub fn type_(&self) -> &str { self.type_.as_ref() }
1530}
1531
1532
1533pub struct DeprecationIssueDetailsBuilder<'a> {
1534 affectedFrame: Option<AffectedFrame<'a>>,
1535 sourceCodeLocation: SourceCodeLocation<'a>,
1536 type_: Cow<'a, str>,
1537}
1538
1539impl<'a> DeprecationIssueDetailsBuilder<'a> {
1540 pub fn affectedFrame(mut self, affectedFrame: AffectedFrame<'a>) -> Self { self.affectedFrame = Some(affectedFrame); self }
1541 pub fn build(self) -> DeprecationIssueDetails<'a> {
1542 DeprecationIssueDetails {
1543 affectedFrame: self.affectedFrame,
1544 sourceCodeLocation: self.sourceCodeLocation,
1545 type_: self.type_,
1546 }
1547 }
1548}
1549
1550#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1557#[serde(rename_all = "camelCase")]
1558pub struct BounceTrackingIssueDetails<'a> {
1559 trackingSites: Vec<Cow<'a, str>>,
1560}
1561
1562impl<'a> BounceTrackingIssueDetails<'a> {
1563 pub fn builder(trackingSites: Vec<Cow<'a, str>>) -> BounceTrackingIssueDetailsBuilder<'a> {
1564 BounceTrackingIssueDetailsBuilder {
1565 trackingSites: trackingSites,
1566 }
1567 }
1568 pub fn trackingSites(&self) -> &[Cow<'a, str>] { &self.trackingSites }
1569}
1570
1571
1572pub struct BounceTrackingIssueDetailsBuilder<'a> {
1573 trackingSites: Vec<Cow<'a, str>>,
1574}
1575
1576impl<'a> BounceTrackingIssueDetailsBuilder<'a> {
1577 pub fn build(self) -> BounceTrackingIssueDetails<'a> {
1578 BounceTrackingIssueDetails {
1579 trackingSites: self.trackingSites,
1580 }
1581 }
1582}
1583
1584#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1591#[serde(rename_all = "camelCase")]
1592pub struct CookieDeprecationMetadataIssueDetails<'a> {
1593 allowedSites: Vec<Cow<'a, str>>,
1594 optOutPercentage: f64,
1595 isOptOutTopLevel: bool,
1596 operation: CookieOperation,
1597}
1598
1599impl<'a> CookieDeprecationMetadataIssueDetails<'a> {
1600 pub fn builder(allowedSites: Vec<Cow<'a, str>>, optOutPercentage: f64, isOptOutTopLevel: bool, operation: CookieOperation) -> CookieDeprecationMetadataIssueDetailsBuilder<'a> {
1601 CookieDeprecationMetadataIssueDetailsBuilder {
1602 allowedSites: allowedSites,
1603 optOutPercentage: optOutPercentage,
1604 isOptOutTopLevel: isOptOutTopLevel,
1605 operation: operation,
1606 }
1607 }
1608 pub fn allowedSites(&self) -> &[Cow<'a, str>] { &self.allowedSites }
1609 pub fn optOutPercentage(&self) -> f64 { self.optOutPercentage }
1610 pub fn isOptOutTopLevel(&self) -> bool { self.isOptOutTopLevel }
1611 pub fn operation(&self) -> &CookieOperation { &self.operation }
1612}
1613
1614
1615pub struct CookieDeprecationMetadataIssueDetailsBuilder<'a> {
1616 allowedSites: Vec<Cow<'a, str>>,
1617 optOutPercentage: f64,
1618 isOptOutTopLevel: bool,
1619 operation: CookieOperation,
1620}
1621
1622impl<'a> CookieDeprecationMetadataIssueDetailsBuilder<'a> {
1623 pub fn build(self) -> CookieDeprecationMetadataIssueDetails<'a> {
1624 CookieDeprecationMetadataIssueDetails {
1625 allowedSites: self.allowedSites,
1626 optOutPercentage: self.optOutPercentage,
1627 isOptOutTopLevel: self.isOptOutTopLevel,
1628 operation: self.operation,
1629 }
1630 }
1631}
1632
1633
1634#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1635pub enum ClientHintIssueReason {
1636 #[default]
1637 #[serde(rename = "MetaTagAllowListInvalidOrigin")]
1638 MetaTagAllowListInvalidOrigin,
1639 #[serde(rename = "MetaTagModifiedHTML")]
1640 MetaTagModifiedHTML,
1641}
1642
1643
1644#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1645#[serde(rename_all = "camelCase")]
1646pub struct FederatedAuthRequestIssueDetails {
1647 federatedAuthRequestIssueReason: FederatedAuthRequestIssueReason,
1648}
1649
1650impl FederatedAuthRequestIssueDetails {
1651 pub fn builder(federatedAuthRequestIssueReason: FederatedAuthRequestIssueReason) -> FederatedAuthRequestIssueDetailsBuilder {
1652 FederatedAuthRequestIssueDetailsBuilder {
1653 federatedAuthRequestIssueReason: federatedAuthRequestIssueReason,
1654 }
1655 }
1656 pub fn federatedAuthRequestIssueReason(&self) -> &FederatedAuthRequestIssueReason { &self.federatedAuthRequestIssueReason }
1657}
1658
1659
1660pub struct FederatedAuthRequestIssueDetailsBuilder {
1661 federatedAuthRequestIssueReason: FederatedAuthRequestIssueReason,
1662}
1663
1664impl FederatedAuthRequestIssueDetailsBuilder {
1665 pub fn build(self) -> FederatedAuthRequestIssueDetails {
1666 FederatedAuthRequestIssueDetails {
1667 federatedAuthRequestIssueReason: self.federatedAuthRequestIssueReason,
1668 }
1669 }
1670}
1671
1672#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1678pub enum FederatedAuthRequestIssueReason {
1679 #[default]
1680 #[serde(rename = "ShouldEmbargo")]
1681 ShouldEmbargo,
1682 #[serde(rename = "TooManyRequests")]
1683 TooManyRequests,
1684 #[serde(rename = "WellKnownHttpNotFound")]
1685 WellKnownHttpNotFound,
1686 #[serde(rename = "WellKnownNoResponse")]
1687 WellKnownNoResponse,
1688 #[serde(rename = "WellKnownInvalidResponse")]
1689 WellKnownInvalidResponse,
1690 #[serde(rename = "WellKnownListEmpty")]
1691 WellKnownListEmpty,
1692 #[serde(rename = "WellKnownInvalidContentType")]
1693 WellKnownInvalidContentType,
1694 #[serde(rename = "ConfigNotInWellKnown")]
1695 ConfigNotInWellKnown,
1696 #[serde(rename = "WellKnownTooBig")]
1697 WellKnownTooBig,
1698 #[serde(rename = "ConfigHttpNotFound")]
1699 ConfigHttpNotFound,
1700 #[serde(rename = "ConfigNoResponse")]
1701 ConfigNoResponse,
1702 #[serde(rename = "ConfigInvalidResponse")]
1703 ConfigInvalidResponse,
1704 #[serde(rename = "ConfigInvalidContentType")]
1705 ConfigInvalidContentType,
1706 #[serde(rename = "IdpNotPotentiallyTrustworthy")]
1707 IdpNotPotentiallyTrustworthy,
1708 #[serde(rename = "DisabledInSettings")]
1709 DisabledInSettings,
1710 #[serde(rename = "DisabledInFlags")]
1711 DisabledInFlags,
1712 #[serde(rename = "ErrorFetchingSignin")]
1713 ErrorFetchingSignin,
1714 #[serde(rename = "InvalidSigninResponse")]
1715 InvalidSigninResponse,
1716 #[serde(rename = "AccountsHttpNotFound")]
1717 AccountsHttpNotFound,
1718 #[serde(rename = "AccountsNoResponse")]
1719 AccountsNoResponse,
1720 #[serde(rename = "AccountsInvalidResponse")]
1721 AccountsInvalidResponse,
1722 #[serde(rename = "AccountsListEmpty")]
1723 AccountsListEmpty,
1724 #[serde(rename = "AccountsInvalidContentType")]
1725 AccountsInvalidContentType,
1726 #[serde(rename = "IdTokenHttpNotFound")]
1727 IdTokenHttpNotFound,
1728 #[serde(rename = "IdTokenNoResponse")]
1729 IdTokenNoResponse,
1730 #[serde(rename = "IdTokenInvalidResponse")]
1731 IdTokenInvalidResponse,
1732 #[serde(rename = "IdTokenIdpErrorResponse")]
1733 IdTokenIdpErrorResponse,
1734 #[serde(rename = "IdTokenCrossSiteIdpErrorResponse")]
1735 IdTokenCrossSiteIdpErrorResponse,
1736 #[serde(rename = "IdTokenInvalidRequest")]
1737 IdTokenInvalidRequest,
1738 #[serde(rename = "IdTokenInvalidContentType")]
1739 IdTokenInvalidContentType,
1740 #[serde(rename = "ErrorIdToken")]
1741 ErrorIdToken,
1742 #[serde(rename = "Canceled")]
1743 Canceled,
1744 #[serde(rename = "RpPageNotVisible")]
1745 RpPageNotVisible,
1746 #[serde(rename = "SilentMediationFailure")]
1747 SilentMediationFailure,
1748 #[serde(rename = "NotSignedInWithIdp")]
1749 NotSignedInWithIdp,
1750 #[serde(rename = "MissingTransientUserActivation")]
1751 MissingTransientUserActivation,
1752 #[serde(rename = "ReplacedByActiveMode")]
1753 ReplacedByActiveMode,
1754 #[serde(rename = "RelyingPartyOriginIsOpaque")]
1755 RelyingPartyOriginIsOpaque,
1756 #[serde(rename = "TypeNotMatching")]
1757 TypeNotMatching,
1758 #[serde(rename = "UiDismissedNoEmbargo")]
1759 UiDismissedNoEmbargo,
1760 #[serde(rename = "CorsError")]
1761 CorsError,
1762 #[serde(rename = "SuppressedBySegmentationPlatform")]
1763 SuppressedBySegmentationPlatform,
1764}
1765
1766
1767#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1768#[serde(rename_all = "camelCase")]
1769pub struct FederatedAuthUserInfoRequestIssueDetails {
1770 federatedAuthUserInfoRequestIssueReason: FederatedAuthUserInfoRequestIssueReason,
1771}
1772
1773impl FederatedAuthUserInfoRequestIssueDetails {
1774 pub fn builder(federatedAuthUserInfoRequestIssueReason: FederatedAuthUserInfoRequestIssueReason) -> FederatedAuthUserInfoRequestIssueDetailsBuilder {
1775 FederatedAuthUserInfoRequestIssueDetailsBuilder {
1776 federatedAuthUserInfoRequestIssueReason: federatedAuthUserInfoRequestIssueReason,
1777 }
1778 }
1779 pub fn federatedAuthUserInfoRequestIssueReason(&self) -> &FederatedAuthUserInfoRequestIssueReason { &self.federatedAuthUserInfoRequestIssueReason }
1780}
1781
1782
1783pub struct FederatedAuthUserInfoRequestIssueDetailsBuilder {
1784 federatedAuthUserInfoRequestIssueReason: FederatedAuthUserInfoRequestIssueReason,
1785}
1786
1787impl FederatedAuthUserInfoRequestIssueDetailsBuilder {
1788 pub fn build(self) -> FederatedAuthUserInfoRequestIssueDetails {
1789 FederatedAuthUserInfoRequestIssueDetails {
1790 federatedAuthUserInfoRequestIssueReason: self.federatedAuthUserInfoRequestIssueReason,
1791 }
1792 }
1793}
1794
1795#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1800pub enum FederatedAuthUserInfoRequestIssueReason {
1801 #[default]
1802 #[serde(rename = "NotSameOrigin")]
1803 NotSameOrigin,
1804 #[serde(rename = "NotIframe")]
1805 NotIframe,
1806 #[serde(rename = "NotPotentiallyTrustworthy")]
1807 NotPotentiallyTrustworthy,
1808 #[serde(rename = "NoApiPermission")]
1809 NoApiPermission,
1810 #[serde(rename = "NotSignedInWithIdp")]
1811 NotSignedInWithIdp,
1812 #[serde(rename = "NoAccountSharingPermission")]
1813 NoAccountSharingPermission,
1814 #[serde(rename = "InvalidConfigOrWellKnown")]
1815 InvalidConfigOrWellKnown,
1816 #[serde(rename = "InvalidAccountsResponse")]
1817 InvalidAccountsResponse,
1818 #[serde(rename = "NoReturningUserFromFetchedAccounts")]
1819 NoReturningUserFromFetchedAccounts,
1820}
1821
1822#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1826#[serde(rename_all = "camelCase")]
1827pub struct ClientHintIssueDetails<'a> {
1828 sourceCodeLocation: SourceCodeLocation<'a>,
1829 clientHintIssueReason: ClientHintIssueReason,
1830}
1831
1832impl<'a> ClientHintIssueDetails<'a> {
1833 pub fn builder(sourceCodeLocation: SourceCodeLocation<'a>, clientHintIssueReason: ClientHintIssueReason) -> ClientHintIssueDetailsBuilder<'a> {
1834 ClientHintIssueDetailsBuilder {
1835 sourceCodeLocation: sourceCodeLocation,
1836 clientHintIssueReason: clientHintIssueReason,
1837 }
1838 }
1839 pub fn sourceCodeLocation(&self) -> &SourceCodeLocation<'a> { &self.sourceCodeLocation }
1840 pub fn clientHintIssueReason(&self) -> &ClientHintIssueReason { &self.clientHintIssueReason }
1841}
1842
1843
1844pub struct ClientHintIssueDetailsBuilder<'a> {
1845 sourceCodeLocation: SourceCodeLocation<'a>,
1846 clientHintIssueReason: ClientHintIssueReason,
1847}
1848
1849impl<'a> ClientHintIssueDetailsBuilder<'a> {
1850 pub fn build(self) -> ClientHintIssueDetails<'a> {
1851 ClientHintIssueDetails {
1852 sourceCodeLocation: self.sourceCodeLocation,
1853 clientHintIssueReason: self.clientHintIssueReason,
1854 }
1855 }
1856}
1857
1858
1859#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1860#[serde(rename_all = "camelCase")]
1861pub struct FailedRequestInfo<'a> {
1862 url: Cow<'a, str>,
1864 failureMessage: Cow<'a, str>,
1866 #[serde(skip_serializing_if = "Option::is_none")]
1867 requestId: Option<crate::network::RequestId<'a>>,
1868}
1869
1870impl<'a> FailedRequestInfo<'a> {
1871 pub fn builder(url: impl Into<Cow<'a, str>>, failureMessage: impl Into<Cow<'a, str>>) -> FailedRequestInfoBuilder<'a> {
1872 FailedRequestInfoBuilder {
1873 url: url.into(),
1874 failureMessage: failureMessage.into(),
1875 requestId: None,
1876 }
1877 }
1878 pub fn url(&self) -> &str { self.url.as_ref() }
1879 pub fn failureMessage(&self) -> &str { self.failureMessage.as_ref() }
1880 pub fn requestId(&self) -> Option<&crate::network::RequestId<'a>> { self.requestId.as_ref() }
1881}
1882
1883
1884pub struct FailedRequestInfoBuilder<'a> {
1885 url: Cow<'a, str>,
1886 failureMessage: Cow<'a, str>,
1887 requestId: Option<crate::network::RequestId<'a>>,
1888}
1889
1890impl<'a> FailedRequestInfoBuilder<'a> {
1891 pub fn requestId(mut self, requestId: crate::network::RequestId<'a>) -> Self { self.requestId = Some(requestId); self }
1892 pub fn build(self) -> FailedRequestInfo<'a> {
1893 FailedRequestInfo {
1894 url: self.url,
1895 failureMessage: self.failureMessage,
1896 requestId: self.requestId,
1897 }
1898 }
1899}
1900
1901
1902#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1903pub enum PartitioningBlobURLInfo {
1904 #[default]
1905 #[serde(rename = "BlockedCrossPartitionFetching")]
1906 BlockedCrossPartitionFetching,
1907 #[serde(rename = "EnforceNoopenerForNavigation")]
1908 EnforceNoopenerForNavigation,
1909}
1910
1911
1912#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1913#[serde(rename_all = "camelCase")]
1914pub struct PartitioningBlobURLIssueDetails<'a> {
1915 url: Cow<'a, str>,
1917 partitioningBlobURLInfo: PartitioningBlobURLInfo,
1919}
1920
1921impl<'a> PartitioningBlobURLIssueDetails<'a> {
1922 pub fn builder(url: impl Into<Cow<'a, str>>, partitioningBlobURLInfo: PartitioningBlobURLInfo) -> PartitioningBlobURLIssueDetailsBuilder<'a> {
1923 PartitioningBlobURLIssueDetailsBuilder {
1924 url: url.into(),
1925 partitioningBlobURLInfo: partitioningBlobURLInfo,
1926 }
1927 }
1928 pub fn url(&self) -> &str { self.url.as_ref() }
1929 pub fn partitioningBlobURLInfo(&self) -> &PartitioningBlobURLInfo { &self.partitioningBlobURLInfo }
1930}
1931
1932
1933pub struct PartitioningBlobURLIssueDetailsBuilder<'a> {
1934 url: Cow<'a, str>,
1935 partitioningBlobURLInfo: PartitioningBlobURLInfo,
1936}
1937
1938impl<'a> PartitioningBlobURLIssueDetailsBuilder<'a> {
1939 pub fn build(self) -> PartitioningBlobURLIssueDetails<'a> {
1940 PartitioningBlobURLIssueDetails {
1941 url: self.url,
1942 partitioningBlobURLInfo: self.partitioningBlobURLInfo,
1943 }
1944 }
1945}
1946
1947
1948#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1949pub enum ElementAccessibilityIssueReason {
1950 #[default]
1951 #[serde(rename = "DisallowedSelectChild")]
1952 DisallowedSelectChild,
1953 #[serde(rename = "DisallowedOptGroupChild")]
1954 DisallowedOptGroupChild,
1955 #[serde(rename = "NonPhrasingContentOptionChild")]
1956 NonPhrasingContentOptionChild,
1957 #[serde(rename = "InteractiveContentOptionChild")]
1958 InteractiveContentOptionChild,
1959 #[serde(rename = "InteractiveContentLegendChild")]
1960 InteractiveContentLegendChild,
1961 #[serde(rename = "InteractiveContentSummaryDescendant")]
1962 InteractiveContentSummaryDescendant,
1963}
1964
1965#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1968#[serde(rename_all = "camelCase")]
1969pub struct ElementAccessibilityIssueDetails {
1970 nodeId: crate::dom::BackendNodeId,
1971 elementAccessibilityIssueReason: ElementAccessibilityIssueReason,
1972 hasDisallowedAttributes: bool,
1973}
1974
1975impl ElementAccessibilityIssueDetails {
1976 pub fn builder(nodeId: crate::dom::BackendNodeId, elementAccessibilityIssueReason: ElementAccessibilityIssueReason, hasDisallowedAttributes: bool) -> ElementAccessibilityIssueDetailsBuilder {
1977 ElementAccessibilityIssueDetailsBuilder {
1978 nodeId: nodeId,
1979 elementAccessibilityIssueReason: elementAccessibilityIssueReason,
1980 hasDisallowedAttributes: hasDisallowedAttributes,
1981 }
1982 }
1983 pub fn nodeId(&self) -> &crate::dom::BackendNodeId { &self.nodeId }
1984 pub fn elementAccessibilityIssueReason(&self) -> &ElementAccessibilityIssueReason { &self.elementAccessibilityIssueReason }
1985 pub fn hasDisallowedAttributes(&self) -> bool { self.hasDisallowedAttributes }
1986}
1987
1988
1989pub struct ElementAccessibilityIssueDetailsBuilder {
1990 nodeId: crate::dom::BackendNodeId,
1991 elementAccessibilityIssueReason: ElementAccessibilityIssueReason,
1992 hasDisallowedAttributes: bool,
1993}
1994
1995impl ElementAccessibilityIssueDetailsBuilder {
1996 pub fn build(self) -> ElementAccessibilityIssueDetails {
1997 ElementAccessibilityIssueDetails {
1998 nodeId: self.nodeId,
1999 elementAccessibilityIssueReason: self.elementAccessibilityIssueReason,
2000 hasDisallowedAttributes: self.hasDisallowedAttributes,
2001 }
2002 }
2003}
2004
2005
2006#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2007pub enum StyleSheetLoadingIssueReason {
2008 #[default]
2009 #[serde(rename = "LateImportRule")]
2010 LateImportRule,
2011 #[serde(rename = "RequestFailed")]
2012 RequestFailed,
2013}
2014
2015#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2018#[serde(rename_all = "camelCase")]
2019pub struct StylesheetLoadingIssueDetails<'a> {
2020 sourceCodeLocation: SourceCodeLocation<'a>,
2022 styleSheetLoadingIssueReason: StyleSheetLoadingIssueReason,
2024 #[serde(skip_serializing_if = "Option::is_none")]
2026 failedRequestInfo: Option<FailedRequestInfo<'a>>,
2027}
2028
2029impl<'a> StylesheetLoadingIssueDetails<'a> {
2030 pub fn builder(sourceCodeLocation: SourceCodeLocation<'a>, styleSheetLoadingIssueReason: StyleSheetLoadingIssueReason) -> StylesheetLoadingIssueDetailsBuilder<'a> {
2031 StylesheetLoadingIssueDetailsBuilder {
2032 sourceCodeLocation: sourceCodeLocation,
2033 styleSheetLoadingIssueReason: styleSheetLoadingIssueReason,
2034 failedRequestInfo: None,
2035 }
2036 }
2037 pub fn sourceCodeLocation(&self) -> &SourceCodeLocation<'a> { &self.sourceCodeLocation }
2038 pub fn styleSheetLoadingIssueReason(&self) -> &StyleSheetLoadingIssueReason { &self.styleSheetLoadingIssueReason }
2039 pub fn failedRequestInfo(&self) -> Option<&FailedRequestInfo<'a>> { self.failedRequestInfo.as_ref() }
2040}
2041
2042
2043pub struct StylesheetLoadingIssueDetailsBuilder<'a> {
2044 sourceCodeLocation: SourceCodeLocation<'a>,
2045 styleSheetLoadingIssueReason: StyleSheetLoadingIssueReason,
2046 failedRequestInfo: Option<FailedRequestInfo<'a>>,
2047}
2048
2049impl<'a> StylesheetLoadingIssueDetailsBuilder<'a> {
2050 pub fn failedRequestInfo(mut self, failedRequestInfo: FailedRequestInfo<'a>) -> Self { self.failedRequestInfo = Some(failedRequestInfo); self }
2052 pub fn build(self) -> StylesheetLoadingIssueDetails<'a> {
2053 StylesheetLoadingIssueDetails {
2054 sourceCodeLocation: self.sourceCodeLocation,
2055 styleSheetLoadingIssueReason: self.styleSheetLoadingIssueReason,
2056 failedRequestInfo: self.failedRequestInfo,
2057 }
2058 }
2059}
2060
2061
2062#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2063pub enum PropertyRuleIssueReason {
2064 #[default]
2065 #[serde(rename = "InvalidSyntax")]
2066 InvalidSyntax,
2067 #[serde(rename = "InvalidInitialValue")]
2068 InvalidInitialValue,
2069 #[serde(rename = "InvalidInherits")]
2070 InvalidInherits,
2071 #[serde(rename = "InvalidName")]
2072 InvalidName,
2073}
2074
2075#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2079#[serde(rename_all = "camelCase")]
2080pub struct PropertyRuleIssueDetails<'a> {
2081 sourceCodeLocation: SourceCodeLocation<'a>,
2083 propertyRuleIssueReason: PropertyRuleIssueReason,
2085 #[serde(skip_serializing_if = "Option::is_none")]
2087 propertyValue: Option<Cow<'a, str>>,
2088}
2089
2090impl<'a> PropertyRuleIssueDetails<'a> {
2091 pub fn builder(sourceCodeLocation: SourceCodeLocation<'a>, propertyRuleIssueReason: PropertyRuleIssueReason) -> PropertyRuleIssueDetailsBuilder<'a> {
2092 PropertyRuleIssueDetailsBuilder {
2093 sourceCodeLocation: sourceCodeLocation,
2094 propertyRuleIssueReason: propertyRuleIssueReason,
2095 propertyValue: None,
2096 }
2097 }
2098 pub fn sourceCodeLocation(&self) -> &SourceCodeLocation<'a> { &self.sourceCodeLocation }
2099 pub fn propertyRuleIssueReason(&self) -> &PropertyRuleIssueReason { &self.propertyRuleIssueReason }
2100 pub fn propertyValue(&self) -> Option<&str> { self.propertyValue.as_deref() }
2101}
2102
2103
2104pub struct PropertyRuleIssueDetailsBuilder<'a> {
2105 sourceCodeLocation: SourceCodeLocation<'a>,
2106 propertyRuleIssueReason: PropertyRuleIssueReason,
2107 propertyValue: Option<Cow<'a, str>>,
2108}
2109
2110impl<'a> PropertyRuleIssueDetailsBuilder<'a> {
2111 pub fn propertyValue(mut self, propertyValue: impl Into<Cow<'a, str>>) -> Self { self.propertyValue = Some(propertyValue.into()); self }
2113 pub fn build(self) -> PropertyRuleIssueDetails<'a> {
2114 PropertyRuleIssueDetails {
2115 sourceCodeLocation: self.sourceCodeLocation,
2116 propertyRuleIssueReason: self.propertyRuleIssueReason,
2117 propertyValue: self.propertyValue,
2118 }
2119 }
2120}
2121
2122
2123#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2124pub enum UserReidentificationIssueType {
2125 #[default]
2126 #[serde(rename = "BlockedFrameNavigation")]
2127 BlockedFrameNavigation,
2128 #[serde(rename = "BlockedSubresource")]
2129 BlockedSubresource,
2130 #[serde(rename = "NoisedCanvasReadback")]
2131 NoisedCanvasReadback,
2132}
2133
2134#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2138#[serde(rename_all = "camelCase")]
2139pub struct UserReidentificationIssueDetails<'a> {
2140 #[serde(rename = "type")]
2141 type_: UserReidentificationIssueType,
2142 #[serde(skip_serializing_if = "Option::is_none")]
2144 request: Option<AffectedRequest<'a>>,
2145 #[serde(skip_serializing_if = "Option::is_none")]
2147 sourceCodeLocation: Option<SourceCodeLocation<'a>>,
2148}
2149
2150impl<'a> UserReidentificationIssueDetails<'a> {
2151 pub fn builder(type_: UserReidentificationIssueType) -> UserReidentificationIssueDetailsBuilder<'a> {
2152 UserReidentificationIssueDetailsBuilder {
2153 type_: type_,
2154 request: None,
2155 sourceCodeLocation: None,
2156 }
2157 }
2158 pub fn type_(&self) -> &UserReidentificationIssueType { &self.type_ }
2159 pub fn request(&self) -> Option<&AffectedRequest<'a>> { self.request.as_ref() }
2160 pub fn sourceCodeLocation(&self) -> Option<&SourceCodeLocation<'a>> { self.sourceCodeLocation.as_ref() }
2161}
2162
2163
2164pub struct UserReidentificationIssueDetailsBuilder<'a> {
2165 type_: UserReidentificationIssueType,
2166 request: Option<AffectedRequest<'a>>,
2167 sourceCodeLocation: Option<SourceCodeLocation<'a>>,
2168}
2169
2170impl<'a> UserReidentificationIssueDetailsBuilder<'a> {
2171 pub fn request(mut self, request: AffectedRequest<'a>) -> Self { self.request = Some(request); self }
2173 pub fn sourceCodeLocation(mut self, sourceCodeLocation: SourceCodeLocation<'a>) -> Self { self.sourceCodeLocation = Some(sourceCodeLocation); self }
2175 pub fn build(self) -> UserReidentificationIssueDetails<'a> {
2176 UserReidentificationIssueDetails {
2177 type_: self.type_,
2178 request: self.request,
2179 sourceCodeLocation: self.sourceCodeLocation,
2180 }
2181 }
2182}
2183
2184
2185#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2186pub enum PermissionElementIssueType {
2187 #[default]
2188 #[serde(rename = "InvalidType")]
2189 InvalidType,
2190 #[serde(rename = "FencedFrameDisallowed")]
2191 FencedFrameDisallowed,
2192 #[serde(rename = "CspFrameAncestorsMissing")]
2193 CspFrameAncestorsMissing,
2194 #[serde(rename = "PermissionsPolicyBlocked")]
2195 PermissionsPolicyBlocked,
2196 #[serde(rename = "PaddingRightUnsupported")]
2197 PaddingRightUnsupported,
2198 #[serde(rename = "PaddingBottomUnsupported")]
2199 PaddingBottomUnsupported,
2200 #[serde(rename = "InsetBoxShadowUnsupported")]
2201 InsetBoxShadowUnsupported,
2202 #[serde(rename = "RequestInProgress")]
2203 RequestInProgress,
2204 #[serde(rename = "UntrustedEvent")]
2205 UntrustedEvent,
2206 #[serde(rename = "RegistrationFailed")]
2207 RegistrationFailed,
2208 #[serde(rename = "TypeNotSupported")]
2209 TypeNotSupported,
2210 #[serde(rename = "InvalidTypeActivation")]
2211 InvalidTypeActivation,
2212 #[serde(rename = "SecurityChecksFailed")]
2213 SecurityChecksFailed,
2214 #[serde(rename = "ActivationDisabled")]
2215 ActivationDisabled,
2216 #[serde(rename = "GeolocationDeprecated")]
2217 GeolocationDeprecated,
2218 #[serde(rename = "InvalidDisplayStyle")]
2219 InvalidDisplayStyle,
2220 #[serde(rename = "NonOpaqueColor")]
2221 NonOpaqueColor,
2222 #[serde(rename = "LowContrast")]
2223 LowContrast,
2224 #[serde(rename = "FontSizeTooSmall")]
2225 FontSizeTooSmall,
2226 #[serde(rename = "FontSizeTooLarge")]
2227 FontSizeTooLarge,
2228 #[serde(rename = "InvalidSizeValue")]
2229 InvalidSizeValue,
2230}
2231
2232#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2235#[serde(rename_all = "camelCase")]
2236pub struct PermissionElementIssueDetails<'a> {
2237 issueType: PermissionElementIssueType,
2238 #[serde(skip_serializing_if = "Option::is_none", rename = "type")]
2240 type_: Option<Cow<'a, str>>,
2241 #[serde(skip_serializing_if = "Option::is_none")]
2243 nodeId: Option<crate::dom::BackendNodeId>,
2244 #[serde(skip_serializing_if = "Option::is_none")]
2246 isWarning: Option<bool>,
2247 #[serde(skip_serializing_if = "Option::is_none")]
2250 permissionName: Option<Cow<'a, str>>,
2251 #[serde(skip_serializing_if = "Option::is_none")]
2253 occluderNodeInfo: Option<Cow<'a, str>>,
2254 #[serde(skip_serializing_if = "Option::is_none")]
2256 occluderParentNodeInfo: Option<Cow<'a, str>>,
2257 #[serde(skip_serializing_if = "Option::is_none")]
2259 disableReason: Option<Cow<'a, str>>,
2260}
2261
2262impl<'a> PermissionElementIssueDetails<'a> {
2263 pub fn builder(issueType: PermissionElementIssueType) -> PermissionElementIssueDetailsBuilder<'a> {
2264 PermissionElementIssueDetailsBuilder {
2265 issueType: issueType,
2266 type_: None,
2267 nodeId: None,
2268 isWarning: None,
2269 permissionName: None,
2270 occluderNodeInfo: None,
2271 occluderParentNodeInfo: None,
2272 disableReason: None,
2273 }
2274 }
2275 pub fn issueType(&self) -> &PermissionElementIssueType { &self.issueType }
2276 pub fn type_(&self) -> Option<&str> { self.type_.as_deref() }
2277 pub fn nodeId(&self) -> Option<&crate::dom::BackendNodeId> { self.nodeId.as_ref() }
2278 pub fn isWarning(&self) -> Option<bool> { self.isWarning }
2279 pub fn permissionName(&self) -> Option<&str> { self.permissionName.as_deref() }
2280 pub fn occluderNodeInfo(&self) -> Option<&str> { self.occluderNodeInfo.as_deref() }
2281 pub fn occluderParentNodeInfo(&self) -> Option<&str> { self.occluderParentNodeInfo.as_deref() }
2282 pub fn disableReason(&self) -> Option<&str> { self.disableReason.as_deref() }
2283}
2284
2285
2286pub struct PermissionElementIssueDetailsBuilder<'a> {
2287 issueType: PermissionElementIssueType,
2288 type_: Option<Cow<'a, str>>,
2289 nodeId: Option<crate::dom::BackendNodeId>,
2290 isWarning: Option<bool>,
2291 permissionName: Option<Cow<'a, str>>,
2292 occluderNodeInfo: Option<Cow<'a, str>>,
2293 occluderParentNodeInfo: Option<Cow<'a, str>>,
2294 disableReason: Option<Cow<'a, str>>,
2295}
2296
2297impl<'a> PermissionElementIssueDetailsBuilder<'a> {
2298 pub fn type_(mut self, type_: impl Into<Cow<'a, str>>) -> Self { self.type_ = Some(type_.into()); self }
2300 pub fn nodeId(mut self, nodeId: crate::dom::BackendNodeId) -> Self { self.nodeId = Some(nodeId); self }
2302 pub fn isWarning(mut self, isWarning: bool) -> Self { self.isWarning = Some(isWarning); self }
2304 pub fn permissionName(mut self, permissionName: impl Into<Cow<'a, str>>) -> Self { self.permissionName = Some(permissionName.into()); self }
2307 pub fn occluderNodeInfo(mut self, occluderNodeInfo: impl Into<Cow<'a, str>>) -> Self { self.occluderNodeInfo = Some(occluderNodeInfo.into()); self }
2309 pub fn occluderParentNodeInfo(mut self, occluderParentNodeInfo: impl Into<Cow<'a, str>>) -> Self { self.occluderParentNodeInfo = Some(occluderParentNodeInfo.into()); self }
2311 pub fn disableReason(mut self, disableReason: impl Into<Cow<'a, str>>) -> Self { self.disableReason = Some(disableReason.into()); self }
2313 pub fn build(self) -> PermissionElementIssueDetails<'a> {
2314 PermissionElementIssueDetails {
2315 issueType: self.issueType,
2316 type_: self.type_,
2317 nodeId: self.nodeId,
2318 isWarning: self.isWarning,
2319 permissionName: self.permissionName,
2320 occluderNodeInfo: self.occluderNodeInfo,
2321 occluderParentNodeInfo: self.occluderParentNodeInfo,
2322 disableReason: self.disableReason,
2323 }
2324 }
2325}
2326
2327#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2331#[serde(rename_all = "camelCase")]
2332pub struct SelectivePermissionsInterventionIssueDetails<'a> {
2333 apiName: Cow<'a, str>,
2335 adAncestry: crate::network::AdAncestry<'a>,
2337 #[serde(skip_serializing_if = "Option::is_none")]
2339 stackTrace: Option<crate::runtime::StackTrace>,
2340}
2341
2342impl<'a> SelectivePermissionsInterventionIssueDetails<'a> {
2343 pub fn builder(apiName: impl Into<Cow<'a, str>>, adAncestry: crate::network::AdAncestry<'a>) -> SelectivePermissionsInterventionIssueDetailsBuilder<'a> {
2344 SelectivePermissionsInterventionIssueDetailsBuilder {
2345 apiName: apiName.into(),
2346 adAncestry: adAncestry,
2347 stackTrace: None,
2348 }
2349 }
2350 pub fn apiName(&self) -> &str { self.apiName.as_ref() }
2351 pub fn adAncestry(&self) -> &crate::network::AdAncestry<'a> { &self.adAncestry }
2352 pub fn stackTrace(&self) -> Option<&crate::runtime::StackTrace> { self.stackTrace.as_ref() }
2353}
2354
2355
2356pub struct SelectivePermissionsInterventionIssueDetailsBuilder<'a> {
2357 apiName: Cow<'a, str>,
2358 adAncestry: crate::network::AdAncestry<'a>,
2359 stackTrace: Option<crate::runtime::StackTrace>,
2360}
2361
2362impl<'a> SelectivePermissionsInterventionIssueDetailsBuilder<'a> {
2363 pub fn stackTrace(mut self, stackTrace: crate::runtime::StackTrace) -> Self { self.stackTrace = Some(stackTrace); self }
2365 pub fn build(self) -> SelectivePermissionsInterventionIssueDetails<'a> {
2366 SelectivePermissionsInterventionIssueDetails {
2367 apiName: self.apiName,
2368 adAncestry: self.adAncestry,
2369 stackTrace: self.stackTrace,
2370 }
2371 }
2372}
2373
2374#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2379pub enum InspectorIssueCode {
2380 #[default]
2381 #[serde(rename = "CookieIssue")]
2382 CookieIssue,
2383 #[serde(rename = "MixedContentIssue")]
2384 MixedContentIssue,
2385 #[serde(rename = "BlockedByResponseIssue")]
2386 BlockedByResponseIssue,
2387 #[serde(rename = "HeavyAdIssue")]
2388 HeavyAdIssue,
2389 #[serde(rename = "ContentSecurityPolicyIssue")]
2390 ContentSecurityPolicyIssue,
2391 #[serde(rename = "SharedArrayBufferIssue")]
2392 SharedArrayBufferIssue,
2393 #[serde(rename = "CorsIssue")]
2394 CorsIssue,
2395 #[serde(rename = "AttributionReportingIssue")]
2396 AttributionReportingIssue,
2397 #[serde(rename = "QuirksModeIssue")]
2398 QuirksModeIssue,
2399 #[serde(rename = "PartitioningBlobURLIssue")]
2400 PartitioningBlobURLIssue,
2401 #[serde(rename = "NavigatorUserAgentIssue")]
2402 NavigatorUserAgentIssue,
2403 #[serde(rename = "GenericIssue")]
2404 GenericIssue,
2405 #[serde(rename = "DeprecationIssue")]
2406 DeprecationIssue,
2407 #[serde(rename = "ClientHintIssue")]
2408 ClientHintIssue,
2409 #[serde(rename = "FederatedAuthRequestIssue")]
2410 FederatedAuthRequestIssue,
2411 #[serde(rename = "BounceTrackingIssue")]
2412 BounceTrackingIssue,
2413 #[serde(rename = "CookieDeprecationMetadataIssue")]
2414 CookieDeprecationMetadataIssue,
2415 #[serde(rename = "StylesheetLoadingIssue")]
2416 StylesheetLoadingIssue,
2417 #[serde(rename = "FederatedAuthUserInfoRequestIssue")]
2418 FederatedAuthUserInfoRequestIssue,
2419 #[serde(rename = "PropertyRuleIssue")]
2420 PropertyRuleIssue,
2421 #[serde(rename = "SharedDictionaryIssue")]
2422 SharedDictionaryIssue,
2423 #[serde(rename = "ElementAccessibilityIssue")]
2424 ElementAccessibilityIssue,
2425 #[serde(rename = "SRIMessageSignatureIssue")]
2426 SRIMessageSignatureIssue,
2427 #[serde(rename = "UnencodedDigestIssue")]
2428 UnencodedDigestIssue,
2429 #[serde(rename = "ConnectionAllowlistIssue")]
2430 ConnectionAllowlistIssue,
2431 #[serde(rename = "UserReidentificationIssue")]
2432 UserReidentificationIssue,
2433 #[serde(rename = "PermissionElementIssue")]
2434 PermissionElementIssue,
2435 #[serde(rename = "PerformanceIssue")]
2436 PerformanceIssue,
2437 #[serde(rename = "SelectivePermissionsInterventionIssue")]
2438 SelectivePermissionsInterventionIssue,
2439}
2440
2441#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2446#[serde(rename_all = "camelCase")]
2447pub struct InspectorIssueDetails<'a> {
2448 #[serde(skip_serializing_if = "Option::is_none")]
2449 cookieIssueDetails: Option<CookieIssueDetails<'a>>,
2450 #[serde(skip_serializing_if = "Option::is_none")]
2451 mixedContentIssueDetails: Option<MixedContentIssueDetails<'a>>,
2452 #[serde(skip_serializing_if = "Option::is_none")]
2453 blockedByResponseIssueDetails: Option<BlockedByResponseIssueDetails<'a>>,
2454 #[serde(skip_serializing_if = "Option::is_none")]
2455 heavyAdIssueDetails: Option<HeavyAdIssueDetails<'a>>,
2456 #[serde(skip_serializing_if = "Option::is_none")]
2457 contentSecurityPolicyIssueDetails: Option<ContentSecurityPolicyIssueDetails<'a>>,
2458 #[serde(skip_serializing_if = "Option::is_none")]
2459 sharedArrayBufferIssueDetails: Option<SharedArrayBufferIssueDetails<'a>>,
2460 #[serde(skip_serializing_if = "Option::is_none")]
2461 corsIssueDetails: Option<CorsIssueDetails<'a>>,
2462 #[serde(skip_serializing_if = "Option::is_none")]
2463 attributionReportingIssueDetails: Option<AttributionReportingIssueDetails<'a>>,
2464 #[serde(skip_serializing_if = "Option::is_none")]
2465 quirksModeIssueDetails: Option<QuirksModeIssueDetails<'a>>,
2466 #[serde(skip_serializing_if = "Option::is_none")]
2467 partitioningBlobURLIssueDetails: Option<PartitioningBlobURLIssueDetails<'a>>,
2468 #[serde(skip_serializing_if = "Option::is_none")]
2469 navigatorUserAgentIssueDetails: Option<NavigatorUserAgentIssueDetails<'a>>,
2470 #[serde(skip_serializing_if = "Option::is_none")]
2471 genericIssueDetails: Option<GenericIssueDetails<'a>>,
2472 #[serde(skip_serializing_if = "Option::is_none")]
2473 deprecationIssueDetails: Option<DeprecationIssueDetails<'a>>,
2474 #[serde(skip_serializing_if = "Option::is_none")]
2475 clientHintIssueDetails: Option<ClientHintIssueDetails<'a>>,
2476 #[serde(skip_serializing_if = "Option::is_none")]
2477 federatedAuthRequestIssueDetails: Option<FederatedAuthRequestIssueDetails>,
2478 #[serde(skip_serializing_if = "Option::is_none")]
2479 bounceTrackingIssueDetails: Option<BounceTrackingIssueDetails<'a>>,
2480 #[serde(skip_serializing_if = "Option::is_none")]
2481 cookieDeprecationMetadataIssueDetails: Option<CookieDeprecationMetadataIssueDetails<'a>>,
2482 #[serde(skip_serializing_if = "Option::is_none")]
2483 stylesheetLoadingIssueDetails: Option<StylesheetLoadingIssueDetails<'a>>,
2484 #[serde(skip_serializing_if = "Option::is_none")]
2485 propertyRuleIssueDetails: Option<PropertyRuleIssueDetails<'a>>,
2486 #[serde(skip_serializing_if = "Option::is_none")]
2487 federatedAuthUserInfoRequestIssueDetails: Option<FederatedAuthUserInfoRequestIssueDetails>,
2488 #[serde(skip_serializing_if = "Option::is_none")]
2489 sharedDictionaryIssueDetails: Option<SharedDictionaryIssueDetails<'a>>,
2490 #[serde(skip_serializing_if = "Option::is_none")]
2491 elementAccessibilityIssueDetails: Option<ElementAccessibilityIssueDetails>,
2492 #[serde(skip_serializing_if = "Option::is_none")]
2493 sriMessageSignatureIssueDetails: Option<SRIMessageSignatureIssueDetails<'a>>,
2494 #[serde(skip_serializing_if = "Option::is_none")]
2495 unencodedDigestIssueDetails: Option<UnencodedDigestIssueDetails<'a>>,
2496 #[serde(skip_serializing_if = "Option::is_none")]
2497 connectionAllowlistIssueDetails: Option<ConnectionAllowlistIssueDetails<'a>>,
2498 #[serde(skip_serializing_if = "Option::is_none")]
2499 userReidentificationIssueDetails: Option<UserReidentificationIssueDetails<'a>>,
2500 #[serde(skip_serializing_if = "Option::is_none")]
2501 permissionElementIssueDetails: Option<PermissionElementIssueDetails<'a>>,
2502 #[serde(skip_serializing_if = "Option::is_none")]
2503 performanceIssueDetails: Option<PerformanceIssueDetails<'a>>,
2504 #[serde(skip_serializing_if = "Option::is_none")]
2505 selectivePermissionsInterventionIssueDetails: Option<SelectivePermissionsInterventionIssueDetails<'a>>,
2506}
2507
2508impl<'a> InspectorIssueDetails<'a> {
2509 pub fn builder() -> InspectorIssueDetailsBuilder<'a> {
2510 InspectorIssueDetailsBuilder {
2511 cookieIssueDetails: None,
2512 mixedContentIssueDetails: None,
2513 blockedByResponseIssueDetails: None,
2514 heavyAdIssueDetails: None,
2515 contentSecurityPolicyIssueDetails: None,
2516 sharedArrayBufferIssueDetails: None,
2517 corsIssueDetails: None,
2518 attributionReportingIssueDetails: None,
2519 quirksModeIssueDetails: None,
2520 partitioningBlobURLIssueDetails: None,
2521 navigatorUserAgentIssueDetails: None,
2522 genericIssueDetails: None,
2523 deprecationIssueDetails: None,
2524 clientHintIssueDetails: None,
2525 federatedAuthRequestIssueDetails: None,
2526 bounceTrackingIssueDetails: None,
2527 cookieDeprecationMetadataIssueDetails: None,
2528 stylesheetLoadingIssueDetails: None,
2529 propertyRuleIssueDetails: None,
2530 federatedAuthUserInfoRequestIssueDetails: None,
2531 sharedDictionaryIssueDetails: None,
2532 elementAccessibilityIssueDetails: None,
2533 sriMessageSignatureIssueDetails: None,
2534 unencodedDigestIssueDetails: None,
2535 connectionAllowlistIssueDetails: None,
2536 userReidentificationIssueDetails: None,
2537 permissionElementIssueDetails: None,
2538 performanceIssueDetails: None,
2539 selectivePermissionsInterventionIssueDetails: None,
2540 }
2541 }
2542 pub fn cookieIssueDetails(&self) -> Option<&CookieIssueDetails<'a>> { self.cookieIssueDetails.as_ref() }
2543 pub fn mixedContentIssueDetails(&self) -> Option<&MixedContentIssueDetails<'a>> { self.mixedContentIssueDetails.as_ref() }
2544 pub fn blockedByResponseIssueDetails(&self) -> Option<&BlockedByResponseIssueDetails<'a>> { self.blockedByResponseIssueDetails.as_ref() }
2545 pub fn heavyAdIssueDetails(&self) -> Option<&HeavyAdIssueDetails<'a>> { self.heavyAdIssueDetails.as_ref() }
2546 pub fn contentSecurityPolicyIssueDetails(&self) -> Option<&ContentSecurityPolicyIssueDetails<'a>> { self.contentSecurityPolicyIssueDetails.as_ref() }
2547 pub fn sharedArrayBufferIssueDetails(&self) -> Option<&SharedArrayBufferIssueDetails<'a>> { self.sharedArrayBufferIssueDetails.as_ref() }
2548 pub fn corsIssueDetails(&self) -> Option<&CorsIssueDetails<'a>> { self.corsIssueDetails.as_ref() }
2549 pub fn attributionReportingIssueDetails(&self) -> Option<&AttributionReportingIssueDetails<'a>> { self.attributionReportingIssueDetails.as_ref() }
2550 pub fn quirksModeIssueDetails(&self) -> Option<&QuirksModeIssueDetails<'a>> { self.quirksModeIssueDetails.as_ref() }
2551 pub fn partitioningBlobURLIssueDetails(&self) -> Option<&PartitioningBlobURLIssueDetails<'a>> { self.partitioningBlobURLIssueDetails.as_ref() }
2552 pub fn navigatorUserAgentIssueDetails(&self) -> Option<&NavigatorUserAgentIssueDetails<'a>> { self.navigatorUserAgentIssueDetails.as_ref() }
2553 pub fn genericIssueDetails(&self) -> Option<&GenericIssueDetails<'a>> { self.genericIssueDetails.as_ref() }
2554 pub fn deprecationIssueDetails(&self) -> Option<&DeprecationIssueDetails<'a>> { self.deprecationIssueDetails.as_ref() }
2555 pub fn clientHintIssueDetails(&self) -> Option<&ClientHintIssueDetails<'a>> { self.clientHintIssueDetails.as_ref() }
2556 pub fn federatedAuthRequestIssueDetails(&self) -> Option<&FederatedAuthRequestIssueDetails> { self.federatedAuthRequestIssueDetails.as_ref() }
2557 pub fn bounceTrackingIssueDetails(&self) -> Option<&BounceTrackingIssueDetails<'a>> { self.bounceTrackingIssueDetails.as_ref() }
2558 pub fn cookieDeprecationMetadataIssueDetails(&self) -> Option<&CookieDeprecationMetadataIssueDetails<'a>> { self.cookieDeprecationMetadataIssueDetails.as_ref() }
2559 pub fn stylesheetLoadingIssueDetails(&self) -> Option<&StylesheetLoadingIssueDetails<'a>> { self.stylesheetLoadingIssueDetails.as_ref() }
2560 pub fn propertyRuleIssueDetails(&self) -> Option<&PropertyRuleIssueDetails<'a>> { self.propertyRuleIssueDetails.as_ref() }
2561 pub fn federatedAuthUserInfoRequestIssueDetails(&self) -> Option<&FederatedAuthUserInfoRequestIssueDetails> { self.federatedAuthUserInfoRequestIssueDetails.as_ref() }
2562 pub fn sharedDictionaryIssueDetails(&self) -> Option<&SharedDictionaryIssueDetails<'a>> { self.sharedDictionaryIssueDetails.as_ref() }
2563 pub fn elementAccessibilityIssueDetails(&self) -> Option<&ElementAccessibilityIssueDetails> { self.elementAccessibilityIssueDetails.as_ref() }
2564 pub fn sriMessageSignatureIssueDetails(&self) -> Option<&SRIMessageSignatureIssueDetails<'a>> { self.sriMessageSignatureIssueDetails.as_ref() }
2565 pub fn unencodedDigestIssueDetails(&self) -> Option<&UnencodedDigestIssueDetails<'a>> { self.unencodedDigestIssueDetails.as_ref() }
2566 pub fn connectionAllowlistIssueDetails(&self) -> Option<&ConnectionAllowlistIssueDetails<'a>> { self.connectionAllowlistIssueDetails.as_ref() }
2567 pub fn userReidentificationIssueDetails(&self) -> Option<&UserReidentificationIssueDetails<'a>> { self.userReidentificationIssueDetails.as_ref() }
2568 pub fn permissionElementIssueDetails(&self) -> Option<&PermissionElementIssueDetails<'a>> { self.permissionElementIssueDetails.as_ref() }
2569 pub fn performanceIssueDetails(&self) -> Option<&PerformanceIssueDetails<'a>> { self.performanceIssueDetails.as_ref() }
2570 pub fn selectivePermissionsInterventionIssueDetails(&self) -> Option<&SelectivePermissionsInterventionIssueDetails<'a>> { self.selectivePermissionsInterventionIssueDetails.as_ref() }
2571}
2572
2573#[derive(Default)]
2574pub struct InspectorIssueDetailsBuilder<'a> {
2575 cookieIssueDetails: Option<CookieIssueDetails<'a>>,
2576 mixedContentIssueDetails: Option<MixedContentIssueDetails<'a>>,
2577 blockedByResponseIssueDetails: Option<BlockedByResponseIssueDetails<'a>>,
2578 heavyAdIssueDetails: Option<HeavyAdIssueDetails<'a>>,
2579 contentSecurityPolicyIssueDetails: Option<ContentSecurityPolicyIssueDetails<'a>>,
2580 sharedArrayBufferIssueDetails: Option<SharedArrayBufferIssueDetails<'a>>,
2581 corsIssueDetails: Option<CorsIssueDetails<'a>>,
2582 attributionReportingIssueDetails: Option<AttributionReportingIssueDetails<'a>>,
2583 quirksModeIssueDetails: Option<QuirksModeIssueDetails<'a>>,
2584 partitioningBlobURLIssueDetails: Option<PartitioningBlobURLIssueDetails<'a>>,
2585 navigatorUserAgentIssueDetails: Option<NavigatorUserAgentIssueDetails<'a>>,
2586 genericIssueDetails: Option<GenericIssueDetails<'a>>,
2587 deprecationIssueDetails: Option<DeprecationIssueDetails<'a>>,
2588 clientHintIssueDetails: Option<ClientHintIssueDetails<'a>>,
2589 federatedAuthRequestIssueDetails: Option<FederatedAuthRequestIssueDetails>,
2590 bounceTrackingIssueDetails: Option<BounceTrackingIssueDetails<'a>>,
2591 cookieDeprecationMetadataIssueDetails: Option<CookieDeprecationMetadataIssueDetails<'a>>,
2592 stylesheetLoadingIssueDetails: Option<StylesheetLoadingIssueDetails<'a>>,
2593 propertyRuleIssueDetails: Option<PropertyRuleIssueDetails<'a>>,
2594 federatedAuthUserInfoRequestIssueDetails: Option<FederatedAuthUserInfoRequestIssueDetails>,
2595 sharedDictionaryIssueDetails: Option<SharedDictionaryIssueDetails<'a>>,
2596 elementAccessibilityIssueDetails: Option<ElementAccessibilityIssueDetails>,
2597 sriMessageSignatureIssueDetails: Option<SRIMessageSignatureIssueDetails<'a>>,
2598 unencodedDigestIssueDetails: Option<UnencodedDigestIssueDetails<'a>>,
2599 connectionAllowlistIssueDetails: Option<ConnectionAllowlistIssueDetails<'a>>,
2600 userReidentificationIssueDetails: Option<UserReidentificationIssueDetails<'a>>,
2601 permissionElementIssueDetails: Option<PermissionElementIssueDetails<'a>>,
2602 performanceIssueDetails: Option<PerformanceIssueDetails<'a>>,
2603 selectivePermissionsInterventionIssueDetails: Option<SelectivePermissionsInterventionIssueDetails<'a>>,
2604}
2605
2606impl<'a> InspectorIssueDetailsBuilder<'a> {
2607 pub fn cookieIssueDetails(mut self, cookieIssueDetails: CookieIssueDetails<'a>) -> Self { self.cookieIssueDetails = Some(cookieIssueDetails); self }
2608 pub fn mixedContentIssueDetails(mut self, mixedContentIssueDetails: MixedContentIssueDetails<'a>) -> Self { self.mixedContentIssueDetails = Some(mixedContentIssueDetails); self }
2609 pub fn blockedByResponseIssueDetails(mut self, blockedByResponseIssueDetails: BlockedByResponseIssueDetails<'a>) -> Self { self.blockedByResponseIssueDetails = Some(blockedByResponseIssueDetails); self }
2610 pub fn heavyAdIssueDetails(mut self, heavyAdIssueDetails: HeavyAdIssueDetails<'a>) -> Self { self.heavyAdIssueDetails = Some(heavyAdIssueDetails); self }
2611 pub fn contentSecurityPolicyIssueDetails(mut self, contentSecurityPolicyIssueDetails: ContentSecurityPolicyIssueDetails<'a>) -> Self { self.contentSecurityPolicyIssueDetails = Some(contentSecurityPolicyIssueDetails); self }
2612 pub fn sharedArrayBufferIssueDetails(mut self, sharedArrayBufferIssueDetails: SharedArrayBufferIssueDetails<'a>) -> Self { self.sharedArrayBufferIssueDetails = Some(sharedArrayBufferIssueDetails); self }
2613 pub fn corsIssueDetails(mut self, corsIssueDetails: CorsIssueDetails<'a>) -> Self { self.corsIssueDetails = Some(corsIssueDetails); self }
2614 pub fn attributionReportingIssueDetails(mut self, attributionReportingIssueDetails: AttributionReportingIssueDetails<'a>) -> Self { self.attributionReportingIssueDetails = Some(attributionReportingIssueDetails); self }
2615 pub fn quirksModeIssueDetails(mut self, quirksModeIssueDetails: QuirksModeIssueDetails<'a>) -> Self { self.quirksModeIssueDetails = Some(quirksModeIssueDetails); self }
2616 pub fn partitioningBlobURLIssueDetails(mut self, partitioningBlobURLIssueDetails: PartitioningBlobURLIssueDetails<'a>) -> Self { self.partitioningBlobURLIssueDetails = Some(partitioningBlobURLIssueDetails); self }
2617 pub fn navigatorUserAgentIssueDetails(mut self, navigatorUserAgentIssueDetails: NavigatorUserAgentIssueDetails<'a>) -> Self { self.navigatorUserAgentIssueDetails = Some(navigatorUserAgentIssueDetails); self }
2618 pub fn genericIssueDetails(mut self, genericIssueDetails: GenericIssueDetails<'a>) -> Self { self.genericIssueDetails = Some(genericIssueDetails); self }
2619 pub fn deprecationIssueDetails(mut self, deprecationIssueDetails: DeprecationIssueDetails<'a>) -> Self { self.deprecationIssueDetails = Some(deprecationIssueDetails); self }
2620 pub fn clientHintIssueDetails(mut self, clientHintIssueDetails: ClientHintIssueDetails<'a>) -> Self { self.clientHintIssueDetails = Some(clientHintIssueDetails); self }
2621 pub fn federatedAuthRequestIssueDetails(mut self, federatedAuthRequestIssueDetails: FederatedAuthRequestIssueDetails) -> Self { self.federatedAuthRequestIssueDetails = Some(federatedAuthRequestIssueDetails); self }
2622 pub fn bounceTrackingIssueDetails(mut self, bounceTrackingIssueDetails: BounceTrackingIssueDetails<'a>) -> Self { self.bounceTrackingIssueDetails = Some(bounceTrackingIssueDetails); self }
2623 pub fn cookieDeprecationMetadataIssueDetails(mut self, cookieDeprecationMetadataIssueDetails: CookieDeprecationMetadataIssueDetails<'a>) -> Self { self.cookieDeprecationMetadataIssueDetails = Some(cookieDeprecationMetadataIssueDetails); self }
2624 pub fn stylesheetLoadingIssueDetails(mut self, stylesheetLoadingIssueDetails: StylesheetLoadingIssueDetails<'a>) -> Self { self.stylesheetLoadingIssueDetails = Some(stylesheetLoadingIssueDetails); self }
2625 pub fn propertyRuleIssueDetails(mut self, propertyRuleIssueDetails: PropertyRuleIssueDetails<'a>) -> Self { self.propertyRuleIssueDetails = Some(propertyRuleIssueDetails); self }
2626 pub fn federatedAuthUserInfoRequestIssueDetails(mut self, federatedAuthUserInfoRequestIssueDetails: FederatedAuthUserInfoRequestIssueDetails) -> Self { self.federatedAuthUserInfoRequestIssueDetails = Some(federatedAuthUserInfoRequestIssueDetails); self }
2627 pub fn sharedDictionaryIssueDetails(mut self, sharedDictionaryIssueDetails: SharedDictionaryIssueDetails<'a>) -> Self { self.sharedDictionaryIssueDetails = Some(sharedDictionaryIssueDetails); self }
2628 pub fn elementAccessibilityIssueDetails(mut self, elementAccessibilityIssueDetails: ElementAccessibilityIssueDetails) -> Self { self.elementAccessibilityIssueDetails = Some(elementAccessibilityIssueDetails); self }
2629 pub fn sriMessageSignatureIssueDetails(mut self, sriMessageSignatureIssueDetails: SRIMessageSignatureIssueDetails<'a>) -> Self { self.sriMessageSignatureIssueDetails = Some(sriMessageSignatureIssueDetails); self }
2630 pub fn unencodedDigestIssueDetails(mut self, unencodedDigestIssueDetails: UnencodedDigestIssueDetails<'a>) -> Self { self.unencodedDigestIssueDetails = Some(unencodedDigestIssueDetails); self }
2631 pub fn connectionAllowlistIssueDetails(mut self, connectionAllowlistIssueDetails: ConnectionAllowlistIssueDetails<'a>) -> Self { self.connectionAllowlistIssueDetails = Some(connectionAllowlistIssueDetails); self }
2632 pub fn userReidentificationIssueDetails(mut self, userReidentificationIssueDetails: UserReidentificationIssueDetails<'a>) -> Self { self.userReidentificationIssueDetails = Some(userReidentificationIssueDetails); self }
2633 pub fn permissionElementIssueDetails(mut self, permissionElementIssueDetails: PermissionElementIssueDetails<'a>) -> Self { self.permissionElementIssueDetails = Some(permissionElementIssueDetails); self }
2634 pub fn performanceIssueDetails(mut self, performanceIssueDetails: PerformanceIssueDetails<'a>) -> Self { self.performanceIssueDetails = Some(performanceIssueDetails); self }
2635 pub fn selectivePermissionsInterventionIssueDetails(mut self, selectivePermissionsInterventionIssueDetails: SelectivePermissionsInterventionIssueDetails<'a>) -> Self { self.selectivePermissionsInterventionIssueDetails = Some(selectivePermissionsInterventionIssueDetails); self }
2636 pub fn build(self) -> InspectorIssueDetails<'a> {
2637 InspectorIssueDetails {
2638 cookieIssueDetails: self.cookieIssueDetails,
2639 mixedContentIssueDetails: self.mixedContentIssueDetails,
2640 blockedByResponseIssueDetails: self.blockedByResponseIssueDetails,
2641 heavyAdIssueDetails: self.heavyAdIssueDetails,
2642 contentSecurityPolicyIssueDetails: self.contentSecurityPolicyIssueDetails,
2643 sharedArrayBufferIssueDetails: self.sharedArrayBufferIssueDetails,
2644 corsIssueDetails: self.corsIssueDetails,
2645 attributionReportingIssueDetails: self.attributionReportingIssueDetails,
2646 quirksModeIssueDetails: self.quirksModeIssueDetails,
2647 partitioningBlobURLIssueDetails: self.partitioningBlobURLIssueDetails,
2648 navigatorUserAgentIssueDetails: self.navigatorUserAgentIssueDetails,
2649 genericIssueDetails: self.genericIssueDetails,
2650 deprecationIssueDetails: self.deprecationIssueDetails,
2651 clientHintIssueDetails: self.clientHintIssueDetails,
2652 federatedAuthRequestIssueDetails: self.federatedAuthRequestIssueDetails,
2653 bounceTrackingIssueDetails: self.bounceTrackingIssueDetails,
2654 cookieDeprecationMetadataIssueDetails: self.cookieDeprecationMetadataIssueDetails,
2655 stylesheetLoadingIssueDetails: self.stylesheetLoadingIssueDetails,
2656 propertyRuleIssueDetails: self.propertyRuleIssueDetails,
2657 federatedAuthUserInfoRequestIssueDetails: self.federatedAuthUserInfoRequestIssueDetails,
2658 sharedDictionaryIssueDetails: self.sharedDictionaryIssueDetails,
2659 elementAccessibilityIssueDetails: self.elementAccessibilityIssueDetails,
2660 sriMessageSignatureIssueDetails: self.sriMessageSignatureIssueDetails,
2661 unencodedDigestIssueDetails: self.unencodedDigestIssueDetails,
2662 connectionAllowlistIssueDetails: self.connectionAllowlistIssueDetails,
2663 userReidentificationIssueDetails: self.userReidentificationIssueDetails,
2664 permissionElementIssueDetails: self.permissionElementIssueDetails,
2665 performanceIssueDetails: self.performanceIssueDetails,
2666 selectivePermissionsInterventionIssueDetails: self.selectivePermissionsInterventionIssueDetails,
2667 }
2668 }
2669}
2670
2671pub type IssueId<'a> = Cow<'a, str>;
2675
2676#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2679#[serde(rename_all = "camelCase")]
2680pub struct InspectorIssue<'a> {
2681 code: InspectorIssueCode,
2682 details: InspectorIssueDetails<'a>,
2683 #[serde(skip_serializing_if = "Option::is_none")]
2686 issueId: Option<IssueId<'a>>,
2687}
2688
2689impl<'a> InspectorIssue<'a> {
2690 pub fn builder(code: InspectorIssueCode, details: InspectorIssueDetails<'a>) -> InspectorIssueBuilder<'a> {
2691 InspectorIssueBuilder {
2692 code: code,
2693 details: details,
2694 issueId: None,
2695 }
2696 }
2697 pub fn code(&self) -> &InspectorIssueCode { &self.code }
2698 pub fn details(&self) -> &InspectorIssueDetails<'a> { &self.details }
2699 pub fn issueId(&self) -> Option<&IssueId<'a>> { self.issueId.as_ref() }
2700}
2701
2702
2703pub struct InspectorIssueBuilder<'a> {
2704 code: InspectorIssueCode,
2705 details: InspectorIssueDetails<'a>,
2706 issueId: Option<IssueId<'a>>,
2707}
2708
2709impl<'a> InspectorIssueBuilder<'a> {
2710 pub fn issueId(mut self, issueId: IssueId<'a>) -> Self { self.issueId = Some(issueId); self }
2713 pub fn build(self) -> InspectorIssue<'a> {
2714 InspectorIssue {
2715 code: self.code,
2716 details: self.details,
2717 issueId: self.issueId,
2718 }
2719 }
2720}
2721
2722#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2726#[serde(rename_all = "camelCase")]
2727pub struct GetEncodedResponseParams<'a> {
2728 requestId: crate::network::RequestId<'a>,
2730 encoding: Cow<'a, str>,
2732 #[serde(skip_serializing_if = "Option::is_none")]
2734 quality: Option<f64>,
2735 #[serde(skip_serializing_if = "Option::is_none")]
2737 sizeOnly: Option<bool>,
2738}
2739
2740impl<'a> GetEncodedResponseParams<'a> {
2741 pub fn builder(requestId: crate::network::RequestId<'a>, encoding: impl Into<Cow<'a, str>>) -> GetEncodedResponseParamsBuilder<'a> {
2742 GetEncodedResponseParamsBuilder {
2743 requestId: requestId,
2744 encoding: encoding.into(),
2745 quality: None,
2746 sizeOnly: None,
2747 }
2748 }
2749 pub fn requestId(&self) -> &crate::network::RequestId<'a> { &self.requestId }
2750 pub fn encoding(&self) -> &str { self.encoding.as_ref() }
2751 pub fn quality(&self) -> Option<f64> { self.quality }
2752 pub fn sizeOnly(&self) -> Option<bool> { self.sizeOnly }
2753}
2754
2755
2756pub struct GetEncodedResponseParamsBuilder<'a> {
2757 requestId: crate::network::RequestId<'a>,
2758 encoding: Cow<'a, str>,
2759 quality: Option<f64>,
2760 sizeOnly: Option<bool>,
2761}
2762
2763impl<'a> GetEncodedResponseParamsBuilder<'a> {
2764 pub fn quality(mut self, quality: f64) -> Self { self.quality = Some(quality); self }
2766 pub fn sizeOnly(mut self, sizeOnly: bool) -> Self { self.sizeOnly = Some(sizeOnly); self }
2768 pub fn build(self) -> GetEncodedResponseParams<'a> {
2769 GetEncodedResponseParams {
2770 requestId: self.requestId,
2771 encoding: self.encoding,
2772 quality: self.quality,
2773 sizeOnly: self.sizeOnly,
2774 }
2775 }
2776}
2777
2778#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2782#[serde(rename_all = "camelCase")]
2783pub struct GetEncodedResponseReturns<'a> {
2784 #[serde(skip_serializing_if = "Option::is_none")]
2786 body: Option<Cow<'a, str>>,
2787 originalSize: u64,
2789 encodedSize: u64,
2791}
2792
2793impl<'a> GetEncodedResponseReturns<'a> {
2794 pub fn builder(originalSize: u64, encodedSize: u64) -> GetEncodedResponseReturnsBuilder<'a> {
2795 GetEncodedResponseReturnsBuilder {
2796 body: None,
2797 originalSize: originalSize,
2798 encodedSize: encodedSize,
2799 }
2800 }
2801 pub fn body(&self) -> Option<&str> { self.body.as_deref() }
2802 pub fn originalSize(&self) -> u64 { self.originalSize }
2803 pub fn encodedSize(&self) -> u64 { self.encodedSize }
2804}
2805
2806
2807pub struct GetEncodedResponseReturnsBuilder<'a> {
2808 body: Option<Cow<'a, str>>,
2809 originalSize: u64,
2810 encodedSize: u64,
2811}
2812
2813impl<'a> GetEncodedResponseReturnsBuilder<'a> {
2814 pub fn body(mut self, body: impl Into<Cow<'a, str>>) -> Self { self.body = Some(body.into()); self }
2816 pub fn build(self) -> GetEncodedResponseReturns<'a> {
2817 GetEncodedResponseReturns {
2818 body: self.body,
2819 originalSize: self.originalSize,
2820 encodedSize: self.encodedSize,
2821 }
2822 }
2823}
2824
2825impl<'a> GetEncodedResponseParams<'a> { pub const METHOD: &'static str = "Audits.getEncodedResponse"; }
2826
2827impl<'a> crate::CdpCommand<'a> for GetEncodedResponseParams<'a> {
2828 const METHOD: &'static str = "Audits.getEncodedResponse";
2829 type Response = GetEncodedResponseReturns<'a>;
2830}
2831
2832#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2833pub struct DisableParams {}
2834
2835impl DisableParams { pub const METHOD: &'static str = "Audits.disable"; }
2836
2837impl<'a> crate::CdpCommand<'a> for DisableParams {
2838 const METHOD: &'static str = "Audits.disable";
2839 type Response = crate::EmptyReturns;
2840}
2841
2842#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2843pub struct EnableParams {}
2844
2845impl EnableParams { pub const METHOD: &'static str = "Audits.enable"; }
2846
2847impl<'a> crate::CdpCommand<'a> for EnableParams {
2848 const METHOD: &'static str = "Audits.enable";
2849 type Response = crate::EmptyReturns;
2850}
2851
2852#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2856#[serde(rename_all = "camelCase")]
2857pub struct CheckFormsIssuesReturns<'a> {
2858 formIssues: Vec<GenericIssueDetails<'a>>,
2859}
2860
2861impl<'a> CheckFormsIssuesReturns<'a> {
2862 pub fn builder(formIssues: Vec<GenericIssueDetails<'a>>) -> CheckFormsIssuesReturnsBuilder<'a> {
2863 CheckFormsIssuesReturnsBuilder {
2864 formIssues: formIssues,
2865 }
2866 }
2867 pub fn formIssues(&self) -> &[GenericIssueDetails<'a>] { &self.formIssues }
2868}
2869
2870
2871pub struct CheckFormsIssuesReturnsBuilder<'a> {
2872 formIssues: Vec<GenericIssueDetails<'a>>,
2873}
2874
2875impl<'a> CheckFormsIssuesReturnsBuilder<'a> {
2876 pub fn build(self) -> CheckFormsIssuesReturns<'a> {
2877 CheckFormsIssuesReturns {
2878 formIssues: self.formIssues,
2879 }
2880 }
2881}
2882
2883#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2884pub struct CheckFormsIssuesParams {}
2885
2886impl CheckFormsIssuesParams { pub const METHOD: &'static str = "Audits.checkFormsIssues"; }
2887
2888impl<'a> crate::CdpCommand<'a> for CheckFormsIssuesParams {
2889 const METHOD: &'static str = "Audits.checkFormsIssues";
2890 type Response = CheckFormsIssuesReturns<'a>;
2891}