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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/inspector/extensions/extensions-timeline-api.html
diff --git a/third_party/WebKit/LayoutTests/inspector/extensions/extensions-timeline-api.html b/third_party/WebKit/LayoutTests/inspector/extensions/extensions-timeline-api.html
index 1ed18900af5309b107333ca73411ffd3e217eb9f..c216f2ad83e14462190e1653b95cdd2ffc5cfbac 100644
--- a/third_party/WebKit/LayoutTests/inspector/extensions/extensions-timeline-api.html
+++ b/third_party/WebKit/LayoutTests/inspector/extensions/extensions-timeline-api.html
@@ -5,33 +5,82 @@
<script src="../../http/tests/inspector/timeline-test.js"></script>
<script type="text/javascript">
+function initialize_timelineExtensionTest()
+{
+
+InspectorTest.enableTimelineExtensionAndStart = function(callback) {
+ const provider = Extensions.extensionServer.traceProviders().peekLast();
+ const timelinePanel = UI.panels.timeline;
+ const setting = Timeline.TimelinePanel._settingForTraceProvider(provider);
+ setting.set(true);
+ InspectorTest.addResult(`Provider short display name: ${provider.shortDisplayName()}`);
+ InspectorTest.addResult(`Provider long display name: ${provider.longDisplayName()}`);
+ InspectorTest.startTimeline(callback);
+}
+
+}
+
function extension_testTimeline(nextTest)
{
- function onRecordingStarted()
+ var session;
+ var sessionTimeOffset;
+ var startTime;
+
+ function onRecordingStarted(s)
{
+ sessionTimeOffset = (Date.now() - performance.now()) * 1000;
+ startTime = performance.now();
output("traceProvider.onRecordingStarted fired.");
- }
- function onRecordingStopped()
- {
+ output("TracingSession:");
+ dumpObject(s);
+ session = s;
+ }
+
+ function onRecordingStopped()
+ {
output("traceProvider.onRecordingStopped fired.");
- nextTest();
+
+ const endTime = performance.now();
+ var pid = 1;
+ var tid = 1;
+ var step = (endTime - startTime) * 1000 / 10;
+ var start = startTime * 1000;
+ var data = { "traceEvents": [
+ {"name": "Extension record X 1", "ts": start, "dur": step * 4, "ph": "X", "args": {}, "tid": tid, "pid": pid, "cat":"" },
+ {"name": "Extension record X 2", "ts": start + step * 5, "dur": step * 5, "ph": "X", "args": {}, "tid": tid, "pid": pid, "cat":"" },
+ {"name": "Extension record I 1", "ts": start + step * 5.5, "ph": "I", "args": {}, "tid": tid, "pid": pid, "cat":"" },
+ {"name": "Extension record B+E", "ts": start + step * 6, "ph": "B", "args": {}, "tid": tid, "pid": pid, "cat":"" },
+ {"name": "Extension record B+E", "ts": start + step * 10, "ph": "E", "args": {}, "tid": tid, "pid": pid, "cat":"" }
+ ]};
+ var url = "data:application/json," + escape(JSON.stringify(data));
+ session.complete(url, sessionTimeOffset);
}
- var traceProvider = webInspector.timeline.addTraceProvider("extension trace provider", "tooltip");
+
+ var traceProvider = webInspector.timeline.addTraceProvider("extension trace provider", "long extension name");
+ output("TraceProvider:");
dumpObject(traceProvider);
traceProvider.onRecordingStarted.addListener(onRecordingStarted);
traceProvider.onRecordingStopped.addListener(onRecordingStopped);
- extension_startTimeline(() => extension_stopTimeline(() => {}));
+ extension_startTimeline(
+ () => extension_stopTimeline(
+ () => extension_dumpFlameChart(nextTest)));
}
function extension_startTimeline(callback)
{
- evaluateOnFrontend("InspectorTest.startTimeline(reply);", callback);
+ evaluateOnFrontend("InspectorTest.enableTimelineExtensionAndStart(reply);", callback);
}
function extension_stopTimeline(callback)
{
evaluateOnFrontend("InspectorTest.stopTimeline(reply);", callback);
}
+
+function extension_dumpFlameChart(callback)
+{
+ evaluateOnFrontend("InspectorTest.dumpTimelineFlameChart(['long extension name']); reply()", callback);
+}
+
</script>
</head>
<body onload="runTest()">

Powered by Google App Engine
This is Rietveld 408576698