Skip to content

Commit 647f0d9

Browse files
committed
drop util crux. trying to get proper data from real thing
Change-Id: Ie1905a1b746cce82b27dfe89c56d2b591c050291
1 parent 7e71d8f commit 647f0d9

3 files changed

Lines changed: 48 additions & 394 deletions

File tree

src/tools/performance.ts

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,15 @@
55
*/
66

77
import {logger} from '../logger.js';
8-
import {zod} from '../third_party/index.js';
8+
import {zod, DevTools} from '../third_party/index.js';
99
import type {Page} from '../third_party/index.js';
10-
import type {InsightName} from '../trace-processing/parse.js';
10+
import type {InsightName, TraceResult} from '../trace-processing/parse.js';
1111
import {
1212
getInsightOutput,
1313
getTraceSummary,
1414
parseRawTraceBuffer,
1515
traceResultIsSuccess,
1616
} from '../trace-processing/parse.js';
17-
import {populateCruxData} from '../utils/crux.js';
1817

1918
import {ToolCategory} from './categories.js';
2019
import type {Context, Response} from './ToolDefinition.js';
@@ -172,7 +171,7 @@ async function stopTracingAndAppendOutput(
172171
const result = await parseRawTraceBuffer(traceEventsBuffer);
173172
response.appendResponseLine('The performance trace has been stopped.');
174173
if (traceResultIsSuccess(result)) {
175-
await populateCruxData(result.parsedTrace);
174+
await populateCruxData(result);
176175
context.storeTraceRecording(result);
177176
const traceSummaryText = getTraceSummary(result);
178177
response.appendResponseLine(traceSummaryText);
@@ -193,3 +192,48 @@ async function stopTracingAndAppendOutput(
193192
context.setIsRunningPerformanceTrace(false);
194193
}
195194
}
195+
196+
async function populateCruxData(result: TraceResult): Promise<void> {
197+
try {
198+
logger('populateCruxData called');
199+
const cruxManager = DevTools.CrUXManager.CrUXManager.instance();
200+
const settings = DevTools.Common.Settings.Settings.instance();
201+
const cruxSetting = settings.createSetting('field-data', {enabled: true});
202+
cruxSetting.set({...cruxSetting.get(), enabled: true});
203+
204+
if (!cruxSetting.get().enabled) {
205+
logger('CrUX is disabled in settings');
206+
return;
207+
}
208+
209+
const urls = new Set<string>();
210+
if (result.insights) {
211+
for (const insightSet of result.insights.values()) {
212+
urls.add(insightSet.url.href);
213+
}
214+
} else {
215+
const mainUrl = result.parsedTrace.data.Meta.mainFrameURL;
216+
if (mainUrl) {
217+
urls.add(mainUrl);
218+
}
219+
}
220+
221+
if (urls.size === 0) {
222+
logger('No URLs found for CrUX data');
223+
return;
224+
}
225+
226+
logger(`Fetching CrUX data for ${urls.size} URLs: ${Array.from(urls).join(', ')}`);
227+
const cruxData = await Promise.all(
228+
Array.from(urls).map(async url => {
229+
const data = await cruxManager.getFieldDataForPage(url);
230+
logger(`CrUX data for ${url}: ${data ? 'found' : 'not found'}`);
231+
return data;
232+
}),
233+
);
234+
235+
result.parsedTrace.metadata.cruxFieldData = cruxData;
236+
} catch (err) {
237+
logger('Error populating CrUX data:', err);
238+
}
239+
}

src/utils/crux.ts

Lines changed: 0 additions & 220 deletions
This file was deleted.

0 commit comments

Comments
 (0)