get basic style stuff working
diff --git a/weinre.build/build.xml b/weinre.build/build.xml
index 23e613e..0dc3a53 100644
--- a/weinre.build/build.xml
+++ b/weinre.build/build.xml
@@ -189,11 +189,11 @@
</fileset>
</copy>
+ <echo message="building InjectedScript.js"/>
<echo
file = "${WEB}/weinre/target/InjectedScript.js"
message = "var injectedScriptConstructor = ${line.separator}"
/>
-
<concat
destfile = "${WEB}/weinre/target/InjectedScript.js"
append = "true"
@@ -201,6 +201,7 @@
<fileset file="${VENDOR}/webkit/WebCore/inspector/InjectedScriptSource.js"/>
</concat>
+ <echo message="building versions.js"/>
<copy todir="${WEB}">
<fileset dir="../${PROJECT_WEB}">
<include name="versions.js"/>
@@ -221,6 +222,13 @@
<filter token="JAVAX_SERVLET_VERSION_IMPL" value="${JAVAX_SERVLET_VERSION_IMPL}"/>
</filterset>
</copy>
+
+ <echo message="building add-css-properties.js"/>
+ <exec executable="python" failonerror="true" failifexecutionfails="true">
+ <arg file="scripts/build-css-properties.py"/>
+ <arg value="vendor/webkit/WebCore/CSSPropertyNames.in"/>
+ <arg value="${WEB}/add-css-properties.js"/>
+ </exec>
</target>
diff --git a/weinre.build/scripts/build-css-properties.py b/weinre.build/scripts/build-css-properties.py
index f380583..5dded6c 100644
--- a/weinre.build/scripts/build-css-properties.py
+++ b/weinre.build/scripts/build-css-properties.py
@@ -36,7 +36,7 @@
properties.sort()
jsonString = json.dumps(properties, indent=4)
- jsString = "Weinre.addCSSProperties(%s)" % jsonString
+ jsString = 'require("weinre/common/Weinre").addCSSProperties(%s)' % jsonString
oFile = open(oFileName, "w")
oFile.write(jsString)
diff --git a/weinre.web/demo/weinre-demo-pieces.html b/weinre.web/demo/weinre-demo-pieces.html
index 1c09a2e..a16f94f 100644
--- a/weinre.web/demo/weinre-demo-pieces.html
+++ b/weinre.web/demo/weinre-demo-pieces.html
@@ -21,6 +21,8 @@
<script src="/weinre/common/Callback.transportd.js" ></script>
<script src="/weinre/common/EventListeners.transportd.js" ></script>
<script src="/weinre/target/Console.transportd.js" ></script>
+<script src="/add-css-properties.js" ></script>
+
<!--
<script src="/weinre/target/WebInspectorApplicationCacheHandlerImpl.transportd.js" ></script>
diff --git a/weinre.web/modules/weinre/common/Weinre.scoop b/weinre.web/modules/weinre/common/Weinre.scoop
index f580a42..5e32f0e 100644
--- a/weinre.web/modules/weinre/common/Weinre.scoop
+++ b/weinre.web/modules/weinre/common/Weinre.scoop
@@ -15,13 +15,22 @@
throw new Ex(arguments, "this class is not intended to be instantiated")
//-----------------------------------------------------------------------------
+static
+ var _notImplemented = {}
+ var _showNotImplemented = false
+ var CSSProperties = []
+
+//-----------------------------------------------------------------------------
static method addIDLs(idls)
IDLTools.addIDLs(idls)
//-----------------------------------------------------------------------------
-static
- var _notImplemented = {}
- var _showNotImplemented = false
+static method addCSSProperties(cssProperties)
+ CSSProperties = cssProperties
+
+//-----------------------------------------------------------------------------
+static method getCSSProperties
+ return CSSProperties
//-----------------------------------------------------------------------------
static method deprecated()
diff --git a/weinre.web/modules/weinre/target/CSSStore.scoop b/weinre.web/modules/weinre/target/CSSStore.scoop
index d4d3b6e..12401ee 100644
--- a/weinre.web/modules/weinre/target/CSSStore.scoop
+++ b/weinre.web/modules/weinre/target/CSSStore.scoop
@@ -88,9 +88,10 @@
//-----------------------------------------------------------------------------
method buildObjectForStyle(style, bind)
var result = {
- width: null,
- height: null,
- properties: []
+ width: null,
+ height: null,
+ properties: [],
+ cssProperties: []
}
if (!style) return result
@@ -147,7 +148,7 @@
}
}
- result.properties = properties
+ result.cssProperties = properties
result.shorthandValues = shorthandValues
//-----------------------------------------------------------------------------
diff --git a/weinre.web/modules/weinre/target/NodeStore.scoop b/weinre.web/modules/weinre/target/NodeStore.scoop
index 40ef0c9..565d729 100644
--- a/weinre.web/modules/weinre/target/NodeStore.scoop
+++ b/weinre.web/modules/weinre/target/NodeStore.scoop
@@ -49,7 +49,7 @@
//
//-----------------------------------------------------------------------------
method serializeNode(node, depth)
- var nodeName = null
+ var nodeName = ""
var nodeValue = null
var localName = null
var id = this.getNodeId(node)
diff --git a/weinre.web/modules/weinre/target/WiCSSImpl.scoop b/weinre.web/modules/weinre/target/WiCSSImpl.scoop
index 8f82852..aa1834b 100644
--- a/weinre.web/modules/weinre/target/WiCSSImpl.scoop
+++ b/weinre.web/modules/weinre/target/WiCSSImpl.scoop
@@ -13,21 +13,67 @@
//-----------------------------------------------------------------------------
method getStylesForNode(/*int*/ nodeId, callback)
- // callback: function(/*any*/ styles)
- Weinre.notImplemented(arguments.callee.signature)
-
+ var result = {}
+
+ var node = Weinre.nodeStore.getNode(nodeId)
+ if (!node) {
+ console.log(arguments.callee.signature + " passed an invalid nodeId: " + nodeId)
+ return
+ }
+
+ var result = {
+ inlineStyle: Weinre.cssStore.getInlineStyle(node),
+ computedStyle: Weinre.cssStore.getComputedStyle(node),
+ matchedCSSRules: Weinre.cssStore.getMatchedCSSRules(node),
+ styleAttributes: Weinre.cssStore.getStyleAttributes(node),
+ pseudoElements: Weinre.cssStore.getPseudoElements(node),
+ inherited: []
+ }
+
+ var parentNode = node.parentNode
+
+ while (parentNode) {
+ var parentStyle = {
+ inlineStyle: Weinre.cssStore.getInlineStyle(parentNode),
+ matchedCSSRules: Weinre.cssStore.getMatchedCSSRules(parentNode),
+ }
+
+ result.inherited.push(parentStyle)
+ parentNode = parentNode.parentNode
+ }
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [result])
+ }
//-----------------------------------------------------------------------------
method getComputedStyleForNode(/*int*/ nodeId, callback)
- // callback: function(/*any*/ style)
- Weinre.notImplemented(arguments.callee.signature)
+ var node = Weinre.nodeStore.getNode(nodeId)
+ if (!node) {
+ console.log(arguments.callee.signature + " passed an invalid nodeId: " + nodeId)
+ return
+ }
+
+ var result = Weinre.cssStore.getComputedStyle(node)
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [result])
+ }
//-----------------------------------------------------------------------------
method getInlineStyleForNode(/*int*/ nodeId, callback)
- // callback: function(/*any*/ style)
- Weinre.notImplemented(arguments.callee.signature)
+ var node = Weinre.nodeStore.getNode(nodeId)
+ if (!node) {
+ console.log(arguments.callee.signature + " passed an invalid nodeId: " + nodeId)
+ return
+ }
+ var result = Weinre.cssStore.getInlineStyle(node)
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [result])
+ }
//-----------------------------------------------------------------------------
method getAllStyles(callback)
@@ -79,8 +125,7 @@
//-----------------------------------------------------------------------------
method getSupportedCSSProperties(callback)
- // callback: function(/*any[]*/ cssProperties)
- Weinre.notImplemented(arguments.callee.signature)
+ return Weinre.getCSSProperties()
//-----------------------------------------------------------------------------
diff --git a/weinre.web/modules/weinre/target/WiConsoleImpl.scoop b/weinre.web/modules/weinre/target/WiConsoleImpl.scoop
index 1866e79..447b959 100644
--- a/weinre.web/modules/weinre/target/WiConsoleImpl.scoop
+++ b/weinre.web/modules/weinre/target/WiConsoleImpl.scoop
@@ -10,20 +10,26 @@
//-----------------------------------------------------------------------------
class WiConsoleImpl
+ this.messagesEnabled = true
//-----------------------------------------------------------------------------
method setConsoleMessagesEnabled(/*boolean*/ enabled, callback)
- // callback: function(/*boolean*/ newState)
- Weinre.notImplemented(arguments.callee.signature)
-
+ var oldValue = this.messagesEnabled
+ this.messagesEnabled = enabled
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [oldValue])
+ }
//-----------------------------------------------------------------------------
method clearConsoleMessages(callback)
- // callback: function()
- Weinre.notImplemented(arguments.callee.signature)
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [])
+ }
//-----------------------------------------------------------------------------
method setMonitoringXHREnabled(/*boolean*/ enabled, callback)
- // callback: function()
- Weinre.notImplemented(arguments.callee.signature)
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback, [])
+ }
diff --git a/weinre.web/modules/weinre/target/WiInspectorImpl.scoop b/weinre.web/modules/weinre/target/WiInspectorImpl.scoop
index 219bb60..ae743e7 100644
--- a/weinre.web/modules/weinre/target/WiInspectorImpl.scoop
+++ b/weinre.web/modules/weinre/target/WiInspectorImpl.scoop
@@ -55,15 +55,25 @@
//-----------------------------------------------------------------------------
method highlightDOMNode(/*int*/ nodeId, callback)
- // callback: function()
- Weinre.notImplemented(arguments.callee.signature)
+ var node = Weinre.nodeStore.getNode(nodeId)
+ if (!node) {
+ console.log(arguments.callee.signature + " passed an invalid nodeId: " + nodeId)
+ return
+ }
+ Weinre.elementHighlighter.on(node)
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback)
+ }
//-----------------------------------------------------------------------------
method hideDOMNodeHighlight(callback)
- // callback: function()
- Weinre.notImplemented(arguments.callee.signature)
-
+ Weinre.elementHighlighter.off()
+
+ if (callback) {
+ Weinre.WeinreTargetCommands.sendClientCallback(callback)
+ }
//-----------------------------------------------------------------------------
method highlightFrame(/*int*/ frameId, callback)