diff --git a/packages/playwright-core/src/client/channelOwner.ts b/packages/playwright-core/src/client/channelOwner.ts index 6c512c3dcf..fe61a2a244 100644 --- a/packages/playwright-core/src/client/channelOwner.ts +++ b/packages/playwright-core/src/client/channelOwner.ts @@ -140,9 +140,10 @@ export abstract class ChannelOwner { const { stackTrace, csi, callCookie } = apiZone.reported ? { csi: undefined, callCookie: undefined, stackTrace: null } : apiZone; apiZone.reported = true; + const wallTime = Date.now(); if (csi && stackTrace && stackTrace.apiName) - csi.onApiCallBegin(renderCallWithParams(stackTrace.apiName, params), stackTrace, callCookie); - return this._connection.sendMessageToServer(this, this._type, prop, validator(params, '', { tChannelImpl: tChannelImplToWire, binary: this._connection.isRemote() ? 'toBase64' : 'buffer' }), stackTrace); + csi.onApiCallBegin(renderCallWithParams(stackTrace.apiName, params), stackTrace, wallTime, callCookie); + return this._connection.sendMessageToServer(this, this._type, prop, validator(params, '', { tChannelImpl: tChannelImplToWire, binary: this._connection.isRemote() ? 'toBase64' : 'buffer' }), stackTrace, wallTime); }); }; } diff --git a/packages/playwright-core/src/client/clientInstrumentation.ts b/packages/playwright-core/src/client/clientInstrumentation.ts index 6275067b1e..69056b4ef7 100644 --- a/packages/playwright-core/src/client/clientInstrumentation.ts +++ b/packages/playwright-core/src/client/clientInstrumentation.ts @@ -20,12 +20,12 @@ export interface ClientInstrumentation { addListener(listener: ClientInstrumentationListener): void; removeListener(listener: ClientInstrumentationListener): void; removeAllListeners(): void; - onApiCallBegin(apiCall: string, stackTrace: ParsedStackTrace | null, userData: any): void; + onApiCallBegin(apiCall: string, stackTrace: ParsedStackTrace | null, wallTime: number, userData: any): void; onApiCallEnd(userData: any, error?: Error): any; } export interface ClientInstrumentationListener { - onApiCallBegin?(apiCall: string, stackTrace: ParsedStackTrace | null, userData: any): any; + onApiCallBegin?(apiCall: string, stackTrace: ParsedStackTrace | null, wallTime: number, userData: any): any; onApiCallEnd?(userData: any, error?: Error): any; } diff --git a/packages/playwright-core/src/client/connection.ts b/packages/playwright-core/src/client/connection.ts index 2db70c9b24..3068156e46 100644 --- a/packages/playwright-core/src/client/connection.ts +++ b/packages/playwright-core/src/client/connection.ts @@ -111,7 +111,7 @@ export class Connection extends EventEmitter { this._stackCollectors.delete(collector); } - async sendMessageToServer(object: ChannelOwner, type: string, method: string, params: any, stackTrace: ParsedStackTrace | null): Promise { + async sendMessageToServer(object: ChannelOwner, type: string, method: string, params: any, stackTrace: ParsedStackTrace | null, wallTime: number): Promise { if (this._closedErrorMessage) throw new Error(this._closedErrorMessage); @@ -124,7 +124,7 @@ export class Connection extends EventEmitter { for (const collector of this._stackCollectors) collector.push({ stack: frames, id: id }); const location = frames[0] ? { file: frames[0].file, line: frames[0].line, column: frames[0].column } : undefined; - const metadata: channels.Metadata = { apiName, location, internal: !apiName }; + const metadata: channels.Metadata = { wallTime, apiName, location, internal: !apiName }; this.onmessage({ ...converted, metadata }); return await new Promise((resolve, reject) => this._callbacks.set(id, { resolve, reject, stackTrace, type, method })); diff --git a/packages/playwright-core/src/protocol/validator.ts b/packages/playwright-core/src/protocol/validator.ts index f12d6623cd..bb4a464702 100644 --- a/packages/playwright-core/src/protocol/validator.ts +++ b/packages/playwright-core/src/protocol/validator.ts @@ -34,6 +34,7 @@ scheme.Metadata = tObject({ })), apiName: tOptional(tString), internal: tOptional(tBoolean), + wallTime: tOptional(tNumber), }); scheme.ClientSideCallMetadata = tObject({ id: tNumber, diff --git a/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts b/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts index 2b92abbedb..09e04074db 100644 --- a/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts @@ -146,7 +146,7 @@ export class BrowserContextDispatcher extends Dispatcher { + async createTempFile(params: channels.BrowserContextCreateTempFileParams): Promise { const dir = this._context._browser.options.artifactsDir; const tmpDir = path.join(dir, 'upload-' + createGuid()); await fs.promises.mkdir(tmpDir); @@ -268,7 +268,7 @@ export class BrowserContextDispatcher extends Dispatcher { + async updateSubscription(params: channels.BrowserContextUpdateSubscriptionParams): Promise { if (params.enabled) this._subscriptions.add(params.event); else diff --git a/packages/playwright-core/src/server/dispatchers/dispatcher.ts b/packages/playwright-core/src/server/dispatchers/dispatcher.ts index 73484b109b..cc3820e21f 100644 --- a/packages/playwright-core/src/server/dispatchers/dispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/dispatcher.ts @@ -191,7 +191,6 @@ export class DispatcherConnection { objectId: sdkObject?.guid, pageId: sdkObject?.attribution?.page?.guid, frameId: sdkObject?.attribution?.frame?.guid, - wallTime: Date.now(), startTime: monotonicTime(), endTime: 0, type, @@ -251,13 +250,13 @@ export class DispatcherConnection { const sdkObject = dispatcher._object instanceof SdkObject ? dispatcher._object : undefined; const callMetadata: CallMetadata = { id: `call@${id}`, + wallTime: validMetadata.wallTime, location: validMetadata.location, apiName: validMetadata.apiName, internal: validMetadata.internal, 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/server/dispatchers/networkDispatchers.ts b/packages/playwright-core/src/server/dispatchers/networkDispatchers.ts index 5405643bf3..0957a8761a 100644 --- a/packages/playwright-core/src/server/dispatchers/networkDispatchers.ts +++ b/packages/playwright-core/src/server/dispatchers/networkDispatchers.ts @@ -212,16 +212,16 @@ export class APIRequestContextDispatcher extends Dispatcher { + async fetchResponseBody(params: channels.APIRequestContextFetchResponseBodyParams): Promise { return { binary: this._object.fetchResponses.get(params.fetchUid) }; } - async fetchLog(params: channels.APIRequestContextFetchLogParams, metadata?: channels.Metadata): Promise { + async fetchLog(params: channels.APIRequestContextFetchLogParams): Promise { const log = this._object.fetchLog.get(params.fetchUid) || []; return { log }; } - async disposeAPIResponse(params: channels.APIRequestContextDisposeAPIResponseParams, metadata?: channels.Metadata): Promise { + async disposeAPIResponse(params: channels.APIRequestContextDisposeAPIResponseParams): Promise { this._object.disposeResponse(params.fetchUid); } } diff --git a/packages/playwright-core/src/server/dispatchers/pageDispatcher.ts b/packages/playwright-core/src/server/dispatchers/pageDispatcher.ts index 4d2fdfc4d0..b14b897c47 100644 --- a/packages/playwright-core/src/server/dispatchers/pageDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/pageDispatcher.ts @@ -204,7 +204,7 @@ export class PageDispatcher extends Dispatcher { + async updateSubscription(params: channels.PageUpdateSubscriptionParams): Promise { if (params.event === 'fileChooser') await this._page.setFileChooserIntercepted(params.enabled); if (params.enabled) diff --git a/packages/playwright-core/src/server/dispatchers/playwrightDispatcher.ts b/packages/playwright-core/src/server/dispatchers/playwrightDispatcher.ts index 3d70bfdb5d..55cf4fb9cb 100644 --- a/packages/playwright-core/src/server/dispatchers/playwrightDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/playwrightDispatcher.ts @@ -63,7 +63,7 @@ export class PlaywrightDispatcher extends Dispatcher { + async newRequest(params: channels.PlaywrightNewRequestParams): Promise { const request = new GlobalAPIRequestContext(this._object, params); return { request: APIRequestContextDispatcher.from(this.parentScope(), request) }; } diff --git a/packages/playwright-core/src/server/dispatchers/selectorsDispatcher.ts b/packages/playwright-core/src/server/dispatchers/selectorsDispatcher.ts index 98310d2651..4582a8081d 100644 --- a/packages/playwright-core/src/server/dispatchers/selectorsDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/selectorsDispatcher.ts @@ -30,7 +30,7 @@ export class SelectorsDispatcher extends Dispatcher { + async setTestIdAttributeName(params: channels.SelectorsSetTestIdAttributeNameParams): Promise { this._object.setTestIdAttributeName(params.testIdAttributeName); } } diff --git a/packages/playwright-core/src/server/instrumentation.ts b/packages/playwright-core/src/server/instrumentation.ts index 3f0f8b9b53..f8d22390ae 100644 --- a/packages/playwright-core/src/server/instrumentation.ts +++ b/packages/playwright-core/src/server/instrumentation.ts @@ -103,7 +103,6 @@ export function createInstrumentation(): Instrumentation { export function serverSideCallMetadata(): CallMetadata { return { id: '', - wallTime: 0, startTime: 0, endTime: 0, type: 'Internal', diff --git a/packages/playwright-core/src/server/recorder.ts b/packages/playwright-core/src/server/recorder.ts index 9f42a5abaa..6e803a2fee 100644 --- a/packages/playwright-core/src/server/recorder.ts +++ b/packages/playwright-core/src/server/recorder.ts @@ -569,7 +569,6 @@ 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-test/src/common/testType.ts b/packages/playwright-test/src/common/testType.ts index 3fe8933e63..ee6e82b055 100644 --- a/packages/playwright-test/src/common/testType.ts +++ b/packages/playwright-test/src/common/testType.ts @@ -217,7 +217,8 @@ export class TestTypeImpl { title, location, canHaveChildren: true, - forceNoParent: false + forceNoParent: false, + wallTime: Date.now(), }); try { const result = await body(); diff --git a/packages/playwright-test/src/index.ts b/packages/playwright-test/src/index.ts index a925723017..b6ac2f8d4d 100644 --- a/packages/playwright-test/src/index.ts +++ b/packages/playwright-test/src/index.ts @@ -250,7 +250,7 @@ const playwrightFixtures: Fixtures = ({ const createInstrumentationListener = (context?: BrowserContext) => { return { - onApiCallBegin: (apiCall: string, stackTrace: ParsedStackTrace | null, userData: any) => { + onApiCallBegin: (apiCall: string, stackTrace: ParsedStackTrace | null, wallTime: number, userData: any) => { if (apiCall.startsWith('expect.')) return { userObject: null }; if (apiCall === 'page.pause') { @@ -263,7 +263,8 @@ const playwrightFixtures: Fixtures = ({ category: 'pw:api', title: apiCall, canHaveChildren: false, - forceNoParent: false + forceNoParent: false, + wallTime, }); userData.userObject = step; }, diff --git a/packages/playwright-test/src/matchers/expect.ts b/packages/playwright-test/src/matchers/expect.ts index bd2ed6456a..afb1c408c3 100644 --- a/packages/playwright-test/src/matchers/expect.ts +++ b/packages/playwright-test/src/matchers/expect.ts @@ -205,7 +205,8 @@ class ExpectMetaInfoProxyHandler { category: 'expect', title: trimLongString(customMessage || defaultTitle, 1024), canHaveChildren: true, - forceNoParent: false + forceNoParent: false, + wallTime: Date.now() }); testInfo.currentStep = step; diff --git a/packages/playwright-test/src/worker/testInfo.ts b/packages/playwright-test/src/worker/testInfo.ts index 8fe9d28c27..41fccb3612 100644 --- a/packages/playwright-test/src/worker/testInfo.ts +++ b/packages/playwright-test/src/worker/testInfo.ts @@ -36,6 +36,7 @@ interface TestStepInternal { category: string; canHaveChildren: boolean; forceNoParent: boolean; + wallTime: number; location?: Location; refinedTitle?: string; } @@ -278,8 +279,8 @@ export class TestInfoImpl implements TestInfo { this._hasHardError = state.hasHardError; } - async _runAsStep(cb: () => Promise, stepInfo: Omit): Promise { - const step = this._addStep(stepInfo); + async _runAsStep(cb: () => Promise, stepInfo: Omit): Promise { + const step = this._addStep({ ...stepInfo, wallTime: Date.now() }); try { const result = await cb(); step.complete({}); diff --git a/packages/playwright-test/src/worker/workerMain.ts b/packages/playwright-test/src/worker/workerMain.ts index 7d2bff0474..32944326f2 100644 --- a/packages/playwright-test/src/worker/workerMain.ts +++ b/packages/playwright-test/src/worker/workerMain.ts @@ -329,7 +329,8 @@ export class WorkerMain extends ProcessRunner { category: 'hook', title: 'Before Hooks', canHaveChildren: true, - forceNoParent: true + forceNoParent: true, + wallTime: Date.now(), }); // Note: wrap all preparation steps together, because failure/skip in any of them @@ -394,7 +395,8 @@ export class WorkerMain extends ProcessRunner { category: 'hook', title: 'After Hooks', canHaveChildren: true, - forceNoParent: true + forceNoParent: true, + wallTime: Date.now(), }); let firstAfterHooksError: TestInfoError | undefined; diff --git a/packages/protocol/src/callMetadata.ts b/packages/protocol/src/callMetadata.ts index 6444623820..ec83611c5f 100644 --- a/packages/protocol/src/callMetadata.ts +++ b/packages/protocol/src/callMetadata.ts @@ -18,7 +18,6 @@ import type { Point, SerializedError } from './channels'; export type CallMetadata = { id: string; - wallTime: number; startTime: number; endTime: number; pauseStartTime?: number; @@ -33,6 +32,8 @@ export type CallMetadata = { // Service-side is making a call to itself, this metadata does not go // through the dispatcher, so is always excluded from inspector / tracing. isServerSide?: boolean; + // Client wall time. + wallTime?: number; location?: { file: string, line?: number, column?: number }; log: string[]; afterSnapshot?: string; diff --git a/packages/protocol/src/channels.ts b/packages/protocol/src/channels.ts index 2dada44a55..fdffc270dc 100644 --- a/packages/protocol/src/channels.ts +++ b/packages/protocol/src/channels.ts @@ -16,6 +16,8 @@ // This file is generated by generate_channels.js, do not edit manually. +import type { CallMetadata } from './callMetadata'; + export type Binary = Buffer; export interface Channel { @@ -150,6 +152,7 @@ export type Metadata = { }, apiName?: string, internal?: boolean, + wallTime?: number, }; export type ClientSideCallMetadata = { @@ -303,12 +306,12 @@ export interface APIRequestContextEventTarget { } export interface APIRequestContextChannel extends APIRequestContextEventTarget, Channel { _type_APIRequestContext: boolean; - fetch(params: APIRequestContextFetchParams, metadata?: Metadata): Promise; - fetchResponseBody(params: APIRequestContextFetchResponseBodyParams, metadata?: Metadata): Promise; - fetchLog(params: APIRequestContextFetchLogParams, metadata?: Metadata): Promise; - storageState(params?: APIRequestContextStorageStateParams, metadata?: Metadata): Promise; - disposeAPIResponse(params: APIRequestContextDisposeAPIResponseParams, metadata?: Metadata): Promise; - dispose(params?: APIRequestContextDisposeParams, metadata?: Metadata): Promise; + fetch(params: APIRequestContextFetchParams, metadata?: CallMetadata): Promise; + fetchResponseBody(params: APIRequestContextFetchResponseBodyParams, metadata?: CallMetadata): Promise; + fetchLog(params: APIRequestContextFetchLogParams, metadata?: CallMetadata): Promise; + storageState(params?: APIRequestContextStorageStateParams, metadata?: CallMetadata): Promise; + disposeAPIResponse(params: APIRequestContextDisposeAPIResponseParams, metadata?: CallMetadata): Promise; + dispose(params?: APIRequestContextDisposeParams, metadata?: CallMetadata): Promise; } export type APIRequestContextFetchParams = { url: string, @@ -393,12 +396,12 @@ export interface LocalUtilsEventTarget { } export interface LocalUtilsChannel extends LocalUtilsEventTarget, Channel { _type_LocalUtils: boolean; - zip(params: LocalUtilsZipParams, metadata?: Metadata): Promise; - harOpen(params: LocalUtilsHarOpenParams, metadata?: Metadata): Promise; - harLookup(params: LocalUtilsHarLookupParams, metadata?: Metadata): Promise; - harClose(params: LocalUtilsHarCloseParams, metadata?: Metadata): Promise; - harUnzip(params: LocalUtilsHarUnzipParams, metadata?: Metadata): Promise; - connect(params: LocalUtilsConnectParams, metadata?: Metadata): Promise; + zip(params: LocalUtilsZipParams, metadata?: CallMetadata): Promise; + harOpen(params: LocalUtilsHarOpenParams, metadata?: CallMetadata): Promise; + harLookup(params: LocalUtilsHarLookupParams, metadata?: CallMetadata): Promise; + harClose(params: LocalUtilsHarCloseParams, metadata?: CallMetadata): Promise; + harUnzip(params: LocalUtilsHarUnzipParams, metadata?: CallMetadata): Promise; + connect(params: LocalUtilsConnectParams, metadata?: CallMetadata): Promise; } export type LocalUtilsZipParams = { zipFile: string, @@ -483,7 +486,7 @@ export interface RootEventTarget { } export interface RootChannel extends RootEventTarget, Channel { _type_Root: boolean; - initialize(params: RootInitializeParams, metadata?: Metadata): Promise; + initialize(params: RootInitializeParams, metadata?: CallMetadata): Promise; } export type RootInitializeParams = { sdkLanguage: 'javascript' | 'python' | 'java' | 'csharp', @@ -533,7 +536,7 @@ export interface PlaywrightEventTarget { } export interface PlaywrightChannel extends PlaywrightEventTarget, Channel { _type_Playwright: boolean; - newRequest(params: PlaywrightNewRequestParams, metadata?: Metadata): Promise; + newRequest(params: PlaywrightNewRequestParams, metadata?: CallMetadata): Promise; } export type PlaywrightNewRequestParams = { baseURL?: string, @@ -611,16 +614,16 @@ export interface DebugControllerEventTarget { } export interface DebugControllerChannel extends DebugControllerEventTarget, Channel { _type_DebugController: boolean; - initialize(params: DebugControllerInitializeParams, metadata?: Metadata): Promise; - setReportStateChanged(params: DebugControllerSetReportStateChangedParams, metadata?: Metadata): Promise; - resetForReuse(params?: DebugControllerResetForReuseParams, metadata?: Metadata): Promise; - navigate(params: DebugControllerNavigateParams, metadata?: Metadata): Promise; - setRecorderMode(params: DebugControllerSetRecorderModeParams, metadata?: Metadata): Promise; - highlight(params: DebugControllerHighlightParams, metadata?: Metadata): Promise; - hideHighlight(params?: DebugControllerHideHighlightParams, metadata?: Metadata): Promise; - resume(params?: DebugControllerResumeParams, metadata?: Metadata): Promise; - kill(params?: DebugControllerKillParams, metadata?: Metadata): Promise; - closeAllBrowsers(params?: DebugControllerCloseAllBrowsersParams, metadata?: Metadata): Promise; + initialize(params: DebugControllerInitializeParams, metadata?: CallMetadata): Promise; + setReportStateChanged(params: DebugControllerSetReportStateChangedParams, metadata?: CallMetadata): Promise; + resetForReuse(params?: DebugControllerResetForReuseParams, metadata?: CallMetadata): Promise; + navigate(params: DebugControllerNavigateParams, metadata?: CallMetadata): Promise; + setRecorderMode(params: DebugControllerSetRecorderModeParams, metadata?: CallMetadata): Promise; + highlight(params: DebugControllerHighlightParams, metadata?: CallMetadata): Promise; + hideHighlight(params?: DebugControllerHideHighlightParams, metadata?: CallMetadata): Promise; + resume(params?: DebugControllerResumeParams, metadata?: CallMetadata): Promise; + kill(params?: DebugControllerKillParams, metadata?: CallMetadata): Promise; + closeAllBrowsers(params?: DebugControllerCloseAllBrowsersParams, metadata?: CallMetadata): Promise; } export type DebugControllerInspectRequestedEvent = { selector: string, @@ -715,11 +718,11 @@ export interface SocksSupportEventTarget { } export interface SocksSupportChannel extends SocksSupportEventTarget, Channel { _type_SocksSupport: boolean; - socksConnected(params: SocksSupportSocksConnectedParams, metadata?: Metadata): Promise; - socksFailed(params: SocksSupportSocksFailedParams, metadata?: Metadata): Promise; - socksData(params: SocksSupportSocksDataParams, metadata?: Metadata): Promise; - socksError(params: SocksSupportSocksErrorParams, metadata?: Metadata): Promise; - socksEnd(params: SocksSupportSocksEndParams, metadata?: Metadata): Promise; + socksConnected(params: SocksSupportSocksConnectedParams, metadata?: CallMetadata): Promise; + socksFailed(params: SocksSupportSocksFailedParams, metadata?: CallMetadata): Promise; + socksData(params: SocksSupportSocksDataParams, metadata?: CallMetadata): Promise; + socksError(params: SocksSupportSocksErrorParams, metadata?: CallMetadata): Promise; + socksEnd(params: SocksSupportSocksEndParams, metadata?: CallMetadata): Promise; } export type SocksSupportSocksRequestedEvent = { uid: string, @@ -786,8 +789,8 @@ export interface SelectorsEventTarget { } export interface SelectorsChannel extends SelectorsEventTarget, Channel { _type_Selectors: boolean; - register(params: SelectorsRegisterParams, metadata?: Metadata): Promise; - setTestIdAttributeName(params: SelectorsSetTestIdAttributeNameParams, metadata?: Metadata): Promise; + register(params: SelectorsRegisterParams, metadata?: CallMetadata): Promise; + setTestIdAttributeName(params: SelectorsSetTestIdAttributeNameParams, metadata?: CallMetadata): Promise; } export type SelectorsRegisterParams = { name: string, @@ -818,9 +821,9 @@ export interface BrowserTypeEventTarget { } export interface BrowserTypeChannel extends BrowserTypeEventTarget, Channel { _type_BrowserType: boolean; - launch(params: BrowserTypeLaunchParams, metadata?: Metadata): Promise; - launchPersistentContext(params: BrowserTypeLaunchPersistentContextParams, metadata?: Metadata): Promise; - connectOverCDP(params: BrowserTypeConnectOverCDPParams, metadata?: Metadata): Promise; + launch(params: BrowserTypeLaunchParams, metadata?: CallMetadata): Promise; + launchPersistentContext(params: BrowserTypeLaunchPersistentContextParams, metadata?: CallMetadata): Promise; + connectOverCDP(params: BrowserTypeConnectOverCDPParams, metadata?: CallMetadata): Promise; } export type BrowserTypeLaunchParams = { channel?: string, @@ -1046,13 +1049,13 @@ export interface BrowserEventTarget { } export interface BrowserChannel extends BrowserEventTarget, Channel { _type_Browser: boolean; - close(params?: BrowserCloseParams, metadata?: Metadata): Promise; - killForTests(params?: BrowserKillForTestsParams, metadata?: Metadata): Promise; - newContext(params: BrowserNewContextParams, metadata?: Metadata): Promise; - newContextForReuse(params: BrowserNewContextForReuseParams, metadata?: Metadata): Promise; - newBrowserCDPSession(params?: BrowserNewBrowserCDPSessionParams, metadata?: Metadata): Promise; - startTracing(params: BrowserStartTracingParams, metadata?: Metadata): Promise; - stopTracing(params?: BrowserStopTracingParams, metadata?: Metadata): Promise; + close(params?: BrowserCloseParams, metadata?: CallMetadata): Promise; + killForTests(params?: BrowserKillForTestsParams, metadata?: CallMetadata): Promise; + newContext(params: BrowserNewContextParams, metadata?: CallMetadata): Promise; + newContextForReuse(params: BrowserNewContextForReuseParams, metadata?: CallMetadata): Promise; + newBrowserCDPSession(params?: BrowserNewBrowserCDPSessionParams, metadata?: CallMetadata): Promise; + startTracing(params: BrowserStartTracingParams, metadata?: CallMetadata): Promise; + stopTracing(params?: BrowserStopTracingParams, metadata?: CallMetadata): Promise; } export type BrowserCloseEvent = {}; export type BrowserCloseParams = {}; @@ -1329,7 +1332,7 @@ export interface EventTargetEventTarget { } export interface EventTargetChannel extends EventTargetEventTarget, Channel { _type_EventTarget: boolean; - waitForEventInfo(params: EventTargetWaitForEventInfoParams, metadata?: Metadata): Promise; + waitForEventInfo(params: EventTargetWaitForEventInfoParams, metadata?: CallMetadata): Promise; } export type EventTargetWaitForEventInfoParams = { info: { @@ -1369,30 +1372,30 @@ export interface BrowserContextEventTarget { } export interface BrowserContextChannel extends BrowserContextEventTarget, EventTargetChannel { _type_BrowserContext: boolean; - addCookies(params: BrowserContextAddCookiesParams, metadata?: Metadata): Promise; - addInitScript(params: BrowserContextAddInitScriptParams, metadata?: Metadata): Promise; - clearCookies(params?: BrowserContextClearCookiesParams, metadata?: Metadata): Promise; - clearPermissions(params?: BrowserContextClearPermissionsParams, metadata?: Metadata): Promise; - close(params?: BrowserContextCloseParams, metadata?: Metadata): Promise; - cookies(params: BrowserContextCookiesParams, metadata?: Metadata): Promise; - exposeBinding(params: BrowserContextExposeBindingParams, metadata?: Metadata): Promise; - grantPermissions(params: BrowserContextGrantPermissionsParams, metadata?: Metadata): Promise; - newPage(params?: BrowserContextNewPageParams, metadata?: Metadata): Promise; - setDefaultNavigationTimeoutNoReply(params: BrowserContextSetDefaultNavigationTimeoutNoReplyParams, metadata?: Metadata): Promise; - setDefaultTimeoutNoReply(params: BrowserContextSetDefaultTimeoutNoReplyParams, metadata?: Metadata): Promise; - setExtraHTTPHeaders(params: BrowserContextSetExtraHTTPHeadersParams, metadata?: Metadata): Promise; - setGeolocation(params: BrowserContextSetGeolocationParams, metadata?: Metadata): Promise; - setHTTPCredentials(params: BrowserContextSetHTTPCredentialsParams, metadata?: Metadata): Promise; - setNetworkInterceptionPatterns(params: BrowserContextSetNetworkInterceptionPatternsParams, metadata?: Metadata): Promise; - setOffline(params: BrowserContextSetOfflineParams, metadata?: Metadata): Promise; - storageState(params?: BrowserContextStorageStateParams, metadata?: Metadata): Promise; - pause(params?: BrowserContextPauseParams, metadata?: Metadata): Promise; - recorderSupplementEnable(params: BrowserContextRecorderSupplementEnableParams, metadata?: Metadata): Promise; - newCDPSession(params: BrowserContextNewCDPSessionParams, metadata?: Metadata): Promise; - harStart(params: BrowserContextHarStartParams, metadata?: Metadata): Promise; - harExport(params: BrowserContextHarExportParams, metadata?: Metadata): Promise; - createTempFile(params: BrowserContextCreateTempFileParams, metadata?: Metadata): Promise; - updateSubscription(params: BrowserContextUpdateSubscriptionParams, metadata?: Metadata): Promise; + addCookies(params: BrowserContextAddCookiesParams, metadata?: CallMetadata): Promise; + addInitScript(params: BrowserContextAddInitScriptParams, metadata?: CallMetadata): Promise; + clearCookies(params?: BrowserContextClearCookiesParams, metadata?: CallMetadata): Promise; + clearPermissions(params?: BrowserContextClearPermissionsParams, metadata?: CallMetadata): Promise; + close(params?: BrowserContextCloseParams, metadata?: CallMetadata): Promise; + cookies(params: BrowserContextCookiesParams, metadata?: CallMetadata): Promise; + exposeBinding(params: BrowserContextExposeBindingParams, metadata?: CallMetadata): Promise; + grantPermissions(params: BrowserContextGrantPermissionsParams, metadata?: CallMetadata): Promise; + newPage(params?: BrowserContextNewPageParams, metadata?: CallMetadata): Promise; + setDefaultNavigationTimeoutNoReply(params: BrowserContextSetDefaultNavigationTimeoutNoReplyParams, metadata?: CallMetadata): Promise; + setDefaultTimeoutNoReply(params: BrowserContextSetDefaultTimeoutNoReplyParams, metadata?: CallMetadata): Promise; + setExtraHTTPHeaders(params: BrowserContextSetExtraHTTPHeadersParams, metadata?: CallMetadata): Promise; + setGeolocation(params: BrowserContextSetGeolocationParams, metadata?: CallMetadata): Promise; + setHTTPCredentials(params: BrowserContextSetHTTPCredentialsParams, metadata?: CallMetadata): Promise; + setNetworkInterceptionPatterns(params: BrowserContextSetNetworkInterceptionPatternsParams, metadata?: CallMetadata): Promise; + setOffline(params: BrowserContextSetOfflineParams, metadata?: CallMetadata): Promise; + storageState(params?: BrowserContextStorageStateParams, metadata?: CallMetadata): Promise; + pause(params?: BrowserContextPauseParams, metadata?: CallMetadata): Promise; + recorderSupplementEnable(params: BrowserContextRecorderSupplementEnableParams, metadata?: CallMetadata): Promise; + newCDPSession(params: BrowserContextNewCDPSessionParams, metadata?: CallMetadata): Promise; + harStart(params: BrowserContextHarStartParams, metadata?: CallMetadata): Promise; + harExport(params: BrowserContextHarExportParams, metadata?: CallMetadata): Promise; + createTempFile(params: BrowserContextCreateTempFileParams, metadata?: CallMetadata): Promise; + updateSubscription(params: BrowserContextUpdateSubscriptionParams, metadata?: CallMetadata): Promise; } export type BrowserContextBindingCallEvent = { binding: BindingCallChannel, @@ -1677,39 +1680,39 @@ export interface PageEventTarget { } export interface PageChannel extends PageEventTarget, EventTargetChannel { _type_Page: boolean; - setDefaultNavigationTimeoutNoReply(params: PageSetDefaultNavigationTimeoutNoReplyParams, metadata?: Metadata): Promise; - setDefaultTimeoutNoReply(params: PageSetDefaultTimeoutNoReplyParams, metadata?: Metadata): Promise; - addInitScript(params: PageAddInitScriptParams, metadata?: Metadata): Promise; - close(params: PageCloseParams, metadata?: Metadata): Promise; - emulateMedia(params: PageEmulateMediaParams, metadata?: Metadata): Promise; - exposeBinding(params: PageExposeBindingParams, metadata?: Metadata): Promise; - goBack(params: PageGoBackParams, metadata?: Metadata): Promise; - goForward(params: PageGoForwardParams, metadata?: Metadata): Promise; - reload(params: PageReloadParams, metadata?: Metadata): Promise; - expectScreenshot(params: PageExpectScreenshotParams, metadata?: Metadata): Promise; - screenshot(params: PageScreenshotParams, metadata?: Metadata): Promise; - setExtraHTTPHeaders(params: PageSetExtraHTTPHeadersParams, metadata?: Metadata): Promise; - setNetworkInterceptionPatterns(params: PageSetNetworkInterceptionPatternsParams, metadata?: Metadata): Promise; - setViewportSize(params: PageSetViewportSizeParams, metadata?: Metadata): Promise; - keyboardDown(params: PageKeyboardDownParams, metadata?: Metadata): Promise; - keyboardUp(params: PageKeyboardUpParams, metadata?: Metadata): Promise; - keyboardInsertText(params: PageKeyboardInsertTextParams, metadata?: Metadata): Promise; - keyboardType(params: PageKeyboardTypeParams, metadata?: Metadata): Promise; - keyboardPress(params: PageKeyboardPressParams, metadata?: Metadata): Promise; - mouseMove(params: PageMouseMoveParams, metadata?: Metadata): Promise; - mouseDown(params: PageMouseDownParams, metadata?: Metadata): Promise; - mouseUp(params: PageMouseUpParams, metadata?: Metadata): Promise; - mouseClick(params: PageMouseClickParams, metadata?: Metadata): Promise; - mouseWheel(params: PageMouseWheelParams, metadata?: Metadata): Promise; - touchscreenTap(params: PageTouchscreenTapParams, metadata?: Metadata): Promise; - accessibilitySnapshot(params: PageAccessibilitySnapshotParams, metadata?: Metadata): Promise; - pdf(params: PagePdfParams, metadata?: Metadata): Promise; - startJSCoverage(params: PageStartJSCoverageParams, metadata?: Metadata): Promise; - stopJSCoverage(params?: PageStopJSCoverageParams, metadata?: Metadata): Promise; - startCSSCoverage(params: PageStartCSSCoverageParams, metadata?: Metadata): Promise; - stopCSSCoverage(params?: PageStopCSSCoverageParams, metadata?: Metadata): Promise; - bringToFront(params?: PageBringToFrontParams, metadata?: Metadata): Promise; - updateSubscription(params: PageUpdateSubscriptionParams, metadata?: Metadata): Promise; + setDefaultNavigationTimeoutNoReply(params: PageSetDefaultNavigationTimeoutNoReplyParams, metadata?: CallMetadata): Promise; + setDefaultTimeoutNoReply(params: PageSetDefaultTimeoutNoReplyParams, metadata?: CallMetadata): Promise; + addInitScript(params: PageAddInitScriptParams, metadata?: CallMetadata): Promise; + close(params: PageCloseParams, metadata?: CallMetadata): Promise; + emulateMedia(params: PageEmulateMediaParams, metadata?: CallMetadata): Promise; + exposeBinding(params: PageExposeBindingParams, metadata?: CallMetadata): Promise; + goBack(params: PageGoBackParams, metadata?: CallMetadata): Promise; + goForward(params: PageGoForwardParams, metadata?: CallMetadata): Promise; + reload(params: PageReloadParams, metadata?: CallMetadata): Promise; + expectScreenshot(params: PageExpectScreenshotParams, metadata?: CallMetadata): Promise; + screenshot(params: PageScreenshotParams, metadata?: CallMetadata): Promise; + setExtraHTTPHeaders(params: PageSetExtraHTTPHeadersParams, metadata?: CallMetadata): Promise; + setNetworkInterceptionPatterns(params: PageSetNetworkInterceptionPatternsParams, metadata?: CallMetadata): Promise; + setViewportSize(params: PageSetViewportSizeParams, metadata?: CallMetadata): Promise; + keyboardDown(params: PageKeyboardDownParams, metadata?: CallMetadata): Promise; + keyboardUp(params: PageKeyboardUpParams, metadata?: CallMetadata): Promise; + keyboardInsertText(params: PageKeyboardInsertTextParams, metadata?: CallMetadata): Promise; + keyboardType(params: PageKeyboardTypeParams, metadata?: CallMetadata): Promise; + keyboardPress(params: PageKeyboardPressParams, metadata?: CallMetadata): Promise; + mouseMove(params: PageMouseMoveParams, metadata?: CallMetadata): Promise; + mouseDown(params: PageMouseDownParams, metadata?: CallMetadata): Promise; + mouseUp(params: PageMouseUpParams, metadata?: CallMetadata): Promise; + mouseClick(params: PageMouseClickParams, metadata?: CallMetadata): Promise; + mouseWheel(params: PageMouseWheelParams, metadata?: CallMetadata): Promise; + touchscreenTap(params: PageTouchscreenTapParams, metadata?: CallMetadata): Promise; + accessibilitySnapshot(params: PageAccessibilitySnapshotParams, metadata?: CallMetadata): Promise; + pdf(params: PagePdfParams, metadata?: CallMetadata): Promise; + startJSCoverage(params: PageStartJSCoverageParams, metadata?: CallMetadata): Promise; + stopJSCoverage(params?: PageStopJSCoverageParams, metadata?: CallMetadata): Promise; + startCSSCoverage(params: PageStartCSSCoverageParams, metadata?: CallMetadata): Promise; + stopCSSCoverage(params?: PageStopCSSCoverageParams, metadata?: CallMetadata): Promise; + bringToFront(params?: PageBringToFrontParams, metadata?: CallMetadata): Promise; + updateSubscription(params: PageUpdateSubscriptionParams, metadata?: CallMetadata): Promise; } export type PageBindingCallEvent = { binding: BindingCallChannel, @@ -2188,52 +2191,52 @@ export interface FrameEventTarget { } export interface FrameChannel extends FrameEventTarget, Channel { _type_Frame: boolean; - evalOnSelector(params: FrameEvalOnSelectorParams, metadata?: Metadata): Promise; - evalOnSelectorAll(params: FrameEvalOnSelectorAllParams, metadata?: Metadata): Promise; - addScriptTag(params: FrameAddScriptTagParams, metadata?: Metadata): Promise; - addStyleTag(params: FrameAddStyleTagParams, metadata?: Metadata): Promise; - blur(params: FrameBlurParams, metadata?: Metadata): Promise; - check(params: FrameCheckParams, metadata?: Metadata): Promise; - click(params: FrameClickParams, metadata?: Metadata): Promise; - content(params?: FrameContentParams, metadata?: Metadata): Promise; - dragAndDrop(params: FrameDragAndDropParams, metadata?: Metadata): Promise; - dblclick(params: FrameDblclickParams, metadata?: Metadata): Promise; - dispatchEvent(params: FrameDispatchEventParams, metadata?: Metadata): Promise; - evaluateExpression(params: FrameEvaluateExpressionParams, metadata?: Metadata): Promise; - evaluateExpressionHandle(params: FrameEvaluateExpressionHandleParams, metadata?: Metadata): Promise; - fill(params: FrameFillParams, metadata?: Metadata): Promise; - focus(params: FrameFocusParams, metadata?: Metadata): Promise; - frameElement(params?: FrameFrameElementParams, metadata?: Metadata): Promise; - highlight(params: FrameHighlightParams, metadata?: Metadata): Promise; - getAttribute(params: FrameGetAttributeParams, metadata?: Metadata): Promise; - goto(params: FrameGotoParams, metadata?: Metadata): Promise; - hover(params: FrameHoverParams, metadata?: Metadata): Promise; - innerHTML(params: FrameInnerHTMLParams, metadata?: Metadata): Promise; - innerText(params: FrameInnerTextParams, metadata?: Metadata): Promise; - inputValue(params: FrameInputValueParams, metadata?: Metadata): Promise; - isChecked(params: FrameIsCheckedParams, metadata?: Metadata): Promise; - isDisabled(params: FrameIsDisabledParams, metadata?: Metadata): Promise; - isEnabled(params: FrameIsEnabledParams, metadata?: Metadata): Promise; - isHidden(params: FrameIsHiddenParams, metadata?: Metadata): Promise; - isVisible(params: FrameIsVisibleParams, metadata?: Metadata): Promise; - isEditable(params: FrameIsEditableParams, metadata?: Metadata): Promise; - press(params: FramePressParams, metadata?: Metadata): Promise; - querySelector(params: FrameQuerySelectorParams, metadata?: Metadata): Promise; - querySelectorAll(params: FrameQuerySelectorAllParams, metadata?: Metadata): Promise; - queryCount(params: FrameQueryCountParams, metadata?: Metadata): Promise; - selectOption(params: FrameSelectOptionParams, metadata?: Metadata): Promise; - setContent(params: FrameSetContentParams, metadata?: Metadata): Promise; - setInputFiles(params: FrameSetInputFilesParams, metadata?: Metadata): Promise; - setInputFilePaths(params: FrameSetInputFilePathsParams, metadata?: Metadata): Promise; - tap(params: FrameTapParams, metadata?: Metadata): Promise; - textContent(params: FrameTextContentParams, metadata?: Metadata): Promise; - title(params?: FrameTitleParams, metadata?: Metadata): Promise; - type(params: FrameTypeParams, metadata?: Metadata): Promise; - uncheck(params: FrameUncheckParams, metadata?: Metadata): Promise; - waitForTimeout(params: FrameWaitForTimeoutParams, metadata?: Metadata): Promise; - waitForFunction(params: FrameWaitForFunctionParams, metadata?: Metadata): Promise; - waitForSelector(params: FrameWaitForSelectorParams, metadata?: Metadata): Promise; - expect(params: FrameExpectParams, metadata?: Metadata): Promise; + evalOnSelector(params: FrameEvalOnSelectorParams, metadata?: CallMetadata): Promise; + evalOnSelectorAll(params: FrameEvalOnSelectorAllParams, metadata?: CallMetadata): Promise; + addScriptTag(params: FrameAddScriptTagParams, metadata?: CallMetadata): Promise; + addStyleTag(params: FrameAddStyleTagParams, metadata?: CallMetadata): Promise; + blur(params: FrameBlurParams, metadata?: CallMetadata): Promise; + check(params: FrameCheckParams, metadata?: CallMetadata): Promise; + click(params: FrameClickParams, metadata?: CallMetadata): Promise; + content(params?: FrameContentParams, metadata?: CallMetadata): Promise; + dragAndDrop(params: FrameDragAndDropParams, metadata?: CallMetadata): Promise; + dblclick(params: FrameDblclickParams, metadata?: CallMetadata): Promise; + dispatchEvent(params: FrameDispatchEventParams, metadata?: CallMetadata): Promise; + evaluateExpression(params: FrameEvaluateExpressionParams, metadata?: CallMetadata): Promise; + evaluateExpressionHandle(params: FrameEvaluateExpressionHandleParams, metadata?: CallMetadata): Promise; + fill(params: FrameFillParams, metadata?: CallMetadata): Promise; + focus(params: FrameFocusParams, metadata?: CallMetadata): Promise; + frameElement(params?: FrameFrameElementParams, metadata?: CallMetadata): Promise; + highlight(params: FrameHighlightParams, metadata?: CallMetadata): Promise; + getAttribute(params: FrameGetAttributeParams, metadata?: CallMetadata): Promise; + goto(params: FrameGotoParams, metadata?: CallMetadata): Promise; + hover(params: FrameHoverParams, metadata?: CallMetadata): Promise; + innerHTML(params: FrameInnerHTMLParams, metadata?: CallMetadata): Promise; + innerText(params: FrameInnerTextParams, metadata?: CallMetadata): Promise; + inputValue(params: FrameInputValueParams, metadata?: CallMetadata): Promise; + isChecked(params: FrameIsCheckedParams, metadata?: CallMetadata): Promise; + isDisabled(params: FrameIsDisabledParams, metadata?: CallMetadata): Promise; + isEnabled(params: FrameIsEnabledParams, metadata?: CallMetadata): Promise; + isHidden(params: FrameIsHiddenParams, metadata?: CallMetadata): Promise; + isVisible(params: FrameIsVisibleParams, metadata?: CallMetadata): Promise; + isEditable(params: FrameIsEditableParams, metadata?: CallMetadata): Promise; + press(params: FramePressParams, metadata?: CallMetadata): Promise; + querySelector(params: FrameQuerySelectorParams, metadata?: CallMetadata): Promise; + querySelectorAll(params: FrameQuerySelectorAllParams, metadata?: CallMetadata): Promise; + queryCount(params: FrameQueryCountParams, metadata?: CallMetadata): Promise; + selectOption(params: FrameSelectOptionParams, metadata?: CallMetadata): Promise; + setContent(params: FrameSetContentParams, metadata?: CallMetadata): Promise; + setInputFiles(params: FrameSetInputFilesParams, metadata?: CallMetadata): Promise; + setInputFilePaths(params: FrameSetInputFilePathsParams, metadata?: CallMetadata): Promise; + tap(params: FrameTapParams, metadata?: CallMetadata): Promise; + textContent(params: FrameTextContentParams, metadata?: CallMetadata): Promise; + title(params?: FrameTitleParams, metadata?: CallMetadata): Promise; + type(params: FrameTypeParams, metadata?: CallMetadata): Promise; + uncheck(params: FrameUncheckParams, metadata?: CallMetadata): Promise; + waitForTimeout(params: FrameWaitForTimeoutParams, metadata?: CallMetadata): Promise; + waitForFunction(params: FrameWaitForFunctionParams, metadata?: CallMetadata): Promise; + waitForSelector(params: FrameWaitForSelectorParams, metadata?: CallMetadata): Promise; + expect(params: FrameExpectParams, metadata?: CallMetadata): Promise; } export type FrameLoadstateEvent = { add?: LifecycleEvent, @@ -2889,8 +2892,8 @@ export interface WorkerEventTarget { } export interface WorkerChannel extends WorkerEventTarget, Channel { _type_Worker: boolean; - evaluateExpression(params: WorkerEvaluateExpressionParams, metadata?: Metadata): Promise; - evaluateExpressionHandle(params: WorkerEvaluateExpressionHandleParams, metadata?: Metadata): Promise; + evaluateExpression(params: WorkerEvaluateExpressionParams, metadata?: CallMetadata): Promise; + evaluateExpressionHandle(params: WorkerEvaluateExpressionHandleParams, metadata?: CallMetadata): Promise; } export type WorkerCloseEvent = {}; export type WorkerEvaluateExpressionParams = { @@ -2929,12 +2932,12 @@ export interface JSHandleEventTarget { } export interface JSHandleChannel extends JSHandleEventTarget, Channel { _type_JSHandle: boolean; - dispose(params?: JSHandleDisposeParams, metadata?: Metadata): Promise; - evaluateExpression(params: JSHandleEvaluateExpressionParams, metadata?: Metadata): Promise; - evaluateExpressionHandle(params: JSHandleEvaluateExpressionHandleParams, metadata?: Metadata): Promise; - getPropertyList(params?: JSHandleGetPropertyListParams, metadata?: Metadata): Promise; - getProperty(params: JSHandleGetPropertyParams, metadata?: Metadata): Promise; - jsonValue(params?: JSHandleJsonValueParams, metadata?: Metadata): Promise; + dispose(params?: JSHandleDisposeParams, metadata?: CallMetadata): Promise; + evaluateExpression(params: JSHandleEvaluateExpressionParams, metadata?: CallMetadata): Promise; + evaluateExpressionHandle(params: JSHandleEvaluateExpressionHandleParams, metadata?: CallMetadata): Promise; + getPropertyList(params?: JSHandleGetPropertyListParams, metadata?: CallMetadata): Promise; + getProperty(params: JSHandleGetPropertyParams, metadata?: CallMetadata): Promise; + jsonValue(params?: JSHandleJsonValueParams, metadata?: CallMetadata): Promise; } export type JSHandlePreviewUpdatedEvent = { preview: string, @@ -2997,43 +3000,43 @@ export interface ElementHandleEventTarget { } export interface ElementHandleChannel extends ElementHandleEventTarget, JSHandleChannel { _type_ElementHandle: boolean; - evalOnSelector(params: ElementHandleEvalOnSelectorParams, metadata?: Metadata): Promise; - evalOnSelectorAll(params: ElementHandleEvalOnSelectorAllParams, metadata?: Metadata): Promise; - boundingBox(params?: ElementHandleBoundingBoxParams, metadata?: Metadata): Promise; - check(params: ElementHandleCheckParams, metadata?: Metadata): Promise; - click(params: ElementHandleClickParams, metadata?: Metadata): Promise; - contentFrame(params?: ElementHandleContentFrameParams, metadata?: Metadata): Promise; - dblclick(params: ElementHandleDblclickParams, metadata?: Metadata): Promise; - dispatchEvent(params: ElementHandleDispatchEventParams, metadata?: Metadata): Promise; - fill(params: ElementHandleFillParams, metadata?: Metadata): Promise; - focus(params?: ElementHandleFocusParams, metadata?: Metadata): Promise; - getAttribute(params: ElementHandleGetAttributeParams, metadata?: Metadata): Promise; - hover(params: ElementHandleHoverParams, metadata?: Metadata): Promise; - innerHTML(params?: ElementHandleInnerHTMLParams, metadata?: Metadata): Promise; - innerText(params?: ElementHandleInnerTextParams, metadata?: Metadata): Promise; - inputValue(params?: ElementHandleInputValueParams, metadata?: Metadata): Promise; - isChecked(params?: ElementHandleIsCheckedParams, metadata?: Metadata): Promise; - isDisabled(params?: ElementHandleIsDisabledParams, metadata?: Metadata): Promise; - isEditable(params?: ElementHandleIsEditableParams, metadata?: Metadata): Promise; - isEnabled(params?: ElementHandleIsEnabledParams, metadata?: Metadata): Promise; - isHidden(params?: ElementHandleIsHiddenParams, metadata?: Metadata): Promise; - isVisible(params?: ElementHandleIsVisibleParams, metadata?: Metadata): Promise; - ownerFrame(params?: ElementHandleOwnerFrameParams, metadata?: Metadata): Promise; - press(params: ElementHandlePressParams, metadata?: Metadata): Promise; - querySelector(params: ElementHandleQuerySelectorParams, metadata?: Metadata): Promise; - querySelectorAll(params: ElementHandleQuerySelectorAllParams, metadata?: Metadata): Promise; - screenshot(params: ElementHandleScreenshotParams, metadata?: Metadata): Promise; - scrollIntoViewIfNeeded(params: ElementHandleScrollIntoViewIfNeededParams, metadata?: Metadata): Promise; - selectOption(params: ElementHandleSelectOptionParams, metadata?: Metadata): Promise; - selectText(params: ElementHandleSelectTextParams, metadata?: Metadata): Promise; - setInputFiles(params: ElementHandleSetInputFilesParams, metadata?: Metadata): Promise; - setInputFilePaths(params: ElementHandleSetInputFilePathsParams, metadata?: Metadata): Promise; - tap(params: ElementHandleTapParams, metadata?: Metadata): Promise; - textContent(params?: ElementHandleTextContentParams, metadata?: Metadata): Promise; - type(params: ElementHandleTypeParams, metadata?: Metadata): Promise; - uncheck(params: ElementHandleUncheckParams, metadata?: Metadata): Promise; - waitForElementState(params: ElementHandleWaitForElementStateParams, metadata?: Metadata): Promise; - waitForSelector(params: ElementHandleWaitForSelectorParams, metadata?: Metadata): Promise; + evalOnSelector(params: ElementHandleEvalOnSelectorParams, metadata?: CallMetadata): Promise; + evalOnSelectorAll(params: ElementHandleEvalOnSelectorAllParams, metadata?: CallMetadata): Promise; + boundingBox(params?: ElementHandleBoundingBoxParams, metadata?: CallMetadata): Promise; + check(params: ElementHandleCheckParams, metadata?: CallMetadata): Promise; + click(params: ElementHandleClickParams, metadata?: CallMetadata): Promise; + contentFrame(params?: ElementHandleContentFrameParams, metadata?: CallMetadata): Promise; + dblclick(params: ElementHandleDblclickParams, metadata?: CallMetadata): Promise; + dispatchEvent(params: ElementHandleDispatchEventParams, metadata?: CallMetadata): Promise; + fill(params: ElementHandleFillParams, metadata?: CallMetadata): Promise; + focus(params?: ElementHandleFocusParams, metadata?: CallMetadata): Promise; + getAttribute(params: ElementHandleGetAttributeParams, metadata?: CallMetadata): Promise; + hover(params: ElementHandleHoverParams, metadata?: CallMetadata): Promise; + innerHTML(params?: ElementHandleInnerHTMLParams, metadata?: CallMetadata): Promise; + innerText(params?: ElementHandleInnerTextParams, metadata?: CallMetadata): Promise; + inputValue(params?: ElementHandleInputValueParams, metadata?: CallMetadata): Promise; + isChecked(params?: ElementHandleIsCheckedParams, metadata?: CallMetadata): Promise; + isDisabled(params?: ElementHandleIsDisabledParams, metadata?: CallMetadata): Promise; + isEditable(params?: ElementHandleIsEditableParams, metadata?: CallMetadata): Promise; + isEnabled(params?: ElementHandleIsEnabledParams, metadata?: CallMetadata): Promise; + isHidden(params?: ElementHandleIsHiddenParams, metadata?: CallMetadata): Promise; + isVisible(params?: ElementHandleIsVisibleParams, metadata?: CallMetadata): Promise; + ownerFrame(params?: ElementHandleOwnerFrameParams, metadata?: CallMetadata): Promise; + press(params: ElementHandlePressParams, metadata?: CallMetadata): Promise; + querySelector(params: ElementHandleQuerySelectorParams, metadata?: CallMetadata): Promise; + querySelectorAll(params: ElementHandleQuerySelectorAllParams, metadata?: CallMetadata): Promise; + screenshot(params: ElementHandleScreenshotParams, metadata?: CallMetadata): Promise; + scrollIntoViewIfNeeded(params: ElementHandleScrollIntoViewIfNeededParams, metadata?: CallMetadata): Promise; + selectOption(params: ElementHandleSelectOptionParams, metadata?: CallMetadata): Promise; + selectText(params: ElementHandleSelectTextParams, metadata?: CallMetadata): Promise; + setInputFiles(params: ElementHandleSetInputFilesParams, metadata?: CallMetadata): Promise; + setInputFilePaths(params: ElementHandleSetInputFilePathsParams, metadata?: CallMetadata): Promise; + tap(params: ElementHandleTapParams, metadata?: CallMetadata): Promise; + textContent(params?: ElementHandleTextContentParams, metadata?: CallMetadata): Promise; + type(params: ElementHandleTypeParams, metadata?: CallMetadata): Promise; + uncheck(params: ElementHandleUncheckParams, metadata?: CallMetadata): Promise; + waitForElementState(params: ElementHandleWaitForElementStateParams, metadata?: CallMetadata): Promise; + waitForSelector(params: ElementHandleWaitForSelectorParams, metadata?: CallMetadata): Promise; } export type ElementHandleEvalOnSelectorParams = { selector: string, @@ -3450,8 +3453,8 @@ export interface RequestEventTarget { } export interface RequestChannel extends RequestEventTarget, Channel { _type_Request: boolean; - response(params?: RequestResponseParams, metadata?: Metadata): Promise; - rawRequestHeaders(params?: RequestRawRequestHeadersParams, metadata?: Metadata): Promise; + response(params?: RequestResponseParams, metadata?: CallMetadata): Promise; + rawRequestHeaders(params?: RequestRawRequestHeadersParams, metadata?: CallMetadata): Promise; } export type RequestResponseParams = {}; export type RequestResponseOptions = {}; @@ -3475,10 +3478,10 @@ export interface RouteEventTarget { } export interface RouteChannel extends RouteEventTarget, Channel { _type_Route: boolean; - redirectNavigationRequest(params: RouteRedirectNavigationRequestParams, metadata?: Metadata): Promise; - abort(params: RouteAbortParams, metadata?: Metadata): Promise; - continue(params: RouteContinueParams, metadata?: Metadata): Promise; - fulfill(params: RouteFulfillParams, metadata?: Metadata): Promise; + redirectNavigationRequest(params: RouteRedirectNavigationRequestParams, metadata?: CallMetadata): Promise; + abort(params: RouteAbortParams, metadata?: CallMetadata): Promise; + continue(params: RouteContinueParams, metadata?: CallMetadata): Promise; + fulfill(params: RouteFulfillParams, metadata?: CallMetadata): Promise; } export type RouteRedirectNavigationRequestParams = { url: string, @@ -3551,11 +3554,11 @@ export interface ResponseEventTarget { } export interface ResponseChannel extends ResponseEventTarget, Channel { _type_Response: boolean; - body(params?: ResponseBodyParams, metadata?: Metadata): Promise; - securityDetails(params?: ResponseSecurityDetailsParams, metadata?: Metadata): Promise; - serverAddr(params?: ResponseServerAddrParams, metadata?: Metadata): Promise; - rawResponseHeaders(params?: ResponseRawResponseHeadersParams, metadata?: Metadata): Promise; - sizes(params?: ResponseSizesParams, metadata?: Metadata): Promise; + body(params?: ResponseBodyParams, metadata?: CallMetadata): Promise; + securityDetails(params?: ResponseSecurityDetailsParams, metadata?: CallMetadata): Promise; + serverAddr(params?: ResponseServerAddrParams, metadata?: CallMetadata): Promise; + rawResponseHeaders(params?: ResponseRawResponseHeadersParams, metadata?: CallMetadata): Promise; + sizes(params?: ResponseSizesParams, metadata?: CallMetadata): Promise; } export type ResponseBodyParams = {}; export type ResponseBodyOptions = {}; @@ -3673,8 +3676,8 @@ export interface BindingCallEventTarget { } export interface BindingCallChannel extends BindingCallEventTarget, Channel { _type_BindingCall: boolean; - reject(params: BindingCallRejectParams, metadata?: Metadata): Promise; - resolve(params: BindingCallResolveParams, metadata?: Metadata): Promise; + reject(params: BindingCallRejectParams, metadata?: CallMetadata): Promise; + resolve(params: BindingCallResolveParams, metadata?: CallMetadata): Promise; } export type BindingCallRejectParams = { error: SerializedError, @@ -3704,8 +3707,8 @@ export interface DialogEventTarget { } export interface DialogChannel extends DialogEventTarget, Channel { _type_Dialog: boolean; - accept(params: DialogAcceptParams, metadata?: Metadata): Promise; - dismiss(params?: DialogDismissParams, metadata?: Metadata): Promise; + accept(params: DialogAcceptParams, metadata?: CallMetadata): Promise; + dismiss(params?: DialogDismissParams, metadata?: CallMetadata): Promise; } export type DialogAcceptParams = { promptText?: string, @@ -3727,10 +3730,10 @@ export interface TracingEventTarget { } export interface TracingChannel extends TracingEventTarget, Channel { _type_Tracing: boolean; - tracingStart(params: TracingTracingStartParams, metadata?: Metadata): Promise; - tracingStartChunk(params: TracingTracingStartChunkParams, metadata?: Metadata): Promise; - tracingStopChunk(params: TracingTracingStopChunkParams, metadata?: Metadata): Promise; - tracingStop(params?: TracingTracingStopParams, metadata?: Metadata): Promise; + tracingStart(params: TracingTracingStartParams, metadata?: CallMetadata): Promise; + tracingStartChunk(params: TracingTracingStartChunkParams, metadata?: CallMetadata): Promise; + tracingStopChunk(params: TracingTracingStopChunkParams, metadata?: CallMetadata): Promise; + tracingStop(params?: TracingTracingStopParams, metadata?: CallMetadata): Promise; } export type TracingTracingStartParams = { name?: string, @@ -3777,13 +3780,13 @@ export interface ArtifactEventTarget { } export interface ArtifactChannel extends ArtifactEventTarget, Channel { _type_Artifact: boolean; - pathAfterFinished(params?: ArtifactPathAfterFinishedParams, metadata?: Metadata): Promise; - saveAs(params: ArtifactSaveAsParams, metadata?: Metadata): Promise; - saveAsStream(params?: ArtifactSaveAsStreamParams, metadata?: Metadata): Promise; - failure(params?: ArtifactFailureParams, metadata?: Metadata): Promise; - stream(params?: ArtifactStreamParams, metadata?: Metadata): Promise; - cancel(params?: ArtifactCancelParams, metadata?: Metadata): Promise; - delete(params?: ArtifactDeleteParams, metadata?: Metadata): Promise; + pathAfterFinished(params?: ArtifactPathAfterFinishedParams, metadata?: CallMetadata): Promise; + saveAs(params: ArtifactSaveAsParams, metadata?: CallMetadata): Promise; + saveAsStream(params?: ArtifactSaveAsStreamParams, metadata?: CallMetadata): Promise; + failure(params?: ArtifactFailureParams, metadata?: CallMetadata): Promise; + stream(params?: ArtifactStreamParams, metadata?: CallMetadata): Promise; + cancel(params?: ArtifactCancelParams, metadata?: CallMetadata): Promise; + delete(params?: ArtifactDeleteParams, metadata?: CallMetadata): Promise; } export type ArtifactPathAfterFinishedParams = {}; export type ArtifactPathAfterFinishedOptions = {}; @@ -3828,8 +3831,8 @@ export interface StreamEventTarget { } export interface StreamChannel extends StreamEventTarget, Channel { _type_Stream: boolean; - read(params: StreamReadParams, metadata?: Metadata): Promise; - close(params?: StreamCloseParams, metadata?: Metadata): Promise; + read(params: StreamReadParams, metadata?: CallMetadata): Promise; + close(params?: StreamCloseParams, metadata?: CallMetadata): Promise; } export type StreamReadParams = { size?: number, @@ -3853,8 +3856,8 @@ export interface WritableStreamEventTarget { } export interface WritableStreamChannel extends WritableStreamEventTarget, Channel { _type_WritableStream: boolean; - write(params: WritableStreamWriteParams, metadata?: Metadata): Promise; - close(params?: WritableStreamCloseParams, metadata?: Metadata): Promise; + write(params: WritableStreamWriteParams, metadata?: CallMetadata): Promise; + close(params?: WritableStreamCloseParams, metadata?: CallMetadata): Promise; } export type WritableStreamWriteParams = { binary: Binary, @@ -3877,8 +3880,8 @@ export interface CDPSessionEventTarget { } export interface CDPSessionChannel extends CDPSessionEventTarget, Channel { _type_CDPSession: boolean; - send(params: CDPSessionSendParams, metadata?: Metadata): Promise; - detach(params?: CDPSessionDetachParams, metadata?: Metadata): Promise; + send(params: CDPSessionSendParams, metadata?: CallMetadata): Promise; + detach(params?: CDPSessionDetachParams, metadata?: CallMetadata): Promise; } export type CDPSessionEventEvent = { method: string, @@ -3908,7 +3911,7 @@ export interface ElectronEventTarget { } export interface ElectronChannel extends ElectronEventTarget, Channel { _type_Electron: boolean; - launch(params: ElectronLaunchParams, metadata?: Metadata): Promise; + launch(params: ElectronLaunchParams, metadata?: CallMetadata): Promise; } export type ElectronLaunchParams = { executablePath?: string, @@ -3992,10 +3995,10 @@ export interface ElectronApplicationEventTarget { } export interface ElectronApplicationChannel extends ElectronApplicationEventTarget, EventTargetChannel { _type_ElectronApplication: boolean; - browserWindow(params: ElectronApplicationBrowserWindowParams, metadata?: Metadata): Promise; - evaluateExpression(params: ElectronApplicationEvaluateExpressionParams, metadata?: Metadata): Promise; - evaluateExpressionHandle(params: ElectronApplicationEvaluateExpressionHandleParams, metadata?: Metadata): Promise; - close(params?: ElectronApplicationCloseParams, metadata?: Metadata): Promise; + browserWindow(params: ElectronApplicationBrowserWindowParams, metadata?: CallMetadata): Promise; + evaluateExpression(params: ElectronApplicationEvaluateExpressionParams, metadata?: CallMetadata): Promise; + evaluateExpressionHandle(params: ElectronApplicationEvaluateExpressionHandleParams, metadata?: CallMetadata): Promise; + close(params?: ElectronApplicationCloseParams, metadata?: CallMetadata): Promise; } export type ElectronApplicationCloseEvent = {}; export type ElectronApplicationBrowserWindowParams = { @@ -4043,8 +4046,8 @@ export interface AndroidEventTarget { } export interface AndroidChannel extends AndroidEventTarget, Channel { _type_Android: boolean; - devices(params: AndroidDevicesParams, metadata?: Metadata): Promise; - setDefaultTimeoutNoReply(params: AndroidSetDefaultTimeoutNoReplyParams, metadata?: Metadata): Promise; + devices(params: AndroidDevicesParams, metadata?: CallMetadata): Promise; + setDefaultTimeoutNoReply(params: AndroidSetDefaultTimeoutNoReplyParams, metadata?: CallMetadata): Promise; } export type AndroidDevicesParams = { host?: string, @@ -4078,8 +4081,8 @@ export interface AndroidSocketEventTarget { } export interface AndroidSocketChannel extends AndroidSocketEventTarget, Channel { _type_AndroidSocket: boolean; - write(params: AndroidSocketWriteParams, metadata?: Metadata): Promise; - close(params?: AndroidSocketCloseParams, metadata?: Metadata): Promise; + write(params: AndroidSocketWriteParams, metadata?: CallMetadata): Promise; + close(params?: AndroidSocketCloseParams, metadata?: CallMetadata): Promise; } export type AndroidSocketDataEvent = { data: Binary, @@ -4113,31 +4116,31 @@ export interface AndroidDeviceEventTarget { } export interface AndroidDeviceChannel extends AndroidDeviceEventTarget, EventTargetChannel { _type_AndroidDevice: boolean; - wait(params: AndroidDeviceWaitParams, metadata?: Metadata): Promise; - fill(params: AndroidDeviceFillParams, metadata?: Metadata): Promise; - tap(params: AndroidDeviceTapParams, metadata?: Metadata): Promise; - drag(params: AndroidDeviceDragParams, metadata?: Metadata): Promise; - fling(params: AndroidDeviceFlingParams, metadata?: Metadata): Promise; - longTap(params: AndroidDeviceLongTapParams, metadata?: Metadata): Promise; - pinchClose(params: AndroidDevicePinchCloseParams, metadata?: Metadata): Promise; - pinchOpen(params: AndroidDevicePinchOpenParams, metadata?: Metadata): Promise; - scroll(params: AndroidDeviceScrollParams, metadata?: Metadata): Promise; - swipe(params: AndroidDeviceSwipeParams, metadata?: Metadata): Promise; - info(params: AndroidDeviceInfoParams, metadata?: Metadata): Promise; - screenshot(params?: AndroidDeviceScreenshotParams, metadata?: Metadata): Promise; - inputType(params: AndroidDeviceInputTypeParams, metadata?: Metadata): Promise; - inputPress(params: AndroidDeviceInputPressParams, metadata?: Metadata): Promise; - inputTap(params: AndroidDeviceInputTapParams, metadata?: Metadata): Promise; - inputSwipe(params: AndroidDeviceInputSwipeParams, metadata?: Metadata): Promise; - inputDrag(params: AndroidDeviceInputDragParams, metadata?: Metadata): Promise; - launchBrowser(params: AndroidDeviceLaunchBrowserParams, metadata?: Metadata): Promise; - open(params: AndroidDeviceOpenParams, metadata?: Metadata): Promise; - shell(params: AndroidDeviceShellParams, metadata?: Metadata): Promise; - installApk(params: AndroidDeviceInstallApkParams, metadata?: Metadata): Promise; - push(params: AndroidDevicePushParams, metadata?: Metadata): Promise; - setDefaultTimeoutNoReply(params: AndroidDeviceSetDefaultTimeoutNoReplyParams, metadata?: Metadata): Promise; - connectToWebView(params: AndroidDeviceConnectToWebViewParams, metadata?: Metadata): Promise; - close(params?: AndroidDeviceCloseParams, metadata?: Metadata): Promise; + wait(params: AndroidDeviceWaitParams, metadata?: CallMetadata): Promise; + fill(params: AndroidDeviceFillParams, metadata?: CallMetadata): Promise; + tap(params: AndroidDeviceTapParams, metadata?: CallMetadata): Promise; + drag(params: AndroidDeviceDragParams, metadata?: CallMetadata): Promise; + fling(params: AndroidDeviceFlingParams, metadata?: CallMetadata): Promise; + longTap(params: AndroidDeviceLongTapParams, metadata?: CallMetadata): Promise; + pinchClose(params: AndroidDevicePinchCloseParams, metadata?: CallMetadata): Promise; + pinchOpen(params: AndroidDevicePinchOpenParams, metadata?: CallMetadata): Promise; + scroll(params: AndroidDeviceScrollParams, metadata?: CallMetadata): Promise; + swipe(params: AndroidDeviceSwipeParams, metadata?: CallMetadata): Promise; + info(params: AndroidDeviceInfoParams, metadata?: CallMetadata): Promise; + screenshot(params?: AndroidDeviceScreenshotParams, metadata?: CallMetadata): Promise; + inputType(params: AndroidDeviceInputTypeParams, metadata?: CallMetadata): Promise; + inputPress(params: AndroidDeviceInputPressParams, metadata?: CallMetadata): Promise; + inputTap(params: AndroidDeviceInputTapParams, metadata?: CallMetadata): Promise; + inputSwipe(params: AndroidDeviceInputSwipeParams, metadata?: CallMetadata): Promise; + inputDrag(params: AndroidDeviceInputDragParams, metadata?: CallMetadata): Promise; + launchBrowser(params: AndroidDeviceLaunchBrowserParams, metadata?: CallMetadata): Promise; + open(params: AndroidDeviceOpenParams, metadata?: CallMetadata): Promise; + shell(params: AndroidDeviceShellParams, metadata?: CallMetadata): Promise; + installApk(params: AndroidDeviceInstallApkParams, metadata?: CallMetadata): Promise; + push(params: AndroidDevicePushParams, metadata?: CallMetadata): Promise; + setDefaultTimeoutNoReply(params: AndroidDeviceSetDefaultTimeoutNoReplyParams, metadata?: CallMetadata): Promise; + connectToWebView(params: AndroidDeviceConnectToWebViewParams, metadata?: CallMetadata): Promise; + close(params?: AndroidDeviceCloseParams, metadata?: CallMetadata): Promise; } export type AndroidDeviceCloseEvent = {}; export type AndroidDeviceWebViewAddedEvent = { @@ -4535,8 +4538,8 @@ export interface JsonPipeEventTarget { } export interface JsonPipeChannel extends JsonPipeEventTarget, Channel { _type_JsonPipe: boolean; - send(params: JsonPipeSendParams, metadata?: Metadata): Promise; - close(params?: JsonPipeCloseParams, metadata?: Metadata): Promise; + send(params: JsonPipeSendParams, metadata?: CallMetadata): Promise; + close(params?: JsonPipeCloseParams, metadata?: CallMetadata): Promise; } export type JsonPipeMessageEvent = { message: any, diff --git a/packages/protocol/src/protocol.yml b/packages/protocol/src/protocol.yml index bbe7c001d6..f1f14d5653 100644 --- a/packages/protocol/src/protocol.yml +++ b/packages/protocol/src/protocol.yml @@ -33,6 +33,8 @@ Metadata: column: number? apiName: string? internal: boolean? + # The number of milliseconds elapsed since midnight, January 1, 1970 UTC. + wallTime: number? ClientSideCallMetadata: type: object diff --git a/packages/trace-viewer/src/ui/callTab.tsx b/packages/trace-viewer/src/ui/callTab.tsx index c604e7393e..58874f8bab 100644 --- a/packages/trace-viewer/src/ui/callTab.tsx +++ b/packages/trace-viewer/src/ui/callTab.tsx @@ -36,7 +36,7 @@ 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 wallTime = action.metadata.wallTime ? new Date(action.metadata.wallTime).toLocaleString() : null; const duration = action.metadata.endTime ? msToString(action.metadata.endTime - action.metadata.startTime) : 'Timed Out'; return