Index: tracing/third_party/tvcm/tvcm/generate.py |
diff --git a/tracing/third_party/tvcm/tvcm/generate.py b/tracing/third_party/tvcm/tvcm/generate.py |
deleted file mode 100644 |
index cf9c0db7f4546b32fa7427159352de261d2dd7dd..0000000000000000000000000000000000000000 |
--- a/tracing/third_party/tvcm/tvcm/generate.py |
+++ /dev/null |
@@ -1,274 +0,0 @@ |
-# Copyright (c) 2014 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. |
- |
-import os |
-import sys |
-import subprocess |
-import tempfile |
-import StringIO |
- |
-from tvcm import html_generation_controller |
- |
- |
-html_warning_message = """ |
- |
- |
-<!-- |
-WARNING: This file is auto generated. |
- |
- Do not edit directly. |
---> |
-""" |
- |
-js_warning_message = """ |
-// Copyright 2015 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. |
- |
-/* WARNING: This file is auto generated. |
- * |
- * Do not edit directly. |
- */ |
-""" |
- |
-css_warning_message = """ |
-/* Copyright 2015 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. */ |
- |
-/* WARNING: This file is auto-generated. |
- * |
- * Do not edit directly. |
- */ |
-""" |
- |
- |
-def _AssertIsUTF8(f): |
- if isinstance(f, StringIO.StringIO): |
- return |
- assert f.encoding == 'utf-8' |
- |
- |
-def _MinifyJS(input_js): |
- tvcm_path = os.path.abspath(os.path.join( |
- os.path.dirname(__file__), '..')) |
- rjsmin_path = os.path.abspath( |
- os.path.join(tvcm_path, 'third_party', 'rjsmin', 'rjsmin.py')) |
- |
- with tempfile.NamedTemporaryFile() as _: |
- args = [ |
- 'python', |
- rjsmin_path |
- ] |
- p = subprocess.Popen(args, |
- stdin=subprocess.PIPE, |
- stdout=subprocess.PIPE, |
- stderr=subprocess.PIPE) |
- res = p.communicate(input=input_js) |
- errorcode = p.wait() |
- if errorcode != 0: |
- sys.stderr.write('rJSmin exited with error code %d' % errorcode) |
- sys.stderr.write(res[1]) |
- raise Exception('Failed to minify, omgah') |
- return res[0] |
- |
- |
-def GenerateJS(load_sequence, |
- use_include_tags_for_scripts=False, |
- dir_for_include_tag_root=None, |
- minify=False, |
- report_sizes=False): |
- f = StringIO.StringIO() |
- GenerateJSToFile(f, |
- load_sequence, |
- use_include_tags_for_scripts, |
- dir_for_include_tag_root, |
- minify=minify, |
- report_sizes=report_sizes) |
- |
- return f.getvalue() |
- |
- |
-def GenerateJSToFile(f, |
- load_sequence, |
- use_include_tags_for_scripts=False, |
- dir_for_include_tag_root=None, |
- minify=False, |
- report_sizes=False): |
- _AssertIsUTF8(f) |
- if use_include_tags_for_scripts and dir_for_include_tag_root is None: |
- raise Exception('Must provide dir_for_include_tag_root') |
- |
- f.write(js_warning_message) |
- f.write('\n') |
- |
- loader = load_sequence[0].loader |
- |
- polymer_script = loader.LoadRawScript('components/polymer/polymer.min.js') |
- f.write(polymer_script.contents) |
- |
- if not minify: |
- flatten_to_file = f |
- else: |
- flatten_to_file = StringIO.StringIO() |
- |
- for module in load_sequence: |
- module.AppendJSContentsToFile(flatten_to_file, |
- use_include_tags_for_scripts, |
- dir_for_include_tag_root) |
- if minify: |
- js = flatten_to_file.getvalue() |
- minified_js = _MinifyJS(js) |
- f.write(minified_js) |
- f.write('\n') |
- |
- if report_sizes: |
- for module in load_sequence: |
- s = StringIO.StringIO() |
- module.AppendJSContentsToFile(s, |
- use_include_tags_for_scripts, |
- dir_for_include_tag_root) |
- |
- # Add minified size info. |
- js = s.getvalue() |
- min_js_size = str(len(_MinifyJS(js))) |
- |
- # Print names for this module. Some domain-specific simplifications |
- # are included to make pivoting more obvious. |
- parts = module.name.split('.') |
- if parts[:2] == ['base', 'ui']: |
- parts = ['base_ui'] + parts[2:] |
- if parts[:2] == ['tracing', 'importer']: |
- parts = ['importer'] + parts[2:] |
- tln = parts[0] |
- sln = '.'.join(parts[:2]) |
- |
- # Output |
- print '%i\t%s\t%s\t%s\t%s' % (len(js), min_js_size, module.name, tln, sln) |
- sys.stdout.flush() |
- |
- |
-class ExtraScript(object): |
- |
- def __init__(self, script_id=None, text_content=None, content_type=None): |
- if script_id is not None: |
- assert script_id[0] != '#' |
- self.script_id = script_id |
- self.text_content = text_content |
- self.content_type = content_type |
- |
- def WriteToFile(self, output_file): |
- _AssertIsUTF8(output_file) |
- attrs = [] |
- if self.script_id: |
- attrs.append('id="%s"' % self.script_id) |
- if self.content_type: |
- attrs.append('content-type="%s"' % self.content_type) |
- |
- if len(attrs) > 0: |
- output_file.write('<script %s>\n' % ' '.join(attrs)) |
- else: |
- output_file.write('<script>\n') |
- if self.text_content: |
- output_file.write(self.text_content) |
- output_file.write('</script>\n') |
- |
- |
-def _MinifyCSS(css_text): |
- tvcm_path = os.path.abspath(os.path.join( |
- os.path.dirname(__file__), '..')) |
- rcssmin_path = os.path.abspath( |
- os.path.join(tvcm_path, 'third_party', 'rcssmin', 'rcssmin.py')) |
- |
- with tempfile.NamedTemporaryFile() as _: |
- rcssmin_args = ['python', rcssmin_path] |
- p = subprocess.Popen(rcssmin_args, |
- stdin=subprocess.PIPE, |
- stdout=subprocess.PIPE, |
- stderr=subprocess.PIPE) |
- res = p.communicate(input=css_text) |
- errorcode = p.wait() |
- if errorcode != 0: |
- sys.stderr.write('rCSSmin exited with error code %d' % errorcode) |
- sys.stderr.write(res[1]) |
- raise Exception('Failed to generate css for %s.' % css_text) |
- return res[0] |
- |
- |
-def GenerateStandaloneHTMLAsString(*args, **kwargs): |
- f = StringIO.StringIO() |
- GenerateStandaloneHTMLToFile(f, *args, **kwargs) |
- return f.getvalue() |
- |
- |
-def GenerateStandaloneHTMLToFile(output_file, |
- load_sequence, |
- title=None, |
- flattened_js_url=None, |
- extra_scripts=None, |
- minify=False, |
- report_sizes=False, |
- output_html_head_and_body=True): |
- """Writes a HTML file with the content of all modules in a load sequence. |
- |
- The load_sequence is a list of (HTML or JS) Module objects; the order that |
- they're inserted into the file depends on their type and position in the load |
- sequence. |
- """ |
- _AssertIsUTF8(output_file) |
- extra_scripts = extra_scripts or [] |
- |
- if output_html_head_and_body: |
- output_file.write( |
- '<!DOCTYPE html>\n' |
- '<html>\n' |
- ' <head i18n-values="dir:textdirection;">\n' |
- ' <meta http-equiv="Content-Type" content="text/html;' |
- 'charset=utf-8">\n') |
- if title: |
- output_file.write(' <title>%s</title>\n ' % title) |
- else: |
- assert title is None |
- |
- loader = load_sequence[0].loader |
- |
- written_style_sheets = set() |
- |
- class HTMLGenerationController( |
- html_generation_controller.HTMLGenerationController): |
- |
- def __init__(self, module): |
- self.module = module |
- |
- def GetHTMLForStylesheetHRef(self, href): |
- resource = self.module.HRefToResource( |
- href, '<link rel="stylesheet" href="%s">' % href) |
- style_sheet = loader.LoadStyleSheet(resource.name) |
- |
- if style_sheet in written_style_sheets: |
- return None |
- written_style_sheets.add(style_sheet) |
- |
- text = style_sheet.contents_with_inlined_images |
- if minify: |
- text = _MinifyCSS(text) |
- return '<style>\n%s\n</style>' % text |
- |
- for module in load_sequence: |
- controller = HTMLGenerationController(module) |
- module.AppendHTMLContentsToFile(output_file, controller, minify=minify) |
- |
- if flattened_js_url: |
- output_file.write('<script src="%s"></script>\n' % flattened_js_url) |
- else: |
- output_file.write('<script>\n') |
- js = GenerateJS(load_sequence, minify=minify, report_sizes=report_sizes) |
- output_file.write(js) |
- output_file.write('</script>\n') |
- |
- for extra_script in extra_scripts: |
- extra_script.WriteToFile(output_file) |
- |
- if output_html_head_and_body: |
- output_file.write('</head>\n <body>\n </body>\n</html>\n') |