get inspected node access from command-line working
diff --git a/weinre.web/modules/weinre/target/InjectedScriptHostImpl.scoop b/weinre.web/modules/weinre/target/InjectedScriptHostImpl.scoop
index 9fa2cc7..a03a360 100644
--- a/weinre.web/modules/weinre/target/InjectedScriptHostImpl.scoop
+++ b/weinre.web/modules/weinre/target/InjectedScriptHostImpl.scoop
@@ -28,12 +28,19 @@
//-----------------------------------------------------------------------------
method pushNodePathToFrontend(/*any*/ node, /*boolean*/ withChildren, /*boolean*/ selectInUI, callback)
// callback: function()
- Weinre.notImplemented(arguments.callee.signature)
+ var nodeId = Weinre.nodeStore.getNodeId(node)
+ var children = Weinre.nodeStore.serializeNode(node, 1)
+ Weinre.wi.DOMNotify.setChildNodes(nodeId, children)
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback)
+ }
//-----------------------------------------------------------------------------
method inspectedNode(/*int*/ num, callback)
// callback: function()
- Weinre.notImplemented(arguments.callee.signature)
+ var nodeId = Weinre.nodeStore.getInspectedNode(num)
+ return nodeId
//-----------------------------------------------------------------------------
method currentCallFrame(callback)
diff --git a/weinre.web/modules/weinre/target/NodeStore.scoop b/weinre.web/modules/weinre/target/NodeStore.scoop
index 565d729..5c8debb 100644
--- a/weinre.web/modules/weinre/target/NodeStore.scoop
+++ b/weinre.web/modules/weinre/target/NodeStore.scoop
@@ -10,9 +10,22 @@
//
//-----------------------------------------------------------------------------
class NodeStore
- this.__nodeMap = {}
- this.__nodeDataMap = {}
- this.__nextId = 0
+ this.__nodeMap = {}
+ this.__nodeDataMap = {}
+ this.__nextId = 0
+ this.inspectedNodes = []
+
+
+//-----------------------------------------------------------------------------
+method addInspectedNode(nodeId)
+ this.inspectedNodes.unshift(nodeId)
+ if (this.inspectedNodes.length > 5) {
+ this.inspectedNodes = this.inspectedNodes.slice(0,5)
+ }
+
+//-----------------------------------------------------------------------------
+method getInspectedNode(index)
+ return this.inspectedNodes[index]
//-----------------------------------------------------------------------------
//
diff --git a/weinre.web/modules/weinre/target/WiDOMImpl.scoop b/weinre.web/modules/weinre/target/WiDOMImpl.scoop
index c5a6310..f951902 100644
--- a/weinre.web/modules/weinre/target/WiDOMImpl.scoop
+++ b/weinre.web/modules/weinre/target/WiDOMImpl.scoop
@@ -10,7 +10,6 @@
//-----------------------------------------------------------------------------
class WiDOMImpl
- this.inspectedNodes = []
//-----------------------------------------------------------------------------
method getChildNodes(/*int*/ nodeId, callback)
@@ -135,15 +134,12 @@
//-----------------------------------------------------------------------------
method addInspectedNode(/*int*/ nodeId, callback)
- this.inspectedNodes.unshift(nodeId)
- if (this.inspectedNodes.length > 5) {
- this.inspectedNodes = this.inspectedNodes.slice(0,5)
- }
+ Weinre.nodeStore.addInspectedNode(nodeId)
if (callback) {
Weinre.WeinreTargetCommands.sendClientCallback(callback)
}
-
+
//-----------------------------------------------------------------------------
method performSearch(/*string*/ query, /*boolean*/ runSynchronously, callback)
// callback: function()
@@ -164,23 +160,33 @@
//-----------------------------------------------------------------------------
method resolveNode(/*int*/ nodeId, callback)
- // callback: function(/*any*/ result)
- Weinre.notImplemented(arguments.callee.signature)
-
+ var result = Weinre.injectedScript.resolveNode(nodeId)
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [result])
+ }
//-----------------------------------------------------------------------------
method getNodeProperties(/*int*/ nodeId, /*any[]*/ propertiesArray, callback)
- // callback: function(/*any*/ result)
- Weinre.notImplemented(arguments.callee.signature)
+ var result = Weinre.injectedScript.getNodeProperties(nodeId, propertiesArray)
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [result])
+ }
//-----------------------------------------------------------------------------
method getNodePrototypes(/*int*/ nodeId, callback)
- // callback: function(/*any*/ result)
- Weinre.notImplemented(arguments.callee.signature)
+ var result = Weinre.injectedScript.getNodePrototypes(nodeId)
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [result])
+ }
//-----------------------------------------------------------------------------
method pushNodeToFrontend(/*any*/ objectId, callback)
- // callback: function(/*any*/ result)
- Weinre.notImplemented(arguments.callee.signature)
+ var objectId = JSON.stringify(objectId)
+ var result = Weinre.injectedScript.pushNodeToFrontend(objectId)
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [result])
+ }