Skip to content

Commit 040a0e5

Browse files
authored
fix: use non-deprecated tracing categories api (#7413)
1 parent f04ffdb commit 040a0e5

File tree

2 files changed

+35
-4
lines changed

2 files changed

+35
-4
lines changed

src/common/Tracing.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,19 @@ export class Tracing {
8787

8888
if (screenshots) categories.push('disabled-by-default-devtools.screenshot');
8989

90+
const excludedCategories = categories
91+
.filter((cat) => cat.startsWith('-'))
92+
.map((cat) => cat.slice(1));
93+
const includedCategories = categories.filter((cat) => !cat.startsWith('-'));
94+
9095
this._path = path;
9196
this._recording = true;
9297
await this._client.send('Tracing.start', {
9398
transferMode: 'ReturnAsStream',
94-
categories: categories.join(','),
99+
traceConfig: {
100+
excludedCategories,
101+
includedCategories,
102+
},
95103
});
96104
}
97105

test/tracing.spec.ts

+26-3
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,38 @@ describeChromeOnly('Tracing', function () {
5656
it('should run with custom categories if provided', async () => {
5757
await page.tracing.start({
5858
path: outputFile,
59-
categories: ['disabled-by-default-v8.cpu_profiler.hires'],
59+
categories: ['-*', 'disabled-by-default-v8.cpu_profiler.hires'],
6060
});
6161
await page.tracing.stop();
6262

6363
const traceJson = JSON.parse(
6464
fs.readFileSync(outputFile, { encoding: 'utf8' })
6565
);
66-
expect(traceJson.metadata['trace-config']).toContain(
67-
'disabled-by-default-v8.cpu_profiler.hires'
66+
const traceConfig = JSON.parse(traceJson.metadata['trace-config']);
67+
expect(traceConfig.included_categories).toEqual([
68+
'disabled-by-default-v8.cpu_profiler.hires',
69+
]);
70+
expect(traceConfig.excluded_categories).toEqual(['*']);
71+
expect(traceJson.traceEvents).not.toContainEqual(
72+
expect.objectContaining({
73+
cat: 'toplevel',
74+
})
75+
);
76+
});
77+
78+
it('should run with default categories', async () => {
79+
await page.tracing.start({
80+
path: outputFile,
81+
});
82+
await page.tracing.stop();
83+
84+
const traceJson = JSON.parse(
85+
fs.readFileSync(outputFile, { encoding: 'utf8' })
86+
);
87+
expect(traceJson.traceEvents).toContainEqual(
88+
expect.objectContaining({
89+
cat: 'toplevel',
90+
})
6891
);
6992
});
7093
it('should throw if tracing on two pages', async () => {

0 commit comments

Comments
 (0)