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

Side by Side Diff: third_party/WebKit/LayoutTests/inspector/extensions/extensions-timeline-api.html

Issue 2563383003: DevTools: add extension API to contribute trace events to timeline (Closed)
Patch Set: lint + new compiler warnings Created 4 years 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
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script src="../../http/tests/inspector/inspector-test.js"></script> 3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/extensions-test.js"></script> 4 <script src="../../http/tests/inspector/extensions-test.js"></script>
5 <script src="../../http/tests/inspector/timeline-test.js"></script> 5 <script src="../../http/tests/inspector/timeline-test.js"></script>
6 6
7 <script type="text/javascript"> 7 <script type="text/javascript">
8 function initialize_timelineExtensionTest()
9 {
10
11 InspectorTest.enableTimelineExtensionAndStart = function(callback) {
12 const provider = Extensions.extensionServer.traceProviders().peekLast();
13 const timelinePanel = UI.panels.timeline;
14 const setting = Timeline.TimelinePanel._settingForTraceProvider(provider);
15 setting.set(true);
16 InspectorTest.addResult(`Provider short display name: ${provider.shortDispla yName()}`);
17 InspectorTest.addResult(`Provider long display name: ${provider.longDisplayN ame()}`);
18 InspectorTest.startTimeline(callback);
19 }
20
21 }
22
8 function extension_testTimeline(nextTest) 23 function extension_testTimeline(nextTest)
9 { 24 {
10 function onRecordingStarted() 25 var session;
26 var sessionTimeOffset;
27 var startTime;
28
29 function onRecordingStarted(s)
11 { 30 {
31 sessionTimeOffset = (Date.now() - performance.now()) * 1000;
32 startTime = performance.now();
12 output("traceProvider.onRecordingStarted fired."); 33 output("traceProvider.onRecordingStarted fired.");
34 output("TracingSession:");
35 dumpObject(s);
36 session = s;
37 }
38
39 function onRecordingStopped()
40 {
41 output("traceProvider.onRecordingStopped fired.");
42
43 const endTime = performance.now();
44 var pid = 1;
45 var tid = 1;
46 var step = (endTime - startTime) * 1000 / 10;
47 var start = startTime * 1000;
48 var data = { "traceEvents": [
49 {"name": "Extension record X 1", "ts": start, "dur": step * 4, "ph": "X", "args": {}, "tid": tid, "pid": pid, "cat":"" },
50 {"name": "Extension record X 2", "ts": start + step * 5, "dur": step * 5, "ph": "X", "args": {}, "tid": tid, "pid": pid, "cat":"" },
51 {"name": "Extension record I 1", "ts": start + step * 5.5, "ph": "I" , "args": {}, "tid": tid, "pid": pid, "cat":"" },
52 {"name": "Extension record B+E", "ts": start + step * 6, "ph": "B", "args": {}, "tid": tid, "pid": pid, "cat":"" },
53 {"name": "Extension record B+E", "ts": start + step * 10, "ph": "E", "args": {}, "tid": tid, "pid": pid, "cat":"" }
54 ]};
55 var url = "data:application/json," + escape(JSON.stringify(data));
56 session.complete(url, sessionTimeOffset);
13 } 57 }
14 function onRecordingStopped() 58
15 { 59 var traceProvider = webInspector.timeline.addTraceProvider("extension trace provider", "long extension name");
16 output("traceProvider.onRecordingStopped fired."); 60 output("TraceProvider:");
17 nextTest();
18 }
19 var traceProvider = webInspector.timeline.addTraceProvider("extension trace provider", "tooltip");
20 dumpObject(traceProvider); 61 dumpObject(traceProvider);
21 traceProvider.onRecordingStarted.addListener(onRecordingStarted); 62 traceProvider.onRecordingStarted.addListener(onRecordingStarted);
22 traceProvider.onRecordingStopped.addListener(onRecordingStopped); 63 traceProvider.onRecordingStopped.addListener(onRecordingStopped);
23 extension_startTimeline(() => extension_stopTimeline(() => {})); 64 extension_startTimeline(
65 () => extension_stopTimeline(
66 () => extension_dumpFlameChart(nextTest)));
24 } 67 }
25 68
26 function extension_startTimeline(callback) 69 function extension_startTimeline(callback)
27 { 70 {
28 evaluateOnFrontend("InspectorTest.startTimeline(reply);", callback); 71 evaluateOnFrontend("InspectorTest.enableTimelineExtensionAndStart(reply);", callback);
29 } 72 }
30 73
31 function extension_stopTimeline(callback) 74 function extension_stopTimeline(callback)
32 { 75 {
33 evaluateOnFrontend("InspectorTest.stopTimeline(reply);", callback); 76 evaluateOnFrontend("InspectorTest.stopTimeline(reply);", callback);
34 } 77 }
78
79 function extension_dumpFlameChart(callback)
80 {
81 evaluateOnFrontend("InspectorTest.dumpTimelineFlameChart(['long extension na me']); reply()", callback);
82 }
83
35 </script> 84 </script>
36 </head> 85 </head>
37 <body onload="runTest()"> 86 <body onload="runTest()">
38 <p>Tests timeline support in WebInspector Extensions API</p> 87 <p>Tests timeline support in WebInspector Extensions API</p>
39 <span id="test-element"><b></b></span> 88 <span id="test-element"><b></b></span>
40 </body> 89 </body>
41 </html> 90 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698