Title: [119585] trunk/Source/WebCore
Revision
119585
Author
[email protected]
Date
2012-06-06 04:37:02 -0700 (Wed, 06 Jun 2012)

Log Message

Web Inspector: [Compiler] Remove compile-front-end.sh and fix InjectedScriptSource errors.
https://bugs.webkit.org/show_bug.cgi?id=87512

Reviewed by Yury Semikhatsky.

Removed compile-front-end.sh, compile-front-end.py should be used instead now.
Made generate_protocol_externs a python module to call it from compile-front-end.py.
Temporary copy of InjectedScriptSource.js is created and modified to
avoid "This code lacks side effects" warning.

* inspector/compile-front-end.py:
* inspector/compile-front-end.sh: Removed.
* inspector/generate-protocol-externs: Removed.
* inspector/generate_protocol_externs.py: Added.
(full_qualified_type_id):
(param_type):
(generate_protocol_externs):

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (119584 => 119585)


--- trunk/Source/WebCore/ChangeLog	2012-06-06 11:34:45 UTC (rev 119584)
+++ trunk/Source/WebCore/ChangeLog	2012-06-06 11:37:02 UTC (rev 119585)
@@ -1,3 +1,23 @@
+2012-05-25  Vsevolod Vlasov  <[email protected]>
+
+        Web Inspector: [Compiler] Remove compile-front-end.sh and fix InjectedScriptSource errors.
+        https://bugs.webkit.org/show_bug.cgi?id=87512
+
+        Reviewed by Yury Semikhatsky.
+
+        Removed compile-front-end.sh, compile-front-end.py should be used instead now.
+        Made generate_protocol_externs a python module to call it from compile-front-end.py.
+        Temporary copy of InjectedScriptSource.js is created and modified to
+        avoid "This code lacks side effects" warning.
+
+        * inspector/compile-front-end.py:
+        * inspector/compile-front-end.sh: Removed.
+        * inspector/generate-protocol-externs: Removed.
+        * inspector/generate_protocol_externs.py: Added.
+        (full_qualified_type_id):
+        (param_type):
+        (generate_protocol_externs):
+
 2012-06-06  Zoltan Herczeg  <[email protected]>
 
         [Qt] REGRESSION(r118616): It made all tests crash in debug mode

Modified: trunk/Source/WebCore/inspector/compile-front-end.py (119584 => 119585)


--- trunk/Source/WebCore/inspector/compile-front-end.py	2012-06-06 11:34:45 UTC (rev 119584)
+++ trunk/Source/WebCore/inspector/compile-front-end.py	2012-06-06 11:37:02 UTC (rev 119585)
@@ -28,8 +28,14 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 import os
+import os.path
+import generate_protocol_externs
 
-inspector_frontend_path = "Source/WebCore/inspector/front-end"
+inspector_path = "Source/WebCore/inspector"
+inspector_frontend_path = inspector_path + "/front-end"
+
+generate_protocol_externs.generate_protocol_externs(inspector_frontend_path + "/protocol-externs.js", inspector_path + "/Inspector.json")
+
 externs = ["externs.js", "protocol-externs.js"]
 jsmodule_name_prefix = "jsmodule_"
 modules = [
@@ -330,7 +336,9 @@
 # _javascript_Formatter
 # ScriptFormatterWorker
 
-command = "java -jar ~/closure/compiler.jar --summary_detail_level 3 --compilation_level SIMPLE_OPTIMIZATIONS --warning_level VERBOSE --language_in ECMASCRIPT5 --accept_const_keyword \\\n"
+compiler_command = "java -jar ~/closure/compiler.jar --summary_detail_level 3 --compilation_level SIMPLE_OPTIMIZATIONS --warning_level VERBOSE --language_in ECMASCRIPT5 --accept_const_keyword \\\n"
+
+command = compiler_command
 for extern in externs:
     command += "    --externs " + inspector_frontend_path + "/" + extern
     command += " \\\n"
@@ -350,5 +358,15 @@
         command += "        --js " + inspector_frontend_path + "/" + script
         command += " \\\n"
 command += "\n"
+os.system(command)
 
+print "Compiling InjectedScriptSource.js..."
+os.system("echo \"var injectedScriptValue = \" > " + inspector_path + "/" + "InjectedScriptSourceTmp.js")
+os.system("cat  " + inspector_path + "/" + "InjectedScriptSource.js" + " >> " + inspector_path + "/" + "InjectedScriptSourceTmp.js")
+command = compiler_command
+command += "    --externs " + inspector_path + "/" + "InjectedScriptExterns.js" + " \\\n"
+command += "    --module " + jsmodule_name_prefix + "injected_script" + ":" + "1" + " \\\n"
+command += "        --js " + inspector_path + "/" + "InjectedScriptSourceTmp.js" + " \\\n"
+command += "\n"
 os.system(command)
+os.system("rm " + inspector_path + "/" + "InjectedScriptSourceTmp.js")

Deleted: trunk/Source/WebCore/inspector/compile-front-end.sh (119584 => 119585)


--- trunk/Source/WebCore/inspector/compile-front-end.sh	2012-06-06 11:34:45 UTC (rev 119584)
+++ trunk/Source/WebCore/inspector/compile-front-end.sh	2012-06-06 11:37:02 UTC (rev 119585)
@@ -1,44 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2011 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Compiles WebKit Web Inspector front-end.
-
-python Source/WebCore/inspector/generate-protocol-externs -o Source/WebCore/inspector/front-end/protocol-externs.js Source/WebCore/inspector/Inspector.json
-python Source/WebCore/inspector/compile-front-end.py
-
-echo "Compiling InjectedScriptSource.js..."
-java -jar ~/closure/compiler.jar\
-    --summary_detail_level 3\
-    --compilation_level SIMPLE_OPTIMIZATIONS\
-    --warning_level VERBOSE\
-    --language_in ECMASCRIPT5\
-    --accept_const_keyword\
-    --module injected_script:1\
-    --js Source/WebCore/inspector/InjectedScriptSource.js\
-    --externs Source/WebCore/inspector/InjectedScriptExterns.js

Deleted: trunk/Source/WebCore/inspector/generate-protocol-externs (119584 => 119585)


--- trunk/Source/WebCore/inspector/generate-protocol-externs	2012-06-06 11:34:45 UTC (rev 119584)
+++ trunk/Source/WebCore/inspector/generate-protocol-externs	2012-06-06 11:37:02 UTC (rev 119585)
@@ -1,165 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2011 Google Inc. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-# 
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-# 
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import os.path
-import sys
-
-program_name = os.path.basename(__file__)
-if len(sys.argv) < 4 or sys.argv[1] != "-o":
-    sys.stderr.write("Usage: %s -o OUTPUT_FILE INPUT_FILE\n" % program_name)
-    exit(1)
-
-output_path = sys.argv[2]
-input_path = sys.argv[3]
-
-input_file = open(input_path, "r")
-json_string = input_file.read()
-json_string = json_string.replace(": true", ": True")
-json_string = json_string.replace(": false", ": False")
-json_api = eval(json_string)["domains"]
-
-output_file = open(output_path, "w")
-
-output_file.write("""
-var Protocol = {};
-/** @typedef {string}*/
-Protocol.Error;
-""")
-
-type_traits = {
-    "any": "*",
-    "string": "string",
-    "integer": "number",
-    "number": "number",
-    "boolean": "boolean",
-    "array": "Array.<*>",
-    "object": "Object"
-}
-
-ref_types = {}
-
-def full_qualified_type_id(domain_name, type_id):
-    if type_id.find(".") == -1:
-       return "%s.%s" % (domain_name, type_id)
-    return type_id
-    
-def dash_to_camelcase(word):
-    return "".join(x.capitalize() or "-" for x in word.split("-"))
-
-def param_type(domain_name, param):
-    if "type" in param:
-        if param["type"] == "array":
-            items = param["items"]
-            return "Array.<%s>" % param_type(domain_name, items)
-        else:
-            return type_traits[param["type"]]
-    if "$ref" in param:
-        type_id = full_qualified_type_id(domain_name, param["$ref"])
-        if type_id in ref_types:
-            return ref_types[type_id]
-        else:
-            print "Type not found: " + type_id
-            return "!! Type not found: " + type_id
-
-for domain in json_api:
-    domain_name = domain["domain"]
-    if "types" in domain:
-        for type in domain["types"]:
-            type_id = full_qualified_type_id(domain_name, type["id"])
-            ref_types[type_id] = "%sAgent.%s" % (domain_name, type["id"])
-
-for domain in json_api:
-    domain_name = domain["domain"]
-    output_file.write("\n\n\nvar %sAgent = {};\n" % domain_name)
-    if "types" in domain:
-        for type in domain["types"]:
-            if type["type"] == "object":
-                output_file.write("\n/** @constructor */\n")
-                output_file.write("%sAgent.%s = function()\n{\n" % (domain_name, type["id"]))
-                if "properties" in type:
-                    for property in type["properties"]:
-                        suffix = ""
-                        if ("optional" in property):
-                            suffix = "|undefined"
-                        output_file.write("/** @type {%s%s} */ this.%s;\n" % (param_type(domain_name, property), suffix, property["name"]))
-                output_file.write("}\n")
-            elif type["type"] == "array":
-                suffix = ""
-                if ("optional" in property):
-                    suffix = "|undefined"
-                output_file.write("\n/** @typedef {Array.<%s>%s} */\n%sAgent.%s;\n" % (param_type(domain_name, type["items"]), suffix, domain_name, type["id"]))
-            else:
-                output_file.write("\n/** @typedef {%s} */\n%sAgent.%s;\n" % (type_traits[type["type"]], domain_name, type["id"]))
-                
-
-    if "commands" in domain:
-        for command in domain["commands"]:
-            output_file.write("\n/**\n")
-            params = []
-            if ("parameters" in command):
-                for in_param in command["parameters"]:
-                    if ("optional" in in_param):
-                        params.append("opt_%s" % in_param["name"])
-                        output_file.write(" * @param {%s=} opt_%s\n" % (param_type(domain_name, in_param), in_param["name"]))
-                    else:
-                        params.append(in_param["name"])
-                        output_file.write(" * @param {%s} %s\n" % (param_type(domain_name, in_param), in_param["name"]))
-            returns = ["?Protocol.Error"]
-            if ("returns" in command):
-                for out_param in command["returns"]:
-                    if ("optional" in out_param):
-                        returns.append("%s=" % param_type(domain_name, out_param))
-                    else:
-                        returns.append("%s" % param_type(domain_name, out_param))
-            output_file.write(" * @param {function(%s):void=} opt_callback\n" % ", ".join(returns))
-            output_file.write(" */\n")
-            params.append("opt_callback");
-            output_file.write("%sAgent.%s = function(%s) {}\n" % (domain_name, command["name"], ", ".join(params)))
-            output_file.write("/** @param {function(%s):void=} opt_callback */\n" % ", ".join(returns))
-            output_file.write("%sAgent.%s.invoke = function(obj, opt_callback) {}\n" % (domain_name, command["name"]))
-
-    output_file.write("/** @interface */\n")
-    output_file.write("%sAgent.Dispatcher = function() {};\n" % domain_name)
-    if "events" in domain:
-        for event in domain["events"]:
-            params = []
-            if ("parameters" in event):
-                output_file.write("/**\n")
-                for param in event["parameters"]:
-                    if ("optional" in param):
-                        params.append("opt_%s" % param["name"])
-                        output_file.write(" * @param {%s=} opt_%s\n" % (param_type(domain_name, param), param["name"]))
-                    else:
-                        params.append(param["name"])
-                        output_file.write(" * @param {%s} %s\n" % (param_type(domain_name, param), param["name"]))
-                output_file.write(" */\n")
-            output_file.write("%sAgent.Dispatcher.prototype.%s = function(%s) {};\n" % (domain_name, event["name"], ", ".join(params)));
-    output_file.write("/**\n * @param {%sAgent.Dispatcher} dispatcher\n */\n" % domain_name)
-    output_file.write("InspectorBackend.register%sDispatcher = function(dispatcher) {}\n" % domain_name);
-output_file.close()

Added: trunk/Source/WebCore/inspector/generate_protocol_externs.py (0 => 119585)


--- trunk/Source/WebCore/inspector/generate_protocol_externs.py	                        (rev 0)
+++ trunk/Source/WebCore/inspector/generate_protocol_externs.py	2012-06-06 11:37:02 UTC (rev 119585)
@@ -0,0 +1,166 @@
+#!/usr/bin/env python
+# Copyright (c) 2011 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+type_traits = {
+    "any": "*",
+    "string": "string",
+    "integer": "number",
+    "number": "number",
+    "boolean": "boolean",
+    "array": "Array.<*>",
+    "object": "Object",
+}
+
+ref_types = {}
+
+
+def full_qualified_type_id(domain_name, type_id):
+    if type_id.find(".") == -1:
+        return "%s.%s" % (domain_name, type_id)
+    return type_id
+
+
+def param_type(domain_name, param):
+    if "type" in param:
+        if param["type"] == "array":
+            items = param["items"]
+            return "Array.<%s>" % param_type(domain_name, items)
+        else:
+            return type_traits[param["type"]]
+    if "$ref" in param:
+        type_id = full_qualified_type_id(domain_name, param["$ref"])
+        if type_id in ref_types:
+            return ref_types[type_id]
+        else:
+            print "Type not found: " + type_id
+            return "!! Type not found: " + type_id
+
+
+def generate_protocol_externs(output_path, input_path):
+    input_file = open(input_path, "r")
+    json_string = input_file.read()
+    json_string = json_string.replace(": true", ": True")
+    json_string = json_string.replace(": false", ": False")
+    json_api = eval(json_string)["domains"]
+
+    output_file = open(output_path, "w")
+
+    output_file.write(
+"""
+var Protocol = {};
+/** @typedef {string}*/
+Protocol.Error;
+""")
+
+    for domain in json_api:
+        domain_name = domain["domain"]
+        if "types" in domain:
+            for type in domain["types"]:
+                type_id = full_qualified_type_id(domain_name, type["id"])
+                ref_types[type_id] = "%sAgent.%s" % (domain_name, type["id"])
+
+    for domain in json_api:
+        domain_name = domain["domain"]
+        output_file.write("\n\n\nvar %sAgent = {};\n" % domain_name)
+        if "types" in domain:
+            for type in domain["types"]:
+                if type["type"] == "object":
+                    output_file.write("\n/** @constructor */\n")
+                    output_file.write("%sAgent.%s = function()\n{\n" % (domain_name, type["id"]))
+                    if "properties" in type:
+                        for property in type["properties"]:
+                            suffix = ""
+                            if ("optional" in property):
+                                suffix = "|undefined"
+                            output_file.write("/** @type {%s%s} */ this.%s;\n" % (param_type(domain_name, property), suffix, property["name"]))
+                    output_file.write("}\n")
+                elif type["type"] == "array":
+                    suffix = ""
+                    if ("optional" in property):
+                        suffix = "|undefined"
+                    output_file.write("\n/** @typedef {Array.<%s>%s} */\n%sAgent.%s;\n" % (param_type(domain_name, type["items"]), suffix, domain_name, type["id"]))
+                else:
+                    output_file.write("\n/** @typedef {%s} */\n%sAgent.%s;\n" % (type_traits[type["type"]], domain_name, type["id"]))
+
+        if "commands" in domain:
+            for command in domain["commands"]:
+                output_file.write("\n/**\n")
+                params = []
+                if ("parameters" in command):
+                    for in_param in command["parameters"]:
+                        if ("optional" in in_param):
+                            params.append("opt_%s" % in_param["name"])
+                            output_file.write(" * @param {%s=} opt_%s\n" % (param_type(domain_name, in_param), in_param["name"]))
+                        else:
+                            params.append(in_param["name"])
+                            output_file.write(" * @param {%s} %s\n" % (param_type(domain_name, in_param), in_param["name"]))
+                returns = ["?Protocol.Error"]
+                if ("returns" in command):
+                    for out_param in command["returns"]:
+                        if ("optional" in out_param):
+                            returns.append("%s=" % param_type(domain_name, out_param))
+                        else:
+                            returns.append("%s" % param_type(domain_name, out_param))
+                output_file.write(" * @param {function(%s):void=} opt_callback\n" % ", ".join(returns))
+                output_file.write(" */\n")
+                params.append("opt_callback")
+                output_file.write("%sAgent.%s = function(%s) {}\n" % (domain_name, command["name"], ", ".join(params)))
+                output_file.write("/** @param {function(%s):void=} opt_callback */\n" % ", ".join(returns))
+                output_file.write("%sAgent.%s.invoke = function(obj, opt_callback) {}\n" % (domain_name, command["name"]))
+
+        output_file.write("/** @interface */\n")
+        output_file.write("%sAgent.Dispatcher = function() {};\n" % domain_name)
+        if "events" in domain:
+            for event in domain["events"]:
+                params = []
+                if ("parameters" in event):
+                    output_file.write("/**\n")
+                    for param in event["parameters"]:
+                        if ("optional" in param):
+                            params.append("opt_%s" % param["name"])
+                            output_file.write(" * @param {%s=} opt_%s\n" % (param_type(domain_name, param), param["name"]))
+                        else:
+                            params.append(param["name"])
+                            output_file.write(" * @param {%s} %s\n" % (param_type(domain_name, param), param["name"]))
+                    output_file.write(" */\n")
+                output_file.write("%sAgent.Dispatcher.prototype.%s = function(%s) {};\n" % (domain_name, event["name"], ", ".join(params)))
+        output_file.write("/**\n * @param {%sAgent.Dispatcher} dispatcher\n */\n" % domain_name)
+        output_file.write("InspectorBackend.register%sDispatcher = function(dispatcher) {}\n" % domain_name)
+    output_file.close()
+
+if __name__ == "__main__":
+    import sys
+    import os.path
+    program_name = os.path.basename(__file__)
+    if len(sys.argv) < 4 or sys.argv[1] != "-o":
+        sys.stderr.write("Usage: %s -o OUTPUT_FILE INPUT_FILE\n" % program_name)
+        exit(1)
+    output_path = sys.argv[2]
+    input_path = sys.argv[3]
+    generate_protocol_externs(output_path, input_path)
Property changes on: trunk/Source/WebCore/inspector/generate_protocol_externs.py
___________________________________________________________________

Added: svn:executable

Added: svn:eol-style

_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to