diff --git a/packages/playwright-core/src/server/trace/recorder/tracing.ts b/packages/playwright-core/src/server/trace/recorder/tracing.ts index 5f0bfb15df..2639aff91d 100644 --- a/packages/playwright-core/src/server/trace/recorder/tracing.ts +++ b/packages/playwright-core/src/server/trace/recorder/tracing.ts @@ -179,7 +179,12 @@ export class Tracing extends SdkObject implements InstrumentationListener, Snaps this._allocateNewTraceFile(this._state); this._fs.mkdir(path.dirname(this._state.traceFile)); - const event: trace.TraceEvent = { ...this._contextCreatedEvent, title: options.title, wallTime: Date.now() }; + const event: trace.TraceEvent = { + ...this._contextCreatedEvent, + title: options.title, + wallTime: Date.now(), + monotonicTime: monotonicTime() + }; this._fs.appendFile(this._state.traceFile, JSON.stringify(event) + '\n'); this._context.instrumentation.addListener(this, this._context); diff --git a/packages/trace-viewer/src/traceModernizer.ts b/packages/trace-viewer/src/traceModernizer.ts index 1ade445382..a2a987318c 100644 --- a/packages/trace-viewer/src/traceModernizer.ts +++ b/packages/trace-viewer/src/traceModernizer.ts @@ -388,9 +388,11 @@ export class TraceModernizer { result.push({ ...event, monotonicTime: 0, origin: 'library' }); continue; } - // Take wall time from the first event. + // Take wall and monotonic time from the first event. if (!this._contextEntry.wallTime && event.type === 'before') this._contextEntry.wallTime = event.wallTime; + if (!this._contextEntry.startTime && event.type === 'before') + this._contextEntry.startTime = event.startTime; result.push(event); } return result;