diff options
Diffstat (limited to 'WebKit/chromium/scripts')
-rw-r--r-- | WebKit/chromium/scripts/concatenate_css_files.py | 117 | ||||
-rw-r--r-- | WebKit/chromium/scripts/concatenate_js_files.py | 117 | ||||
-rw-r--r-- | WebKit/chromium/scripts/generate_devtools_html.py | 86 | ||||
-rw-r--r-- | WebKit/chromium/scripts/jsmin.py | 229 |
4 files changed, 0 insertions, 549 deletions
diff --git a/WebKit/chromium/scripts/concatenate_css_files.py b/WebKit/chromium/scripts/concatenate_css_files.py deleted file mode 100644 index 0aa5ef3..0000000 --- a/WebKit/chromium/scripts/concatenate_css_files.py +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (C) 2010 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. -# - -# This script concatenates in place CSS files in the order specified -# using <link> tags in a given 'order.html' file. - -from HTMLParser import HTMLParser -from cStringIO import StringIO -import os.path -import sys - - -class OrderedCSSFilesExtractor(HTMLParser): - - def __init__(self, order_html_name): - HTMLParser.__init__(self) - self.ordered_css_files = [] - order_html = open(order_html_name, 'r') - self.feed(order_html.read()) - - def handle_starttag(self, tag, attrs): - if tag == 'link': - attrs_dict = dict(attrs) - if ('type' in attrs_dict and attrs_dict['type'] == 'text/css' and - 'href' in attrs_dict): - self.ordered_css_files.append(attrs_dict['href']) - - -class PathExpander: - - def __init__(self, paths): - self.paths = paths - - def expand(self, filename): - last_path = None - expanded_name = None - for path in self.paths: - fname = "%s/%s" % (path, filename) - if (os.access(fname, os.F_OK)): - if (last_path != None): - raise Exception('Ambiguous file %s: found in %s and %s' % - (filename, last_path, path)) - expanded_name = fname - last_path = path - return expanded_name - - -def main(argv): - - if len(argv) < 3: - print('usage: %s order.html input_source_dir_1 input_source_dir_2 ... ' - 'output_file' % argv[0]) - return 1 - - output_file_name = argv.pop() - input_order_file_name = argv[1] - extractor = OrderedCSSFilesExtractor(input_order_file_name) - # Unconditionally append devTools.css. It will contain concatenated files. - extractor.ordered_css_files.append('devTools.css') - - expander = PathExpander(argv[2:]) - output = StringIO() - - for input_file_name in extractor.ordered_css_files: - full_path = expander.expand(input_file_name) - if (full_path is None): - raise Exception('File %s referenced in %s not found on any source paths, ' - 'check source tree for consistency' % - (input_file_name, input_order_file_name)) - output.write('/* %s */\n\n' % input_file_name) - input_file = open(full_path, '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() - - # Touch output file directory to make sure that Xcode will copy - # modified resource files. - if sys.platform == 'darwin': - output_dir_name = os.path.dirname(output_file_name) - os.utime(output_dir_name, None) - - -if __name__ == '__main__': - sys.exit(main(sys.argv)) diff --git a/WebKit/chromium/scripts/concatenate_js_files.py b/WebKit/chromium/scripts/concatenate_js_files.py deleted file mode 100644 index 209660a..0000000 --- a/WebKit/chromium/scripts/concatenate_js_files.py +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (C) 2010 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. -# - -# 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 jsmin -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']) - - -class PathExpander: - - def __init__(self, paths): - self.paths = paths - - def expand(self, filename): - last_path = None - expanded_name = None - for path in self.paths: - fname = "%s/%s" % (path, filename) - if (os.access(fname, os.F_OK)): - if (last_path != None): - raise Exception('Ambiguous file %s: found in %s and %s' % - (filename, last_path, path)) - expanded_name = fname - last_path = path - return expanded_name - - -def main(argv): - - if len(argv) < 3: - print('usage: %s order.html input_source_dir_1 input_source_dir_2 ... ' - 'output_file' % argv[0]) - return 1 - - output_file_name = argv.pop() - input_order_file_name = argv[1] - extractor = OrderedJSFilesExtractor(input_order_file_name) - extractor.ordered_js_files.append('DevTools.js') - extractor.ordered_js_files.append('Tests.js') - - expander = PathExpander(argv[2:]) - output = StringIO() - - for input_file_name in extractor.ordered_js_files: - full_path = expander.expand(input_file_name) - if (full_path is None): - raise Exception('File %s referenced in %s not found on any source paths, ' - 'check source tree for consistency' % - (input_file_name, input_order_file_name)) - output.write('/* %s */\n\n' % input_file_name) - input_file = open(full_path, 'r') - output.write(input_file.read()) - output.write('\n') - input_file.close() - - output_file = open(output_file_name, 'w') - output_file.write(jsmin.jsmin(output.getvalue())) - output_file.close() - output.close() - - # Touch output file directory to make sure that Xcode will copy - # modified resource files. - if sys.platform == 'darwin': - output_dir_name = os.path.dirname(output_file_name) - os.utime(output_dir_name, None) - -if __name__ == '__main__': - sys.exit(main(sys.argv)) diff --git a/WebKit/chromium/scripts/generate_devtools_html.py b/WebKit/chromium/scripts/generate_devtools_html.py deleted file mode 100644 index b9b5fff..0000000 --- a/WebKit/chromium/scripts/generate_devtools_html.py +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env python -# -# Copyright (C) 2010 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 - - -def GenerateIncludeTag(resource_path): - (dir_name, file_name) = os.path.split(resource_path) - if (file_name.endswith('.js')): - return ' <script type="text/javascript" src="%s"></script>\n' % file_name - elif (file_name.endswith('.css')): - return ' <link rel="stylesheet" type="text/css" href="%s">\n' % file_name - else: - assert resource_path - - -def main(argv): - - if len(argv) < 5: - print('usage: %s ignored inspector_html devtools_html debug' - ' css_and_js_files_list' % argv[0]) - return 1 - - # The first argument is ignored. We put 'webkit.gyp' in the inputs list - # for this script, so every time the list of script gets changed, our html - # file is rebuilt. - inspector_html_name = argv[2] - devtools_html_name = argv[3] - debug = argv[4] != '0' - inspector_html = open(inspector_html_name, 'r') - devtools_html = open(devtools_html_name, 'w') - - for line in inspector_html: - if not debug and '<script ' in line: - continue - if not debug and '<link ' in line: - continue - if '</head>' in line: - if debug: - for resource in argv[5:]: - devtools_html.write(GenerateIncludeTag(resource)) - else: - devtools_html.write(GenerateIncludeTag("devTools.css")) - devtools_html.write(GenerateIncludeTag("DevTools.js")) - devtools_html.write(line) - - devtools_html.close() - inspector_html.close() - - # Touch output file directory to make sure that Xcode will copy - # modified resource files. - if sys.platform == 'darwin': - output_dir_name = os.path.dirname(devtools_html_name) - os.utime(output_dir_name, None) - -if __name__ == '__main__': - sys.exit(main(sys.argv)) diff --git a/WebKit/chromium/scripts/jsmin.py b/WebKit/chromium/scripts/jsmin.py deleted file mode 100644 index c2583a4..0000000 --- a/WebKit/chromium/scripts/jsmin.py +++ /dev/null @@ -1,229 +0,0 @@ -#!/usr/bin/python -# -# Copyright (C) 2010 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. -# -# This is a Python port of Douglas Crockford's jsmin.cc. See original -# copyright notice below. -# -# Copyright (c) 2002 Douglas Crockford (www.crockford.com) -# -# Permission is hereby granted, free of charge, to any person obtaining a copy of -# this software and associated documentation files (the "Software"), to deal in -# the Software without restriction, including without limitation the rights to -# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -# of the Software, and to permit persons to whom the Software is furnished to do -# so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# - -from cStringIO import StringIO -import sys - - -class UnterminatedComment(Exception): - pass - - -class UnterminatedStringLiteral(Exception): - pass - - -class UnterminatedRegularExpression(Exception): - pass - - -EOF = '' - - -def jsmin(text): - minifier = JavaScriptMinifier() - minifier.input = StringIO(text) - minifier.output = StringIO() - minifier.jsmin() - return minifier.output.getvalue() - - -class JavaScriptMinifier(object): - - def isAlphanum(self, c): - """ return true if the character is a letter, digit, underscore, - dollar sign, or non-ASCII character. - """ - return ((c >= 'a' and c <= 'z') or (c >= '0' and c <= '9') or - (c >= 'A' and c <= 'Z') or c == '_' or c == '$' or c == '\\' or - c > 126) - - def get(self): - """ return the next character from stdin. Watch out for lookahead. If - the character is a control character, translate it to a space or - linefeed. - """ - c = self.theLookahead - self.theLookahead = EOF - if c == EOF: - c = self.input.read(1) - if c >= ' ' or c == '\n' or c == EOF: - return c - if c == '\r': - return '\n' - return ' ' - - def peek(self): - """ get the next character without getting it. """ - self.theLookahead = self.get() - return self.theLookahead - - def next(self): - """ get the next character, excluding comments. peek() is used to see - if a '/' is followed by a '/' or '*'. - """ - c = self.get() - if c == '/': - peek = self.peek() - if peek == '/': - while True: - c = self.get() - if c <= '\n': - return c - elif peek == '*': - self.get() - while True: - get = self.get() - if get == '*': - if self.peek() == '/': - self.get() - return ' ' - elif get == EOF: - raise UnterminatedComment() - else: - return c - return c - - def putc(self, c): - self.output.write(c) - - def action(self, d): - """ do something! What you do is determined by the argument: - 1 Output A. Copy B to A. Get the next B. - 2 Copy B to A. Get the next B. (Delete A). - 3 Get the next B. (Delete B). - action treats a string as a single character. Wow! - action recognizes a regular expression if it is preceded by ( or , or =. - """ - if d <= 1: - self.putc(self.theA) - if d <= 2: - self.theA = self.theB - if self.theA == '\'' or self.theA == '"': - while True: - self.putc(self.theA) - self.theA = self.get() - if self.theA == self.theB: - break - if self.theA == '\\': - self.putc(self.theA) - self.theA = self.get() - if self.theA == EOF: - raise UnterminatedString() - if d <= 3: - self.theB = self.next() - if self.theB == '/' and self.theA in ['(', ',', '=', ':', '[', '!', '&', '|', '?', '{', '}', ';', '\n']: - self.putc(self.theA) - self.putc(self.theB) - while True: - self.theA = self.get() - if self.theA == '/': - break - if self.theA == '\\': - self.putc(self.theA) - self.theA = self.get() - if self.theA == EOF: - raise UnterminatedRegularExpression() - self.putc(self.theA) - self.theB = self.next() - - def jsmin(self): - """ Copy the input to the output, deleting the characters which are - insignificant to JavaScript. Comments will be removed. Tabs will be - replaced with spaces. Carriage returns will be replaced with linefeeds. - Most spaces and linefeeds will be removed. - """ - self.theA = '\n' - self.theLookahead = EOF - self.action(3) - while self.theA != EOF: - if self.theA == ' ': - if self.isAlphanum(self.theB): - self.action(1) - else: - self.action(2) - elif self.theA == '\n': - if self.theB in ['{', '[', '(', '+', '-']: - self.action(1) - elif self.theB == ' ': - self.action(3) - else: - if self.isAlphanum(self.theB): - self.action(1) - else: - self.action(2) - else: - if self.theB == ' ': - if self.isAlphanum(self.theA): - self.action(1) - else: - self.action(3) - elif self.theB == '\n': - if self.theA in ['}', ']', ')', '+', '-', '"', '\'']: - self.action(1) - else: - if self.isAlphanum(self.theA): - self.action(1) - else: - self.action(3) - else: - self.action(1) - - -if __name__ == '__main__': - minifier = JavaScriptMinifier() - minifier.input = sys.stdin - minifier.output = sys.stdout - minifier.jsmin() - sys.stdin.close() |