Chromium Code Reviews| 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..77091b1a371e6cf62496a0d31f240f087d65ec68 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,79 @@ |
| <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 data = { "traceEvents": [ |
| + {"name": "Extension record 1", "ts": startTime * 1000, "dur": (endTime - startTime) * 1000, "ph": "X", 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(() => { onTimelineReady(); })); |
|
alph
2016/12/13 20:16:48
If you inline the last one, it'd look cool! ;-)
al
|
| + |
| + function onTimelineReady() |
| + { |
| + 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()"> |