diff --git a/packages/playwright-core/src/dispatchers/dispatcher.ts b/packages/playwright-core/src/dispatchers/dispatcher.ts index 10a4b06493..285e8a429f 100644 --- a/packages/playwright-core/src/dispatchers/dispatcher.ts +++ b/packages/playwright-core/src/dispatchers/dispatcher.ts @@ -154,6 +154,7 @@ export class DispatcherConnection { objectId: sdkObject?.guid, pageId: sdkObject?.attribution?.page?.guid, frameId: sdkObject?.attribution?.frame?.guid, + wallTime: Date.now(), startTime: monotonicTime(), endTime: 0, type, @@ -228,6 +229,7 @@ export class DispatcherConnection { objectId: sdkObject?.guid, pageId: sdkObject?.attribution?.page?.guid, frameId: sdkObject?.attribution?.frame?.guid, + wallTime: Date.now(), startTime: monotonicTime(), endTime: 0, type: dispatcher._type, diff --git a/packages/playwright-core/src/protocol/callMetadata.ts b/packages/playwright-core/src/protocol/callMetadata.ts index f6dd2f6a2a..b1f9fbf877 100644 --- a/packages/playwright-core/src/protocol/callMetadata.ts +++ b/packages/playwright-core/src/protocol/callMetadata.ts @@ -18,6 +18,7 @@ import { Point, StackFrame, SerializedError } from './channels'; export type CallMetadata = { id: string; + wallTime: number; startTime: number; endTime: number; pauseStartTime?: number; diff --git a/packages/playwright-core/src/server/instrumentation.ts b/packages/playwright-core/src/server/instrumentation.ts index 927ad735a0..aeeb13c86c 100644 --- a/packages/playwright-core/src/server/instrumentation.ts +++ b/packages/playwright-core/src/server/instrumentation.ts @@ -88,6 +88,7 @@ export function createInstrumentation(): Instrumentation { export function internalCallMetadata(): CallMetadata { return { id: '', + wallTime: 0, startTime: 0, endTime: 0, type: 'Internal', diff --git a/packages/playwright-core/src/server/supplements/recorderSupplement.ts b/packages/playwright-core/src/server/supplements/recorderSupplement.ts index e0695cd9eb..251a15be7f 100644 --- a/packages/playwright-core/src/server/supplements/recorderSupplement.ts +++ b/packages/playwright-core/src/server/supplements/recorderSupplement.ts @@ -440,6 +440,7 @@ class ContextRecorder extends EventEmitter { objectId: frame.guid, pageId: frame._page.guid, frameId: frame.guid, + wallTime: Date.now(), startTime: monotonicTime(), endTime: 0, type: 'Frame', diff --git a/packages/playwright-core/src/web/traceViewer/ui/actionList.css b/packages/playwright-core/src/web/traceViewer/ui/actionList.css index 109814bbce..d1d606a5fa 100644 --- a/packages/playwright-core/src/web/traceViewer/ui/actionList.css +++ b/packages/playwright-core/src/web/traceViewer/ui/actionList.css @@ -65,7 +65,7 @@ } .action-duration { - margin-left: 4px; + margin: 0 4px; color: var(--gray); } diff --git a/packages/playwright-core/src/web/traceViewer/ui/actionList.tsx b/packages/playwright-core/src/web/traceViewer/ui/actionList.tsx index 8ae943bb69..0e7e533257 100644 --- a/packages/playwright-core/src/web/traceViewer/ui/actionList.tsx +++ b/packages/playwright-core/src/web/traceViewer/ui/actionList.tsx @@ -90,8 +90,8 @@ export const ActionList: React.FC = ({ {metadata.apiName} {metadata.params.selector &&
{metadata.params.selector}
} {metadata.method === 'goto' && metadata.params.url &&
{metadata.params.url}
} - — {metadata.endTime ? msToString(metadata.endTime - metadata.startTime) : 'Timed Out'} +
{metadata.endTime ? msToString(metadata.endTime - metadata.startTime) : 'Timed Out'}
setSelectedTab('console')}> {!!errors &&
{errors}
} {!!warnings &&
{warnings}
} diff --git a/packages/playwright-core/src/web/traceViewer/ui/callTab.css b/packages/playwright-core/src/web/traceViewer/ui/callTab.css index 87def44160..950821616b 100644 --- a/packages/playwright-core/src/web/traceViewer/ui/callTab.css +++ b/packages/playwright-core/src/web/traceViewer/ui/callTab.css @@ -54,10 +54,7 @@ overflow: hidden; } -.call-duration { - color: var(--gray); -} - +.call-line .datetime, .call-line .string { color: var(--orange); } diff --git a/packages/playwright-core/src/web/traceViewer/ui/callTab.tsx b/packages/playwright-core/src/web/traceViewer/ui/callTab.tsx index 40672ab85b..727beeb181 100644 --- a/packages/playwright-core/src/web/traceViewer/ui/callTab.tsx +++ b/packages/playwright-core/src/web/traceViewer/ui/callTab.tsx @@ -32,12 +32,19 @@ export const CallTab: React.FunctionComponent<{ // Strip down the waitForEventInfo data, we never need it. delete params.info; const paramKeys = Object.keys(params); + const wallTime = new Date(action.metadata.wallTime).toLocaleString(); + const duration = msToString(action.metadata.endTime - action.metadata.startTime); return