Index: perf_insights/perf_insights_examples/map_startup_info.html |
diff --git a/perf_insights/perf_insights_examples/map_startup_info.html b/perf_insights/perf_insights_examples/map_startup_info.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fe4dce014672297f01966152119778bf23091219 |
--- /dev/null |
+++ b/perf_insights/perf_insights_examples/map_startup_info.html |
@@ -0,0 +1,58 @@ |
+<!DOCTYPE HTML> |
+<!-- |
+Copyright (c) 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. |
+--> |
+<link rel="import" href="/perf_insights/value/value.html"> |
+<link rel="import" href="/perf_insights/map_function.html"> |
+<link rel="import" href="/tracing/base/range.html"> |
+<link rel="import" href="/tracing/extras/chrome/chrome_browser_helper.html"> |
+<link rel="import" href="/tracing/extras/chrome/chrome_renderer_helper.html"> |
+ |
+<script> |
+tr.exportTo('pie', function() { |
+ function mapStartupInfo(results, run_info, model) { |
+ var startupIRs = model.interaction_records.filter(function(ir) { |
+ return ir instanceof tr.e.rail.LoadInteractionRecord && |
+ ir.name === 'Startup'; |
+ }); |
+ // Find the Startup IRs in the browser and renderer processes. |
+ var ChromeBrowserHelper = tr.e.audits.ChromeBrowserHelper; |
+ var ChromeRendererHelper = tr.e.audits.ChromeRendererHelper; |
+ var browser_startup = new tr.b.Range(); |
+ var renderer_startup = new tr.b.Range(); |
+ startupIRs.forEach(function(ir) { |
+ ir.associatedEvents.toArray().forEach(function(event) { |
+ if (!event.getProcess) |
+ return; |
+ var process = event.getProcess(); |
+ var end = event.start + event.duration; |
+ if (ChromeBrowserHelper.isBrowserProcess(process)) |
+ event.addBoundsToRange(browser_startup); |
+ if (ChromeRendererHelper.isRenderProcess(process)) |
+ event.addBoundsToRange(renderer_startup); |
+ }); |
+ }); |
+ |
+ if (browser_startup.isEmpty && renderer_startup.isEmpty) { |
+ results.addValue(new pi.v.SkipValue(run_info, 'startup_info')); |
+ } else { |
+ results.addValue(new pi.v.DictValue( |
+ run_info, |
+ 'startup_info', |
+ { |
+ 'browserStartup': browser_startup, |
+ 'rendererStartup': renderer_startup |
+ })); |
+ } |
+ } |
+ |
+ pi.MapFunction.register(mapStartupInfo); |
+ |
+ // Exporting for tests. |
+ return { |
+ mapStartupInfo: mapStartupInfo |
+ }; |
+}); |
+</script> |