blob: 9bade241c8f7d1348ad5cb5409d20c6bfa0515d5 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
(async function() {
TestRunner.addResult(
`Tests that Tracing agent returns a session id upon a start that is matching one issued in trace events.\n`);
await TestRunner.loadModule('performance_test_runner');
await TestRunner.showPanel('timeline');
await TestRunner.loadHTML(`
<p style="transform: translateZ(10px)"> <!-- Force compositing so we have SetLayerTreeHostId event as well -->
</p>
<script>
function waitForRaf() {
return new Promise(f => requestAnimationFrame(f));
}
</script>
`);
await PerformanceTestRunner.invokeAsyncWithTimeline('waitForRaf');
let frameId = '';
PerformanceTestRunner.tracingModel().sortedProcesses().forEach(process =>
process.sortedThreads().forEach(thread => thread.events().forEach(processEvent))
);
TestRunner.completeTest();
function processEvent(event) {
if (!event.hasCategory(SDK.TracingModel.DevToolsMetadataEventCategory))
return;
if (event.name === TimelineModel.TimelineModel.DevToolsMetadataEvent.TracingStartedInBrowser) {
TestRunner.addResult('Got DevTools metadata event: ' + event.name);
frameId = event.args['data']['frames'][0]['frame'];
} else if (event.name === TimelineModel.TimelineModel.RecordType.SetLayerTreeId) {
if (frameId === event.args['data']['frame'])
TestRunner.addResult('Got DevTools metadata event: ' + event.name);
}
}
})();