domdebugger.go 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. // Package domdebugger provides the Chrome DevTools Protocol
  2. // commands, types, and events for the DOMDebugger domain.
  3. //
  4. // DOM debugging allows setting breakpoints on particular DOM operations and
  5. // events. JavaScript execution will stop on these operations as if there was a
  6. // regular breakpoint set.
  7. //
  8. // Generated by the cdproto-gen command.
  9. package domdebugger
  10. // Code generated by cdproto-gen. DO NOT EDIT.
  11. import (
  12. "context"
  13. "github.com/chromedp/cdproto/cdp"
  14. "github.com/chromedp/cdproto/runtime"
  15. )
  16. // GetEventListenersParams returns event listeners of the given object.
  17. type GetEventListenersParams struct {
  18. ObjectID runtime.RemoteObjectID `json:"objectId"` // Identifier of the object to return listeners for.
  19. Depth int64 `json:"depth,omitempty"` // The maximum depth at which Node children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0.
  20. Pierce bool `json:"pierce,omitempty"` // Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false). Reports listeners for all contexts if pierce is enabled.
  21. }
  22. // GetEventListeners returns event listeners of the given object.
  23. //
  24. // See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#method-getEventListeners
  25. //
  26. // parameters:
  27. //
  28. // objectID - Identifier of the object to return listeners for.
  29. func GetEventListeners(objectID runtime.RemoteObjectID) *GetEventListenersParams {
  30. return &GetEventListenersParams{
  31. ObjectID: objectID,
  32. }
  33. }
  34. // WithDepth the maximum depth at which Node children should be retrieved,
  35. // defaults to 1. Use -1 for the entire subtree or provide an integer larger
  36. // than 0.
  37. func (p GetEventListenersParams) WithDepth(depth int64) *GetEventListenersParams {
  38. p.Depth = depth
  39. return &p
  40. }
  41. // WithPierce whether or not iframes and shadow roots should be traversed
  42. // when returning the subtree (default is false). Reports listeners for all
  43. // contexts if pierce is enabled.
  44. func (p GetEventListenersParams) WithPierce(pierce bool) *GetEventListenersParams {
  45. p.Pierce = pierce
  46. return &p
  47. }
  48. // GetEventListenersReturns return values.
  49. type GetEventListenersReturns struct {
  50. Listeners []*EventListener `json:"listeners,omitempty"` // Array of relevant listeners.
  51. }
  52. // Do executes DOMDebugger.getEventListeners against the provided context.
  53. //
  54. // returns:
  55. //
  56. // listeners - Array of relevant listeners.
  57. func (p *GetEventListenersParams) Do(ctx context.Context) (listeners []*EventListener, err error) {
  58. // execute
  59. var res GetEventListenersReturns
  60. err = cdp.Execute(ctx, CommandGetEventListeners, p, &res)
  61. if err != nil {
  62. return nil, err
  63. }
  64. return res.Listeners, nil
  65. }
  66. // RemoveDOMBreakpointParams removes DOM breakpoint that was set using
  67. // setDOMBreakpoint.
  68. type RemoveDOMBreakpointParams struct {
  69. NodeID cdp.NodeID `json:"nodeId"` // Identifier of the node to remove breakpoint from.
  70. Type DOMBreakpointType `json:"type"` // Type of the breakpoint to remove.
  71. }
  72. // RemoveDOMBreakpoint removes DOM breakpoint that was set using
  73. // setDOMBreakpoint.
  74. //
  75. // See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#method-removeDOMBreakpoint
  76. //
  77. // parameters:
  78. //
  79. // nodeID - Identifier of the node to remove breakpoint from.
  80. // type - Type of the breakpoint to remove.
  81. func RemoveDOMBreakpoint(nodeID cdp.NodeID, typeVal DOMBreakpointType) *RemoveDOMBreakpointParams {
  82. return &RemoveDOMBreakpointParams{
  83. NodeID: nodeID,
  84. Type: typeVal,
  85. }
  86. }
  87. // Do executes DOMDebugger.removeDOMBreakpoint against the provided context.
  88. func (p *RemoveDOMBreakpointParams) Do(ctx context.Context) (err error) {
  89. return cdp.Execute(ctx, CommandRemoveDOMBreakpoint, p, nil)
  90. }
  91. // RemoveEventListenerBreakpointParams removes breakpoint on particular DOM
  92. // event.
  93. type RemoveEventListenerBreakpointParams struct {
  94. EventName string `json:"eventName"` // Event name.
  95. TargetName string `json:"targetName,omitempty"` // EventTarget interface name.
  96. }
  97. // RemoveEventListenerBreakpoint removes breakpoint on particular DOM event.
  98. //
  99. // See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#method-removeEventListenerBreakpoint
  100. //
  101. // parameters:
  102. //
  103. // eventName - Event name.
  104. func RemoveEventListenerBreakpoint(eventName string) *RemoveEventListenerBreakpointParams {
  105. return &RemoveEventListenerBreakpointParams{
  106. EventName: eventName,
  107. }
  108. }
  109. // WithTargetName eventTarget interface name.
  110. func (p RemoveEventListenerBreakpointParams) WithTargetName(targetName string) *RemoveEventListenerBreakpointParams {
  111. p.TargetName = targetName
  112. return &p
  113. }
  114. // Do executes DOMDebugger.removeEventListenerBreakpoint against the provided context.
  115. func (p *RemoveEventListenerBreakpointParams) Do(ctx context.Context) (err error) {
  116. return cdp.Execute(ctx, CommandRemoveEventListenerBreakpoint, p, nil)
  117. }
  118. // RemoveXHRBreakpointParams removes breakpoint from XMLHttpRequest.
  119. type RemoveXHRBreakpointParams struct {
  120. URL string `json:"url"` // Resource URL substring.
  121. }
  122. // RemoveXHRBreakpoint removes breakpoint from XMLHttpRequest.
  123. //
  124. // See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#method-removeXHRBreakpoint
  125. //
  126. // parameters:
  127. //
  128. // url - Resource URL substring.
  129. func RemoveXHRBreakpoint(url string) *RemoveXHRBreakpointParams {
  130. return &RemoveXHRBreakpointParams{
  131. URL: url,
  132. }
  133. }
  134. // Do executes DOMDebugger.removeXHRBreakpoint against the provided context.
  135. func (p *RemoveXHRBreakpointParams) Do(ctx context.Context) (err error) {
  136. return cdp.Execute(ctx, CommandRemoveXHRBreakpoint, p, nil)
  137. }
  138. // SetBreakOnCSPViolationParams sets breakpoint on particular CSP violations.
  139. type SetBreakOnCSPViolationParams struct {
  140. ViolationTypes []CSPViolationType `json:"violationTypes"` // CSP Violations to stop upon.
  141. }
  142. // SetBreakOnCSPViolation sets breakpoint on particular CSP violations.
  143. //
  144. // See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#method-setBreakOnCSPViolation
  145. //
  146. // parameters:
  147. //
  148. // violationTypes - CSP Violations to stop upon.
  149. func SetBreakOnCSPViolation(violationTypes []CSPViolationType) *SetBreakOnCSPViolationParams {
  150. return &SetBreakOnCSPViolationParams{
  151. ViolationTypes: violationTypes,
  152. }
  153. }
  154. // Do executes DOMDebugger.setBreakOnCSPViolation against the provided context.
  155. func (p *SetBreakOnCSPViolationParams) Do(ctx context.Context) (err error) {
  156. return cdp.Execute(ctx, CommandSetBreakOnCSPViolation, p, nil)
  157. }
  158. // SetDOMBreakpointParams sets breakpoint on particular operation with DOM.
  159. type SetDOMBreakpointParams struct {
  160. NodeID cdp.NodeID `json:"nodeId"` // Identifier of the node to set breakpoint on.
  161. Type DOMBreakpointType `json:"type"` // Type of the operation to stop upon.
  162. }
  163. // SetDOMBreakpoint sets breakpoint on particular operation with DOM.
  164. //
  165. // See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#method-setDOMBreakpoint
  166. //
  167. // parameters:
  168. //
  169. // nodeID - Identifier of the node to set breakpoint on.
  170. // type - Type of the operation to stop upon.
  171. func SetDOMBreakpoint(nodeID cdp.NodeID, typeVal DOMBreakpointType) *SetDOMBreakpointParams {
  172. return &SetDOMBreakpointParams{
  173. NodeID: nodeID,
  174. Type: typeVal,
  175. }
  176. }
  177. // Do executes DOMDebugger.setDOMBreakpoint against the provided context.
  178. func (p *SetDOMBreakpointParams) Do(ctx context.Context) (err error) {
  179. return cdp.Execute(ctx, CommandSetDOMBreakpoint, p, nil)
  180. }
  181. // SetEventListenerBreakpointParams sets breakpoint on particular DOM event.
  182. type SetEventListenerBreakpointParams struct {
  183. EventName string `json:"eventName"` // DOM Event name to stop on (any DOM event will do).
  184. TargetName string `json:"targetName,omitempty"` // EventTarget interface name to stop on. If equal to "*" or not provided, will stop on any EventTarget.
  185. }
  186. // SetEventListenerBreakpoint sets breakpoint on particular DOM event.
  187. //
  188. // See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#method-setEventListenerBreakpoint
  189. //
  190. // parameters:
  191. //
  192. // eventName - DOM Event name to stop on (any DOM event will do).
  193. func SetEventListenerBreakpoint(eventName string) *SetEventListenerBreakpointParams {
  194. return &SetEventListenerBreakpointParams{
  195. EventName: eventName,
  196. }
  197. }
  198. // WithTargetName eventTarget interface name to stop on. If equal to "*" or
  199. // not provided, will stop on any EventTarget.
  200. func (p SetEventListenerBreakpointParams) WithTargetName(targetName string) *SetEventListenerBreakpointParams {
  201. p.TargetName = targetName
  202. return &p
  203. }
  204. // Do executes DOMDebugger.setEventListenerBreakpoint against the provided context.
  205. func (p *SetEventListenerBreakpointParams) Do(ctx context.Context) (err error) {
  206. return cdp.Execute(ctx, CommandSetEventListenerBreakpoint, p, nil)
  207. }
  208. // SetXHRBreakpointParams sets breakpoint on XMLHttpRequest.
  209. type SetXHRBreakpointParams struct {
  210. URL string `json:"url"` // Resource URL substring. All XHRs having this substring in the URL will get stopped upon.
  211. }
  212. // SetXHRBreakpoint sets breakpoint on XMLHttpRequest.
  213. //
  214. // See: https://chromedevtools.github.io/devtools-protocol/tot/DOMDebugger#method-setXHRBreakpoint
  215. //
  216. // parameters:
  217. //
  218. // url - Resource URL substring. All XHRs having this substring in the URL will get stopped upon.
  219. func SetXHRBreakpoint(url string) *SetXHRBreakpointParams {
  220. return &SetXHRBreakpointParams{
  221. URL: url,
  222. }
  223. }
  224. // Do executes DOMDebugger.setXHRBreakpoint against the provided context.
  225. func (p *SetXHRBreakpointParams) Do(ctx context.Context) (err error) {
  226. return cdp.Execute(ctx, CommandSetXHRBreakpoint, p, nil)
  227. }
  228. // Command names.
  229. const (
  230. CommandGetEventListeners = "DOMDebugger.getEventListeners"
  231. CommandRemoveDOMBreakpoint = "DOMDebugger.removeDOMBreakpoint"
  232. CommandRemoveEventListenerBreakpoint = "DOMDebugger.removeEventListenerBreakpoint"
  233. CommandRemoveXHRBreakpoint = "DOMDebugger.removeXHRBreakpoint"
  234. CommandSetBreakOnCSPViolation = "DOMDebugger.setBreakOnCSPViolation"
  235. CommandSetDOMBreakpoint = "DOMDebugger.setDOMBreakpoint"
  236. CommandSetEventListenerBreakpoint = "DOMDebugger.setEventListenerBreakpoint"
  237. CommandSetXHRBreakpoint = "DOMDebugger.setXHRBreakpoint"
  238. )