1use serde::{Serialize, Deserialize};
9use serde_json::Value as JsonValue;
10
11pub type NodeId = i64;
14
15pub type BackendNodeId = i64;
19
20pub type StyleSheetId = String;
23
24#[derive(Debug, Clone, Serialize, Deserialize, Default)]
27#[serde(rename_all = "camelCase")]
28pub struct BackendNode {
29 pub nodeType: i64,
32 pub nodeName: String,
35
36 pub backendNodeId: BackendNodeId,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
42pub enum PseudoType {
43 #[default]
44 FirstLine,
45 FirstLetter,
46 Checkmark,
47 Before,
48 After,
49 ExpandIcon,
50 PickerIcon,
51 InterestHint,
52 Marker,
53 Backdrop,
54 Column,
55 Selection,
56 SearchText,
57 TargetText,
58 SpellingError,
59 GrammarError,
60 Highlight,
61 FirstLineInherited,
62 ScrollMarker,
63 ScrollMarkerGroup,
64 ScrollButton,
65 Scrollbar,
66 ScrollbarThumb,
67 ScrollbarButton,
68 ScrollbarTrack,
69 ScrollbarTrackPiece,
70 ScrollbarCorner,
71 Resizer,
72 InputListButton,
73 ViewTransition,
74 ViewTransitionGroup,
75 ViewTransitionImagePair,
76 ViewTransitionGroupChildren,
77 ViewTransitionOld,
78 ViewTransitionNew,
79 Placeholder,
80 FileSelectorButton,
81 DetailsContent,
82 Picker,
83 PermissionIcon,
84 OverscrollAreaParent,
85}
86
87#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
90pub enum ShadowRootType {
91 #[default]
92 UserAgent,
93 Open,
94 Closed,
95}
96
97#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
100pub enum CompatibilityMode {
101 #[default]
102 QuirksMode,
103 LimitedQuirksMode,
104 NoQuirksMode,
105}
106
107#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
110pub enum PhysicalAxes {
111 #[default]
112 Horizontal,
113 Vertical,
114 Both,
115}
116
117#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
120pub enum LogicalAxes {
121 #[default]
122 Inline,
123 Block,
124 Both,
125}
126
127#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
130pub enum ScrollOrientation {
131 #[default]
132 Horizontal,
133 Vertical,
134}
135
136#[derive(Debug, Clone, Serialize, Deserialize, Default)]
140#[serde(rename_all = "camelCase")]
141pub struct Node {
142 pub nodeId: NodeId,
147 #[serde(skip_serializing_if = "Option::is_none")]
150 pub parentId: Option<NodeId>,
151 pub backendNodeId: BackendNodeId,
154 pub nodeType: i64,
157 pub nodeName: String,
160 pub localName: String,
163 pub nodeValue: String,
166 #[serde(skip_serializing_if = "Option::is_none")]
169 pub childNodeCount: Option<u64>,
170 #[serde(skip_serializing_if = "Option::is_none")]
173 pub children: Option<Vec<Node>>,
174 #[serde(skip_serializing_if = "Option::is_none")]
177 pub attributes: Option<Vec<String>>,
178 #[serde(skip_serializing_if = "Option::is_none")]
181 pub documentURL: Option<String>,
182 #[serde(skip_serializing_if = "Option::is_none")]
185 pub baseURL: Option<String>,
186 #[serde(skip_serializing_if = "Option::is_none")]
189 pub publicId: Option<String>,
190 #[serde(skip_serializing_if = "Option::is_none")]
193 pub systemId: Option<String>,
194 #[serde(skip_serializing_if = "Option::is_none")]
197 pub internalSubset: Option<String>,
198 #[serde(skip_serializing_if = "Option::is_none")]
201 pub xmlVersion: Option<String>,
202 #[serde(skip_serializing_if = "Option::is_none")]
205 pub name: Option<String>,
206 #[serde(skip_serializing_if = "Option::is_none")]
209 pub value: Option<String>,
210 #[serde(skip_serializing_if = "Option::is_none")]
213 pub pseudoType: Option<PseudoType>,
214 #[serde(skip_serializing_if = "Option::is_none")]
218 pub pseudoIdentifier: Option<String>,
219 #[serde(skip_serializing_if = "Option::is_none")]
222 pub shadowRootType: Option<ShadowRootType>,
223 #[serde(skip_serializing_if = "Option::is_none")]
226 pub frameId: Option<crate::page::FrameId>,
227 #[serde(skip_serializing_if = "Option::is_none")]
230 pub contentDocument: Option<Box<Node>>,
231 #[serde(skip_serializing_if = "Option::is_none")]
234 pub shadowRoots: Option<Vec<Node>>,
235 #[serde(skip_serializing_if = "Option::is_none")]
238 pub templateContent: Option<Box<Node>>,
239 #[serde(skip_serializing_if = "Option::is_none")]
242 pub pseudoElements: Option<Vec<Node>>,
243 #[serde(skip_serializing_if = "Option::is_none")]
248 pub importedDocument: Option<Box<Node>>,
249 #[serde(skip_serializing_if = "Option::is_none")]
252 pub distributedNodes: Option<Vec<BackendNode>>,
253 #[serde(skip_serializing_if = "Option::is_none")]
256 pub isSVG: Option<bool>,
257
258 #[serde(skip_serializing_if = "Option::is_none")]
259 pub compatibilityMode: Option<CompatibilityMode>,
260
261 #[serde(skip_serializing_if = "Option::is_none")]
262 pub assignedSlot: Option<BackendNode>,
263
264 #[serde(skip_serializing_if = "Option::is_none")]
265 pub isScrollable: Option<bool>,
266
267 #[serde(skip_serializing_if = "Option::is_none")]
268 pub affectedByStartingStyles: Option<bool>,
269
270 #[serde(skip_serializing_if = "Option::is_none")]
271 pub adoptedStyleSheets: Option<Vec<StyleSheetId>>,
272
273 #[serde(skip_serializing_if = "Option::is_none")]
274 pub adProvenance: Option<crate::network::AdProvenance>,
275}
276
277#[derive(Debug, Clone, Serialize, Deserialize, Default)]
280#[serde(rename_all = "camelCase")]
281pub struct DetachedElementInfo {
282
283 pub treeNode: Node,
284
285 pub retainedNodeIds: Vec<NodeId>,
286}
287
288#[derive(Debug, Clone, Serialize, Deserialize, Default)]
291#[serde(rename_all = "camelCase")]
292pub struct RGBA {
293 pub r: i64,
296 pub g: i64,
299 pub b: i64,
302 #[serde(skip_serializing_if = "Option::is_none")]
305 pub a: Option<f64>,
306}
307
308pub type Quad = Vec<f64>;
311
312#[derive(Debug, Clone, Serialize, Deserialize, Default)]
315#[serde(rename_all = "camelCase")]
316pub struct BoxModel {
317 pub content: Quad,
320 pub padding: Quad,
323 pub border: Quad,
326 pub margin: Quad,
329 pub width: u64,
332 pub height: i64,
335 #[serde(skip_serializing_if = "Option::is_none")]
338 pub shapeOutside: Option<ShapeOutsideInfo>,
339}
340
341#[derive(Debug, Clone, Serialize, Deserialize, Default)]
344#[serde(rename_all = "camelCase")]
345pub struct ShapeOutsideInfo {
346 pub bounds: Quad,
349 pub shape: Vec<JsonValue>,
352 pub marginShape: Vec<JsonValue>,
355}
356
357#[derive(Debug, Clone, Serialize, Deserialize, Default)]
360#[serde(rename_all = "camelCase")]
361pub struct Rect {
362 pub x: f64,
365 pub y: f64,
368 pub width: f64,
371 pub height: f64,
374}
375
376
377#[derive(Debug, Clone, Serialize, Deserialize, Default)]
378#[serde(rename_all = "camelCase")]
379pub struct CSSComputedStyleProperty {
380 pub name: String,
383 pub value: String,
386}
387
388#[derive(Debug, Clone, Serialize, Deserialize, Default)]
391#[serde(rename_all = "camelCase")]
392pub struct CollectClassNamesFromSubtreeParams {
393 pub nodeId: NodeId,
396}
397
398#[derive(Debug, Clone, Serialize, Deserialize, Default)]
401#[serde(rename_all = "camelCase")]
402pub struct CollectClassNamesFromSubtreeReturns {
403 pub classNames: Vec<String>,
406}
407
408impl CollectClassNamesFromSubtreeParams { pub const METHOD: &'static str = "DOM.collectClassNamesFromSubtree"; }
409
410impl crate::CdpCommand for CollectClassNamesFromSubtreeParams {
411 const METHOD: &'static str = "DOM.collectClassNamesFromSubtree";
412 type Response = CollectClassNamesFromSubtreeReturns;
413}
414
415#[derive(Debug, Clone, Serialize, Deserialize, Default)]
419#[serde(rename_all = "camelCase")]
420pub struct CopyToParams {
421 pub nodeId: NodeId,
424 pub targetNodeId: NodeId,
427 #[serde(skip_serializing_if = "Option::is_none")]
431 pub insertBeforeNodeId: Option<NodeId>,
432}
433
434#[derive(Debug, Clone, Serialize, Deserialize, Default)]
438#[serde(rename_all = "camelCase")]
439pub struct CopyToReturns {
440 pub nodeId: NodeId,
443}
444
445impl CopyToParams { pub const METHOD: &'static str = "DOM.copyTo"; }
446
447impl crate::CdpCommand for CopyToParams {
448 const METHOD: &'static str = "DOM.copyTo";
449 type Response = CopyToReturns;
450}
451
452#[derive(Debug, Clone, Serialize, Deserialize, Default)]
456#[serde(rename_all = "camelCase")]
457pub struct DescribeNodeParams {
458 #[serde(skip_serializing_if = "Option::is_none")]
461 pub nodeId: Option<NodeId>,
462 #[serde(skip_serializing_if = "Option::is_none")]
465 pub backendNodeId: Option<BackendNodeId>,
466 #[serde(skip_serializing_if = "Option::is_none")]
469 pub objectId: Option<crate::runtime::RemoteObjectId>,
470 #[serde(skip_serializing_if = "Option::is_none")]
474 pub depth: Option<i64>,
475 #[serde(skip_serializing_if = "Option::is_none")]
479 pub pierce: Option<bool>,
480}
481
482#[derive(Debug, Clone, Serialize, Deserialize, Default)]
486#[serde(rename_all = "camelCase")]
487pub struct DescribeNodeReturns {
488 pub node: Node,
491}
492
493impl DescribeNodeParams { pub const METHOD: &'static str = "DOM.describeNode"; }
494
495impl crate::CdpCommand for DescribeNodeParams {
496 const METHOD: &'static str = "DOM.describeNode";
497 type Response = DescribeNodeReturns;
498}
499
500#[derive(Debug, Clone, Serialize, Deserialize, Default)]
505#[serde(rename_all = "camelCase")]
506pub struct ScrollIntoViewIfNeededParams {
507 #[serde(skip_serializing_if = "Option::is_none")]
510 pub nodeId: Option<NodeId>,
511 #[serde(skip_serializing_if = "Option::is_none")]
514 pub backendNodeId: Option<BackendNodeId>,
515 #[serde(skip_serializing_if = "Option::is_none")]
518 pub objectId: Option<crate::runtime::RemoteObjectId>,
519 #[serde(skip_serializing_if = "Option::is_none")]
523 pub rect: Option<Rect>,
524}
525
526impl ScrollIntoViewIfNeededParams { pub const METHOD: &'static str = "DOM.scrollIntoViewIfNeeded"; }
527
528impl crate::CdpCommand for ScrollIntoViewIfNeededParams {
529 const METHOD: &'static str = "DOM.scrollIntoViewIfNeeded";
530 type Response = crate::EmptyReturns;
531}
532
533#[derive(Debug, Clone, Serialize, Deserialize, Default)]
534pub struct DisableParams {}
535
536impl DisableParams { pub const METHOD: &'static str = "DOM.disable"; }
537
538impl crate::CdpCommand for DisableParams {
539 const METHOD: &'static str = "DOM.disable";
540 type Response = crate::EmptyReturns;
541}
542
543#[derive(Debug, Clone, Serialize, Deserialize, Default)]
547#[serde(rename_all = "camelCase")]
548pub struct DiscardSearchResultsParams {
549 pub searchId: String,
552}
553
554impl DiscardSearchResultsParams { pub const METHOD: &'static str = "DOM.discardSearchResults"; }
555
556impl crate::CdpCommand for DiscardSearchResultsParams {
557 const METHOD: &'static str = "DOM.discardSearchResults";
558 type Response = crate::EmptyReturns;
559}
560
561#[derive(Debug, Clone, Serialize, Deserialize, Default)]
564#[serde(rename_all = "camelCase")]
565pub struct EnableParams {
566 #[serde(skip_serializing_if = "Option::is_none")]
569 pub includeWhitespace: Option<String>,
570}
571
572impl EnableParams { pub const METHOD: &'static str = "DOM.enable"; }
573
574impl crate::CdpCommand for EnableParams {
575 const METHOD: &'static str = "DOM.enable";
576 type Response = crate::EmptyReturns;
577}
578
579#[derive(Debug, Clone, Serialize, Deserialize, Default)]
582#[serde(rename_all = "camelCase")]
583pub struct FocusParams {
584 #[serde(skip_serializing_if = "Option::is_none")]
587 pub nodeId: Option<NodeId>,
588 #[serde(skip_serializing_if = "Option::is_none")]
591 pub backendNodeId: Option<BackendNodeId>,
592 #[serde(skip_serializing_if = "Option::is_none")]
595 pub objectId: Option<crate::runtime::RemoteObjectId>,
596}
597
598impl FocusParams { pub const METHOD: &'static str = "DOM.focus"; }
599
600impl crate::CdpCommand for FocusParams {
601 const METHOD: &'static str = "DOM.focus";
602 type Response = crate::EmptyReturns;
603}
604
605#[derive(Debug, Clone, Serialize, Deserialize, Default)]
608#[serde(rename_all = "camelCase")]
609pub struct GetAttributesParams {
610 pub nodeId: NodeId,
613}
614
615#[derive(Debug, Clone, Serialize, Deserialize, Default)]
618#[serde(rename_all = "camelCase")]
619pub struct GetAttributesReturns {
620 pub attributes: Vec<String>,
623}
624
625impl GetAttributesParams { pub const METHOD: &'static str = "DOM.getAttributes"; }
626
627impl crate::CdpCommand for GetAttributesParams {
628 const METHOD: &'static str = "DOM.getAttributes";
629 type Response = GetAttributesReturns;
630}
631
632#[derive(Debug, Clone, Serialize, Deserialize, Default)]
635#[serde(rename_all = "camelCase")]
636pub struct GetBoxModelParams {
637 #[serde(skip_serializing_if = "Option::is_none")]
640 pub nodeId: Option<NodeId>,
641 #[serde(skip_serializing_if = "Option::is_none")]
644 pub backendNodeId: Option<BackendNodeId>,
645 #[serde(skip_serializing_if = "Option::is_none")]
648 pub objectId: Option<crate::runtime::RemoteObjectId>,
649}
650
651#[derive(Debug, Clone, Serialize, Deserialize, Default)]
654#[serde(rename_all = "camelCase")]
655pub struct GetBoxModelReturns {
656 pub model: BoxModel,
659}
660
661impl GetBoxModelParams { pub const METHOD: &'static str = "DOM.getBoxModel"; }
662
663impl crate::CdpCommand for GetBoxModelParams {
664 const METHOD: &'static str = "DOM.getBoxModel";
665 type Response = GetBoxModelReturns;
666}
667
668#[derive(Debug, Clone, Serialize, Deserialize, Default)]
672#[serde(rename_all = "camelCase")]
673pub struct GetContentQuadsParams {
674 #[serde(skip_serializing_if = "Option::is_none")]
677 pub nodeId: Option<NodeId>,
678 #[serde(skip_serializing_if = "Option::is_none")]
681 pub backendNodeId: Option<BackendNodeId>,
682 #[serde(skip_serializing_if = "Option::is_none")]
685 pub objectId: Option<crate::runtime::RemoteObjectId>,
686}
687
688#[derive(Debug, Clone, Serialize, Deserialize, Default)]
692#[serde(rename_all = "camelCase")]
693pub struct GetContentQuadsReturns {
694 pub quads: Vec<Quad>,
697}
698
699impl GetContentQuadsParams { pub const METHOD: &'static str = "DOM.getContentQuads"; }
700
701impl crate::CdpCommand for GetContentQuadsParams {
702 const METHOD: &'static str = "DOM.getContentQuads";
703 type Response = GetContentQuadsReturns;
704}
705
706#[derive(Debug, Clone, Serialize, Deserialize, Default)]
710#[serde(rename_all = "camelCase")]
711pub struct GetDocumentParams {
712 #[serde(skip_serializing_if = "Option::is_none")]
716 pub depth: Option<i64>,
717 #[serde(skip_serializing_if = "Option::is_none")]
721 pub pierce: Option<bool>,
722}
723
724#[derive(Debug, Clone, Serialize, Deserialize, Default)]
728#[serde(rename_all = "camelCase")]
729pub struct GetDocumentReturns {
730 pub root: Node,
733}
734
735impl GetDocumentParams { pub const METHOD: &'static str = "DOM.getDocument"; }
736
737impl crate::CdpCommand for GetDocumentParams {
738 const METHOD: &'static str = "DOM.getDocument";
739 type Response = GetDocumentReturns;
740}
741
742#[derive(Debug, Clone, Serialize, Deserialize, Default)]
747#[serde(rename_all = "camelCase")]
748pub struct GetFlattenedDocumentParams {
749 #[serde(skip_serializing_if = "Option::is_none")]
753 pub depth: Option<i64>,
754 #[serde(skip_serializing_if = "Option::is_none")]
758 pub pierce: Option<bool>,
759}
760
761#[derive(Debug, Clone, Serialize, Deserialize, Default)]
766#[serde(rename_all = "camelCase")]
767pub struct GetFlattenedDocumentReturns {
768 pub nodes: Vec<Node>,
771}
772
773impl GetFlattenedDocumentParams { pub const METHOD: &'static str = "DOM.getFlattenedDocument"; }
774
775impl crate::CdpCommand for GetFlattenedDocumentParams {
776 const METHOD: &'static str = "DOM.getFlattenedDocument";
777 type Response = GetFlattenedDocumentReturns;
778}
779
780#[derive(Debug, Clone, Serialize, Deserialize, Default)]
783#[serde(rename_all = "camelCase")]
784pub struct GetNodesForSubtreeByStyleParams {
785 pub nodeId: NodeId,
788 pub computedStyles: Vec<CSSComputedStyleProperty>,
791 #[serde(skip_serializing_if = "Option::is_none")]
795 pub pierce: Option<bool>,
796}
797
798#[derive(Debug, Clone, Serialize, Deserialize, Default)]
801#[serde(rename_all = "camelCase")]
802pub struct GetNodesForSubtreeByStyleReturns {
803 pub nodeIds: Vec<NodeId>,
806}
807
808impl GetNodesForSubtreeByStyleParams { pub const METHOD: &'static str = "DOM.getNodesForSubtreeByStyle"; }
809
810impl crate::CdpCommand for GetNodesForSubtreeByStyleParams {
811 const METHOD: &'static str = "DOM.getNodesForSubtreeByStyle";
812 type Response = GetNodesForSubtreeByStyleReturns;
813}
814
815#[derive(Debug, Clone, Serialize, Deserialize, Default)]
819#[serde(rename_all = "camelCase")]
820pub struct GetNodeForLocationParams {
821 pub x: i32,
824 pub y: i32,
827 #[serde(skip_serializing_if = "Option::is_none")]
830 pub includeUserAgentShadowDOM: Option<bool>,
831 #[serde(skip_serializing_if = "Option::is_none")]
834 pub ignorePointerEventsNone: Option<bool>,
835}
836
837#[derive(Debug, Clone, Serialize, Deserialize, Default)]
841#[serde(rename_all = "camelCase")]
842pub struct GetNodeForLocationReturns {
843 pub backendNodeId: BackendNodeId,
846 pub frameId: crate::page::FrameId,
849 #[serde(skip_serializing_if = "Option::is_none")]
852 pub nodeId: Option<NodeId>,
853}
854
855impl GetNodeForLocationParams { pub const METHOD: &'static str = "DOM.getNodeForLocation"; }
856
857impl crate::CdpCommand for GetNodeForLocationParams {
858 const METHOD: &'static str = "DOM.getNodeForLocation";
859 type Response = GetNodeForLocationReturns;
860}
861
862#[derive(Debug, Clone, Serialize, Deserialize, Default)]
865#[serde(rename_all = "camelCase")]
866pub struct GetOuterHTMLParams {
867 #[serde(skip_serializing_if = "Option::is_none")]
870 pub nodeId: Option<NodeId>,
871 #[serde(skip_serializing_if = "Option::is_none")]
874 pub backendNodeId: Option<BackendNodeId>,
875 #[serde(skip_serializing_if = "Option::is_none")]
878 pub objectId: Option<crate::runtime::RemoteObjectId>,
879 #[serde(skip_serializing_if = "Option::is_none")]
882 pub includeShadowDOM: Option<bool>,
883}
884
885#[derive(Debug, Clone, Serialize, Deserialize, Default)]
888#[serde(rename_all = "camelCase")]
889pub struct GetOuterHTMLReturns {
890 pub outerHTML: String,
893}
894
895impl GetOuterHTMLParams { pub const METHOD: &'static str = "DOM.getOuterHTML"; }
896
897impl crate::CdpCommand for GetOuterHTMLParams {
898 const METHOD: &'static str = "DOM.getOuterHTML";
899 type Response = GetOuterHTMLReturns;
900}
901
902#[derive(Debug, Clone, Serialize, Deserialize, Default)]
905#[serde(rename_all = "camelCase")]
906pub struct GetRelayoutBoundaryParams {
907 pub nodeId: NodeId,
910}
911
912#[derive(Debug, Clone, Serialize, Deserialize, Default)]
915#[serde(rename_all = "camelCase")]
916pub struct GetRelayoutBoundaryReturns {
917 pub nodeId: NodeId,
920}
921
922impl GetRelayoutBoundaryParams { pub const METHOD: &'static str = "DOM.getRelayoutBoundary"; }
923
924impl crate::CdpCommand for GetRelayoutBoundaryParams {
925 const METHOD: &'static str = "DOM.getRelayoutBoundary";
926 type Response = GetRelayoutBoundaryReturns;
927}
928
929#[derive(Debug, Clone, Serialize, Deserialize, Default)]
933#[serde(rename_all = "camelCase")]
934pub struct GetSearchResultsParams {
935 pub searchId: String,
938 pub fromIndex: u64,
941 pub toIndex: u64,
944}
945
946#[derive(Debug, Clone, Serialize, Deserialize, Default)]
950#[serde(rename_all = "camelCase")]
951pub struct GetSearchResultsReturns {
952 pub nodeIds: Vec<NodeId>,
955}
956
957impl GetSearchResultsParams { pub const METHOD: &'static str = "DOM.getSearchResults"; }
958
959impl crate::CdpCommand for GetSearchResultsParams {
960 const METHOD: &'static str = "DOM.getSearchResults";
961 type Response = GetSearchResultsReturns;
962}
963
964#[derive(Debug, Clone, Serialize, Deserialize, Default)]
965pub struct HideHighlightParams {}
966
967impl HideHighlightParams { pub const METHOD: &'static str = "DOM.hideHighlight"; }
968
969impl crate::CdpCommand for HideHighlightParams {
970 const METHOD: &'static str = "DOM.hideHighlight";
971 type Response = crate::EmptyReturns;
972}
973
974#[derive(Debug, Clone, Serialize, Deserialize, Default)]
975pub struct HighlightNodeParams {}
976
977impl HighlightNodeParams { pub const METHOD: &'static str = "DOM.highlightNode"; }
978
979impl crate::CdpCommand for HighlightNodeParams {
980 const METHOD: &'static str = "DOM.highlightNode";
981 type Response = crate::EmptyReturns;
982}
983
984#[derive(Debug, Clone, Serialize, Deserialize, Default)]
985pub struct HighlightRectParams {}
986
987impl HighlightRectParams { pub const METHOD: &'static str = "DOM.highlightRect"; }
988
989impl crate::CdpCommand for HighlightRectParams {
990 const METHOD: &'static str = "DOM.highlightRect";
991 type Response = crate::EmptyReturns;
992}
993
994#[derive(Debug, Clone, Serialize, Deserialize, Default)]
995pub struct MarkUndoableStateParams {}
996
997impl MarkUndoableStateParams { pub const METHOD: &'static str = "DOM.markUndoableState"; }
998
999impl crate::CdpCommand for MarkUndoableStateParams {
1000 const METHOD: &'static str = "DOM.markUndoableState";
1001 type Response = crate::EmptyReturns;
1002}
1003
1004#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1007#[serde(rename_all = "camelCase")]
1008pub struct MoveToParams {
1009 pub nodeId: NodeId,
1012 pub targetNodeId: NodeId,
1015 #[serde(skip_serializing_if = "Option::is_none")]
1019 pub insertBeforeNodeId: Option<NodeId>,
1020}
1021
1022#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1025#[serde(rename_all = "camelCase")]
1026pub struct MoveToReturns {
1027 pub nodeId: NodeId,
1030}
1031
1032impl MoveToParams { pub const METHOD: &'static str = "DOM.moveTo"; }
1033
1034impl crate::CdpCommand for MoveToParams {
1035 const METHOD: &'static str = "DOM.moveTo";
1036 type Response = MoveToReturns;
1037}
1038
1039#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1043#[serde(rename_all = "camelCase")]
1044pub struct PerformSearchParams {
1045 pub query: String,
1048 #[serde(skip_serializing_if = "Option::is_none")]
1051 pub includeUserAgentShadowDOM: Option<bool>,
1052}
1053
1054#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1058#[serde(rename_all = "camelCase")]
1059pub struct PerformSearchReturns {
1060 pub searchId: String,
1063 pub resultCount: u64,
1066}
1067
1068impl PerformSearchParams { pub const METHOD: &'static str = "DOM.performSearch"; }
1069
1070impl crate::CdpCommand for PerformSearchParams {
1071 const METHOD: &'static str = "DOM.performSearch";
1072 type Response = PerformSearchReturns;
1073}
1074
1075#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1078#[serde(rename_all = "camelCase")]
1079pub struct PushNodeByPathToFrontendParams {
1080 pub path: String,
1083}
1084
1085#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1088#[serde(rename_all = "camelCase")]
1089pub struct PushNodeByPathToFrontendReturns {
1090 pub nodeId: NodeId,
1093}
1094
1095impl PushNodeByPathToFrontendParams { pub const METHOD: &'static str = "DOM.pushNodeByPathToFrontend"; }
1096
1097impl crate::CdpCommand for PushNodeByPathToFrontendParams {
1098 const METHOD: &'static str = "DOM.pushNodeByPathToFrontend";
1099 type Response = PushNodeByPathToFrontendReturns;
1100}
1101
1102#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1105#[serde(rename_all = "camelCase")]
1106pub struct PushNodesByBackendIdsToFrontendParams {
1107 pub backendNodeIds: Vec<BackendNodeId>,
1110}
1111
1112#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1115#[serde(rename_all = "camelCase")]
1116pub struct PushNodesByBackendIdsToFrontendReturns {
1117 pub nodeIds: Vec<NodeId>,
1121}
1122
1123impl PushNodesByBackendIdsToFrontendParams { pub const METHOD: &'static str = "DOM.pushNodesByBackendIdsToFrontend"; }
1124
1125impl crate::CdpCommand for PushNodesByBackendIdsToFrontendParams {
1126 const METHOD: &'static str = "DOM.pushNodesByBackendIdsToFrontend";
1127 type Response = PushNodesByBackendIdsToFrontendReturns;
1128}
1129
1130#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1133#[serde(rename_all = "camelCase")]
1134pub struct QuerySelectorParams {
1135 pub nodeId: NodeId,
1138 pub selector: String,
1141}
1142
1143#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1146#[serde(rename_all = "camelCase")]
1147pub struct QuerySelectorReturns {
1148 pub nodeId: NodeId,
1151}
1152
1153impl QuerySelectorParams { pub const METHOD: &'static str = "DOM.querySelector"; }
1154
1155impl crate::CdpCommand for QuerySelectorParams {
1156 const METHOD: &'static str = "DOM.querySelector";
1157 type Response = QuerySelectorReturns;
1158}
1159
1160#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1163#[serde(rename_all = "camelCase")]
1164pub struct QuerySelectorAllParams {
1165 pub nodeId: NodeId,
1168 pub selector: String,
1171}
1172
1173#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1176#[serde(rename_all = "camelCase")]
1177pub struct QuerySelectorAllReturns {
1178 pub nodeIds: Vec<NodeId>,
1181}
1182
1183impl QuerySelectorAllParams { pub const METHOD: &'static str = "DOM.querySelectorAll"; }
1184
1185impl crate::CdpCommand for QuerySelectorAllParams {
1186 const METHOD: &'static str = "DOM.querySelectorAll";
1187 type Response = QuerySelectorAllReturns;
1188}
1189
1190#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1195#[serde(rename_all = "camelCase")]
1196pub struct GetTopLayerElementsReturns {
1197 pub nodeIds: Vec<NodeId>,
1200}
1201
1202#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1203pub struct GetTopLayerElementsParams {}
1204
1205impl GetTopLayerElementsParams { pub const METHOD: &'static str = "DOM.getTopLayerElements"; }
1206
1207impl crate::CdpCommand for GetTopLayerElementsParams {
1208 const METHOD: &'static str = "DOM.getTopLayerElements";
1209 type Response = GetTopLayerElementsReturns;
1210}
1211
1212#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1215#[serde(rename_all = "camelCase")]
1216pub struct GetElementByRelationParams {
1217 pub nodeId: NodeId,
1220 pub relation: String,
1223}
1224
1225#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1228#[serde(rename_all = "camelCase")]
1229pub struct GetElementByRelationReturns {
1230 pub nodeId: NodeId,
1233}
1234
1235impl GetElementByRelationParams { pub const METHOD: &'static str = "DOM.getElementByRelation"; }
1236
1237impl crate::CdpCommand for GetElementByRelationParams {
1238 const METHOD: &'static str = "DOM.getElementByRelation";
1239 type Response = GetElementByRelationReturns;
1240}
1241
1242#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1243pub struct RedoParams {}
1244
1245impl RedoParams { pub const METHOD: &'static str = "DOM.redo"; }
1246
1247impl crate::CdpCommand for RedoParams {
1248 const METHOD: &'static str = "DOM.redo";
1249 type Response = crate::EmptyReturns;
1250}
1251
1252#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1255#[serde(rename_all = "camelCase")]
1256pub struct RemoveAttributeParams {
1257 pub nodeId: NodeId,
1260 pub name: String,
1263}
1264
1265impl RemoveAttributeParams { pub const METHOD: &'static str = "DOM.removeAttribute"; }
1266
1267impl crate::CdpCommand for RemoveAttributeParams {
1268 const METHOD: &'static str = "DOM.removeAttribute";
1269 type Response = crate::EmptyReturns;
1270}
1271
1272#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1275#[serde(rename_all = "camelCase")]
1276pub struct RemoveNodeParams {
1277 pub nodeId: NodeId,
1280}
1281
1282impl RemoveNodeParams { pub const METHOD: &'static str = "DOM.removeNode"; }
1283
1284impl crate::CdpCommand for RemoveNodeParams {
1285 const METHOD: &'static str = "DOM.removeNode";
1286 type Response = crate::EmptyReturns;
1287}
1288
1289#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1294#[serde(rename_all = "camelCase")]
1295pub struct RequestChildNodesParams {
1296 pub nodeId: NodeId,
1299 #[serde(skip_serializing_if = "Option::is_none")]
1303 pub depth: Option<i64>,
1304 #[serde(skip_serializing_if = "Option::is_none")]
1308 pub pierce: Option<bool>,
1309}
1310
1311impl RequestChildNodesParams { pub const METHOD: &'static str = "DOM.requestChildNodes"; }
1312
1313impl crate::CdpCommand for RequestChildNodesParams {
1314 const METHOD: &'static str = "DOM.requestChildNodes";
1315 type Response = crate::EmptyReturns;
1316}
1317
1318#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1323#[serde(rename_all = "camelCase")]
1324pub struct RequestNodeParams {
1325 pub objectId: crate::runtime::RemoteObjectId,
1328}
1329
1330#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1335#[serde(rename_all = "camelCase")]
1336pub struct RequestNodeReturns {
1337 pub nodeId: NodeId,
1340}
1341
1342impl RequestNodeParams { pub const METHOD: &'static str = "DOM.requestNode"; }
1343
1344impl crate::CdpCommand for RequestNodeParams {
1345 const METHOD: &'static str = "DOM.requestNode";
1346 type Response = RequestNodeReturns;
1347}
1348
1349#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1352#[serde(rename_all = "camelCase")]
1353pub struct ResolveNodeParams {
1354 #[serde(skip_serializing_if = "Option::is_none")]
1357 pub nodeId: Option<NodeId>,
1358 #[serde(skip_serializing_if = "Option::is_none")]
1361 pub backendNodeId: Option<crate::dom::BackendNodeId>,
1362 #[serde(skip_serializing_if = "Option::is_none")]
1365 pub objectGroup: Option<String>,
1366 #[serde(skip_serializing_if = "Option::is_none")]
1369 pub executionContextId: Option<crate::runtime::ExecutionContextId>,
1370}
1371
1372#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1375#[serde(rename_all = "camelCase")]
1376pub struct ResolveNodeReturns {
1377 pub object: crate::runtime::RemoteObject,
1380}
1381
1382impl ResolveNodeParams { pub const METHOD: &'static str = "DOM.resolveNode"; }
1383
1384impl crate::CdpCommand for ResolveNodeParams {
1385 const METHOD: &'static str = "DOM.resolveNode";
1386 type Response = ResolveNodeReturns;
1387}
1388
1389#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1392#[serde(rename_all = "camelCase")]
1393pub struct SetAttributeValueParams {
1394 pub nodeId: NodeId,
1397 pub name: String,
1400 pub value: String,
1403}
1404
1405impl SetAttributeValueParams { pub const METHOD: &'static str = "DOM.setAttributeValue"; }
1406
1407impl crate::CdpCommand for SetAttributeValueParams {
1408 const METHOD: &'static str = "DOM.setAttributeValue";
1409 type Response = crate::EmptyReturns;
1410}
1411
1412#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1416#[serde(rename_all = "camelCase")]
1417pub struct SetAttributesAsTextParams {
1418 pub nodeId: NodeId,
1421 pub text: String,
1424 #[serde(skip_serializing_if = "Option::is_none")]
1428 pub name: Option<String>,
1429}
1430
1431impl SetAttributesAsTextParams { pub const METHOD: &'static str = "DOM.setAttributesAsText"; }
1432
1433impl crate::CdpCommand for SetAttributesAsTextParams {
1434 const METHOD: &'static str = "DOM.setAttributesAsText";
1435 type Response = crate::EmptyReturns;
1436}
1437
1438#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1441#[serde(rename_all = "camelCase")]
1442pub struct SetFileInputFilesParams {
1443 pub files: Vec<String>,
1446 #[serde(skip_serializing_if = "Option::is_none")]
1449 pub nodeId: Option<NodeId>,
1450 #[serde(skip_serializing_if = "Option::is_none")]
1453 pub backendNodeId: Option<BackendNodeId>,
1454 #[serde(skip_serializing_if = "Option::is_none")]
1457 pub objectId: Option<crate::runtime::RemoteObjectId>,
1458}
1459
1460impl SetFileInputFilesParams { pub const METHOD: &'static str = "DOM.setFileInputFiles"; }
1461
1462impl crate::CdpCommand for SetFileInputFilesParams {
1463 const METHOD: &'static str = "DOM.setFileInputFiles";
1464 type Response = crate::EmptyReturns;
1465}
1466
1467#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1470#[serde(rename_all = "camelCase")]
1471pub struct SetNodeStackTracesEnabledParams {
1472 pub enable: bool,
1475}
1476
1477impl SetNodeStackTracesEnabledParams { pub const METHOD: &'static str = "DOM.setNodeStackTracesEnabled"; }
1478
1479impl crate::CdpCommand for SetNodeStackTracesEnabledParams {
1480 const METHOD: &'static str = "DOM.setNodeStackTracesEnabled";
1481 type Response = crate::EmptyReturns;
1482}
1483
1484#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1487#[serde(rename_all = "camelCase")]
1488pub struct GetNodeStackTracesParams {
1489 pub nodeId: NodeId,
1492}
1493
1494#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1497#[serde(rename_all = "camelCase")]
1498pub struct GetNodeStackTracesReturns {
1499 #[serde(skip_serializing_if = "Option::is_none")]
1502 pub creation: Option<crate::runtime::StackTrace>,
1503}
1504
1505impl GetNodeStackTracesParams { pub const METHOD: &'static str = "DOM.getNodeStackTraces"; }
1506
1507impl crate::CdpCommand for GetNodeStackTracesParams {
1508 const METHOD: &'static str = "DOM.getNodeStackTraces";
1509 type Response = GetNodeStackTracesReturns;
1510}
1511
1512#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1516#[serde(rename_all = "camelCase")]
1517pub struct GetFileInfoParams {
1518 pub objectId: crate::runtime::RemoteObjectId,
1521}
1522
1523#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1527#[serde(rename_all = "camelCase")]
1528pub struct GetFileInfoReturns {
1529
1530 pub path: String,
1531}
1532
1533impl GetFileInfoParams { pub const METHOD: &'static str = "DOM.getFileInfo"; }
1534
1535impl crate::CdpCommand for GetFileInfoParams {
1536 const METHOD: &'static str = "DOM.getFileInfo";
1537 type Response = GetFileInfoReturns;
1538}
1539
1540#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1543#[serde(rename_all = "camelCase")]
1544pub struct GetDetachedDomNodesReturns {
1545 pub detachedNodes: Vec<DetachedElementInfo>,
1548}
1549
1550#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1551pub struct GetDetachedDomNodesParams {}
1552
1553impl GetDetachedDomNodesParams { pub const METHOD: &'static str = "DOM.getDetachedDomNodes"; }
1554
1555impl crate::CdpCommand for GetDetachedDomNodesParams {
1556 const METHOD: &'static str = "DOM.getDetachedDomNodes";
1557 type Response = GetDetachedDomNodesReturns;
1558}
1559
1560#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1564#[serde(rename_all = "camelCase")]
1565pub struct SetInspectedNodeParams {
1566 pub nodeId: NodeId,
1569}
1570
1571impl SetInspectedNodeParams { pub const METHOD: &'static str = "DOM.setInspectedNode"; }
1572
1573impl crate::CdpCommand for SetInspectedNodeParams {
1574 const METHOD: &'static str = "DOM.setInspectedNode";
1575 type Response = crate::EmptyReturns;
1576}
1577
1578#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1581#[serde(rename_all = "camelCase")]
1582pub struct SetNodeNameParams {
1583 pub nodeId: NodeId,
1586 pub name: String,
1589}
1590
1591#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1594#[serde(rename_all = "camelCase")]
1595pub struct SetNodeNameReturns {
1596 pub nodeId: NodeId,
1599}
1600
1601impl SetNodeNameParams { pub const METHOD: &'static str = "DOM.setNodeName"; }
1602
1603impl crate::CdpCommand for SetNodeNameParams {
1604 const METHOD: &'static str = "DOM.setNodeName";
1605 type Response = SetNodeNameReturns;
1606}
1607
1608#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1611#[serde(rename_all = "camelCase")]
1612pub struct SetNodeValueParams {
1613 pub nodeId: NodeId,
1616 pub value: String,
1619}
1620
1621impl SetNodeValueParams { pub const METHOD: &'static str = "DOM.setNodeValue"; }
1622
1623impl crate::CdpCommand for SetNodeValueParams {
1624 const METHOD: &'static str = "DOM.setNodeValue";
1625 type Response = crate::EmptyReturns;
1626}
1627
1628#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1631#[serde(rename_all = "camelCase")]
1632pub struct SetOuterHTMLParams {
1633 pub nodeId: NodeId,
1636 pub outerHTML: String,
1639}
1640
1641impl SetOuterHTMLParams { pub const METHOD: &'static str = "DOM.setOuterHTML"; }
1642
1643impl crate::CdpCommand for SetOuterHTMLParams {
1644 const METHOD: &'static str = "DOM.setOuterHTML";
1645 type Response = crate::EmptyReturns;
1646}
1647
1648#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1649pub struct UndoParams {}
1650
1651impl UndoParams { pub const METHOD: &'static str = "DOM.undo"; }
1652
1653impl crate::CdpCommand for UndoParams {
1654 const METHOD: &'static str = "DOM.undo";
1655 type Response = crate::EmptyReturns;
1656}
1657
1658#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1661#[serde(rename_all = "camelCase")]
1662pub struct GetFrameOwnerParams {
1663
1664 pub frameId: crate::page::FrameId,
1665}
1666
1667#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1670#[serde(rename_all = "camelCase")]
1671pub struct GetFrameOwnerReturns {
1672 pub backendNodeId: BackendNodeId,
1675 #[serde(skip_serializing_if = "Option::is_none")]
1678 pub nodeId: Option<NodeId>,
1679}
1680
1681impl GetFrameOwnerParams { pub const METHOD: &'static str = "DOM.getFrameOwner"; }
1682
1683impl crate::CdpCommand for GetFrameOwnerParams {
1684 const METHOD: &'static str = "DOM.getFrameOwner";
1685 type Response = GetFrameOwnerReturns;
1686}
1687
1688#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1695#[serde(rename_all = "camelCase")]
1696pub struct GetContainerForNodeParams {
1697
1698 pub nodeId: NodeId,
1699
1700 #[serde(skip_serializing_if = "Option::is_none")]
1701 pub containerName: Option<String>,
1702
1703 #[serde(skip_serializing_if = "Option::is_none")]
1704 pub physicalAxes: Option<PhysicalAxes>,
1705
1706 #[serde(skip_serializing_if = "Option::is_none")]
1707 pub logicalAxes: Option<LogicalAxes>,
1708
1709 #[serde(skip_serializing_if = "Option::is_none")]
1710 pub queriesScrollState: Option<bool>,
1711
1712 #[serde(skip_serializing_if = "Option::is_none")]
1713 pub queriesAnchored: Option<bool>,
1714}
1715
1716#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1723#[serde(rename_all = "camelCase")]
1724pub struct GetContainerForNodeReturns {
1725 #[serde(skip_serializing_if = "Option::is_none")]
1728 pub nodeId: Option<NodeId>,
1729}
1730
1731impl GetContainerForNodeParams { pub const METHOD: &'static str = "DOM.getContainerForNode"; }
1732
1733impl crate::CdpCommand for GetContainerForNodeParams {
1734 const METHOD: &'static str = "DOM.getContainerForNode";
1735 type Response = GetContainerForNodeReturns;
1736}
1737
1738#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1742#[serde(rename_all = "camelCase")]
1743pub struct GetQueryingDescendantsForContainerParams {
1744 pub nodeId: NodeId,
1747}
1748
1749#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1753#[serde(rename_all = "camelCase")]
1754pub struct GetQueryingDescendantsForContainerReturns {
1755 pub nodeIds: Vec<NodeId>,
1758}
1759
1760impl GetQueryingDescendantsForContainerParams { pub const METHOD: &'static str = "DOM.getQueryingDescendantsForContainer"; }
1761
1762impl crate::CdpCommand for GetQueryingDescendantsForContainerParams {
1763 const METHOD: &'static str = "DOM.getQueryingDescendantsForContainer";
1764 type Response = GetQueryingDescendantsForContainerReturns;
1765}
1766
1767#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1771#[serde(rename_all = "camelCase")]
1772pub struct GetAnchorElementParams {
1773 pub nodeId: NodeId,
1776 #[serde(skip_serializing_if = "Option::is_none")]
1782 pub anchorSpecifier: Option<String>,
1783}
1784
1785#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1789#[serde(rename_all = "camelCase")]
1790pub struct GetAnchorElementReturns {
1791 pub nodeId: NodeId,
1794}
1795
1796impl GetAnchorElementParams { pub const METHOD: &'static str = "DOM.getAnchorElement"; }
1797
1798impl crate::CdpCommand for GetAnchorElementParams {
1799 const METHOD: &'static str = "DOM.getAnchorElement";
1800 type Response = GetAnchorElementReturns;
1801}
1802
1803#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1807#[serde(rename_all = "camelCase")]
1808pub struct ForceShowPopoverParams {
1809 pub nodeId: NodeId,
1812 pub enable: bool,
1816}
1817
1818#[derive(Debug, Clone, Serialize, Deserialize, Default)]
1822#[serde(rename_all = "camelCase")]
1823pub struct ForceShowPopoverReturns {
1824 pub nodeIds: Vec<NodeId>,
1827}
1828
1829impl ForceShowPopoverParams { pub const METHOD: &'static str = "DOM.forceShowPopover"; }
1830
1831impl crate::CdpCommand for ForceShowPopoverParams {
1832 const METHOD: &'static str = "DOM.forceShowPopover";
1833 type Response = ForceShowPopoverReturns;
1834}