mirror of
https://github.com/microsoft/playwright.git
synced 2024-10-27 13:50:25 +03:00
fix(tracing): modernize old resources to new har format (#8453)
This commit is contained in:
parent
a479cb6f52
commit
02bef1eded
@ -38,7 +38,7 @@ export type TracerOptions = {
|
|||||||
screenshots?: boolean;
|
screenshots?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const VERSION = 2;
|
export const VERSION = 3;
|
||||||
|
|
||||||
type RecordingState = {
|
type RecordingState = {
|
||||||
options: TracerOptions,
|
options: TracerOptions,
|
||||||
|
@ -130,6 +130,32 @@ export class TraceModel {
|
|||||||
}
|
}
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_modernize_2_to_3(event: any): any {
|
||||||
|
if (event.type === 'resource-snapshot' && !event.snapshot.request) {
|
||||||
|
// Migrate from old ResourceSnapshot to new har entry format.
|
||||||
|
const resource = event.snapshot;
|
||||||
|
event.snapshot = {
|
||||||
|
_frameref: resource.frameId,
|
||||||
|
request: {
|
||||||
|
url: resource.url,
|
||||||
|
method: resource.method,
|
||||||
|
headers: resource.requestHeaders,
|
||||||
|
postData: resource.requestSha1 ? { _sha1: resource.requestSha1 } : undefined,
|
||||||
|
},
|
||||||
|
response: {
|
||||||
|
status: resource.status,
|
||||||
|
headers: resource.responseHeaders,
|
||||||
|
content: {
|
||||||
|
mimeType: resource.contentType,
|
||||||
|
_sha1: resource.responseSha1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
_monotonicTime: resource.timestamp,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return event;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export type ContextEntry = {
|
export type ContextEntry = {
|
||||||
|
@ -83,7 +83,8 @@ export class TraceViewer {
|
|||||||
const networkFile = path.join(tracesDir, (match ? match[1] : debugName) + '.network');
|
const networkFile = path.join(tracesDir, (match ? match[1] : debugName) + '.network');
|
||||||
const model = new TraceModel(snapshotStorage);
|
const model = new TraceModel(snapshotStorage);
|
||||||
await appendTraceEvents(model, traceFile);
|
await appendTraceEvents(model, traceFile);
|
||||||
await appendTraceEvents(model, networkFile);
|
if (fs.existsSync(networkFile))
|
||||||
|
await appendTraceEvents(model, networkFile);
|
||||||
model.build();
|
model.build();
|
||||||
response.end(JSON.stringify(model.contextEntry));
|
response.end(JSON.stringify(model.contextEntry));
|
||||||
})().catch(e => console.error(e));
|
})().catch(e => console.error(e));
|
||||||
|
Loading…
Reference in New Issue
Block a user