|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.opera.core.systems.scope.AbstractService
com.opera.core.systems.scope.AbstractEcmascriptService
com.opera.core.systems.scope.services.ums.EcmaScriptDebugger
public class EcmaScriptDebugger
Manages the ecmascript-debugger service Handles runtime management and script injection
| Field Summary |
|---|
| Fields inherited from class com.opera.core.systems.scope.AbstractEcmascriptService |
|---|
activeWindowId, currentFramePath, driver, retries, sleepDuration, windowManager |
| Fields inherited from class com.opera.core.systems.scope.AbstractService |
|---|
services |
| Constructor Summary | |
|---|---|
EcmaScriptDebugger(ScopeServices services,
String version)
|
|
| Method Summary | |
|---|---|
void |
addRuntime(EsdbgProtos.RuntimeInfo runtime)
Adds a runtime to the list of runtimes maintained in the service (STP/1 only) |
protected EsdbgProtos.EvalData.Builder |
buildEval(String using,
int runtimeId)
|
protected EsdbgProtos.EvalData.Variable |
buildVariable(String name,
int objectId)
|
String |
callFunctionOnObject(String using,
int objectId)
The script to be executed on/using an object |
Object |
callFunctionOnObject(String using,
int objectId,
boolean responseExpected)
|
void |
changeRuntime(int index)
Changes the frame by index |
void |
changeRuntime(String frameName)
Changes the frame by frame name address nested frames by dot (first.second) |
void |
cleanUpRuntimes(int windowId)
Cleanup possible dead/suspended runtimes on runtime-started or window-closed |
protected void |
createAllRuntimes()
Gets a list of runtimes and keeps the list, create runtimes for all pages so even if the pages dont have script we can still inject to a 'fake' runtime |
protected UmsProtos.Response |
eval(String using,
EsdbgProtos.EvalData.Variable... variables)
|
protected UmsProtos.Response |
eval(String using,
int runtimeId,
EsdbgProtos.EvalData.Variable... variables)
|
List<Integer> |
examineObjects(Integer id)
|
Object |
examineScriptResult(Integer id)
|
String |
executeJavascript(String using,
Integer windowId)
|
Object |
executeScript(String using,
boolean responseExpected)
Executes a script and returns the response (based on responseExpected) |
Object |
executeScript(String using,
boolean responseExpected,
int runtimeId)
|
Integer |
executeScriptOnObject(String using,
int objectId)
|
protected EsdbgProtos.RuntimeInfo |
findRuntime()
Find the runtime for injection (default) Typically this is _top runtime with the active window that has focus |
protected EsdbgProtos.RuntimeInfo |
findRuntime(int windowId)
|
Integer |
getObject(String using)
Gets the object id using a script |
protected Integer |
getObject(String using,
int runtimeId)
|
int |
getRuntimeId()
|
void |
init()
Initialize the debugger, set the configuration to NOT stop on error, exception, script or abort Create all runtimes and find a suitable runtime for injection (Currently has a workaround or 'return 1;' for GOGI dialog at opera:debug) |
List<String> |
listFramePaths()
Lists the frame paths of available runtimes |
protected List<EsdbgProtos.RuntimeInfo> |
listRuntimes(boolean allRuntimes)
|
protected Object |
parseEvalReply(EsdbgProtos.EvalResult result)
Parses a reply and returns the following types String presentation of number, boolean or string. |
protected Object |
parseValue(String dataType,
String value)
|
void |
readyStateChanged(EcmascriptProtos.ReadyStateChange change)
Triggered on the ecmascript service when the state of a runtime changes |
void |
releaseObject(int objectId)
Releases a specific object |
void |
releaseObjects()
Makes objects available to gc, this doesn't free the objects immediately |
void |
removeRuntime(int runtimeId)
Removes a runtime from the list, doesnt get called often due to runtime-stopped being sent late (runtimes get suspended) |
void |
resetFramePath()
|
void |
resetRuntimesList()
Resets the list of runtimes and fetches a fresh list from Opera, this can be used to recover in cases where runtimes go out of sync |
Object |
scriptExecutor(String script,
Object... params)
Executes the given javascript via eval call |
void |
setRuntime(EsdbgProtos.RuntimeInfo runtime)
Sets the runtime to be used in injection required for event handler (STP/1 only) |
boolean |
updateRuntime()
Finds a valid runtime and updates the runtime reference (active runtime) |
| Methods inherited from class com.opera.core.systems.scope.AbstractEcmascriptService |
|---|
buildEvalString, cleanUpRuntimes, executeJavascript, executeJavascript, isNumber, parseNumber, processArgument, recover, resetCounters, setDriver |
| Methods inherited from class com.opera.core.systems.scope.AbstractService |
|---|
buildPayload, executeCommand, executeCommand, getVersion, isVersionInRange, sleep, xpathIterator, xpathPointer, xpathQuery |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface com.opera.core.systems.scope.services.IEcmaScriptDebugger |
|---|
cleanUpRuntimes, executeJavascript, executeJavascript, setDriver |
| Constructor Detail |
|---|
public EcmaScriptDebugger(ScopeServices services,
String version)
| Method Detail |
|---|
public int getRuntimeId()
getRuntimeId in interface IEcmaScriptDebuggerpublic void setRuntime(EsdbgProtos.RuntimeInfo runtime)
IEcmaScriptDebugger
setRuntime in interface IEcmaScriptDebuggerpublic void addRuntime(EsdbgProtos.RuntimeInfo runtime)
IEcmaScriptDebugger
addRuntime in interface IEcmaScriptDebuggerpublic void removeRuntime(int runtimeId)
IEcmaScriptDebugger
removeRuntime in interface IEcmaScriptDebuggerpublic void init()
IEcmaScriptDebugger
init in interface IEcmaScriptDebuggerpublic boolean updateRuntime()
IEcmaScriptDebugger
updateRuntime in interface IEcmaScriptDebuggerprotected List<EsdbgProtos.RuntimeInfo> listRuntimes(boolean allRuntimes)
protected void createAllRuntimes()
public Object scriptExecutor(String script,
Object... params)
IEcmaScriptDebugger
scriptExecutor in interface IEcmaScriptDebuggerscript - The script to be executed on hostparams - Array of params, can be string, long or web element(s)
protected final EsdbgProtos.EvalData.Builder buildEval(String using,
int runtimeId)
protected final EsdbgProtos.EvalData.Variable buildVariable(String name,
int objectId)
protected UmsProtos.Response eval(String using,
int runtimeId,
EsdbgProtos.EvalData.Variable... variables)
protected UmsProtos.Response eval(String using,
EsdbgProtos.EvalData.Variable... variables)
public Object executeScript(String using,
boolean responseExpected)
IEcmaScriptDebugger
executeScript in interface IEcmaScriptDebuggerusing - The script to be injectedresponseExpected - The flag to enable/disable parsing response
null otherwise
public Object executeScript(String using,
boolean responseExpected,
int runtimeId)
public Integer getObject(String using)
IEcmaScriptDebugger
getObject in interface IEcmaScriptDebuggerusing - the script to find the object
protected Integer getObject(String using,
int runtimeId)
public String callFunctionOnObject(String using,
int objectId)
IEcmaScriptDebugger
callFunctionOnObject in interface IEcmaScriptDebuggerusing - Script with reference to the object "locator"objectId - The object to be used for injection
public Object callFunctionOnObject(String using,
int objectId,
boolean responseExpected)
callFunctionOnObject in interface IEcmaScriptDebugger
public Integer executeScriptOnObject(String using,
int objectId)
executeScriptOnObject in interface IEcmaScriptDebuggerprotected Object parseEvalReply(EsdbgProtos.EvalResult result)
protected Object parseValue(String dataType,
String value)
protected EsdbgProtos.RuntimeInfo findRuntime()
protected EsdbgProtos.RuntimeInfo findRuntime(int windowId)
public void changeRuntime(int index)
IEcmaScriptDebugger
changeRuntime in interface IEcmaScriptDebuggerpublic void changeRuntime(String frameName)
IEcmaScriptDebugger
changeRuntime in interface IEcmaScriptDebuggerpublic void cleanUpRuntimes(int windowId)
IEcmaScriptDebugger
cleanUpRuntimes in interface IEcmaScriptDebuggerpublic List<Integer> examineObjects(Integer id)
examineObjects in interface IEcmaScriptDebuggerpublic List<String> listFramePaths()
IEcmaScriptDebugger
listFramePaths in interface IEcmaScriptDebuggerList of String framepathspublic void releaseObjects()
IEcmaScriptDebugger
releaseObjects in interface IEcmaScriptDebuggerpublic void resetRuntimesList()
IEcmaScriptDebugger
resetRuntimesList in interface IEcmaScriptDebuggerpublic void readyStateChanged(EcmascriptProtos.ReadyStateChange change)
IEcmaScriptDebugger
readyStateChanged in interface IEcmaScriptDebuggerchange - EcmascriptProtos.ReadyStateChange object with runtime infopublic void releaseObject(int objectId)
IEcmaScriptDebugger
releaseObject in interface IEcmaScriptDebuggerobjectId - Id of the object to be releasedpublic void resetFramePath()
resetFramePath in interface IEcmaScriptDebugger
public String executeJavascript(String using,
Integer windowId)
executeJavascript in interface IEcmaScriptDebuggerpublic Object examineScriptResult(Integer id)
examineScriptResult in interface IEcmaScriptDebugger
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||