4 Copyright (c) 2012 The Chromium Authors. All rights reserved.
5 Use of this source code is governed by a BSD-style license that can be
6 found in the LICENSE file.
8 <head i18n-values="dir:textdirection;">
9 <title>Interactive Timeline Tests</title>
10 <script src="/src/base.js"></script>
13 <div class="test" src="../test_data/trivial_trace.json" create-detached=1>
16 <div class="test" src="../test_data/trivial_trace.json">
19 <div class="test" src="../test_data/simple_trace.json">
22 <div class="test" src="../test_data/instance_counters.json">
25 <div class="test" src="../test_data/tall_trace.json">
28 <div class="test" src="../test_data/big_trace.json">
31 <div class="test" src="../test_data/huge_trace.json">
34 <div class="test" src="../test_data/lthi_cats.json">
37 <div class="test" src="../test_data/main_thread_has_unclosed_slices.json">
40 <div class="test" src="../test_data/async_begin_end.json">
43 <div class="test" src="../test_data/android_systrace.html">
46 <div class="test" src="../test_data/v8.log">
50 base.require('about_tracing.profiling_view'); /* For deps */
54 function getAsync(url, cb) {
55 var req = new XMLHttpRequest();
56 req.open('GET', url, true);
57 req.onreadystatechange = function(aEvt) {
58 if (req.readyState == 4) {
59 window.setTimeout(function() {
60 if (req.status == 200) {
63 console.log('Failed to load ' + url);
71 function load(parentEl) {
72 var src = parentEl.getAttribute('src');
73 if (document.location.hash && document.location.hash.substring(1) != src) {
74 parentEl.hidden = true;
77 parentEl.hidden = false;
78 parentEl.textContent = '';
79 var titleEl = document.createElement('h3');
80 var linkEl = document.createElement('a');
81 linkEl.textContent = src;
82 linkEl.href = '#' + src;
83 titleEl.appendChild(linkEl);
85 var containerEl = document.createElement('div');
86 containerEl.tabIndex = 0;
87 containerEl.style.border = '1px solid red';
88 containerEl.style.display = '-webkit-box';
89 containerEl.style.maxHeight = '600px';
91 var timelineViewEl = document.createElement('div');
92 ui.decorate(timelineViewEl, tracing.TimelineView);
93 timelineViewEl.focusElement = containerEl;
94 timelineViewEl.viewTitle = src;
96 parentEl.appendChild(titleEl);
97 parentEl.appendChild(containerEl);
99 // Creating attached vs detached stress tests the canvas- and viewport-
101 var create_detached = parentEl.getAttribute('create-attached') == 1;
102 function createTraceModel(data) {
103 timelineViewEl.model = new tracing.TraceModel(data);
104 if (!create_detached)
105 containerEl.appendChild(timelineViewEl);
108 containerEl.appendChild(timelineViewEl);
109 getAsync(src, createTraceModel);
113 Array.prototype.forEach.call(document.querySelectorAll('.test'),
116 document.addEventListener('DOMContentLoaded', onLoad);
118 window.addEventListener('hashchange', onLoad);