1use serde::{Serialize, Deserialize};
5use serde_json::Value as JsonValue;
6
7#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
10pub enum ResourceType {
11 #[default]
12 Document,
13 Stylesheet,
14 Image,
15 Media,
16 Font,
17 Script,
18 TextTrack,
19 XHR,
20 Fetch,
21 Prefetch,
22 EventSource,
23 WebSocket,
24 Manifest,
25 SignedExchange,
26 Ping,
27 CSPViolationReport,
28 Preflight,
29 FedCM,
30 Other,
31}
32
33pub type LoaderId = String;
36
37pub type RequestId = String;
42
43pub type InterceptionId = String;
46
47#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
50pub enum ErrorReason {
51 #[default]
52 Failed,
53 Aborted,
54 TimedOut,
55 AccessDenied,
56 ConnectionClosed,
57 ConnectionReset,
58 ConnectionRefused,
59 ConnectionAborted,
60 ConnectionFailed,
61 NameNotResolved,
62 InternetDisconnected,
63 AddressUnreachable,
64 BlockedByClient,
65 BlockedByResponse,
66}
67
68pub type TimeSinceEpoch = f64;
71
72pub type MonotonicTime = f64;
75
76pub type Headers = serde_json::Map<String, JsonValue>;
79
80#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
83pub enum ConnectionType {
84 #[default]
85 None,
86 Cellular2g,
87 Cellular3g,
88 Cellular4g,
89 Bluetooth,
90 Ethernet,
91 Wifi,
92 Wimax,
93 Other,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
100pub enum CookieSameSite {
101 #[default]
102 Strict,
103 Lax,
104 None,
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
111pub enum CookiePriority {
112 #[default]
113 Low,
114 Medium,
115 High,
116}
117
118#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
123pub enum CookieSourceScheme {
124 #[default]
125 Unset,
126 NonSecure,
127 Secure,
128}
129
130#[derive(Debug, Clone, Serialize, Deserialize, Default)]
133#[serde(rename_all = "camelCase")]
134pub struct ResourceTiming {
135 pub requestTime: f64,
139 pub proxyStart: f64,
142 pub proxyEnd: f64,
145 pub dnsStart: f64,
148 pub dnsEnd: f64,
151 pub connectStart: f64,
154 pub connectEnd: f64,
157 pub sslStart: f64,
160 pub sslEnd: f64,
163 pub workerStart: f64,
166 pub workerReady: f64,
169 pub workerFetchStart: f64,
172 pub workerRespondWithSettled: f64,
175 #[serde(skip_serializing_if = "Option::is_none")]
178 pub workerRouterEvaluationStart: Option<f64>,
179 #[serde(skip_serializing_if = "Option::is_none")]
182 pub workerCacheLookupStart: Option<f64>,
183 pub sendStart: f64,
186 pub sendEnd: f64,
189 pub pushStart: f64,
192 pub pushEnd: f64,
195 pub receiveHeadersStart: f64,
198 pub receiveHeadersEnd: f64,
201}
202
203#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
206pub enum ResourcePriority {
207 #[default]
208 VeryLow,
209 Low,
210 Medium,
211 High,
212 VeryHigh,
213}
214
215#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
218pub enum RenderBlockingBehavior {
219 #[default]
220 Blocking,
221 InBodyParserBlocking,
222 NonBlocking,
223 NonBlockingDynamic,
224 PotentiallyBlocking,
225}
226
227#[derive(Debug, Clone, Serialize, Deserialize, Default)]
230#[serde(rename_all = "camelCase")]
231pub struct PostDataEntry {
232
233 #[serde(skip_serializing_if = "Option::is_none")]
234 pub bytes: Option<String>,
235}
236
237#[derive(Debug, Clone, Serialize, Deserialize, Default)]
240#[serde(rename_all = "camelCase")]
241pub struct Request {
242 pub url: String,
245 #[serde(skip_serializing_if = "Option::is_none")]
248 pub urlFragment: Option<String>,
249 pub method: String,
252 pub headers: Headers,
255 #[serde(skip_serializing_if = "Option::is_none")]
259 pub postData: Option<String>,
260 #[serde(skip_serializing_if = "Option::is_none")]
263 pub hasPostData: Option<bool>,
264 #[serde(skip_serializing_if = "Option::is_none")]
267 pub postDataEntries: Option<Vec<PostDataEntry>>,
268 #[serde(skip_serializing_if = "Option::is_none")]
271 pub mixedContentType: Option<crate::security::MixedContentType>,
272 pub initialPriority: ResourcePriority,
275 pub referrerPolicy: String,
278 #[serde(skip_serializing_if = "Option::is_none")]
281 pub isLinkPreload: Option<bool>,
282 #[serde(skip_serializing_if = "Option::is_none")]
286 pub trustTokenParams: Option<TrustTokenParams>,
287 #[serde(skip_serializing_if = "Option::is_none")]
291 pub isSameSite: Option<bool>,
292 #[serde(skip_serializing_if = "Option::is_none")]
295 pub isAdRelated: Option<bool>,
296}
297
298#[derive(Debug, Clone, Serialize, Deserialize, Default)]
301#[serde(rename_all = "camelCase")]
302pub struct SignedCertificateTimestamp {
303 pub status: String,
306 pub origin: String,
309 pub logDescription: String,
312 pub logId: String,
315 pub timestamp: f64,
319 pub hashAlgorithm: String,
322 pub signatureAlgorithm: String,
325 pub signatureData: String,
328}
329
330#[derive(Debug, Clone, Serialize, Deserialize, Default)]
333#[serde(rename_all = "camelCase")]
334pub struct SecurityDetails {
335 pub protocol: String,
338 pub keyExchange: String,
341 #[serde(skip_serializing_if = "Option::is_none")]
344 pub keyExchangeGroup: Option<String>,
345 pub cipher: String,
348 #[serde(skip_serializing_if = "Option::is_none")]
351 pub mac: Option<String>,
352 pub certificateId: crate::security::CertificateId,
355 pub subjectName: String,
358 pub sanList: Vec<String>,
361 pub issuer: String,
364 pub validFrom: TimeSinceEpoch,
367 pub validTo: TimeSinceEpoch,
370 pub signedCertificateTimestampList: Vec<SignedCertificateTimestamp>,
373 pub certificateTransparencyCompliance: CertificateTransparencyCompliance,
376 #[serde(skip_serializing_if = "Option::is_none")]
381 pub serverSignatureAlgorithm: Option<i64>,
382 pub encryptedClientHello: bool,
385}
386
387#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
390pub enum CertificateTransparencyCompliance {
391 #[default]
392 Unknown,
393 NotCompliant,
394 Compliant,
395}
396
397#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
400pub enum BlockedReason {
401 #[default]
402 Other,
403 Csp,
404 MixedContent,
405 Origin,
406 Inspector,
407 Integrity,
408 SubresourceFilter,
409 ContentType,
410 CoepFrameResourceNeedsCoepHeader,
411 CoopSandboxedIframeCannotNavigateToCoopPage,
412 CorpNotSameOrigin,
413 CorpNotSameOriginAfterDefaultedToSameOriginByCoep,
414 CorpNotSameOriginAfterDefaultedToSameOriginByDip,
415 CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip,
416 CorpNotSameSite,
417 SriMessageSignatureMismatch,
418}
419
420#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
423pub enum CorsError {
424 #[default]
425 DisallowedByMode,
426 InvalidResponse,
427 WildcardOriginNotAllowed,
428 MissingAllowOriginHeader,
429 MultipleAllowOriginValues,
430 InvalidAllowOriginValue,
431 AllowOriginMismatch,
432 InvalidAllowCredentials,
433 CorsDisabledScheme,
434 PreflightInvalidStatus,
435 PreflightDisallowedRedirect,
436 PreflightWildcardOriginNotAllowed,
437 PreflightMissingAllowOriginHeader,
438 PreflightMultipleAllowOriginValues,
439 PreflightInvalidAllowOriginValue,
440 PreflightAllowOriginMismatch,
441 PreflightInvalidAllowCredentials,
442 PreflightMissingAllowExternal,
443 PreflightInvalidAllowExternal,
444 InvalidAllowMethodsPreflightResponse,
445 InvalidAllowHeadersPreflightResponse,
446 MethodDisallowedByPreflightResponse,
447 HeaderDisallowedByPreflightResponse,
448 RedirectContainsCredentials,
449 InsecureLocalNetwork,
450 InvalidLocalNetworkAccess,
451 NoCorsRedirectModeNotFollow,
452 LocalNetworkAccessPermissionDenied,
453}
454
455
456#[derive(Debug, Clone, Serialize, Deserialize, Default)]
457#[serde(rename_all = "camelCase")]
458pub struct CorsErrorStatus {
459
460 pub corsError: CorsError,
461
462 pub failedParameter: String,
463}
464
465#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
468pub enum ServiceWorkerResponseSource {
469 #[default]
470 CacheStorage,
471 HttpCache,
472 FallbackCode,
473 Network,
474}
475
476#[derive(Debug, Clone, Serialize, Deserialize, Default)]
481#[serde(rename_all = "camelCase")]
482pub struct TrustTokenParams {
483
484 pub operation: TrustTokenOperationType,
485 pub refreshPolicy: String,
489 #[serde(skip_serializing_if = "Option::is_none")]
493 pub issuers: Option<Vec<String>>,
494}
495
496
497#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
498pub enum TrustTokenOperationType {
499 #[default]
500 Issuance,
501 Redemption,
502 Signing,
503}
504
505#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
508pub enum AlternateProtocolUsage {
509 #[default]
510 AlternativeJobWonWithoutRace,
511 AlternativeJobWonRace,
512 MainJobWonRace,
513 MappingMissing,
514 Broken,
515 DnsAlpnH3JobWonWithoutRace,
516 DnsAlpnH3JobWonRace,
517 UnspecifiedReason,
518}
519
520#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
523pub enum ServiceWorkerRouterSource {
524 #[default]
525 Network,
526 Cache,
527 FetchEvent,
528 RaceNetworkAndFetchHandler,
529 RaceNetworkAndCache,
530}
531
532
533#[derive(Debug, Clone, Serialize, Deserialize, Default)]
534#[serde(rename_all = "camelCase")]
535pub struct ServiceWorkerRouterInfo {
536 #[serde(skip_serializing_if = "Option::is_none")]
540 pub ruleIdMatched: Option<u64>,
541 #[serde(skip_serializing_if = "Option::is_none")]
545 pub matchedSourceType: Option<ServiceWorkerRouterSource>,
546 #[serde(skip_serializing_if = "Option::is_none")]
549 pub actualSourceType: Option<ServiceWorkerRouterSource>,
550}
551
552#[derive(Debug, Clone, Serialize, Deserialize, Default)]
555#[serde(rename_all = "camelCase")]
556pub struct Response {
557 pub url: String,
560 pub status: i64,
563 pub statusText: String,
566 pub headers: Headers,
569 #[serde(skip_serializing_if = "Option::is_none")]
572 pub headersText: Option<String>,
573 pub mimeType: String,
576 pub charset: String,
579 #[serde(skip_serializing_if = "Option::is_none")]
582 pub requestHeaders: Option<Headers>,
583 #[serde(skip_serializing_if = "Option::is_none")]
586 pub requestHeadersText: Option<String>,
587 pub connectionReused: bool,
590 pub connectionId: f64,
593 #[serde(skip_serializing_if = "Option::is_none")]
596 pub remoteIPAddress: Option<String>,
597 #[serde(skip_serializing_if = "Option::is_none")]
600 pub remotePort: Option<i64>,
601 #[serde(skip_serializing_if = "Option::is_none")]
604 pub fromDiskCache: Option<bool>,
605 #[serde(skip_serializing_if = "Option::is_none")]
608 pub fromServiceWorker: Option<bool>,
609 #[serde(skip_serializing_if = "Option::is_none")]
612 pub fromPrefetchCache: Option<bool>,
613 #[serde(skip_serializing_if = "Option::is_none")]
616 pub fromEarlyHints: Option<bool>,
617 #[serde(skip_serializing_if = "Option::is_none")]
623 pub serviceWorkerRouterInfo: Option<ServiceWorkerRouterInfo>,
624 pub encodedDataLength: f64,
627 #[serde(skip_serializing_if = "Option::is_none")]
630 pub timing: Option<ResourceTiming>,
631 #[serde(skip_serializing_if = "Option::is_none")]
634 pub serviceWorkerResponseSource: Option<ServiceWorkerResponseSource>,
635 #[serde(skip_serializing_if = "Option::is_none")]
638 pub responseTime: Option<TimeSinceEpoch>,
639 #[serde(skip_serializing_if = "Option::is_none")]
642 pub cacheStorageCacheName: Option<String>,
643 #[serde(skip_serializing_if = "Option::is_none")]
646 pub protocol: Option<String>,
647 #[serde(skip_serializing_if = "Option::is_none")]
650 pub alternateProtocolUsage: Option<AlternateProtocolUsage>,
651 pub securityState: crate::security::SecurityState,
654 #[serde(skip_serializing_if = "Option::is_none")]
657 pub securityDetails: Option<SecurityDetails>,
658}
659
660#[derive(Debug, Clone, Serialize, Deserialize, Default)]
663#[serde(rename_all = "camelCase")]
664pub struct WebSocketRequest {
665 pub headers: Headers,
668}
669
670#[derive(Debug, Clone, Serialize, Deserialize, Default)]
673#[serde(rename_all = "camelCase")]
674pub struct WebSocketResponse {
675 pub status: i64,
678 pub statusText: String,
681 pub headers: Headers,
684 #[serde(skip_serializing_if = "Option::is_none")]
687 pub headersText: Option<String>,
688 #[serde(skip_serializing_if = "Option::is_none")]
691 pub requestHeaders: Option<Headers>,
692 #[serde(skip_serializing_if = "Option::is_none")]
695 pub requestHeadersText: Option<String>,
696}
697
698#[derive(Debug, Clone, Serialize, Deserialize, Default)]
701#[serde(rename_all = "camelCase")]
702pub struct WebSocketFrame {
703 pub opcode: f64,
706 pub mask: bool,
709 pub payloadData: String,
714}
715
716#[derive(Debug, Clone, Serialize, Deserialize, Default)]
719#[serde(rename_all = "camelCase")]
720pub struct CachedResource {
721 pub url: String,
724 #[serde(rename = "type")]
727 pub type_: ResourceType,
728 #[serde(skip_serializing_if = "Option::is_none")]
731 pub response: Option<Response>,
732 pub bodySize: f64,
735}
736
737#[derive(Debug, Clone, Serialize, Deserialize, Default)]
740#[serde(rename_all = "camelCase")]
741pub struct Initiator {
742 #[serde(rename = "type")]
745 pub type_: String,
746 #[serde(skip_serializing_if = "Option::is_none")]
750 pub stack: Option<crate::runtime::StackTrace>,
751 #[serde(skip_serializing_if = "Option::is_none")]
754 pub url: Option<String>,
755 #[serde(skip_serializing_if = "Option::is_none")]
759 pub lineNumber: Option<f64>,
760 #[serde(skip_serializing_if = "Option::is_none")]
764 pub columnNumber: Option<f64>,
765 #[serde(skip_serializing_if = "Option::is_none")]
768 pub requestId: Option<RequestId>,
769}
770
771#[derive(Debug, Clone, Serialize, Deserialize, Default)]
775#[serde(rename_all = "camelCase")]
776pub struct CookiePartitionKey {
777 pub topLevelSite: String,
781 pub hasCrossSiteAncestor: bool,
784}
785
786#[derive(Debug, Clone, Serialize, Deserialize, Default)]
789#[serde(rename_all = "camelCase")]
790pub struct Cookie {
791 pub name: String,
794 pub value: String,
797 pub domain: String,
800 pub path: String,
803 pub expires: f64,
809 pub size: u64,
812 pub httpOnly: bool,
815 pub secure: bool,
818 pub session: bool,
821 #[serde(skip_serializing_if = "Option::is_none")]
824 pub sameSite: Option<CookieSameSite>,
825 pub priority: CookiePriority,
828 pub sourceScheme: CookieSourceScheme,
831 pub sourcePort: i64,
836 #[serde(skip_serializing_if = "Option::is_none")]
839 pub partitionKey: Option<CookiePartitionKey>,
840 #[serde(skip_serializing_if = "Option::is_none")]
843 pub partitionKeyOpaque: Option<bool>,
844}
845
846#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
849pub enum SetCookieBlockedReason {
850 #[default]
851 SecureOnly,
852 SameSiteStrict,
853 SameSiteLax,
854 SameSiteUnspecifiedTreatedAsLax,
855 SameSiteNoneInsecure,
856 UserPreferences,
857 ThirdPartyPhaseout,
858 ThirdPartyBlockedInFirstPartySet,
859 SyntaxError,
860 SchemeNotSupported,
861 OverwriteSecure,
862 InvalidDomain,
863 InvalidPrefix,
864 UnknownError,
865 SchemefulSameSiteStrict,
866 SchemefulSameSiteLax,
867 SchemefulSameSiteUnspecifiedTreatedAsLax,
868 NameValuePairExceedsMaxSize,
869 DisallowedCharacter,
870 NoCookieContent,
871}
872
873#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
876pub enum CookieBlockedReason {
877 #[default]
878 SecureOnly,
879 NotOnPath,
880 DomainMismatch,
881 SameSiteStrict,
882 SameSiteLax,
883 SameSiteUnspecifiedTreatedAsLax,
884 SameSiteNoneInsecure,
885 UserPreferences,
886 ThirdPartyPhaseout,
887 ThirdPartyBlockedInFirstPartySet,
888 UnknownError,
889 SchemefulSameSiteStrict,
890 SchemefulSameSiteLax,
891 SchemefulSameSiteUnspecifiedTreatedAsLax,
892 NameValuePairExceedsMaxSize,
893 PortMismatch,
894 SchemeMismatch,
895 AnonymousContext,
896}
897
898#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
901pub enum CookieExemptionReason {
902 #[default]
903 None,
904 UserSetting,
905 TPCDMetadata,
906 TPCDDeprecationTrial,
907 TopLevelTPCDDeprecationTrial,
908 TPCDHeuristics,
909 EnterprisePolicy,
910 StorageAccess,
911 TopLevelStorageAccess,
912 Scheme,
913 SameSiteNoneCookiesInSandbox,
914}
915
916#[derive(Debug, Clone, Serialize, Deserialize, Default)]
919#[serde(rename_all = "camelCase")]
920pub struct BlockedSetCookieWithReason {
921 pub blockedReasons: Vec<SetCookieBlockedReason>,
924 pub cookieLine: String,
928 #[serde(skip_serializing_if = "Option::is_none")]
933 pub cookie: Option<Cookie>,
934}
935
936#[derive(Debug, Clone, Serialize, Deserialize, Default)]
940#[serde(rename_all = "camelCase")]
941pub struct ExemptedSetCookieWithReason {
942 pub exemptionReason: CookieExemptionReason,
945 pub cookieLine: String,
948 pub cookie: Cookie,
951}
952
953#[derive(Debug, Clone, Serialize, Deserialize, Default)]
957#[serde(rename_all = "camelCase")]
958pub struct AssociatedCookie {
959 pub cookie: Cookie,
962 pub blockedReasons: Vec<CookieBlockedReason>,
965 #[serde(skip_serializing_if = "Option::is_none")]
969 pub exemptionReason: Option<CookieExemptionReason>,
970}
971
972#[derive(Debug, Clone, Serialize, Deserialize, Default)]
975#[serde(rename_all = "camelCase")]
976pub struct CookieParam {
977 pub name: String,
980 pub value: String,
983 #[serde(skip_serializing_if = "Option::is_none")]
987 pub url: Option<String>,
988 #[serde(skip_serializing_if = "Option::is_none")]
991 pub domain: Option<String>,
992 #[serde(skip_serializing_if = "Option::is_none")]
995 pub path: Option<String>,
996 #[serde(skip_serializing_if = "Option::is_none")]
999 pub secure: Option<bool>,
1000 #[serde(skip_serializing_if = "Option::is_none")]
1003 pub httpOnly: Option<bool>,
1004 #[serde(skip_serializing_if = "Option::is_none")]
1007 pub sameSite: Option<CookieSameSite>,
1008 #[serde(skip_serializing_if = "Option::is_none")]
1011 pub expires: Option<TimeSinceEpoch>,
1012 #[serde(skip_serializing_if = "Option::is_none")]
1015 pub priority: Option<CookiePriority>,
1016 #[serde(skip_serializing_if = "Option::is_none")]
1019 pub sourceScheme: Option<CookieSourceScheme>,
1020 #[serde(skip_serializing_if = "Option::is_none")]
1025 pub sourcePort: Option<i64>,
1026 #[serde(skip_serializing_if = "Option::is_none")]
1029 pub partitionKey: Option<CookiePartitionKey>,
1030}
1031
1032#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1035#[serde(rename_all = "camelCase")]
1036pub struct AuthChallenge {
1037 #[serde(skip_serializing_if = "Option::is_none")]
1040 pub source: Option<String>,
1041 pub origin: String,
1044 pub scheme: String,
1047 pub realm: String,
1050}
1051
1052#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1055#[serde(rename_all = "camelCase")]
1056pub struct AuthChallengeResponse {
1057 pub response: String,
1062 #[serde(skip_serializing_if = "Option::is_none")]
1066 pub username: Option<String>,
1067 #[serde(skip_serializing_if = "Option::is_none")]
1071 pub password: Option<String>,
1072}
1073
1074#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1078pub enum InterceptionStage {
1079 #[default]
1080 Request,
1081 HeadersReceived,
1082}
1083
1084#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1087#[serde(rename_all = "camelCase")]
1088pub struct RequestPattern {
1089 #[serde(skip_serializing_if = "Option::is_none")]
1093 pub urlPattern: Option<String>,
1094 #[serde(skip_serializing_if = "Option::is_none")]
1097 pub resourceType: Option<ResourceType>,
1098 #[serde(skip_serializing_if = "Option::is_none")]
1101 pub interceptionStage: Option<InterceptionStage>,
1102}
1103
1104#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1108#[serde(rename_all = "camelCase")]
1109pub struct SignedExchangeSignature {
1110 pub label: String,
1113 pub signature: String,
1116 pub integrity: String,
1119 #[serde(skip_serializing_if = "Option::is_none")]
1122 pub certUrl: Option<String>,
1123 #[serde(skip_serializing_if = "Option::is_none")]
1126 pub certSha256: Option<String>,
1127 pub validityUrl: String,
1130 pub date: i64,
1133 pub expires: i64,
1136 #[serde(skip_serializing_if = "Option::is_none")]
1139 pub certificates: Option<Vec<String>>,
1140}
1141
1142#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1146#[serde(rename_all = "camelCase")]
1147pub struct SignedExchangeHeader {
1148 pub requestUrl: String,
1151 pub responseCode: i64,
1154 pub responseHeaders: Headers,
1157 pub signatures: Vec<SignedExchangeSignature>,
1160 pub headerIntegrity: String,
1163}
1164
1165#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1168pub enum SignedExchangeErrorField {
1169 #[default]
1170 SignatureSig,
1171 SignatureIntegrity,
1172 SignatureCertUrl,
1173 SignatureCertSha256,
1174 SignatureValidityUrl,
1175 SignatureTimestamps,
1176}
1177
1178#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1181#[serde(rename_all = "camelCase")]
1182pub struct SignedExchangeError {
1183 pub message: String,
1186 #[serde(skip_serializing_if = "Option::is_none")]
1189 pub signatureIndex: Option<u64>,
1190 #[serde(skip_serializing_if = "Option::is_none")]
1193 pub errorField: Option<SignedExchangeErrorField>,
1194}
1195
1196#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1199#[serde(rename_all = "camelCase")]
1200pub struct SignedExchangeInfo {
1201 pub outerResponse: Response,
1204 pub hasExtraInfo: bool,
1208 #[serde(skip_serializing_if = "Option::is_none")]
1211 pub header: Option<SignedExchangeHeader>,
1212 #[serde(skip_serializing_if = "Option::is_none")]
1215 pub securityDetails: Option<SecurityDetails>,
1216 #[serde(skip_serializing_if = "Option::is_none")]
1219 pub errors: Option<Vec<SignedExchangeError>>,
1220}
1221
1222#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1225pub enum ContentEncoding {
1226 #[default]
1227 Deflate,
1228 Gzip,
1229 Br,
1230 Zstd,
1231}
1232
1233
1234#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1235#[serde(rename_all = "camelCase")]
1236pub struct NetworkConditions {
1237 pub urlPattern: String,
1242 pub latency: f64,
1245 pub downloadThroughput: f64,
1248 pub uploadThroughput: f64,
1251 #[serde(skip_serializing_if = "Option::is_none")]
1254 pub connectionType: Option<ConnectionType>,
1255 #[serde(skip_serializing_if = "Option::is_none")]
1258 pub packetLoss: Option<f64>,
1259 #[serde(skip_serializing_if = "Option::is_none")]
1262 pub packetQueueLength: Option<u64>,
1263 #[serde(skip_serializing_if = "Option::is_none")]
1266 pub packetReordering: Option<bool>,
1267 #[serde(skip_serializing_if = "Option::is_none")]
1270 pub offline: Option<bool>,
1271}
1272
1273
1274#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1275#[serde(rename_all = "camelCase")]
1276pub struct BlockPattern {
1277 pub urlPattern: String,
1281 pub block: bool,
1285}
1286
1287
1288#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1289pub enum DirectSocketDnsQueryType {
1290 #[default]
1291 Ipv4,
1292 Ipv6,
1293}
1294
1295
1296#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1297#[serde(rename_all = "camelCase")]
1298pub struct DirectTCPSocketOptions {
1299 pub noDelay: bool,
1302 #[serde(skip_serializing_if = "Option::is_none")]
1305 pub keepAliveDelay: Option<f64>,
1306 #[serde(skip_serializing_if = "Option::is_none")]
1309 pub sendBufferSize: Option<f64>,
1310 #[serde(skip_serializing_if = "Option::is_none")]
1313 pub receiveBufferSize: Option<f64>,
1314
1315 #[serde(skip_serializing_if = "Option::is_none")]
1316 pub dnsQueryType: Option<DirectSocketDnsQueryType>,
1317}
1318
1319
1320#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1321#[serde(rename_all = "camelCase")]
1322pub struct DirectUDPSocketOptions {
1323
1324 #[serde(skip_serializing_if = "Option::is_none")]
1325 pub remoteAddr: Option<String>,
1326 #[serde(skip_serializing_if = "Option::is_none")]
1329 pub remotePort: Option<i64>,
1330
1331 #[serde(skip_serializing_if = "Option::is_none")]
1332 pub localAddr: Option<String>,
1333 #[serde(skip_serializing_if = "Option::is_none")]
1336 pub localPort: Option<i64>,
1337
1338 #[serde(skip_serializing_if = "Option::is_none")]
1339 pub dnsQueryType: Option<DirectSocketDnsQueryType>,
1340 #[serde(skip_serializing_if = "Option::is_none")]
1343 pub sendBufferSize: Option<f64>,
1344 #[serde(skip_serializing_if = "Option::is_none")]
1347 pub receiveBufferSize: Option<f64>,
1348
1349 #[serde(skip_serializing_if = "Option::is_none")]
1350 pub multicastLoopback: Option<bool>,
1351 #[serde(skip_serializing_if = "Option::is_none")]
1354 pub multicastTimeToLive: Option<i64>,
1355
1356 #[serde(skip_serializing_if = "Option::is_none")]
1357 pub multicastAllowAddressSharing: Option<bool>,
1358}
1359
1360
1361#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1362#[serde(rename_all = "camelCase")]
1363pub struct DirectUDPMessage {
1364
1365 pub data: String,
1366 #[serde(skip_serializing_if = "Option::is_none")]
1369 pub remoteAddr: Option<String>,
1370 #[serde(skip_serializing_if = "Option::is_none")]
1374 pub remotePort: Option<i64>,
1375}
1376
1377
1378#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1379pub enum LocalNetworkAccessRequestPolicy {
1380 #[default]
1381 Allow,
1382 BlockFromInsecureToMorePrivate,
1383 WarnFromInsecureToMorePrivate,
1384 PermissionBlock,
1385 PermissionWarn,
1386}
1387
1388
1389#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1390pub enum IPAddressSpace {
1391 #[default]
1392 Loopback,
1393 Local,
1394 Public,
1395 Unknown,
1396}
1397
1398
1399#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1400#[serde(rename_all = "camelCase")]
1401pub struct ConnectTiming {
1402 pub requestTime: f64,
1407}
1408
1409
1410#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1411#[serde(rename_all = "camelCase")]
1412pub struct ClientSecurityState {
1413
1414 pub initiatorIsSecureContext: bool,
1415
1416 pub initiatorIPAddressSpace: IPAddressSpace,
1417
1418 pub localNetworkAccessRequestPolicy: LocalNetworkAccessRequestPolicy,
1419}
1420
1421#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1427#[serde(rename_all = "camelCase")]
1428pub struct AdScriptIdentifier {
1429 pub scriptId: crate::runtime::ScriptId,
1432 pub debuggerId: crate::runtime::UniqueDebuggerId,
1435 pub name: String,
1438}
1439
1440#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1444#[serde(rename_all = "camelCase")]
1445pub struct AdAncestry {
1446 pub ancestryChain: Vec<AdScriptIdentifier>,
1452 #[serde(skip_serializing_if = "Option::is_none")]
1456 pub rootScriptFilterlistRule: Option<String>,
1457}
1458
1459#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1467#[serde(rename_all = "camelCase")]
1468pub struct AdProvenance {
1469 #[serde(skip_serializing_if = "Option::is_none")]
1472 pub filterlistRule: Option<String>,
1473 #[serde(skip_serializing_if = "Option::is_none")]
1476 pub adScriptAncestry: Option<AdAncestry>,
1477}
1478
1479
1480#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1481pub enum CrossOriginOpenerPolicyValue {
1482 #[default]
1483 SameOrigin,
1484 SameOriginAllowPopups,
1485 RestrictProperties,
1486 UnsafeNone,
1487 SameOriginPlusCoep,
1488 RestrictPropertiesPlusCoep,
1489 NoopenerAllowPopups,
1490}
1491
1492
1493#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1494#[serde(rename_all = "camelCase")]
1495pub struct CrossOriginOpenerPolicyStatus {
1496
1497 pub value: CrossOriginOpenerPolicyValue,
1498
1499 pub reportOnlyValue: CrossOriginOpenerPolicyValue,
1500
1501 #[serde(skip_serializing_if = "Option::is_none")]
1502 pub reportingEndpoint: Option<String>,
1503
1504 #[serde(skip_serializing_if = "Option::is_none")]
1505 pub reportOnlyReportingEndpoint: Option<String>,
1506}
1507
1508
1509#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1510pub enum CrossOriginEmbedderPolicyValue {
1511 #[default]
1512 None,
1513 Credentialless,
1514 RequireCorp,
1515}
1516
1517
1518#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1519#[serde(rename_all = "camelCase")]
1520pub struct CrossOriginEmbedderPolicyStatus {
1521
1522 pub value: CrossOriginEmbedderPolicyValue,
1523
1524 pub reportOnlyValue: CrossOriginEmbedderPolicyValue,
1525
1526 #[serde(skip_serializing_if = "Option::is_none")]
1527 pub reportingEndpoint: Option<String>,
1528
1529 #[serde(skip_serializing_if = "Option::is_none")]
1530 pub reportOnlyReportingEndpoint: Option<String>,
1531}
1532
1533
1534#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1535pub enum ContentSecurityPolicySource {
1536 #[default]
1537 HTTP,
1538 Meta,
1539}
1540
1541
1542#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1543#[serde(rename_all = "camelCase")]
1544pub struct ContentSecurityPolicyStatus {
1545
1546 pub effectiveDirectives: String,
1547
1548 pub isEnforced: bool,
1549
1550 pub source: ContentSecurityPolicySource,
1551}
1552
1553
1554#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1555#[serde(rename_all = "camelCase")]
1556pub struct SecurityIsolationStatus {
1557
1558 #[serde(skip_serializing_if = "Option::is_none")]
1559 pub coop: Option<CrossOriginOpenerPolicyStatus>,
1560
1561 #[serde(skip_serializing_if = "Option::is_none")]
1562 pub coep: Option<CrossOriginEmbedderPolicyStatus>,
1563
1564 #[serde(skip_serializing_if = "Option::is_none")]
1565 pub csp: Option<Vec<ContentSecurityPolicyStatus>>,
1566}
1567
1568#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1571pub enum ReportStatus {
1572 #[default]
1573 Queued,
1574 Pending,
1575 MarkedForRemoval,
1576 Success,
1577}
1578
1579
1580pub type ReportId = String;
1581
1582#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1585#[serde(rename_all = "camelCase")]
1586pub struct ReportingApiReport {
1587
1588 pub id: ReportId,
1589 pub initiatorUrl: String,
1592 pub destination: String,
1595 #[serde(rename = "type")]
1598 pub type_: String,
1599 pub timestamp: crate::network::TimeSinceEpoch,
1602 pub depth: i64,
1605 pub completedAttempts: i64,
1608
1609 pub body: serde_json::Map<String, JsonValue>,
1610
1611 pub status: ReportStatus,
1612}
1613
1614
1615#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1616#[serde(rename_all = "camelCase")]
1617pub struct ReportingApiEndpoint {
1618 pub url: String,
1621 pub groupName: String,
1624}
1625
1626#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1629#[serde(rename_all = "camelCase")]
1630pub struct DeviceBoundSessionKey {
1631 pub site: String,
1634 pub id: String,
1637}
1638
1639#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1642#[serde(rename_all = "camelCase")]
1643pub struct DeviceBoundSessionWithUsage {
1644 pub sessionKey: DeviceBoundSessionKey,
1647 pub usage: String,
1650}
1651
1652#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1655#[serde(rename_all = "camelCase")]
1656pub struct DeviceBoundSessionCookieCraving {
1657 pub name: String,
1660 pub domain: String,
1663 pub path: String,
1666 pub secure: bool,
1669 pub httpOnly: bool,
1672 #[serde(skip_serializing_if = "Option::is_none")]
1675 pub sameSite: Option<CookieSameSite>,
1676}
1677
1678#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1681#[serde(rename_all = "camelCase")]
1682pub struct DeviceBoundSessionUrlRule {
1683 pub ruleType: String,
1686 pub hostPattern: String,
1689 pub pathPrefix: String,
1692}
1693
1694#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1697#[serde(rename_all = "camelCase")]
1698pub struct DeviceBoundSessionInclusionRules {
1699 pub origin: String,
1702 pub includeSite: bool,
1707 pub urlRules: Vec<DeviceBoundSessionUrlRule>,
1710}
1711
1712#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1715#[serde(rename_all = "camelCase")]
1716pub struct DeviceBoundSession {
1717 pub key: DeviceBoundSessionKey,
1720 pub refreshUrl: String,
1723 pub inclusionRules: DeviceBoundSessionInclusionRules,
1726 pub cookieCravings: Vec<DeviceBoundSessionCookieCraving>,
1729 pub expiryDate: crate::network::TimeSinceEpoch,
1732 #[serde(skip_serializing_if = "Option::is_none")]
1735 pub cachedChallenge: Option<String>,
1736 pub allowedRefreshInitiators: Vec<String>,
1739}
1740
1741pub type DeviceBoundSessionEventId = String;
1744
1745#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1748pub enum DeviceBoundSessionFetchResult {
1749 #[default]
1750 Success,
1751 KeyError,
1752 SigningError,
1753 ServerRequestedTermination,
1754 InvalidSessionId,
1755 InvalidChallenge,
1756 TooManyChallenges,
1757 InvalidFetcherUrl,
1758 InvalidRefreshUrl,
1759 TransientHttpError,
1760 ScopeOriginSameSiteMismatch,
1761 RefreshUrlSameSiteMismatch,
1762 MismatchedSessionId,
1763 MissingScope,
1764 NoCredentials,
1765 SubdomainRegistrationWellKnownUnavailable,
1766 SubdomainRegistrationUnauthorized,
1767 SubdomainRegistrationWellKnownMalformed,
1768 SessionProviderWellKnownUnavailable,
1769 RelyingPartyWellKnownUnavailable,
1770 FederatedKeyThumbprintMismatch,
1771 InvalidFederatedSessionUrl,
1772 InvalidFederatedKey,
1773 TooManyRelyingOriginLabels,
1774 BoundCookieSetForbidden,
1775 NetError,
1776 ProxyError,
1777 EmptySessionConfig,
1778 InvalidCredentialsConfig,
1779 InvalidCredentialsType,
1780 InvalidCredentialsEmptyName,
1781 InvalidCredentialsCookie,
1782 PersistentHttpError,
1783 RegistrationAttemptedChallenge,
1784 InvalidScopeOrigin,
1785 ScopeOriginContainsPath,
1786 RefreshInitiatorNotString,
1787 RefreshInitiatorInvalidHostPattern,
1788 InvalidScopeSpecification,
1789 MissingScopeSpecificationType,
1790 EmptyScopeSpecificationDomain,
1791 EmptyScopeSpecificationPath,
1792 InvalidScopeSpecificationType,
1793 InvalidScopeIncludeSite,
1794 MissingScopeIncludeSite,
1795 FederatedNotAuthorizedByProvider,
1796 FederatedNotAuthorizedByRelyingParty,
1797 SessionProviderWellKnownMalformed,
1798 SessionProviderWellKnownHasProviderOrigin,
1799 RelyingPartyWellKnownMalformed,
1800 RelyingPartyWellKnownHasRelyingOrigins,
1801 InvalidFederatedSessionProviderSessionMissing,
1802 InvalidFederatedSessionWrongProviderOrigin,
1803 InvalidCredentialsCookieCreationTime,
1804 InvalidCredentialsCookieName,
1805 InvalidCredentialsCookieParsing,
1806 InvalidCredentialsCookieUnpermittedAttribute,
1807 InvalidCredentialsCookieInvalidDomain,
1808 InvalidCredentialsCookiePrefix,
1809 InvalidScopeRulePath,
1810 InvalidScopeRuleHostPattern,
1811 ScopeRuleOriginScopedHostPatternMismatch,
1812 ScopeRuleSiteScopedHostPatternMismatch,
1813 SigningQuotaExceeded,
1814 InvalidConfigJson,
1815 InvalidFederatedSessionProviderFailedToRestoreKey,
1816 FailedToUnwrapKey,
1817 SessionDeletedDuringRefresh,
1818}
1819
1820#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1823#[serde(rename_all = "camelCase")]
1824pub struct DeviceBoundSessionFailedRequest {
1825 pub requestUrl: String,
1828 #[serde(skip_serializing_if = "Option::is_none")]
1831 pub netError: Option<String>,
1832 #[serde(skip_serializing_if = "Option::is_none")]
1836 pub responseError: Option<i64>,
1837 #[serde(skip_serializing_if = "Option::is_none")]
1841 pub responseErrorBody: Option<String>,
1842}
1843
1844#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1847#[serde(rename_all = "camelCase")]
1848pub struct CreationEventDetails {
1849 pub fetchResult: DeviceBoundSessionFetchResult,
1852 #[serde(skip_serializing_if = "Option::is_none")]
1856 pub newSession: Option<DeviceBoundSession>,
1857 #[serde(skip_serializing_if = "Option::is_none")]
1861 pub failedRequest: Option<DeviceBoundSessionFailedRequest>,
1862}
1863
1864#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1867#[serde(rename_all = "camelCase")]
1868pub struct RefreshEventDetails {
1869 pub refreshResult: String,
1872 #[serde(skip_serializing_if = "Option::is_none")]
1875 pub fetchResult: Option<DeviceBoundSessionFetchResult>,
1876 #[serde(skip_serializing_if = "Option::is_none")]
1880 pub newSession: Option<DeviceBoundSession>,
1881 pub wasFullyProactiveRefresh: bool,
1884 #[serde(skip_serializing_if = "Option::is_none")]
1888 pub failedRequest: Option<DeviceBoundSessionFailedRequest>,
1889}
1890
1891#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1894#[serde(rename_all = "camelCase")]
1895pub struct TerminationEventDetails {
1896 pub deletionReason: String,
1899}
1900
1901#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1904#[serde(rename_all = "camelCase")]
1905pub struct ChallengeEventDetails {
1906 pub challengeResult: String,
1909 pub challenge: String,
1912}
1913
1914#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1917#[serde(rename_all = "camelCase")]
1918pub struct LoadNetworkResourcePageResult {
1919
1920 pub success: bool,
1921 #[serde(skip_serializing_if = "Option::is_none")]
1924 pub netError: Option<f64>,
1925
1926 #[serde(skip_serializing_if = "Option::is_none")]
1927 pub netErrorName: Option<String>,
1928
1929 #[serde(skip_serializing_if = "Option::is_none")]
1930 pub httpStatusCode: Option<f64>,
1931 #[serde(skip_serializing_if = "Option::is_none")]
1934 pub stream: Option<crate::io::StreamHandle>,
1935 #[serde(skip_serializing_if = "Option::is_none")]
1938 pub headers: Option<crate::network::Headers>,
1939}
1940
1941#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1945#[serde(rename_all = "camelCase")]
1946pub struct LoadNetworkResourceOptions {
1947
1948 pub disableCache: bool,
1949
1950 pub includeCredentials: bool,
1951}
1952
1953#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1956#[serde(rename_all = "camelCase")]
1957pub struct SetAcceptedEncodingsParams {
1958 pub encodings: Vec<ContentEncoding>,
1961}
1962
1963#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1966#[serde(rename_all = "camelCase")]
1967pub struct CanClearBrowserCacheReturns {
1968 pub result: bool,
1971}
1972
1973#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1976#[serde(rename_all = "camelCase")]
1977pub struct CanClearBrowserCookiesReturns {
1978 pub result: bool,
1981}
1982
1983#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1986#[serde(rename_all = "camelCase")]
1987pub struct CanEmulateNetworkConditionsReturns {
1988 pub result: bool,
1991}
1992
1993#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2000#[serde(rename_all = "camelCase")]
2001pub struct ContinueInterceptedRequestParams {
2002
2003 pub interceptionId: InterceptionId,
2004 #[serde(skip_serializing_if = "Option::is_none")]
2009 pub errorReason: Option<ErrorReason>,
2010 #[serde(skip_serializing_if = "Option::is_none")]
2014 pub rawResponse: Option<String>,
2015 #[serde(skip_serializing_if = "Option::is_none")]
2019 pub url: Option<String>,
2020 #[serde(skip_serializing_if = "Option::is_none")]
2024 pub method: Option<String>,
2025 #[serde(skip_serializing_if = "Option::is_none")]
2028 pub postData: Option<String>,
2029 #[serde(skip_serializing_if = "Option::is_none")]
2033 pub headers: Option<Headers>,
2034 #[serde(skip_serializing_if = "Option::is_none")]
2037 pub authChallengeResponse: Option<AuthChallengeResponse>,
2038}
2039
2040#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2043#[serde(rename_all = "camelCase")]
2044pub struct DeleteCookiesParams {
2045 pub name: String,
2048 #[serde(skip_serializing_if = "Option::is_none")]
2052 pub url: Option<String>,
2053 #[serde(skip_serializing_if = "Option::is_none")]
2056 pub domain: Option<String>,
2057 #[serde(skip_serializing_if = "Option::is_none")]
2060 pub path: Option<String>,
2061 #[serde(skip_serializing_if = "Option::is_none")]
2065 pub partitionKey: Option<CookiePartitionKey>,
2066}
2067
2068#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2072#[serde(rename_all = "camelCase")]
2073pub struct EmulateNetworkConditionsParams {
2074 pub offline: bool,
2077 pub latency: f64,
2080 pub downloadThroughput: f64,
2083 pub uploadThroughput: f64,
2086 #[serde(skip_serializing_if = "Option::is_none")]
2089 pub connectionType: Option<ConnectionType>,
2090 #[serde(skip_serializing_if = "Option::is_none")]
2093 pub packetLoss: Option<f64>,
2094 #[serde(skip_serializing_if = "Option::is_none")]
2097 pub packetQueueLength: Option<u64>,
2098 #[serde(skip_serializing_if = "Option::is_none")]
2101 pub packetReordering: Option<bool>,
2102}
2103
2104#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2109#[serde(rename_all = "camelCase")]
2110pub struct EmulateNetworkConditionsByRuleParams {
2111 #[serde(skip_serializing_if = "Option::is_none")]
2115 pub offline: Option<bool>,
2116 #[serde(skip_serializing_if = "Option::is_none")]
2119 pub emulateOfflineServiceWorker: Option<bool>,
2120 pub matchedNetworkConditions: Vec<NetworkConditions>,
2125}
2126
2127#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2132#[serde(rename_all = "camelCase")]
2133pub struct EmulateNetworkConditionsByRuleReturns {
2134 pub ruleIds: Vec<String>,
2138}
2139
2140#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2143#[serde(rename_all = "camelCase")]
2144pub struct OverrideNetworkStateParams {
2145 pub offline: bool,
2148 pub latency: f64,
2151 pub downloadThroughput: f64,
2154 pub uploadThroughput: f64,
2157 #[serde(skip_serializing_if = "Option::is_none")]
2160 pub connectionType: Option<ConnectionType>,
2161}
2162
2163#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2166#[serde(rename_all = "camelCase")]
2167pub struct EnableParams {
2168 #[serde(skip_serializing_if = "Option::is_none")]
2173 pub maxTotalBufferSize: Option<u64>,
2174 #[serde(skip_serializing_if = "Option::is_none")]
2177 pub maxResourceBufferSize: Option<u64>,
2178 #[serde(skip_serializing_if = "Option::is_none")]
2181 pub maxPostDataSize: Option<u64>,
2182 #[serde(skip_serializing_if = "Option::is_none")]
2185 pub reportDirectSocketTraffic: Option<bool>,
2186 #[serde(skip_serializing_if = "Option::is_none")]
2193 pub enableDurableMessages: Option<bool>,
2194}
2195
2196#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2201#[serde(rename_all = "camelCase")]
2202pub struct ConfigureDurableMessagesParams {
2203 #[serde(skip_serializing_if = "Option::is_none")]
2206 pub maxTotalBufferSize: Option<u64>,
2207 #[serde(skip_serializing_if = "Option::is_none")]
2210 pub maxResourceBufferSize: Option<u64>,
2211}
2212
2213#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2218#[serde(rename_all = "camelCase")]
2219pub struct GetAllCookiesReturns {
2220 pub cookies: Vec<Cookie>,
2223}
2224
2225#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2228#[serde(rename_all = "camelCase")]
2229pub struct GetCertificateParams {
2230 pub origin: String,
2233}
2234
2235#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2238#[serde(rename_all = "camelCase")]
2239pub struct GetCertificateReturns {
2240
2241 pub tableNames: Vec<String>,
2242}
2243
2244#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2248#[serde(rename_all = "camelCase")]
2249pub struct GetCookiesParams {
2250 #[serde(skip_serializing_if = "Option::is_none")]
2255 pub urls: Option<Vec<String>>,
2256}
2257
2258#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2262#[serde(rename_all = "camelCase")]
2263pub struct GetCookiesReturns {
2264 pub cookies: Vec<Cookie>,
2267}
2268
2269#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2272#[serde(rename_all = "camelCase")]
2273pub struct GetResponseBodyParams {
2274 pub requestId: RequestId,
2277}
2278
2279#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2282#[serde(rename_all = "camelCase")]
2283pub struct GetResponseBodyReturns {
2284 pub body: String,
2287 pub base64Encoded: bool,
2290}
2291
2292#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2295#[serde(rename_all = "camelCase")]
2296pub struct GetRequestPostDataParams {
2297 pub requestId: RequestId,
2300}
2301
2302#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2305#[serde(rename_all = "camelCase")]
2306pub struct GetRequestPostDataReturns {
2307 pub postData: String,
2310 pub base64Encoded: bool,
2313}
2314
2315#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2318#[serde(rename_all = "camelCase")]
2319pub struct GetResponseBodyForInterceptionParams {
2320 pub interceptionId: InterceptionId,
2323}
2324
2325#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2328#[serde(rename_all = "camelCase")]
2329pub struct GetResponseBodyForInterceptionReturns {
2330 pub body: String,
2333 pub base64Encoded: bool,
2336}
2337
2338#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2344#[serde(rename_all = "camelCase")]
2345pub struct TakeResponseBodyForInterceptionAsStreamParams {
2346
2347 pub interceptionId: InterceptionId,
2348}
2349
2350#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2356#[serde(rename_all = "camelCase")]
2357pub struct TakeResponseBodyForInterceptionAsStreamReturns {
2358
2359 pub stream: crate::io::StreamHandle,
2360}
2361
2362#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2367#[serde(rename_all = "camelCase")]
2368pub struct ReplayXHRParams {
2369 pub requestId: RequestId,
2372}
2373
2374#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2377#[serde(rename_all = "camelCase")]
2378pub struct SearchInResponseBodyParams {
2379 pub requestId: RequestId,
2382 pub query: String,
2385 #[serde(skip_serializing_if = "Option::is_none")]
2388 pub caseSensitive: Option<bool>,
2389 #[serde(skip_serializing_if = "Option::is_none")]
2392 pub isRegex: Option<bool>,
2393}
2394
2395#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2398#[serde(rename_all = "camelCase")]
2399pub struct SearchInResponseBodyReturns {
2400 pub result: Vec<crate::debugger::SearchMatch>,
2403}
2404
2405#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2408#[serde(rename_all = "camelCase")]
2409pub struct SetBlockedURLsParams {
2410 #[serde(skip_serializing_if = "Option::is_none")]
2414 pub urlPatterns: Option<Vec<BlockPattern>>,
2415 #[serde(skip_serializing_if = "Option::is_none")]
2418 pub urls: Option<Vec<String>>,
2419}
2420
2421#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2424#[serde(rename_all = "camelCase")]
2425pub struct SetBypassServiceWorkerParams {
2426 pub bypass: bool,
2429}
2430
2431#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2434#[serde(rename_all = "camelCase")]
2435pub struct SetCacheDisabledParams {
2436 pub cacheDisabled: bool,
2439}
2440
2441#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2444#[serde(rename_all = "camelCase")]
2445pub struct SetCookieParams {
2446 pub name: String,
2449 pub value: String,
2452 #[serde(skip_serializing_if = "Option::is_none")]
2456 pub url: Option<String>,
2457 #[serde(skip_serializing_if = "Option::is_none")]
2460 pub domain: Option<String>,
2461 #[serde(skip_serializing_if = "Option::is_none")]
2464 pub path: Option<String>,
2465 #[serde(skip_serializing_if = "Option::is_none")]
2468 pub secure: Option<bool>,
2469 #[serde(skip_serializing_if = "Option::is_none")]
2472 pub httpOnly: Option<bool>,
2473 #[serde(skip_serializing_if = "Option::is_none")]
2476 pub sameSite: Option<CookieSameSite>,
2477 #[serde(skip_serializing_if = "Option::is_none")]
2480 pub expires: Option<TimeSinceEpoch>,
2481 #[serde(skip_serializing_if = "Option::is_none")]
2484 pub priority: Option<CookiePriority>,
2485 #[serde(skip_serializing_if = "Option::is_none")]
2488 pub sourceScheme: Option<CookieSourceScheme>,
2489 #[serde(skip_serializing_if = "Option::is_none")]
2494 pub sourcePort: Option<i64>,
2495 #[serde(skip_serializing_if = "Option::is_none")]
2498 pub partitionKey: Option<CookiePartitionKey>,
2499}
2500
2501#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2504#[serde(rename_all = "camelCase")]
2505pub struct SetCookieReturns {
2506 pub success: bool,
2509}
2510
2511#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2514#[serde(rename_all = "camelCase")]
2515pub struct SetCookiesParams {
2516 pub cookies: Vec<CookieParam>,
2519}
2520
2521#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2524#[serde(rename_all = "camelCase")]
2525pub struct SetExtraHTTPHeadersParams {
2526 pub headers: Headers,
2529}
2530
2531#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2534#[serde(rename_all = "camelCase")]
2535pub struct SetAttachDebugStackParams {
2536 pub enabled: bool,
2539}
2540
2541#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2545#[serde(rename_all = "camelCase")]
2546pub struct SetRequestInterceptionParams {
2547 pub patterns: Vec<RequestPattern>,
2551}
2552
2553#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2556#[serde(rename_all = "camelCase")]
2557pub struct SetUserAgentOverrideParams {
2558 pub userAgent: String,
2561 #[serde(skip_serializing_if = "Option::is_none")]
2564 pub acceptLanguage: Option<String>,
2565 #[serde(skip_serializing_if = "Option::is_none")]
2568 pub platform: Option<String>,
2569 #[serde(skip_serializing_if = "Option::is_none")]
2572 pub userAgentMetadata: Option<crate::emulation::UserAgentMetadata>,
2573}
2574
2575#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2579#[serde(rename_all = "camelCase")]
2580pub struct StreamResourceContentParams {
2581 pub requestId: RequestId,
2584}
2585
2586#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2590#[serde(rename_all = "camelCase")]
2591pub struct StreamResourceContentReturns {
2592 pub bufferedData: String,
2595}
2596
2597#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2600#[serde(rename_all = "camelCase")]
2601pub struct GetSecurityIsolationStatusParams {
2602 #[serde(skip_serializing_if = "Option::is_none")]
2605 pub frameId: Option<crate::page::FrameId>,
2606}
2607
2608#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2611#[serde(rename_all = "camelCase")]
2612pub struct GetSecurityIsolationStatusReturns {
2613
2614 pub status: SecurityIsolationStatus,
2615}
2616
2617#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2621#[serde(rename_all = "camelCase")]
2622pub struct EnableReportingApiParams {
2623 pub enable: bool,
2626}
2627
2628#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2631#[serde(rename_all = "camelCase")]
2632pub struct EnableDeviceBoundSessionsParams {
2633 pub enable: bool,
2636}
2637
2638#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2641#[serde(rename_all = "camelCase")]
2642pub struct DeleteDeviceBoundSessionParams {
2643
2644 pub key: DeviceBoundSessionKey,
2645}
2646
2647#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2650#[serde(rename_all = "camelCase")]
2651pub struct FetchSchemefulSiteParams {
2652 pub origin: String,
2655}
2656
2657#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2660#[serde(rename_all = "camelCase")]
2661pub struct FetchSchemefulSiteReturns {
2662 pub schemefulSite: String,
2665}
2666
2667#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2670#[serde(rename_all = "camelCase")]
2671pub struct LoadNetworkResourceParams {
2672 #[serde(skip_serializing_if = "Option::is_none")]
2676 pub frameId: Option<crate::page::FrameId>,
2677 pub url: String,
2680 pub options: LoadNetworkResourceOptions,
2683}
2684
2685#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2688#[serde(rename_all = "camelCase")]
2689pub struct LoadNetworkResourceReturns {
2690
2691 pub resource: LoadNetworkResourcePageResult,
2692}
2693
2694#[derive(Debug, Clone, Serialize, Deserialize, Default)]
2698#[serde(rename_all = "camelCase")]
2699pub struct SetCookieControlsParams {
2700 pub enableThirdPartyCookieRestriction: bool,
2703}