115 lines
2.7 KiB
HTML
115 lines
2.7 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
Copyright (c) 2014 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>
|
|
<script>
|
|
'use strict';
|
|
|
|
function onTraceViewerImportFail() {
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
document.body.textContent =
|
|
'tracing/bin/trace_viewer_full.html is missing. ' +
|
|
'Run vulcanize_trace_viewer from $TRACE_VIEWER and reload.';
|
|
});
|
|
}
|
|
</script>
|
|
<link rel="import" href="trace_viewer_full.html"
|
|
onerror="onTraceViewerImportFail(event)">
|
|
|
|
<style>
|
|
html, body {
|
|
box-sizing: border-box;
|
|
overflow: hidden;
|
|
margin: 0px;
|
|
padding: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
#trace-viewer {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
#trace-viewer:focus {
|
|
outline: none;
|
|
}
|
|
</style>
|
|
<script>
|
|
'use strict';
|
|
|
|
(function() {
|
|
var viewer;
|
|
var url;
|
|
var model;
|
|
|
|
function load() {
|
|
var req = new XMLHttpRequest();
|
|
var is_binary = /[.]gz$/.test(url) || /[.]zip$/.test(url);
|
|
req.overrideMimeType('text/plain; charset=x-user-defined');
|
|
req.open('GET', url, true);
|
|
if (is_binary)
|
|
req.responseType = 'arraybuffer';
|
|
|
|
req.onreadystatechange = function(event) {
|
|
if (req.readyState !== 4)
|
|
return;
|
|
|
|
window.setTimeout(function() {
|
|
if (req.status === 200)
|
|
onResult(is_binary ? req.response : req.responseText);
|
|
else
|
|
onResultFail(req.status);
|
|
}, 0);
|
|
};
|
|
req.send(null);
|
|
}
|
|
|
|
function onResultFail(err) {
|
|
var overlay = new tr.ui.b.Overlay();
|
|
overlay.textContent = err + ': ' + url + ' could not be loaded';
|
|
overlay.title = 'Failed to fetch data';
|
|
overlay.visible = true;
|
|
}
|
|
|
|
function onResult(result) {
|
|
model = new tr.Model();
|
|
var i = new tr.importer.Import(model);
|
|
var p = i.importTracesWithProgressDialog([result]);
|
|
p.then(onModelLoaded, onImportFail);
|
|
}
|
|
|
|
function onModelLoaded() {
|
|
viewer.model = model;
|
|
viewer.viewTitle = url;
|
|
}
|
|
|
|
function onImportFail() {
|
|
var overlay = new tr.ui.b.Overlay();
|
|
overlay.textContent = tr.b.normalizeException(err).message;
|
|
overlay.title = 'Import error';
|
|
overlay.visible = true;
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
var container = document.createElement('track-view-container');
|
|
container.id = 'track_view_container';
|
|
|
|
viewer = document.createElement('tr-ui-timeline-view');
|
|
viewer.track_view_container = container;
|
|
Polymer.dom(viewer).appendChild(container);
|
|
|
|
viewer.id = 'trace-viewer';
|
|
viewer.globalMode = true;
|
|
Polymer.dom(document.body).appendChild(viewer);
|
|
|
|
url = '../test_data/big_trace.json';
|
|
load();
|
|
});
|
|
}());
|
|
</script>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>
|