| <!DOCTYPE html> |
| <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. |
| --> |
| <head> |
| <title>Perf Insights Trace Viewer</title> |
| <meta charset='utf-8'> |
| |
| <script src="/components/webcomponentsjs/webcomponents.js"></script> |
| |
| <link rel="import" href="/components/polymer/polymer.html"> |
| <link rel="import" href="/tracing/base/xhr.html"> |
| <link rel="import" href="/tracing/base/timing.html"> |
| <link rel="import" href="/tracing/importer/import.html"> |
| <link rel="import" href="/tracing/ui/extras/full_config.html"> |
| <link rel="import" href="/tracing/ui/timeline_view.html"> |
| |
| <style> |
| html, |
| body { |
| height: 100%; |
| } |
| |
| body { |
| -webkit-flex-direction: column; |
| display: -webkit-flex; |
| margin: 0; |
| padding: 0; |
| } |
| |
| body > tr-ui-timeline-view { |
| -webkit-flex: 1 1 auto; |
| min-height: 0; |
| } |
| body > tr-ui-timeline-view:focus { |
| outline: none; |
| } |
| </style> |
| </head> |
| <body> |
| <tr-ui-timeline-view> |
| <track-view-container id='track_view_container'></track-view-container> |
| </tr-ui-timeline-view> |
| |
| <script> |
| 'use strict'; |
| |
| var timelineViewEl; |
| |
| function loadTrace(filename) { |
| var p = new tr.b.TimedNamedPromise('loadTrace', function(resolve) { |
| resolve(tr.b.getAsync(filename)); |
| }); |
| p.then(createViewFromTrace.bind(this), |
| tr.showPanic.bind(this, 'Couldn\'t load trace.', filename)); |
| } |
| |
| function createViewFromTrace(trace) { |
| var m = new tr.Model(); |
| var i = new tr.importer.Import(m); |
| var p = i.importTracesWithProgressDialog([trace]); |
| |
| p.then( |
| function() { |
| timelineViewEl.model = m; |
| timelineViewEl.updateDocumentFavicon(); |
| timelineViewEl.globalMode = true; |
| timelineViewEl.viewTitle = ''; |
| }, |
| function(err) { |
| var overlay = new tr.ui.b.Overlay(); |
| overlay.textContent = tr.b.normalizeException(err).message; |
| overlay.title = 'Import error'; |
| overlay.visible = true; |
| }); |
| } |
| |
| function reload() { |
| loadTrace(window.location.hash.substr(1)); |
| } |
| |
| window.addEventListener('hashchange', reload); |
| |
| function onLoad() { |
| timelineViewEl = document.querySelector('tr-ui-timeline-view'); |
| timelineViewEl.globalMode = true; |
| reload(); |
| } |
| window.addEventListener('load', onLoad); |
| </script> |
| </body> |
| </html> |