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