1use serde::{Serialize, Deserialize};
4
5
6#[derive(Debug, Clone, Serialize, Deserialize, Default)]
7#[serde(rename_all = "camelCase")]
8pub struct SafeAreaInsets {
9 #[serde(skip_serializing_if = "Option::is_none")]
12 pub top: Option<i64>,
13 #[serde(skip_serializing_if = "Option::is_none")]
16 pub topMax: Option<i64>,
17 #[serde(skip_serializing_if = "Option::is_none")]
20 pub left: Option<i64>,
21 #[serde(skip_serializing_if = "Option::is_none")]
24 pub leftMax: Option<i64>,
25 #[serde(skip_serializing_if = "Option::is_none")]
28 pub bottom: Option<i64>,
29 #[serde(skip_serializing_if = "Option::is_none")]
32 pub bottomMax: Option<i64>,
33 #[serde(skip_serializing_if = "Option::is_none")]
36 pub right: Option<i64>,
37 #[serde(skip_serializing_if = "Option::is_none")]
40 pub rightMax: Option<i64>,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize, Default)]
46#[serde(rename_all = "camelCase")]
47pub struct ScreenOrientation {
48 #[serde(rename = "type")]
51 pub type_: String,
52 pub angle: i64,
55}
56
57
58#[derive(Debug, Clone, Serialize, Deserialize, Default)]
59#[serde(rename_all = "camelCase")]
60pub struct DisplayFeature {
61 pub orientation: String,
64 pub offset: i32,
68 pub maskLength: u64,
73}
74
75
76#[derive(Debug, Clone, Serialize, Deserialize, Default)]
77#[serde(rename_all = "camelCase")]
78pub struct DevicePosture {
79 #[serde(rename = "type")]
82 pub type_: String,
83}
84
85
86#[derive(Debug, Clone, Serialize, Deserialize, Default)]
87#[serde(rename_all = "camelCase")]
88pub struct MediaFeature {
89
90 pub name: String,
91
92 pub value: String,
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
101pub enum VirtualTimePolicy {
102 #[default]
103 Advance,
104 Pause,
105 PauseIfNetworkFetchesPending,
106}
107
108#[derive(Debug, Clone, Serialize, Deserialize, Default)]
111#[serde(rename_all = "camelCase")]
112pub struct UserAgentBrandVersion {
113
114 pub brand: String,
115
116 pub version: String,
117}
118
119#[derive(Debug, Clone, Serialize, Deserialize, Default)]
123#[serde(rename_all = "camelCase")]
124pub struct UserAgentMetadata {
125 #[serde(skip_serializing_if = "Option::is_none")]
128 pub brands: Option<Vec<UserAgentBrandVersion>>,
129 #[serde(skip_serializing_if = "Option::is_none")]
132 pub fullVersionList: Option<Vec<UserAgentBrandVersion>>,
133
134 #[serde(skip_serializing_if = "Option::is_none")]
135 pub fullVersion: Option<String>,
136
137 pub platform: String,
138
139 pub platformVersion: String,
140
141 pub architecture: String,
142
143 pub model: String,
144
145 pub mobile: bool,
146
147 #[serde(skip_serializing_if = "Option::is_none")]
148 pub bitness: Option<String>,
149
150 #[serde(skip_serializing_if = "Option::is_none")]
151 pub wow64: Option<bool>,
152 #[serde(skip_serializing_if = "Option::is_none")]
156 pub formFactors: Option<Vec<String>>,
157}
158
159#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
163pub enum SensorType {
164 #[default]
165 AbsoluteOrientation,
166 Accelerometer,
167 AmbientLight,
168 Gravity,
169 Gyroscope,
170 LinearAcceleration,
171 Magnetometer,
172 RelativeOrientation,
173}
174
175
176#[derive(Debug, Clone, Serialize, Deserialize, Default)]
177#[serde(rename_all = "camelCase")]
178pub struct SensorMetadata {
179
180 #[serde(skip_serializing_if = "Option::is_none")]
181 pub available: Option<bool>,
182
183 #[serde(skip_serializing_if = "Option::is_none")]
184 pub minimumFrequency: Option<f64>,
185
186 #[serde(skip_serializing_if = "Option::is_none")]
187 pub maximumFrequency: Option<f64>,
188}
189
190
191#[derive(Debug, Clone, Serialize, Deserialize, Default)]
192#[serde(rename_all = "camelCase")]
193pub struct SensorReadingSingle {
194
195 pub value: f64,
196}
197
198
199#[derive(Debug, Clone, Serialize, Deserialize, Default)]
200#[serde(rename_all = "camelCase")]
201pub struct SensorReadingXYZ {
202
203 pub x: f64,
204
205 pub y: f64,
206
207 pub z: f64,
208}
209
210
211#[derive(Debug, Clone, Serialize, Deserialize, Default)]
212#[serde(rename_all = "camelCase")]
213pub struct SensorReadingQuaternion {
214
215 pub x: f64,
216
217 pub y: f64,
218
219 pub z: f64,
220
221 pub w: f64,
222}
223
224
225#[derive(Debug, Clone, Serialize, Deserialize, Default)]
226#[serde(rename_all = "camelCase")]
227pub struct SensorReading {
228
229 #[serde(skip_serializing_if = "Option::is_none")]
230 pub single: Option<SensorReadingSingle>,
231
232 #[serde(skip_serializing_if = "Option::is_none")]
233 pub xyz: Option<SensorReadingXYZ>,
234
235 #[serde(skip_serializing_if = "Option::is_none")]
236 pub quaternion: Option<SensorReadingQuaternion>,
237}
238
239
240#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
241pub enum PressureSource {
242 #[default]
243 Cpu,
244}
245
246
247#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
248pub enum PressureState {
249 #[default]
250 Nominal,
251 Fair,
252 Serious,
253 Critical,
254}
255
256
257#[derive(Debug, Clone, Serialize, Deserialize, Default)]
258#[serde(rename_all = "camelCase")]
259pub struct PressureMetadata {
260
261 #[serde(skip_serializing_if = "Option::is_none")]
262 pub available: Option<bool>,
263}
264
265
266#[derive(Debug, Clone, Serialize, Deserialize, Default)]
267#[serde(rename_all = "camelCase")]
268pub struct WorkAreaInsets {
269 #[serde(skip_serializing_if = "Option::is_none")]
272 pub top: Option<i64>,
273 #[serde(skip_serializing_if = "Option::is_none")]
276 pub left: Option<i64>,
277 #[serde(skip_serializing_if = "Option::is_none")]
280 pub bottom: Option<i64>,
281 #[serde(skip_serializing_if = "Option::is_none")]
284 pub right: Option<i64>,
285}
286
287
288pub type ScreenId = String;
289
290#[derive(Debug, Clone, Serialize, Deserialize, Default)]
294#[serde(rename_all = "camelCase")]
295pub struct ScreenInfo {
296 pub left: i64,
299 pub top: i64,
302 pub width: u64,
305 pub height: i64,
308 pub availLeft: i64,
311 pub availTop: i64,
314 pub availWidth: u64,
317 pub availHeight: i64,
320 pub devicePixelRatio: f64,
323 pub orientation: ScreenOrientation,
326 pub colorDepth: i64,
329 pub isExtended: bool,
332 pub isInternal: bool,
335 pub isPrimary: bool,
338 pub label: String,
341 pub id: ScreenId,
344}
345
346#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
349pub enum DisabledImageType {
350 #[default]
351 Avif,
352 Jxl,
353 Webp,
354}
355
356#[derive(Debug, Clone, Serialize, Deserialize, Default)]
359#[serde(rename_all = "camelCase")]
360pub struct CanEmulateReturns {
361 pub result: bool,
364}
365
366#[derive(Debug, Clone, Serialize, Deserialize, Default)]
369#[serde(rename_all = "camelCase")]
370pub struct SetFocusEmulationEnabledParams {
371 pub enabled: bool,
374}
375
376#[derive(Debug, Clone, Serialize, Deserialize, Default)]
379#[serde(rename_all = "camelCase")]
380pub struct SetAutoDarkModeOverrideParams {
381 #[serde(skip_serializing_if = "Option::is_none")]
385 pub enabled: Option<bool>,
386}
387
388#[derive(Debug, Clone, Serialize, Deserialize, Default)]
391#[serde(rename_all = "camelCase")]
392pub struct SetCPUThrottlingRateParams {
393 pub rate: f64,
396}
397
398#[derive(Debug, Clone, Serialize, Deserialize, Default)]
402#[serde(rename_all = "camelCase")]
403pub struct SetDefaultBackgroundColorOverrideParams {
404 #[serde(skip_serializing_if = "Option::is_none")]
408 pub color: Option<crate::dom::RGBA>,
409}
410
411#[derive(Debug, Clone, Serialize, Deserialize, Default)]
415#[serde(rename_all = "camelCase")]
416pub struct SetSafeAreaInsetsOverrideParams {
417
418 pub insets: SafeAreaInsets,
419}
420
421#[derive(Debug, Clone, Serialize, Deserialize, Default)]
426#[serde(rename_all = "camelCase")]
427pub struct SetDeviceMetricsOverrideParams {
428 pub width: u64,
431 pub height: i64,
434 pub deviceScaleFactor: f64,
437 pub mobile: bool,
441 #[serde(skip_serializing_if = "Option::is_none")]
444 pub scale: Option<f64>,
445 #[serde(skip_serializing_if = "Option::is_none")]
448 pub screenWidth: Option<u64>,
449 #[serde(skip_serializing_if = "Option::is_none")]
452 pub screenHeight: Option<i64>,
453 #[serde(skip_serializing_if = "Option::is_none")]
456 pub positionX: Option<i64>,
457 #[serde(skip_serializing_if = "Option::is_none")]
460 pub positionY: Option<i64>,
461 #[serde(skip_serializing_if = "Option::is_none")]
464 pub dontSetVisibleSize: Option<bool>,
465 #[serde(skip_serializing_if = "Option::is_none")]
468 pub screenOrientation: Option<ScreenOrientation>,
469 #[serde(skip_serializing_if = "Option::is_none")]
473 pub viewport: Option<crate::page::Viewport>,
474 #[serde(skip_serializing_if = "Option::is_none")]
479 pub displayFeature: Option<DisplayFeature>,
480 #[serde(skip_serializing_if = "Option::is_none")]
485 pub devicePosture: Option<DevicePosture>,
486 #[serde(skip_serializing_if = "Option::is_none")]
489 pub scrollbarType: Option<String>,
490 #[serde(skip_serializing_if = "Option::is_none")]
497 pub screenOrientationLockEmulation: Option<bool>,
498}
499
500#[derive(Debug, Clone, Serialize, Deserialize, Default)]
504#[serde(rename_all = "camelCase")]
505pub struct SetDevicePostureOverrideParams {
506
507 pub posture: DevicePosture,
508}
509
510#[derive(Debug, Clone, Serialize, Deserialize, Default)]
514#[serde(rename_all = "camelCase")]
515pub struct SetDisplayFeaturesOverrideParams {
516
517 pub features: Vec<DisplayFeature>,
518}
519
520
521#[derive(Debug, Clone, Serialize, Deserialize, Default)]
522#[serde(rename_all = "camelCase")]
523pub struct SetScrollbarsHiddenParams {
524 pub hidden: bool,
527}
528
529
530#[derive(Debug, Clone, Serialize, Deserialize, Default)]
531#[serde(rename_all = "camelCase")]
532pub struct SetDocumentCookieDisabledParams {
533 pub disabled: bool,
536}
537
538
539#[derive(Debug, Clone, Serialize, Deserialize, Default)]
540#[serde(rename_all = "camelCase")]
541pub struct SetEmitTouchEventsForMouseParams {
542 pub enabled: bool,
545 #[serde(skip_serializing_if = "Option::is_none")]
548 pub configuration: Option<String>,
549}
550
551#[derive(Debug, Clone, Serialize, Deserialize, Default)]
554#[serde(rename_all = "camelCase")]
555pub struct SetEmulatedMediaParams {
556 #[serde(skip_serializing_if = "Option::is_none")]
559 pub media: Option<String>,
560 #[serde(skip_serializing_if = "Option::is_none")]
563 pub features: Option<Vec<MediaFeature>>,
564}
565
566#[derive(Debug, Clone, Serialize, Deserialize, Default)]
569#[serde(rename_all = "camelCase")]
570pub struct SetEmulatedVisionDeficiencyParams {
571 #[serde(rename = "type")]
575 pub type_: String,
576}
577
578#[derive(Debug, Clone, Serialize, Deserialize, Default)]
581#[serde(rename_all = "camelCase")]
582pub struct SetEmulatedOSTextScaleParams {
583
584 #[serde(skip_serializing_if = "Option::is_none")]
585 pub scale: Option<f64>,
586}
587
588#[derive(Debug, Clone, Serialize, Deserialize, Default)]
592#[serde(rename_all = "camelCase")]
593pub struct SetGeolocationOverrideParams {
594 #[serde(skip_serializing_if = "Option::is_none")]
597 pub latitude: Option<f64>,
598 #[serde(skip_serializing_if = "Option::is_none")]
601 pub longitude: Option<f64>,
602 #[serde(skip_serializing_if = "Option::is_none")]
605 pub accuracy: Option<f64>,
606 #[serde(skip_serializing_if = "Option::is_none")]
609 pub altitude: Option<f64>,
610 #[serde(skip_serializing_if = "Option::is_none")]
613 pub altitudeAccuracy: Option<f64>,
614 #[serde(skip_serializing_if = "Option::is_none")]
617 pub heading: Option<f64>,
618 #[serde(skip_serializing_if = "Option::is_none")]
621 pub speed: Option<f64>,
622}
623
624
625#[derive(Debug, Clone, Serialize, Deserialize, Default)]
626#[serde(rename_all = "camelCase")]
627pub struct GetOverriddenSensorInformationParams {
628
629 #[serde(rename = "type")]
630 pub type_: SensorType,
631}
632
633
634#[derive(Debug, Clone, Serialize, Deserialize, Default)]
635#[serde(rename_all = "camelCase")]
636pub struct GetOverriddenSensorInformationReturns {
637
638 pub requestedSamplingFrequency: f64,
639}
640
641#[derive(Debug, Clone, Serialize, Deserialize, Default)]
648#[serde(rename_all = "camelCase")]
649pub struct SetSensorOverrideEnabledParams {
650
651 pub enabled: bool,
652
653 #[serde(rename = "type")]
654 pub type_: SensorType,
655
656 #[serde(skip_serializing_if = "Option::is_none")]
657 pub metadata: Option<SensorMetadata>,
658}
659
660#[derive(Debug, Clone, Serialize, Deserialize, Default)]
664#[serde(rename_all = "camelCase")]
665pub struct SetSensorOverrideReadingsParams {
666
667 #[serde(rename = "type")]
668 pub type_: SensorType,
669
670 pub reading: SensorReading,
671}
672
673#[derive(Debug, Clone, Serialize, Deserialize, Default)]
679#[serde(rename_all = "camelCase")]
680pub struct SetPressureSourceOverrideEnabledParams {
681
682 pub enabled: bool,
683
684 pub source: PressureSource,
685
686 #[serde(skip_serializing_if = "Option::is_none")]
687 pub metadata: Option<PressureMetadata>,
688}
689
690#[derive(Debug, Clone, Serialize, Deserialize, Default)]
696#[serde(rename_all = "camelCase")]
697pub struct SetPressureStateOverrideParams {
698
699 pub source: PressureSource,
700
701 pub state: PressureState,
702}
703
704#[derive(Debug, Clone, Serialize, Deserialize, Default)]
709#[serde(rename_all = "camelCase")]
710pub struct SetPressureDataOverrideParams {
711
712 pub source: PressureSource,
713
714 pub state: PressureState,
715
716 #[serde(skip_serializing_if = "Option::is_none")]
717 pub ownContributionEstimate: Option<f64>,
718}
719
720#[derive(Debug, Clone, Serialize, Deserialize, Default)]
723#[serde(rename_all = "camelCase")]
724pub struct SetIdleOverrideParams {
725 pub isUserActive: bool,
728 pub isScreenUnlocked: bool,
731}
732
733#[derive(Debug, Clone, Serialize, Deserialize, Default)]
736#[serde(rename_all = "camelCase")]
737pub struct SetNavigatorOverridesParams {
738 pub platform: String,
741}
742
743#[derive(Debug, Clone, Serialize, Deserialize, Default)]
746#[serde(rename_all = "camelCase")]
747pub struct SetPageScaleFactorParams {
748 pub pageScaleFactor: f64,
751}
752
753#[derive(Debug, Clone, Serialize, Deserialize, Default)]
756#[serde(rename_all = "camelCase")]
757pub struct SetScriptExecutionDisabledParams {
758 pub value: bool,
761}
762
763#[derive(Debug, Clone, Serialize, Deserialize, Default)]
766#[serde(rename_all = "camelCase")]
767pub struct SetTouchEmulationEnabledParams {
768 pub enabled: bool,
771 #[serde(skip_serializing_if = "Option::is_none")]
774 pub maxTouchPoints: Option<i64>,
775}
776
777#[derive(Debug, Clone, Serialize, Deserialize, Default)]
781#[serde(rename_all = "camelCase")]
782pub struct SetVirtualTimePolicyParams {
783
784 pub policy: VirtualTimePolicy,
785 #[serde(skip_serializing_if = "Option::is_none")]
789 pub budget: Option<f64>,
790 #[serde(skip_serializing_if = "Option::is_none")]
794 pub maxVirtualTimeTaskStarvationCount: Option<u64>,
795 #[serde(skip_serializing_if = "Option::is_none")]
798 pub initialVirtualTime: Option<crate::network::TimeSinceEpoch>,
799}
800
801#[derive(Debug, Clone, Serialize, Deserialize, Default)]
805#[serde(rename_all = "camelCase")]
806pub struct SetVirtualTimePolicyReturns {
807 pub virtualTimeTicksBase: f64,
810}
811
812#[derive(Debug, Clone, Serialize, Deserialize, Default)]
815#[serde(rename_all = "camelCase")]
816pub struct SetLocaleOverrideParams {
817 #[serde(skip_serializing_if = "Option::is_none")]
821 pub locale: Option<String>,
822}
823
824#[derive(Debug, Clone, Serialize, Deserialize, Default)]
827#[serde(rename_all = "camelCase")]
828pub struct SetTimezoneOverrideParams {
829 pub timezoneId: String,
834}
835
836#[derive(Debug, Clone, Serialize, Deserialize, Default)]
841#[serde(rename_all = "camelCase")]
842pub struct SetVisibleSizeParams {
843 pub width: u64,
846 pub height: i64,
849}
850
851
852#[derive(Debug, Clone, Serialize, Deserialize, Default)]
853#[serde(rename_all = "camelCase")]
854pub struct SetDisabledImageTypesParams {
855 pub imageTypes: Vec<DisabledImageType>,
858}
859
860#[derive(Debug, Clone, Serialize, Deserialize, Default)]
863#[serde(rename_all = "camelCase")]
864pub struct SetDataSaverOverrideParams {
865 #[serde(skip_serializing_if = "Option::is_none")]
868 pub dataSaverEnabled: Option<bool>,
869}
870
871
872#[derive(Debug, Clone, Serialize, Deserialize, Default)]
873#[serde(rename_all = "camelCase")]
874pub struct SetHardwareConcurrencyOverrideParams {
875 pub hardwareConcurrency: i64,
878}
879
880#[derive(Debug, Clone, Serialize, Deserialize, Default)]
884#[serde(rename_all = "camelCase")]
885pub struct SetUserAgentOverrideParams {
886 pub userAgent: String,
889 #[serde(skip_serializing_if = "Option::is_none")]
892 pub acceptLanguage: Option<String>,
893 #[serde(skip_serializing_if = "Option::is_none")]
896 pub platform: Option<String>,
897 #[serde(skip_serializing_if = "Option::is_none")]
900 pub userAgentMetadata: Option<UserAgentMetadata>,
901}
902
903#[derive(Debug, Clone, Serialize, Deserialize, Default)]
906#[serde(rename_all = "camelCase")]
907pub struct SetAutomationOverrideParams {
908 pub enabled: bool,
911}
912
913#[derive(Debug, Clone, Serialize, Deserialize, Default)]
917#[serde(rename_all = "camelCase")]
918pub struct SetSmallViewportHeightDifferenceOverrideParams {
919 pub difference: i64,
923}
924
925#[derive(Debug, Clone, Serialize, Deserialize, Default)]
929#[serde(rename_all = "camelCase")]
930pub struct GetScreenInfosReturns {
931
932 pub screenInfos: Vec<ScreenInfo>,
933}
934
935#[derive(Debug, Clone, Serialize, Deserialize, Default)]
938#[serde(rename_all = "camelCase")]
939pub struct AddScreenParams {
940 pub left: i64,
943 pub top: i64,
946 pub width: u64,
949 pub height: i64,
952 #[serde(skip_serializing_if = "Option::is_none")]
955 pub workAreaInsets: Option<WorkAreaInsets>,
956 #[serde(skip_serializing_if = "Option::is_none")]
959 pub devicePixelRatio: Option<f64>,
960 #[serde(skip_serializing_if = "Option::is_none")]
963 pub rotation: Option<i64>,
964 #[serde(skip_serializing_if = "Option::is_none")]
967 pub colorDepth: Option<i64>,
968 #[serde(skip_serializing_if = "Option::is_none")]
971 pub label: Option<String>,
972 #[serde(skip_serializing_if = "Option::is_none")]
975 pub isInternal: Option<bool>,
976}
977
978#[derive(Debug, Clone, Serialize, Deserialize, Default)]
981#[serde(rename_all = "camelCase")]
982pub struct AddScreenReturns {
983
984 pub screenInfo: ScreenInfo,
985}
986
987#[derive(Debug, Clone, Serialize, Deserialize, Default)]
990#[serde(rename_all = "camelCase")]
991pub struct UpdateScreenParams {
992 pub screenId: ScreenId,
995 #[serde(skip_serializing_if = "Option::is_none")]
998 pub left: Option<i64>,
999 #[serde(skip_serializing_if = "Option::is_none")]
1002 pub top: Option<i64>,
1003 #[serde(skip_serializing_if = "Option::is_none")]
1006 pub width: Option<u64>,
1007 #[serde(skip_serializing_if = "Option::is_none")]
1010 pub height: Option<i64>,
1011 #[serde(skip_serializing_if = "Option::is_none")]
1014 pub workAreaInsets: Option<WorkAreaInsets>,
1015 #[serde(skip_serializing_if = "Option::is_none")]
1018 pub devicePixelRatio: Option<f64>,
1019 #[serde(skip_serializing_if = "Option::is_none")]
1022 pub rotation: Option<i64>,
1023 #[serde(skip_serializing_if = "Option::is_none")]
1026 pub colorDepth: Option<i64>,
1027 #[serde(skip_serializing_if = "Option::is_none")]
1030 pub label: Option<String>,
1031 #[serde(skip_serializing_if = "Option::is_none")]
1034 pub isInternal: Option<bool>,
1035}
1036
1037#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1040#[serde(rename_all = "camelCase")]
1041pub struct UpdateScreenReturns {
1042
1043 pub screenInfo: ScreenInfo,
1044}
1045
1046#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1049#[serde(rename_all = "camelCase")]
1050pub struct RemoveScreenParams {
1051
1052 pub screenId: ScreenId,
1053}
1054
1055#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1061#[serde(rename_all = "camelCase")]
1062pub struct SetPrimaryScreenParams {
1063
1064 pub screenId: ScreenId,
1065}