summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-12 13:39:42 +0000
committermnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-12 13:39:42 +0000
commit34740a9613c84c572da3a01f3b5637734dac671e (patch)
tree97f9908a8b6ca8c78f3c17824b887db21edca89f
parent8743ec41593c6e3377f2a8377e553a21a505add6 (diff)
downloadchromium_src-34740a9613c84c572da3a01f3b5637734dac671e.zip
chromium_src-34740a9613c84c572da3a01f3b5637734dac671e.tar.gz
chromium_src-34740a9613c84c572da3a01f3b5637734dac671e.tar.bz2
DevTools: concatenate JS files into one big devtools.js file (similar to inspector.js in WebKit)
To use old-style unconcatenated sources, set 'debug_devtools' variable. BUG=26911 TEST=none Review URL: http://codereview.chromium.org/376022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31782 0039d316-1c4b-4281-b951-d872f2087c98
-rwxr-xr-xwebkit/build/concatenate_js_files.py64
-rw-r--r--webkit/webkit_glue.gyp45
2 files changed, 105 insertions, 4 deletions
diff --git a/webkit/build/concatenate_js_files.py b/webkit/build/concatenate_js_files.py
new file mode 100755
index 0000000..b6d7efc
--- /dev/null
+++ b/webkit/build/concatenate_js_files.py
@@ -0,0 +1,64 @@
+#!/usr/bin/env python
+# Copyright (c) 2009 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This script concatenates in place JS files in the order specified
+# using <script> tags in a given 'order.html' file.
+
+from HTMLParser import HTMLParser
+from cStringIO import StringIO
+import os.path
+import sys
+
+class OrderedJSFilesExtractor(HTMLParser):
+
+ def __init__(self, order_html_name):
+ HTMLParser.__init__(self)
+ self.ordered_js_files = []
+ order_html = open(order_html_name, 'r')
+ self.feed(order_html.read())
+
+ def handle_starttag(self, tag, attrs):
+ if tag == 'script':
+ attrs_dict = dict(attrs)
+ if ('type' in attrs_dict and attrs_dict['type'] == 'text/javascript' and
+ 'src' in attrs_dict):
+ self.ordered_js_files.append(attrs_dict['src'])
+
+def main(argv):
+
+ if len(argv) < 3:
+ print('usage: %s order.html input_file_1 input_file_2 ... '
+ 'output_file' % argv[0])
+ return 1
+
+ output_file_name = argv.pop()
+
+ full_paths = {}
+ for full_path in argv[2:]:
+ (dir_name, file_name) = os.path.split(full_path)
+ if file_name.endswith('.js'):
+ full_paths[file_name] = full_path
+
+ extractor = OrderedJSFilesExtractor(argv[1])
+ output = StringIO()
+
+ for input_file_name in extractor.ordered_js_files:
+ if not input_file_name in full_paths:
+ print('A full path to %s isn\'t specified in command line. '
+ 'Probably, you have an obsolete script entry in %s' %
+ (input_file_name, argv[1]))
+ output.write('/* %s */\n\n' % input_file_name)
+ input_file = open(full_paths[input_file_name], 'r')
+ output.write(input_file.read())
+ output.write('\n')
+ input_file.close()
+
+ output_file = open(output_file_name, 'w')
+ output_file.write(output.getvalue())
+ output_file.close()
+ output.close()
+
+if __name__ == '__main__':
+ sys.exit(main(sys.argv))
diff --git a/webkit/webkit_glue.gyp b/webkit/webkit_glue.gyp
index 914be72..f823dfd 100644
--- a/webkit/webkit_glue.gyp
+++ b/webkit/webkit_glue.gyp
@@ -39,6 +39,8 @@
'glue/devtools/js/devtools_host_stub.js',
'glue/devtools/js/tests.js',
],
+
+ 'debug_devtools%': 0,
},
'targets': [
{
@@ -450,15 +452,24 @@
'dependencies': [
'devtools_html',
],
+ 'conditions': [
+ ['debug_devtools==0', {
+ 'dependencies+': [
+ 'concatenated_devtools_js',
+ ],
+ }],
+ ],
'copies': [
{
'destination': '<(PRODUCT_DIR)/resources/inspector',
'files': [
-
'<@(devtools_files)',
-
'<@(webinspector_files)',
-
+ ],
+ 'conditions': [
+ ['debug_devtools==0', {
+ 'files/': [['exclude', '\\.js$']],
+ }],
],
},
{
@@ -501,7 +512,33 @@
'action': ['python', '<@(_inputs)', '<@(_outputs)', '<@(devtools_files)'],
},
],
- }
+ },
+ {
+ 'target_name': 'concatenated_devtools_js',
+ 'type': 'none',
+ 'msvs_guid': '8CCFDF4A-B702-4988-9207-623D1477D3E7',
+ 'dependencies': [
+ 'devtools_html',
+ ],
+ 'sources': [
+ '<(PRODUCT_DIR)/resources/inspector/devtools.js',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'concatenate_devtools_js',
+ 'inputs': [
+ 'build/concatenate_js_files.py',
+ '<(PRODUCT_DIR)/resources/inspector/devtools.html',
+ '<@(webinspector_files)',
+ '<@(devtools_files)',
+ ],
+ 'outputs': [
+ '<(PRODUCT_DIR)/resources/inspector/devtools.js',
+ ],
+ 'action': ['python', '<@(_inputs)', '<@(_outputs)'],
+ },
+ ],
+ },
], # targets
}