Package Torello.Browser
Class Target
- java.lang.Object
-
- Torello.Browser.Target
-
public class Target 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
Supports additional targets discovery and allows to attach to them.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/Target.java
- Open New Browser-Tab: Torello/Browser/Target.java
File Size: 69,973 Bytes Line Count: 1,756 '\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
- 17 Method(s), 17 declared static
- 5 Field(s), 5 declared static, 4 declared final
- Fields excused from final modifier (with explanation):
Field 'counter' is not final. Reason: CONFIGURATION
-
-
Nested Class Summary
Type Classes: Target Domain Types Modifier and Type Inner-Class static class
Target.RemoteLocation
[No Description Provided by Google]
EXPERIMENTALstatic class
Target.TargetInfo
[No Description Provided by Google]
Event Classes: Target Domain Events Modifier and Type Inner-Class static class
Target.attachedToTarget
Issued when attached to target because of auto-attach orattachToTarget
command.static class
Target.detachedFromTarget
Issued when detached from target for any reason (includingdetachFromTarget
command).static class
Target.receivedMessageFromTarget
Notifies about a new protocol message received from the session (as reported inattachedToTarget
event).static class
Target.targetCrashed
Issued when a target has crashed.static class
Target.targetCreated
Issued when a possible inspection target is created.static class
Target.targetDestroyed
Issued when a target is destroyed.static class
Target.targetInfoChanged
Issued when some information about a target has changed.
-
Method Summary
Target Domain Commands Script Returns Modifier and Type Method NONE ( void
)static Script<>
activateTarget(String targetId)
Activates (focuses) the target.String
static Script<>
attachToBrowserTarget()
Attaches to the browser target, only uses flat sessionId mode.String
static Script<>
attachToTarget(String targetId, Boolean flatten)
Attaches to the target with given id.NONE ( void
)static Script<>
autoAttachRelated(String targetId, boolean waitForDebuggerOnStart)
Adds the specified target to the list of targets that will be monitored for any related target creation (such as child frames, child workers and new versions of service worker) and reported throughattachedToTarget
.Boolean
static Script<>
closeTarget(String targetId)
Closes the target.String
static Script<>
createBrowserContext(Boolean disposeOnDetach, String proxyServer, String proxyBypassList)
Creates a new empty BrowserContext.String
static Script<>
createTarget(String url, Integer width, Integer height, String browserContextId, Boolean enableBeginFrameControl, Boolean newWindow, Boolean background)
Creates a new page.NONE ( void
)static Script<>
detachFromTarget(String sessionId, String targetId)
Detaches session with given id.NONE ( void
)static Script<>
disposeBrowserContext(String browserContextId)
Deletes a BrowserContext.NONE ( void
)static Script<>
exposeDevToolsProtocol(String targetId, String bindingName)
Inject object to the target's main frame that provides a communication channel with browser target.String[]
static Script<>
getBrowserContexts()
Returns all browser contexts created withTarget.createBrowserContext
method.Target.TargetInfo
static Script<>
getTargetInfo(String targetId)
Returns information about a target.Target.TargetInfo[]
static Script<>
getTargets()
Retrieves a list of available targets.NONE ( void
)static Script<>
sendMessageToTarget(String message, String sessionId, String targetId)
Sends protocol message over session with given id.NONE ( void
)static Script<>
setAutoAttach(boolean autoAttach, boolean waitForDebuggerOnStart, Boolean flatten)
Controls whether to automatically attach to new targets which are considered to be related to this one.NONE ( void
)static Script<>
setDiscoverTargets(boolean discover)
Controls whether to discover available targets and notify viatargetCreated/targetInfoChanged/targetDestroyed
events.NONE ( void
)static Script<>
setRemoteLocations(Target.RemoteLocation[] locations)
Enables target discovery for the specified locations, whensetDiscoverTargets
was set totrue
.
-
-
-
Method Detail
-
activateTarget
public static Script<java.lang.String,JsonObject,Ret0> activateTarget (java.lang.String targetId)
Activates (focuses) the target.- Parameters:
targetId
- -- 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.
-
attachToTarget
public static Script<java.lang.String,JsonObject,java.lang.String> attachToTarget (java.lang.String targetId, java.lang.Boolean flatten)
Attaches to the target with given id.- Parameters:
targetId
- -flatten
- Enables "flat" access to the session via specifying sessionId attribute in the commands. We plan to make this the default, deprecate non-flattened mode, and eventually retire it. See crbug.com/991325.
OPTIONAL- Returns:
- An instance of
Script
<String,JsonObject
, String>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject, String>
will be returned.
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returnsString (sessionId
)
Id assigned to the session.
-
attachToBrowserTarget
public static Script<java.lang.String,JsonObject,java.lang.String> attachToBrowserTarget ()
Attaches to the browser target, only uses flat sessionId mode.
EXPERIMENTAL- Returns:
- An instance of
Script
<String,JsonObject
, String>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject, String>
will be returned.
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returnsString (sessionId
)
Id assigned to the session.
-
closeTarget
public static Script<java.lang.String,JsonObject,java.lang.Boolean> closeTarget (java.lang.String targetId)
Closes the target. If the target is a page that gets closed too.- Parameters:
targetId
- -- Returns:
- An instance of
Script
<String,JsonObject
, Boolean>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject, Boolean>
will be returned.
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returnsBoolean (success
)
Always set to true. If an error occurs, the response indicates protocol error.
-
exposeDevToolsProtocol
public static Script<java.lang.String,JsonObject,Ret0> exposeDevToolsProtocol (java.lang.String targetId, java.lang.String bindingName)
Inject object to the target's main frame that provides a communication channel with browser target. Injected object will be available aswindow[bindingName]
. The object has the follwing API: -binding.send(json)
- a method to send messages over the remote debugging protocol -binding.onmessage = json => handleMessage(json)
- a callback that will be called for the protocol notifications and command responses.
EXPERIMENTAL- Parameters:
targetId
- -bindingName
- Binding name, 'cdp' if not specified.
OPTIONAL- 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.
-
createBrowserContext
public static Script<java.lang.String,JsonObject,java.lang.String> createBrowserContext (java.lang.Boolean disposeOnDetach, java.lang.String proxyServer, java.lang.String proxyBypassList)
Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than one.
EXPERIMENTAL- Parameters:
disposeOnDetach
- If specified, disposes this context when debugging session disconnects.
OPTIONALproxyServer
- Proxy server, similar to the one passed to --proxy-server
OPTIONALproxyBypassList
- Proxy bypass list, similar to the one passed to --proxy-bypass-list
OPTIONAL- Returns:
- An instance of
Script
<String,JsonObject
, String>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject, String>
will be returned.
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returnsString (browserContextId
)
The id of the context created.
-
getBrowserContexts
public static Script<java.lang.String,JsonObject,java.lang.String[]> getBrowserContexts ()
Returns all browser contexts created withTarget.createBrowserContext
method.
EXPERIMENTAL- Returns:
- An instance of
Script
<String,JsonObject
, String[]>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject, String[]>
will be returned.
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returnsString[] (browserContextIds
)
An array of browser context ids.
-
createTarget
public static Script<java.lang.String,JsonObject,java.lang.String> createTarget (java.lang.String url, java.lang.Integer width, java.lang.Integer height, java.lang.String browserContextId, java.lang.Boolean enableBeginFrameControl, java.lang.Boolean newWindow, java.lang.Boolean background)
Creates a new page.- Parameters:
url
- The initial URL the page will be navigated to. An empty string indicates about:blank.width
- Frame width in DIP (headless chrome only).
OPTIONALheight
- Frame height in DIP (headless chrome only).
OPTIONALbrowserContextId
- The browser context to create the page in.
OPTIONAL
EXPERIMENTALenableBeginFrameControl
- Whether BeginFrames for this target will be controlled via DevTools (headless chrome only, not supported on MacOS yet, false by default).
OPTIONAL
EXPERIMENTALnewWindow
- Whether to create a new Window or Tab (chrome-only, false by default).
OPTIONALbackground
- Whether to create the target in background or foreground (chrome-only, false by default).
OPTIONAL- Returns:
- An instance of
Script
<String,JsonObject
, String>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject, String>
will be returned.
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returnsString (targetId
)
The id of the page opened.
-
detachFromTarget
public static Script<java.lang.String,JsonObject,Ret0> detachFromTarget (java.lang.String sessionId, java.lang.String targetId)
Detaches session with given id.- Parameters:
sessionId
- Session to detach.
OPTIONALtargetId
- Deprecated.
OPTIONAL
DEPRECATED- 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.
-
disposeBrowserContext
public static Script<java.lang.String,JsonObject,Ret0> disposeBrowserContext (java.lang.String browserContextId)
Deletes a BrowserContext. All the belonging pages will be closed without calling their beforeunload hooks.
EXPERIMENTAL- Parameters:
browserContextId
- -- 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.
-
getTargetInfo
public static Script<java.lang.String,JsonObject,Target.TargetInfo> getTargetInfo (java.lang.String targetId)
Returns information about a target.
EXPERIMENTAL- Parameters:
targetId
- -
OPTIONAL- Returns:
- An instance of
Script
<String,JsonObject
,Target.TargetInfo
>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject,
will be returned.Target.TargetInfo
>
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returns
)Target.TargetInfo
(targetInfo
-
-
getTargets
public static Script<java.lang.String,JsonObject,Target.TargetInfo[]> getTargets ()
Retrieves a list of available targets.- Returns:
- An instance of
Script
<String,JsonObject
,Target.TargetInfo
[]>
This script may be executed, usingScript.exec()
, and afterwards, aPromise
<JsonObject,
will be returned.Target.TargetInfo
[]>
Finally, thePromise
may be awaited, usingPromise.await()
, and the returned result of this Browser Function may may be retrieved.
This Browser Function returns
)Target.TargetInfo
[] (targetInfos
The list of targets.
-
sendMessageToTarget
public static Script<java.lang.String,JsonObject,Ret0> sendMessageToTarget (java.lang.String message, java.lang.String sessionId, java.lang.String targetId)
Sends protocol message over session with given id. Consider using flat mode instead; see commands attachToTarget, setAutoAttach, and crbug.com/991325.
DEPRECATED- Parameters:
message
- -sessionId
- Identifier of the session.
OPTIONALtargetId
- Deprecated.
OPTIONAL
DEPRECATED- 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.
-
setAutoAttach
public static Script<java.lang.String,JsonObject,Ret0> setAutoAttach (boolean autoAttach, boolean waitForDebuggerOnStart, java.lang.Boolean flatten)
Controls whether to automatically attach to new targets which are considered to be related to this one. When turned on, attaches to all existing related targets as well. When turned off, automatically detaches from all currently attached targets. This also clears all targets added byautoAttachRelated
from the list of targets to watch for creation of related targets.
EXPERIMENTAL- Parameters:
autoAttach
- Whether to auto-attach to related targets.waitForDebuggerOnStart
- Whether to pause new targets when attaching to them. UseRunTime.runIfWaitingForDebugger
to run paused targets.flatten
- Enables "flat" access to the session via specifying sessionId attribute in the commands. We plan to make this the default, deprecate non-flattened mode, and eventually retire it. See crbug.com/991325.
OPTIONAL- 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.
-
autoAttachRelated
public static Script<java.lang.String,JsonObject,Ret0> autoAttachRelated (java.lang.String targetId, boolean waitForDebuggerOnStart)
Adds the specified target to the list of targets that will be monitored for any related target creation (such as child frames, child workers and new versions of service worker) and reported throughattachedToTarget
. The specified target is also auto-attached. This cancels the effect of any previoussetAutoAttach
and is also cancelled by subsequentsetAutoAttach
. Only available at the Browser target.
EXPERIMENTAL- Parameters:
targetId
- -waitForDebuggerOnStart
- Whether to pause new targets when attaching to them. UseRunTime.runIfWaitingForDebugger
to run paused targets.- 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.
-
setDiscoverTargets
public static Script<java.lang.String,JsonObject,Ret0> setDiscoverTargets (boolean discover)
Controls whether to discover available targets and notify viatargetCreated/targetInfoChanged/targetDestroyed
events.- Parameters:
discover
- Whether to discover available targets.- 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.
-
setRemoteLocations
public static Script<java.lang.String,JsonObject,Ret0> setRemoteLocations (Target.RemoteLocation[] locations)
Enables target discovery for the specified locations, whensetDiscoverTargets
was set totrue
.
EXPERIMENTAL- Parameters:
locations
- List of remote locations.- 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.
-
-