Package Torello.Browser
Class DOMDebugger
- java.lang.Object
-
- Torello.Browser.DOMDebugger
-
public class DOMDebugger extends java.lang.Object
Class created byAutomatic Code-Generator
.
This class was built using the Chrome Remote Dev-Tools A.P.I., which is specified by two JSON-RPC Files. These files were obtained from the Chrome Dev Tools Protocol Git Hub Page, which has a "Tip of Tree" (the latest) API-Specification Page Here: JSON-RPC Protocol Specification.
JSON-Viewable Google-API:
These files may be viewed here: browser_protocol.json and js_protocol.json.
These files were converted into this Java-Browser (CDT) Library; they are a Java-Alternative to the Node.js implementation.
HTML-Viewable API:
In addition to this Class-Library, these files were also converted to a simple HTML Page, which may be browsed here: Browser API Web-PageNode.js
RDP-API Implementation:
You may read about theNode.js Chrome Remote Interface
on the Node.js Package Manager Web-Site: NPM
DOM debugging allows setting breakpoints on particular DOM operations and events. JavaScript execution will stop on these operations as if there was a regular breakpoint set.This class is intended to be used with a Headless Browser
These methods have been tested, to some degree, using Google Chrome. In order to use this class you must start a web-browser instance and make a connection to the browser using aRemote Debugging Port
. The initializations may be accomplished using classBRDPC
(Browser Remote Debug Protocol Connection).
Google-Chrome was used during the development process of the classes in this particular package. Note that, lately, it has been asserted Microsoft has switched to using the Chrome-Engine for its Microsoft Edge Browser Internal Code-Base. Therefore, there may limited support / functionality when running the methods in this class with Microsoft-Edge. There is the possibility these will work with Opera & Safari.
Check whether the your Web-Browser will allow itself to be driven by theWeb-Socket RDP-Port 9223
.
Foreign Function API:
Every one of the methods that reside in this class are designed to do nothing more than:- Accept Parameters from the User, and "Marshall Them" into a Valid JSON-Request
- Transmit the Marshalled Request-JSON to a Headless Web-Browser over a Web-Socket RDP Connection
- Receive BOTH that Method's Results AND any Browser Event-Firings from the Web-Socket
- Parse JSON Method-Results and Browser-Event Firings, and Subsequently Convert them to Standard Java-Types
- Report these Method-Results and Browser-Events to the User via an User-Registered Event-Listener or a Promise Object
Java-HTML Difference:
Unlike the bulk of the Java HTML JAR Library, there is very little native Java-Code, and very little testing that may be done on any of the classes & methods in this package. The code inside these classes does nothing more than marshall-and-unmarshall Java-Types into Json-Requests (and vice-versa). The Java-Script & Browser modules inside of a Google-Chrome instance are, theoretically, handling these requests, and returning their results (or events) over the Web-Socket Connection.
It has been asserted (by Google Chrome Developers) that some of these methods are only "partially working" or "experimental".
Hi-Lited Source-Code:- View Here: Torello/Browser/DOMDebugger.java
- Open New Browser-Tab: Torello/Browser/DOMDebugger.java
File Size: 31,885 Bytes Line Count: 758 '\n' Characters Found
Stateless Class:This class neither contains any program-state, nor can it be instantiated. The@StaticFunctional
Annotation may also be called 'The Spaghetti Report'.Static-Functional
classes are, essentially, C-Styled Files, without any constructors or non-static member fields. It is a concept very similar to the Java-Bean's@Stateless
Annotation.
- 1 Constructor(s), 1 declared private, zero-argument constructor
- 10 Method(s), 10 declared static
- 7 Field(s), 7 declared static, 6 declared final
- Fields excused from final modifier (with explanation):
Field 'counter' is not final. Reason: CONFIGURATION
-
-
Nested Class Summary
Type Classes: DOMDebugger Domain Types Modifier and Type Inner-Class static class
DOMDebugger.EventListener
Object event listener.
-
Field Summary
DOMDebugger Domain Enumerated String Types Modifier and Type Field static String[]
CSPViolationType
CSP Violation type.static String[]
DOMBreakpointType
DOM breakpoint type.
-
Method Summary
DOMDebugger Domain Commands Script Returns Modifier and Type Method DOMDebugger.EventListener[]
static Script<>
getEventListeners(String objectId, Integer depth, Boolean pierce)
Returns event listeners of the given object.NONE ( void
)static Script<>
removeDOMBreakpoint(int nodeId, String type)
Removes DOM breakpoint that was set usingsetDOMBreakpoint
.NONE ( void
)static Script<>
removeEventListenerBreakpoint(String eventName, String targetName)
Removes breakpoint on particular DOM event.NONE ( void
)static Script<>
removeInstrumentationBreakpoint(String eventName)
Removes breakpoint on particular native event.NONE ( void
)static Script<>
removeXHRBreakpoint(String url)
Removes breakpoint from XMLHttpRequest.NONE ( void
)static Script<>
setBreakOnCSPViolation(String[] violationTypes)
Sets breakpoint on particular CSP violations.NONE ( void
)static Script<>
setDOMBreakpoint(int nodeId, String type)
Sets breakpoint on particular operation with DOM.NONE ( void
)static Script<>
setEventListenerBreakpoint(String eventName, String targetName)
Sets breakpoint on particular DOM event.NONE ( void
)static Script<>
setInstrumentationBreakpoint(String eventName)
Sets breakpoint on particular native event.NONE ( void
)static Script<>
setXHRBreakpoint(String url)
Sets breakpoint on XMLHttpRequest.
-
-
-
Field Detail
-
DOMBreakpointType
public static final java.lang.String[] DOMBreakpointType
DOM breakpoint type.
-
CSPViolationType
public static final java.lang.String[] CSPViolationType
CSP Violation type.
EXPERIMENTAL
-
-
Method Detail
-
getEventListeners
public static Script<java.lang.String,JsonObject,DOMDebugger.EventListener[]> getEventListeners (java.lang.String objectId, java.lang.Integer depth, java.lang.Boolean pierce)
Returns event listeners of the given object.- Parameters:
objectId
- Identifier of the object to return listeners for.depth
- 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.
OPTIONALpierce
- 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.
OPTIONAL- Returns:
- An instance of
Script
<String,JsonObject
,DOMDebugger.EventListener
[]>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject,
will be returned.DOMDebugger.EventListener
[]>
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returns
)DOMDebugger.EventListener
[] (listeners
Array of relevant listeners.
-
removeDOMBreakpoint
public static Script<java.lang.String,JsonObject,Ret0> removeDOMBreakpoint (int nodeId, java.lang.String type)
Removes DOM breakpoint that was set usingsetDOMBreakpoint
.- Parameters:
nodeId
- Identifier of the node to remove breakpoint from.type
- Type of the breakpoint to remove.- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
removeEventListenerBreakpoint
public static Script<java.lang.String,JsonObject,Ret0> removeEventListenerBreakpoint (java.lang.String eventName, java.lang.String targetName)
Removes breakpoint on particular DOM event.- Parameters:
eventName
- Event name.targetName
- EventTarget interface name.
OPTIONAL
EXPERIMENTAL- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
removeInstrumentationBreakpoint
public static Script<java.lang.String,JsonObject,Ret0> removeInstrumentationBreakpoint (java.lang.String eventName)
Removes breakpoint on particular native event.
EXPERIMENTAL- Parameters:
eventName
- Instrumentation name to stop on.- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
removeXHRBreakpoint
public static Script<java.lang.String,JsonObject,Ret0> removeXHRBreakpoint (java.lang.String url)
Removes breakpoint from XMLHttpRequest.- Parameters:
url
- Resource URL substring.- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
setBreakOnCSPViolation
public static Script<java.lang.String,JsonObject,Ret0> setBreakOnCSPViolation (java.lang.String[] violationTypes)
Sets breakpoint on particular CSP violations.
EXPERIMENTAL- Parameters:
violationTypes
- CSP Violations to stop upon.- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
setDOMBreakpoint
public static Script<java.lang.String,JsonObject,Ret0> setDOMBreakpoint (int nodeId, java.lang.String type)
Sets breakpoint on particular operation with DOM.- Parameters:
nodeId
- Identifier of the node to set breakpoint on.type
- Type of the operation to stop upon.- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
setEventListenerBreakpoint
public static Script<java.lang.String,JsonObject,Ret0> setEventListenerBreakpoint (java.lang.String eventName, java.lang.String targetName)
Sets breakpoint on particular DOM event.- Parameters:
eventName
- DOM Event name to stop on (any DOM event will do).targetName
- EventTarget interface name to stop on. If equal to"*"
or not provided, will stop on any EventTarget.
OPTIONAL
EXPERIMENTAL- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
setInstrumentationBreakpoint
public static Script<java.lang.String,JsonObject,Ret0> setInstrumentationBreakpoint (java.lang.String eventName)
Sets breakpoint on particular native event.
EXPERIMENTAL- Parameters:
eventName
- Instrumentation name to stop on.- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
setXHRBreakpoint
public static Script<java.lang.String,JsonObject,Ret0> setXHRBreakpoint (java.lang.String url)
Sets breakpoint on XMLHttpRequest.- Parameters:
url
- Resource URL substring. All XHRs having this substring in the URL will get stopped upon.- Returns:
- An instance of
Script
<String,JsonObject
,Ret0
>
ThisScript
instance must be executed before the browser receives the invocation-request.
This Browser-Function does not have a return-value. You may choose to await thePromise
<JsonObject,
Ret0
>
to ensure the Browser Function has run to completion.
-
-