Ejemplo n.º 1
0
def WriteHTMLForTraceDataToFile(trace_data_list,
                                title,
                                output_file,
                                config_name=None):
    project = tracing_project.TracingProject()

    if config_name is None:
        config_name = project.GetDefaultConfigName()

    modules = [
        'tracing.trace2html',
        project.GetModuleNameForConfigName(config_name),
    ]
    vulcanizer = project.CreateVulcanizer()
    load_sequence = vulcanizer.CalcLoadSequenceForModuleNames(modules)

    scripts = []
    for trace_data in trace_data_list:
        # If the object was previously decoded from valid JSON data (e.g., in
        # WriteHTMLForTracesToFile), it will be a JSON object at this point and we
        # should re-serialize it into a string. Other types of data will be already
        # be strings.
        if not isinstance(trace_data, basestring):
            trace_data = json.dumps(trace_data)
            mime_type = 'application/json'
        else:
            mime_type = 'text/plain'
        scripts.append(ViewerDataScript(trace_data, mime_type))
    generate.GenerateStandaloneHTMLToFile(output_file,
                                          load_sequence,
                                          title,
                                          extra_scripts=scripts)
Ejemplo n.º 2
0
def WriteTraceViewer(output_file,
                     config_name=None,
                     minify=False,
                     report_sizes=False,
                     report_deps=False,
                     output_html_head_and_body=True,
                     extra_search_paths=None,
                     extra_module_names_to_load=None):
    project = tracing_project.TracingProject()
    if extra_search_paths:
        for p in extra_search_paths:
            project.source_paths.append(p)
    if config_name is None:
        config_name = project.GetDefaultConfigName()

    module_names = [project.GetModuleNameForConfigName(config_name)]
    if extra_module_names_to_load:
        module_names += extra_module_names_to_load

    vulcanizer = project.CreateVulcanizer()
    load_sequence = vulcanizer.CalcLoadSequenceForModuleNames(module_names)

    if report_deps:
        sys.stdout.write(vulcanizer.GetDepsGraphFromModuleNames(module_names))

    generate.GenerateStandaloneHTMLToFile(
        output_file,
        load_sequence,
        minify=minify,
        report_sizes=report_sizes,
        output_html_head_and_body=output_html_head_and_body)
Ejemplo n.º 3
0
def WriteResultsToFile(ofile, project,
                       pi_report_file, pi_report_element_name,
                       results):

  vulcanizer = project.CreateVulcanizer()
  modules = []
  modules.append(vulcanizer.LoadModule(
    module_filename=os.path.join(project.perf_insights_root_path,
                                 'perf_insights_build/pi_report_to_html.html')))
  modules.append(vulcanizer.LoadModule(
    module_filename=pi_report_file))

  load_sequence = vulcanizer.CalcLoadSequenceForModules(modules)

  results_string = json.dumps([result.AsDict() for result in results])

  bootstrap_script = generate.ExtraScript(text_content="""
    document.addEventListener('DOMContentLoaded', function() {
      pib.initPiReportNamed('%s');
    });""" % pi_report_element_name)
  scripts = [bootstrap_script, DataScript(results_string)]
  generate.GenerateStandaloneHTMLToFile(
      ofile, load_sequence, 'Perf Insights Report', extra_scripts=scripts)