Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Side by Side Diff: chrome/browser/resources/tracing/tracing_controller_tests.js

Issue 8513009: Add TRACE_COUNTER support to about:tracing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 cr.define('tracing', function() {
5 var dataSets = [
6 {
7 name: 'big_trace',
8 events_url: './tests/big_trace.json'
9 },
10 {
11 name: 'trivial_trace',
12 events: [
13 {'name': 'a', 'args': {},'pid': 52, 'ts': 9524, 'cat': 'foo', 'tid': 53,
14 'ph': 'B'},
15 {'name': 'a', 'args': {},'pid': 52, 'ts': 9560, 'cat': 'foo', 'tid': 53,
16 'ph': 'E'},
17 {'name': 'b', 'args': {},'pid': 52, 'ts': 9629, 'cat': 'foo', 'tid': 53,
18 'ph': 'B'},
19 {'name': 'b', 'args': {},'pid': 52, 'ts': 9631, 'cat': 'foo', 'tid': 53,
20 'ph': 'E'}
21 ]
22 },
23 {
24 name: 'simple_trace',
25 events: [
26 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 826, 'ph': 'B',
27 'name': 'A long name that doesnt fit but is exceedingly informative',
28 'args': {}},
29 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 827, 'ph': 'B',
30 'name': 'Asub with a name that wont fit', 'args': {}},
31 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 828, 'ph': 'E',
32 'name': 'Asub', 'args': {}},
33 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 829, 'ph': 'B',
34 'name': 'Asub', 'args': {}},
35 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 832, 'ph': 'E',
36 'name': 'Asub', 'args': {}},
37 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 833, 'ph': 'E',
38 'name': '', 'args': {}},
39
40 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 835, 'ph': 'I',
41 'name': 'I1', 'args': {}},
42 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 837, 'ph': 'I',
43 'name': 'I2', 'args': {}},
44
45 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 840, 'ph': 'B',
46 'name': 'A not as long a name', 'args': {}},
47 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 848, 'ph': 'E',
48 'name': 'A not as long a name', 'args': {}},
49
50 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 850, 'ph': 'B',
51 'name': 'B', 'args': {}},
52 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 854, 'ph': 'E',
53 'name': 'B', 'args': {}},
54
55 {'cat': 'PERF', 'pid': 22630, 'tid': 22631, 'ts': 827, 'ph': 'B',
56 'name': 'A', 'args': {}},
57 {'cat': 'PERF', 'pid': 22630, 'tid': 22631, 'ts': 835, 'ph': 'I',
58 'name': 'Immediate Three', 'args': {}},
59 {'cat': 'PERF', 'pid': 22630, 'tid': 22631, 'ts': 845, 'ph': 'I',
60 'name': 'I4', 'args': {}},
61 {'cat': 'PERF', 'pid': 22630, 'tid': 22631, 'ts': 854, 'ph': 'E',
62 'name': 'A', 'args': {}},
63
64 {'cat': '__metadata', 'pid': 22630, 'tid': 22630, 'ts': 0, 'ph': 'M',
65 'name': 'thread_name', 'args': {'name': 'threadA'}},
66 {'cat': '__metadata', 'pid': 22630, 'tid': 22631, 'ts': 0, 'ph': 'M',
67 'name': 'thread_name', 'args': {'name': 'threadB'}},
68 {'cat': '__metadata', 'pid': 22630, 'tid': 22632, 'ts': 0, 'ph': 'M',
69 'name': 'thread_name', 'args': {'name': 'threadC'}}
70 ]
71 },
72 {
73 name: 'nonnested_trace',
74 events: [
75 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 826, 'ph': 'B',
76 'name': 'A', 'args': {}},
77 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 827, 'ph': 'B',
78 'name': 'Asub', 'args': {}},
79 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 829, 'ph': 'B',
80 'name': 'NonNest', 'args': {'id': '1', 'ui-nest': '0'}},
81 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 830, 'ph': 'B',
82 'name': 'NonNest', 'args': {'id': '2', 'ui-nest': '0'}},
83 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 831, 'ph': 'E',
84 'name': 'Asub', 'args': {}},
85 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 832, 'ph': 'E',
86 'name': 'NonNest', 'args': {'id': '1', 'ui-nest': '0'}},
87 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 833, 'ph': 'E',
88 'name': 'NonNest', 'args': {'id': '2', 'ui-nest': '0'}},
89 {'cat': 'PERF', 'pid': 22630, 'tid': 22630, 'ts': 834, 'ph': 'E',
90 'name': 'A', 'args': {}},
91
92 {'cat': 'PERF', 'pid': 22630, 'tid': 22631, 'ts': 827, 'ph': 'B',
93 'name': 'A', 'args': {}},
94 {'cat': 'PERF', 'pid': 22630, 'tid': 22631, 'ts': 854, 'ph': 'E',
95 'name': 'A', 'args': {}}
96 ]
97 },
98 {
99 name: 'tall_trace',
100 events: [
101 {'cat': 'X', 'pid': 30, 'tid': 30, 'ts': 826, 'ph': 'B', 'name': 'A',
102 'args': {}},
103 {'cat': 'X', 'pid': 30, 'tid': 30, 'ts': 827, 'ph': 'B', 'name': 'Asub',
104 'args': {}},
105 {'cat': 'X', 'pid': 30, 'tid': 30, 'ts': 828, 'ph': 'E', 'name': 'Asub',
106 'args': {}},
107 {'cat': 'X', 'pid': 30, 'tid': 30, 'ts': 829, 'ph': 'B', 'name': 'Asub',
108 'args': {}},
109 {'cat': 'X', 'pid': 30, 'tid': 30, 'ts': 832, 'ph': 'E', 'name': 'Asub',
110 'args': {}},
111 {'cat': 'X', 'pid': 30, 'tid': 30, 'ts': 833, 'ph': 'E', 'name': '',
112 'args': {}},
113
114 {'cat': 'X', 'pid': 30, 'tid': 31, 'ts': 840, 'ph': 'B', 'name': 'A',
115 'args': {}},
116 {'cat': 'X', 'pid': 30, 'tid': 31, 'ts': 848, 'ph': 'E', 'name': 'A',
117 'args': {}},
118
119 {'cat': 'X', 'pid': 30, 'tid': 32, 'ts': 840, 'ph': 'B', 'name': 'A',
120 'args': {}},
121 {'cat': 'X', 'pid': 30, 'tid': 32, 'ts': 848, 'ph': 'E', 'name': 'A',
122 'args': {}},
123
124 {'cat': 'X', 'pid': 30, 'tid': 33, 'ts': 840, 'ph': 'B', 'name': 'A',
125 'args': {}},
126 {'cat': 'X', 'pid': 30, 'tid': 33, 'ts': 848, 'ph': 'E', 'name': 'A',
127 'args': {}},
128
129 {'cat': 'X', 'pid': 30, 'tid': 34, 'ts': 840, 'ph': 'B', 'name': 'A',
130 'args': {}},
131 {'cat': 'X', 'pid': 30, 'tid': 34, 'ts': 848, 'ph': 'E', 'name': 'A',
132 'args': {}},
133
134 {'cat': 'X', 'pid': 30, 'tid': 35, 'ts': 840, 'ph': 'B', 'name': 'A',
135 'args': {}},
136 {'cat': 'X', 'pid': 30, 'tid': 35, 'ts': 848, 'ph': 'E', 'name': 'A',
137 'args': {}},
138
139 {'cat': 'X', 'pid': 30, 'tid': 36, 'ts': 840, 'ph': 'B', 'name': 'A',
140 'args': {}},
141 {'cat': 'X', 'pid': 30, 'tid': 36, 'ts': 848, 'ph': 'E', 'name': 'A',
142 'args': {}},
143
144 {'cat': 'X', 'pid': 30, 'tid': 37, 'ts': 840, 'ph': 'B', 'name': 'A',
145 'args': {}},
146 {'cat': 'X', 'pid': 30, 'tid': 37, 'ts': 848, 'ph': 'E', 'name': 'A',
147 'args': {}},
148
149 {'cat': 'X', 'pid': 30, 'tid': 38, 'ts': 840, 'ph': 'B', 'name': 'A',
150 'args': {}},
151 {'cat': 'X', 'pid': 30, 'tid': 38, 'ts': 848, 'ph': 'E', 'name': 'A',
152 'args': {}},
153
154 {'cat': 'X', 'pid': 30, 'tid': 39, 'ts': 840, 'ph': 'B', 'name': 'A',
155 'args': {}},
156 {'cat': 'X', 'pid': 30, 'tid': 39, 'ts': 848, 'ph': 'E', 'name': 'A',
157 'args': {}},
158
159 {'cat': 'X', 'pid': 30, 'tid': 10, 'ts': 840, 'ph': 'B', 'name': 'A',
160 'args': {}},
161 {'cat': 'X', 'pid': 30, 'tid': 10, 'ts': 848, 'ph': 'E', 'name': 'A',
162 'args': {}},
163
164 {'cat': 'X', 'pid': 31, 'tid': 11, 'ts': 840, 'ph': 'B', 'name': 'A',
165 'args': {}},
166 {'cat': 'X', 'pid': 31, 'tid': 11, 'ts': 848, 'ph': 'E', 'name': 'A',
167 'args': {}},
168
169 {'cat': 'X', 'pid': 30, 'tid': 12, 'ts': 840, 'ph': 'B', 'name': 'A',
170 'args': {}},
171 {'cat': 'X', 'pid': 30, 'tid': 12, 'ts': 848, 'ph': 'E', 'name': 'A',
172 'args': {}},
173
174 {'cat': 'X', 'pid': 30, 'tid': 13, 'ts': 840, 'ph': 'B', 'name': 'A',
175 'args': {}},
176 {'cat': 'X', 'pid': 30, 'tid': 13, 'ts': 848, 'ph': 'E', 'name': 'A',
177 'args': {}},
178
179 {'cat': 'X', 'pid': 30, 'tid': 14, 'ts': 840, 'ph': 'B', 'name': 'A',
180 'args': {}},
181 {'cat': 'X', 'pid': 30, 'tid': 14, 'ts': 848, 'ph': 'E', 'name': 'A',
182 'args': {}},
183
184 {'cat': 'X', 'pid': 30, 'tid': 15, 'ts': 840, 'ph': 'B', 'name': 'A',
185 'args': {}},
186 {'cat': 'X', 'pid': 30, 'tid': 15, 'ts': 848, 'ph': 'E', 'name': 'A',
187 'args': {}},
188
189 {'cat': '__metadata', 'pid': 30, 'tid': 14, 'ts': 0, 'ph': 'M',
190 'name': 'thread_name', 'args': {'name': 'threadB'}},
191 {'cat': '__metadata', 'pid': 30, 'tid': 15, 'ts': 0, 'ph': 'M',
192 'name': 'thread_name', 'args': {'name': 'threadA'}}
193 ]
194 },
195 {
196 name: 'huge_trace',
197 events_url: './tests/huge_trace.json'
198 }
199 ];
200
201 // Create UI for controlling the test harness
202 var selectEl = document.createElement('select');
203 for (var i = 0; i < dataSets.length; ++i) {
204 var optionEl = document.createElement('option');
205 optionEl.textContent = dataSets[i].name;
206 optionEl.dataSet = dataSets[i];
207 selectEl.appendChild(optionEl);
208 }
209 selectEl.addEventListener('change', function() {
210 tracingController.beginTracing();
211 });
212 selectEl.addEventListener('keydown', function() {
213 window.setTimeout(function() {
214 tracingController.beginTracing();
215 }, 0);
216 });
217
218 var controlEl = document.createElement('div');
219 var textEl = document.createElement('span');
220 textEl.textContent = 'Trace:';
221 controlEl.appendChild(textEl);
222 controlEl.appendChild(selectEl);
223
224 document.querySelector('#debug-div').appendChild(controlEl,
225 document.body.firstChild);
226
227 return {
228 tracingControllerTestHarness: {
229 beginTracing: function() {
230 var dataSet = dataSets[selectEl.selectedIndex];
231 if (dataSet.events) {
232 window.setTimeout(function() {
233 tracingController.onTraceDataCollected(dataSet.events);
234 tracingController.endTracing();
235 window.setTimeout(function() {
236 tracingController.onEndTracingComplete();
237 },0);
238 }, 0);
239 } else {
240 var req = new XMLHttpRequest();
241 req.open('GET', './tracing/' + dataSet.events_url, true);
242 req.onreadystatechange = function(aEvt) {
243 if (req.readyState == 4) {
244 tracingController.endTracing();
245 window.setTimeout(function() {
246 if (req.status == 200) {
247 var resp = JSON.parse(req.responseText);
248 if (resp.traceEvents)
249 tracingController.onTraceDataCollected(resp.traceEvents);
250 else
251 tracingController.onTraceDataCollected(resp);
252 } else {
253 console.log('collection failed.');
254 }
255 tracingController.onEndTracingComplete();
256 }, 0);
257 }
258 };
259 req.send(null);
260 }
261 },
262
263 endTracing: function() {
264 }
265 }
266 };
267 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698