| Index: Source/devtools/scripts/compile_frontend.py
|
| diff --git a/Source/devtools/scripts/compile_frontend.py b/Source/devtools/scripts/compile_frontend.py
|
| index 0b1f1f228a8dd7d3e32887ca2592e2e731b4228b..632ce53652c1067619bf3126ea13983210790a66 100755
|
| --- a/Source/devtools/scripts/compile_frontend.py
|
| +++ b/Source/devtools/scripts/compile_frontend.py
|
| @@ -36,9 +36,9 @@
|
| 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,9 +57,8 @@
|
| generate_protocol_externs.generate_protocol_externs(protocol_externs_file, path.join(devtools_path, "protocol.json"))
|
|
|
| jsmodule_name_prefix = "jsmodule_"
|
| -frontend_modules_name = "frontend_modules.json"
|
| +js_modules_name = "frontend_modules.json"
|
| runtime_module_name = "_runtime"
|
| -module_initializer_name = "_module.js"
|
|
|
|
|
| def error_excepthook(exctype, value, traceback):
|
| @@ -68,11 +67,30 @@
|
| sys.excepthook = error_excepthook
|
|
|
| try:
|
| - with open(path.join(scripts_path, frontend_modules_name), "rt") as js_modules_file:
|
| + with open(path.join(scripts_path, js_modules_name), "rt") as js_modules_file:
|
| modules = json.loads(js_modules_file.read())
|
| except:
|
| - log_error("Failed to read %s" % frontend_modules_name)
|
| + print "ERROR: Failed to read %s" % js_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"]
|
|
|
| @@ -96,26 +114,21 @@
|
| 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 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
|
| + for file_name in module['sources']:
|
| + if file_name in allowed_import_statements_files:
|
| continue
|
| try:
|
| with open(path.join(devtools_frontend_path, file_name), "r") as sourceFile:
|
| source = sourceFile.read()
|
| if re.search(importscript_regex, source):
|
| - log_error("importScript() call only allowed in module initializers (%s); found in %s" % (module_initializer_name, file_name))
|
| + print "ERROR: importScript function call is allowed in module header files only (found in %s)" % file_name
|
| errors_found = True
|
| except:
|
| - log_error("Failed to access %s" % file_name)
|
| + print "ERROR: Failed to access %s" % file_name
|
| raise
|
| return errors_found
|
|
|
| @@ -213,7 +226,7 @@
|
| for module in modules:
|
| for dependency in module["dependencies"]:
|
| if dependency in standalone_modules_by_name:
|
| - log_error("Standalone module '%s' may not be present among the dependencies of '%s'" % (dependency, module["name"]))
|
| + print "ERROR: Standalone module %s may not be present among the dependencies of %s" % (dependency, module["name"])
|
| errors_found = True
|
|
|
| verify_standalone_modules()
|
| @@ -230,7 +243,7 @@
|
| for source in module["sources"]:
|
| referencing_module = seen_files.get(source)
|
| if referencing_module:
|
| - log_error("Duplicate use of %s in '%s' (previously seen in '%s')" % (source, name, referencing_module))
|
| + print "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:
|
|
|