1use serde::{Serialize, Deserialize};
6use serde_json::Value as JsonValue;
7use std::borrow::Cow;
8
9#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
12pub enum DOMBreakpointType {
13 #[default]
14 #[serde(rename = "subtree-modified")]
15 SubtreeModified,
16 #[serde(rename = "attribute-modified")]
17 AttributeModified,
18 #[serde(rename = "node-removed")]
19 NodeRemoved,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25pub enum CSPViolationType {
26 #[default]
27 #[serde(rename = "trustedtype-sink-violation")]
28 TrustedtypeSinkViolation,
29 #[serde(rename = "trustedtype-policy-violation")]
30 TrustedtypePolicyViolation,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize, Default)]
36#[serde(rename_all = "camelCase")]
37pub struct EventListener<'a> {
38 #[serde(rename = "type")]
40 type_: Cow<'a, str>,
41 #[serde(rename = "useCapture")]
43 use_capture: bool,
44 passive: bool,
46 once: bool,
48 #[serde(rename = "scriptId")]
50 script_id: crate::runtime::ScriptId<'a>,
51 #[serde(rename = "lineNumber")]
53 line_number: i64,
54 #[serde(rename = "columnNumber")]
56 column_number: i64,
57 #[serde(skip_serializing_if = "Option::is_none")]
59 handler: Option<crate::runtime::RemoteObject>,
60 #[serde(skip_serializing_if = "Option::is_none", rename = "originalHandler")]
62 original_handler: Option<crate::runtime::RemoteObject>,
63 #[serde(skip_serializing_if = "Option::is_none", rename = "backendNodeId")]
65 backend_node_id: Option<crate::dom::BackendNodeId>,
66}
67
68impl<'a> EventListener<'a> {
69 pub fn builder(type_: impl Into<Cow<'a, str>>, use_capture: bool, passive: bool, once: bool, script_id: crate::runtime::ScriptId<'a>, line_number: i64, column_number: i64) -> EventListenerBuilder<'a> {
78 EventListenerBuilder {
79 type_: type_.into(),
80 use_capture: use_capture,
81 passive: passive,
82 once: once,
83 script_id: script_id,
84 line_number: line_number,
85 column_number: column_number,
86 handler: None,
87 original_handler: None,
88 backend_node_id: None,
89 }
90 }
91 pub fn type_(&self) -> &str { self.type_.as_ref() }
93 pub fn use_capture(&self) -> bool { self.use_capture }
95 pub fn passive(&self) -> bool { self.passive }
97 pub fn once(&self) -> bool { self.once }
99 pub fn script_id(&self) -> &crate::runtime::ScriptId<'a> { &self.script_id }
101 pub fn line_number(&self) -> i64 { self.line_number }
103 pub fn column_number(&self) -> i64 { self.column_number }
105 pub fn handler(&self) -> Option<&crate::runtime::RemoteObject> { self.handler.as_ref() }
107 pub fn original_handler(&self) -> Option<&crate::runtime::RemoteObject> { self.original_handler.as_ref() }
109 pub fn backend_node_id(&self) -> Option<&crate::dom::BackendNodeId> { self.backend_node_id.as_ref() }
111}
112
113
114pub struct EventListenerBuilder<'a> {
115 type_: Cow<'a, str>,
116 use_capture: bool,
117 passive: bool,
118 once: bool,
119 script_id: crate::runtime::ScriptId<'a>,
120 line_number: i64,
121 column_number: i64,
122 handler: Option<crate::runtime::RemoteObject>,
123 original_handler: Option<crate::runtime::RemoteObject>,
124 backend_node_id: Option<crate::dom::BackendNodeId>,
125}
126
127impl<'a> EventListenerBuilder<'a> {
128 pub fn handler(mut self, handler: crate::runtime::RemoteObject) -> Self { self.handler = Some(handler); self }
130 pub fn original_handler(mut self, original_handler: crate::runtime::RemoteObject) -> Self { self.original_handler = Some(original_handler); self }
132 pub fn backend_node_id(mut self, backend_node_id: crate::dom::BackendNodeId) -> Self { self.backend_node_id = Some(backend_node_id); self }
134 pub fn build(self) -> EventListener<'a> {
135 EventListener {
136 type_: self.type_,
137 use_capture: self.use_capture,
138 passive: self.passive,
139 once: self.once,
140 script_id: self.script_id,
141 line_number: self.line_number,
142 column_number: self.column_number,
143 handler: self.handler,
144 original_handler: self.original_handler,
145 backend_node_id: self.backend_node_id,
146 }
147 }
148}
149
150#[derive(Debug, Clone, Serialize, Deserialize, Default)]
153#[serde(rename_all = "camelCase")]
154pub struct GetEventListenersParams<'a> {
155 #[serde(rename = "objectId")]
157 object_id: crate::runtime::RemoteObjectId<'a>,
158 #[serde(skip_serializing_if = "Option::is_none")]
161 depth: Option<i64>,
162 #[serde(skip_serializing_if = "Option::is_none")]
165 pierce: Option<bool>,
166}
167
168impl<'a> GetEventListenersParams<'a> {
169 pub fn builder(object_id: crate::runtime::RemoteObjectId<'a>) -> GetEventListenersParamsBuilder<'a> {
172 GetEventListenersParamsBuilder {
173 object_id: object_id,
174 depth: None,
175 pierce: None,
176 }
177 }
178 pub fn object_id(&self) -> &crate::runtime::RemoteObjectId<'a> { &self.object_id }
180 pub fn depth(&self) -> Option<i64> { self.depth }
183 pub fn pierce(&self) -> Option<bool> { self.pierce }
186}
187
188
189pub struct GetEventListenersParamsBuilder<'a> {
190 object_id: crate::runtime::RemoteObjectId<'a>,
191 depth: Option<i64>,
192 pierce: Option<bool>,
193}
194
195impl<'a> GetEventListenersParamsBuilder<'a> {
196 pub fn depth(mut self, depth: i64) -> Self { self.depth = Some(depth); self }
199 pub fn pierce(mut self, pierce: bool) -> Self { self.pierce = Some(pierce); self }
202 pub fn build(self) -> GetEventListenersParams<'a> {
203 GetEventListenersParams {
204 object_id: self.object_id,
205 depth: self.depth,
206 pierce: self.pierce,
207 }
208 }
209}
210
211#[derive(Debug, Clone, Serialize, Deserialize, Default)]
214#[serde(rename_all = "camelCase")]
215pub struct GetEventListenersReturns<'a> {
216 listeners: Vec<EventListener<'a>>,
218}
219
220impl<'a> GetEventListenersReturns<'a> {
221 pub fn builder(listeners: Vec<EventListener<'a>>) -> GetEventListenersReturnsBuilder<'a> {
224 GetEventListenersReturnsBuilder {
225 listeners: listeners,
226 }
227 }
228 pub fn listeners(&self) -> &[EventListener<'a>] { &self.listeners }
230}
231
232
233pub struct GetEventListenersReturnsBuilder<'a> {
234 listeners: Vec<EventListener<'a>>,
235}
236
237impl<'a> GetEventListenersReturnsBuilder<'a> {
238 pub fn build(self) -> GetEventListenersReturns<'a> {
239 GetEventListenersReturns {
240 listeners: self.listeners,
241 }
242 }
243}
244
245impl<'a> GetEventListenersParams<'a> { pub const METHOD: &'static str = "DOMDebugger.getEventListeners"; }
246
247impl<'a> crate::CdpCommand<'a> for GetEventListenersParams<'a> {
248 const METHOD: &'static str = "DOMDebugger.getEventListeners";
249 type Response = GetEventListenersReturns<'a>;
250}
251
252#[derive(Debug, Clone, Serialize, Deserialize, Default)]
255#[serde(rename_all = "camelCase")]
256pub struct RemoveDOMBreakpointParams {
257 #[serde(rename = "nodeId")]
259 node_id: crate::dom::NodeId,
260 #[serde(rename = "type")]
262 type_: DOMBreakpointType,
263}
264
265impl RemoveDOMBreakpointParams {
266 pub fn builder(node_id: crate::dom::NodeId, type_: impl Into<DOMBreakpointType>) -> RemoveDOMBreakpointParamsBuilder {
270 RemoveDOMBreakpointParamsBuilder {
271 node_id: node_id,
272 type_: type_.into(),
273 }
274 }
275 pub fn node_id(&self) -> &crate::dom::NodeId { &self.node_id }
277 pub fn type_(&self) -> &DOMBreakpointType { &self.type_ }
279}
280
281
282pub struct RemoveDOMBreakpointParamsBuilder {
283 node_id: crate::dom::NodeId,
284 type_: DOMBreakpointType,
285}
286
287impl RemoveDOMBreakpointParamsBuilder {
288 pub fn build(self) -> RemoveDOMBreakpointParams {
289 RemoveDOMBreakpointParams {
290 node_id: self.node_id,
291 type_: self.type_,
292 }
293 }
294}
295
296impl RemoveDOMBreakpointParams { pub const METHOD: &'static str = "DOMDebugger.removeDOMBreakpoint"; }
297
298impl<'a> crate::CdpCommand<'a> for RemoveDOMBreakpointParams {
299 const METHOD: &'static str = "DOMDebugger.removeDOMBreakpoint";
300 type Response = crate::EmptyReturns;
301}
302
303#[derive(Debug, Clone, Serialize, Deserialize, Default)]
306#[serde(rename_all = "camelCase")]
307pub struct RemoveEventListenerBreakpointParams<'a> {
308 #[serde(rename = "eventName")]
310 event_name: Cow<'a, str>,
311 #[serde(skip_serializing_if = "Option::is_none", rename = "targetName")]
313 target_name: Option<Cow<'a, str>>,
314}
315
316impl<'a> RemoveEventListenerBreakpointParams<'a> {
317 pub fn builder(event_name: impl Into<Cow<'a, str>>) -> RemoveEventListenerBreakpointParamsBuilder<'a> {
320 RemoveEventListenerBreakpointParamsBuilder {
321 event_name: event_name.into(),
322 target_name: None,
323 }
324 }
325 pub fn event_name(&self) -> &str { self.event_name.as_ref() }
327 pub fn target_name(&self) -> Option<&str> { self.target_name.as_deref() }
329}
330
331
332pub struct RemoveEventListenerBreakpointParamsBuilder<'a> {
333 event_name: Cow<'a, str>,
334 target_name: Option<Cow<'a, str>>,
335}
336
337impl<'a> RemoveEventListenerBreakpointParamsBuilder<'a> {
338 pub fn target_name(mut self, target_name: impl Into<Cow<'a, str>>) -> Self { self.target_name = Some(target_name.into()); self }
340 pub fn build(self) -> RemoveEventListenerBreakpointParams<'a> {
341 RemoveEventListenerBreakpointParams {
342 event_name: self.event_name,
343 target_name: self.target_name,
344 }
345 }
346}
347
348impl<'a> RemoveEventListenerBreakpointParams<'a> { pub const METHOD: &'static str = "DOMDebugger.removeEventListenerBreakpoint"; }
349
350impl<'a> crate::CdpCommand<'a> for RemoveEventListenerBreakpointParams<'a> {
351 const METHOD: &'static str = "DOMDebugger.removeEventListenerBreakpoint";
352 type Response = crate::EmptyReturns;
353}
354
355#[derive(Debug, Clone, Serialize, Deserialize, Default)]
358#[serde(rename_all = "camelCase")]
359pub struct RemoveInstrumentationBreakpointParams<'a> {
360 #[serde(rename = "eventName")]
362 event_name: Cow<'a, str>,
363}
364
365impl<'a> RemoveInstrumentationBreakpointParams<'a> {
366 pub fn builder(event_name: impl Into<Cow<'a, str>>) -> RemoveInstrumentationBreakpointParamsBuilder<'a> {
369 RemoveInstrumentationBreakpointParamsBuilder {
370 event_name: event_name.into(),
371 }
372 }
373 pub fn event_name(&self) -> &str { self.event_name.as_ref() }
375}
376
377
378pub struct RemoveInstrumentationBreakpointParamsBuilder<'a> {
379 event_name: Cow<'a, str>,
380}
381
382impl<'a> RemoveInstrumentationBreakpointParamsBuilder<'a> {
383 pub fn build(self) -> RemoveInstrumentationBreakpointParams<'a> {
384 RemoveInstrumentationBreakpointParams {
385 event_name: self.event_name,
386 }
387 }
388}
389
390impl<'a> RemoveInstrumentationBreakpointParams<'a> { pub const METHOD: &'static str = "DOMDebugger.removeInstrumentationBreakpoint"; }
391
392impl<'a> crate::CdpCommand<'a> for RemoveInstrumentationBreakpointParams<'a> {
393 const METHOD: &'static str = "DOMDebugger.removeInstrumentationBreakpoint";
394 type Response = crate::EmptyReturns;
395}
396
397#[derive(Debug, Clone, Serialize, Deserialize, Default)]
400#[serde(rename_all = "camelCase")]
401pub struct RemoveXHRBreakpointParams<'a> {
402 url: Cow<'a, str>,
404}
405
406impl<'a> RemoveXHRBreakpointParams<'a> {
407 pub fn builder(url: impl Into<Cow<'a, str>>) -> RemoveXHRBreakpointParamsBuilder<'a> {
410 RemoveXHRBreakpointParamsBuilder {
411 url: url.into(),
412 }
413 }
414 pub fn url(&self) -> &str { self.url.as_ref() }
416}
417
418
419pub struct RemoveXHRBreakpointParamsBuilder<'a> {
420 url: Cow<'a, str>,
421}
422
423impl<'a> RemoveXHRBreakpointParamsBuilder<'a> {
424 pub fn build(self) -> RemoveXHRBreakpointParams<'a> {
425 RemoveXHRBreakpointParams {
426 url: self.url,
427 }
428 }
429}
430
431impl<'a> RemoveXHRBreakpointParams<'a> { pub const METHOD: &'static str = "DOMDebugger.removeXHRBreakpoint"; }
432
433impl<'a> crate::CdpCommand<'a> for RemoveXHRBreakpointParams<'a> {
434 const METHOD: &'static str = "DOMDebugger.removeXHRBreakpoint";
435 type Response = crate::EmptyReturns;
436}
437
438#[derive(Debug, Clone, Serialize, Deserialize, Default)]
441#[serde(rename_all = "camelCase")]
442pub struct SetBreakOnCSPViolationParams {
443 #[serde(rename = "violationTypes")]
445 violation_types: Vec<CSPViolationType>,
446}
447
448impl SetBreakOnCSPViolationParams {
449 pub fn builder(violation_types: Vec<CSPViolationType>) -> SetBreakOnCSPViolationParamsBuilder {
452 SetBreakOnCSPViolationParamsBuilder {
453 violation_types: violation_types,
454 }
455 }
456 pub fn violation_types(&self) -> &[CSPViolationType] { &self.violation_types }
458}
459
460
461pub struct SetBreakOnCSPViolationParamsBuilder {
462 violation_types: Vec<CSPViolationType>,
463}
464
465impl SetBreakOnCSPViolationParamsBuilder {
466 pub fn build(self) -> SetBreakOnCSPViolationParams {
467 SetBreakOnCSPViolationParams {
468 violation_types: self.violation_types,
469 }
470 }
471}
472
473impl SetBreakOnCSPViolationParams { pub const METHOD: &'static str = "DOMDebugger.setBreakOnCSPViolation"; }
474
475impl<'a> crate::CdpCommand<'a> for SetBreakOnCSPViolationParams {
476 const METHOD: &'static str = "DOMDebugger.setBreakOnCSPViolation";
477 type Response = crate::EmptyReturns;
478}
479
480#[derive(Debug, Clone, Serialize, Deserialize, Default)]
483#[serde(rename_all = "camelCase")]
484pub struct SetDOMBreakpointParams {
485 #[serde(rename = "nodeId")]
487 node_id: crate::dom::NodeId,
488 #[serde(rename = "type")]
490 type_: DOMBreakpointType,
491}
492
493impl SetDOMBreakpointParams {
494 pub fn builder(node_id: crate::dom::NodeId, type_: impl Into<DOMBreakpointType>) -> SetDOMBreakpointParamsBuilder {
498 SetDOMBreakpointParamsBuilder {
499 node_id: node_id,
500 type_: type_.into(),
501 }
502 }
503 pub fn node_id(&self) -> &crate::dom::NodeId { &self.node_id }
505 pub fn type_(&self) -> &DOMBreakpointType { &self.type_ }
507}
508
509
510pub struct SetDOMBreakpointParamsBuilder {
511 node_id: crate::dom::NodeId,
512 type_: DOMBreakpointType,
513}
514
515impl SetDOMBreakpointParamsBuilder {
516 pub fn build(self) -> SetDOMBreakpointParams {
517 SetDOMBreakpointParams {
518 node_id: self.node_id,
519 type_: self.type_,
520 }
521 }
522}
523
524impl SetDOMBreakpointParams { pub const METHOD: &'static str = "DOMDebugger.setDOMBreakpoint"; }
525
526impl<'a> crate::CdpCommand<'a> for SetDOMBreakpointParams {
527 const METHOD: &'static str = "DOMDebugger.setDOMBreakpoint";
528 type Response = crate::EmptyReturns;
529}
530
531#[derive(Debug, Clone, Serialize, Deserialize, Default)]
534#[serde(rename_all = "camelCase")]
535pub struct SetEventListenerBreakpointParams<'a> {
536 #[serde(rename = "eventName")]
538 event_name: Cow<'a, str>,
539 #[serde(skip_serializing_if = "Option::is_none", rename = "targetName")]
542 target_name: Option<Cow<'a, str>>,
543}
544
545impl<'a> SetEventListenerBreakpointParams<'a> {
546 pub fn builder(event_name: impl Into<Cow<'a, str>>) -> SetEventListenerBreakpointParamsBuilder<'a> {
549 SetEventListenerBreakpointParamsBuilder {
550 event_name: event_name.into(),
551 target_name: None,
552 }
553 }
554 pub fn event_name(&self) -> &str { self.event_name.as_ref() }
556 pub fn target_name(&self) -> Option<&str> { self.target_name.as_deref() }
559}
560
561
562pub struct SetEventListenerBreakpointParamsBuilder<'a> {
563 event_name: Cow<'a, str>,
564 target_name: Option<Cow<'a, str>>,
565}
566
567impl<'a> SetEventListenerBreakpointParamsBuilder<'a> {
568 pub fn target_name(mut self, target_name: impl Into<Cow<'a, str>>) -> Self { self.target_name = Some(target_name.into()); self }
571 pub fn build(self) -> SetEventListenerBreakpointParams<'a> {
572 SetEventListenerBreakpointParams {
573 event_name: self.event_name,
574 target_name: self.target_name,
575 }
576 }
577}
578
579impl<'a> SetEventListenerBreakpointParams<'a> { pub const METHOD: &'static str = "DOMDebugger.setEventListenerBreakpoint"; }
580
581impl<'a> crate::CdpCommand<'a> for SetEventListenerBreakpointParams<'a> {
582 const METHOD: &'static str = "DOMDebugger.setEventListenerBreakpoint";
583 type Response = crate::EmptyReturns;
584}
585
586#[derive(Debug, Clone, Serialize, Deserialize, Default)]
589#[serde(rename_all = "camelCase")]
590pub struct SetInstrumentationBreakpointParams<'a> {
591 #[serde(rename = "eventName")]
593 event_name: Cow<'a, str>,
594}
595
596impl<'a> SetInstrumentationBreakpointParams<'a> {
597 pub fn builder(event_name: impl Into<Cow<'a, str>>) -> SetInstrumentationBreakpointParamsBuilder<'a> {
600 SetInstrumentationBreakpointParamsBuilder {
601 event_name: event_name.into(),
602 }
603 }
604 pub fn event_name(&self) -> &str { self.event_name.as_ref() }
606}
607
608
609pub struct SetInstrumentationBreakpointParamsBuilder<'a> {
610 event_name: Cow<'a, str>,
611}
612
613impl<'a> SetInstrumentationBreakpointParamsBuilder<'a> {
614 pub fn build(self) -> SetInstrumentationBreakpointParams<'a> {
615 SetInstrumentationBreakpointParams {
616 event_name: self.event_name,
617 }
618 }
619}
620
621impl<'a> SetInstrumentationBreakpointParams<'a> { pub const METHOD: &'static str = "DOMDebugger.setInstrumentationBreakpoint"; }
622
623impl<'a> crate::CdpCommand<'a> for SetInstrumentationBreakpointParams<'a> {
624 const METHOD: &'static str = "DOMDebugger.setInstrumentationBreakpoint";
625 type Response = crate::EmptyReturns;
626}
627
628#[derive(Debug, Clone, Serialize, Deserialize, Default)]
631#[serde(rename_all = "camelCase")]
632pub struct SetXHRBreakpointParams<'a> {
633 url: Cow<'a, str>,
635}
636
637impl<'a> SetXHRBreakpointParams<'a> {
638 pub fn builder(url: impl Into<Cow<'a, str>>) -> SetXHRBreakpointParamsBuilder<'a> {
641 SetXHRBreakpointParamsBuilder {
642 url: url.into(),
643 }
644 }
645 pub fn url(&self) -> &str { self.url.as_ref() }
647}
648
649
650pub struct SetXHRBreakpointParamsBuilder<'a> {
651 url: Cow<'a, str>,
652}
653
654impl<'a> SetXHRBreakpointParamsBuilder<'a> {
655 pub fn build(self) -> SetXHRBreakpointParams<'a> {
656 SetXHRBreakpointParams {
657 url: self.url,
658 }
659 }
660}
661
662impl<'a> SetXHRBreakpointParams<'a> { pub const METHOD: &'static str = "DOMDebugger.setXHRBreakpoint"; }
663
664impl<'a> crate::CdpCommand<'a> for SetXHRBreakpointParams<'a> {
665 const METHOD: &'static str = "DOMDebugger.setXHRBreakpoint";
666 type Response = crate::EmptyReturns;
667}