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)
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)
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)