Index: Source/devtools/scripts/compile_frontend.py |
diff --git a/Source/devtools/scripts/compile_frontend.py b/Source/devtools/scripts/compile_frontend.py |
index 632ce53652c1067619bf3126ea13983210790a66..0b1f1f228a8dd7d3e32887ca2592e2e731b4228b 100755 |
--- a/Source/devtools/scripts/compile_frontend.py |
+++ b/Source/devtools/scripts/compile_frontend.py |
@@ -36,9 +36,9 @@ import subprocess |
import sys |
import tempfile |
try: |
- import json |
-except ImportError: |
import simplejson as json |
+except ImportError: |
+ import json |
scripts_path = path.dirname(path.abspath(__file__)) |
devtools_path = path.dirname(scripts_path) |
@@ -57,8 +57,9 @@ java_exec = "java -Xms1024m -server -XX:+TieredCompilation" |
generate_protocol_externs.generate_protocol_externs(protocol_externs_file, path.join(devtools_path, "protocol.json")) |
jsmodule_name_prefix = "jsmodule_" |
-js_modules_name = "frontend_modules.json" |
+frontend_modules_name = "frontend_modules.json" |
runtime_module_name = "_runtime" |
+module_initializer_name = "_module.js" |
def error_excepthook(exctype, value, traceback): |
@@ -67,31 +68,12 @@ def error_excepthook(exctype, value, traceback): |
sys.excepthook = error_excepthook |
try: |
- with open(path.join(scripts_path, js_modules_name), "rt") as js_modules_file: |
+ with open(path.join(scripts_path, frontend_modules_name), "rt") as js_modules_file: |
modules = json.loads(js_modules_file.read()) |
except: |
- print "ERROR: Failed to read %s" % js_modules_name |
+ log_error("Failed to read %s" % frontend_modules_name) |
raise |
-# `importScript` function must not be used in any files |
-# except module headers. Refer to devtools.gyp file for |
-# the module header list. |
-allowed_import_statements_files = [ |
- "console/ConsolePanel.js", |
- "elements/ElementsPanel.js", |
- "resources/ResourcesPanel.js", |
- "network/NetworkPanel.js", |
- "settings/SettingsScreen.js", |
- "sources/SourcesPanel.js", |
- "timeline/TimelinePanel.js", |
- "profiler/ProfilesPanel.js", |
- "audits/AuditsPanel.js", |
- "layers/LayersPanel.js", |
- "extensions/ExtensionServer.js", |
- "source_frame/SourceFrame.js", |
- "documentation/DocumentationView.js", |
-] |
- |
type_checked_jsdoc_tags_list = ["param", "return", "type", "enum"] |
type_checked_jsdoc_tags_or = "|".join(type_checked_jsdoc_tags_list) |
@@ -115,20 +97,25 @@ def hasErrors(output): |
return re.search(error_warning_regex, output) != None |
+def log_error(message): |
+ print "ERROR: " + message |
+ |
def verify_importScript_usage(): |
errors_found = False |
for module in modules: |
- for file_name in module['sources']: |
- if file_name in allowed_import_statements_files: |
+ for file_name in module["sources"]: |
+ if path.basename(file_name) == module_initializer_name: |
+ log_error("Module initializer (%s) may not be listed among module's scripts; found in '%s'" % (module_initializer_name, module["name"])) |
+ errors_found = True |
continue |
try: |
with open(path.join(devtools_frontend_path, file_name), "r") as sourceFile: |
source = sourceFile.read() |
if re.search(importscript_regex, source): |
- print "ERROR: importScript function call is allowed in module header files only (found in %s)" % file_name |
+ log_error("importScript() call only allowed in module initializers (%s); found in %s" % (module_initializer_name, file_name)) |
errors_found = True |
except: |
- print "ERROR: Failed to access %s" % file_name |
+ log_error("Failed to access %s" % file_name) |
raise |
return errors_found |
@@ -226,7 +213,7 @@ def verify_standalone_modules(): |
for module in modules: |
for dependency in module["dependencies"]: |
if dependency in standalone_modules_by_name: |
- print "ERROR: Standalone module %s may not be present among the dependencies of %s" % (dependency, module["name"]) |
+ log_error("Standalone module '%s' may not be present among the dependencies of '%s'" % (dependency, module["name"])) |
errors_found = True |
verify_standalone_modules() |
@@ -243,7 +230,7 @@ def check_duplicate_files(): |
for source in module["sources"]: |
referencing_module = seen_files.get(source) |
if referencing_module: |
- print "ERROR: Duplicate use of %s in '%s' (previously seen in '%s')" % (source, name, referencing_module) |
+ log_error("Duplicate use of %s in '%s' (previously seen in '%s')" % (source, name, referencing_module)) |
seen_files[source] = name |
for module_name in standalone_modules_by_name: |