UNPKG

@wdio/devtools-service

Version:

A WebdriverIO service that allows you to run Chrome DevTools commands in your tests

60 lines 2.04 kB
import { EventEmitter } from 'node:events'; import type { Protocol } from 'devtools-protocol'; import type { TraceEvent } from '@tracerbench/trace-event'; import type { HTTPRequest } from 'puppeteer-core/lib/esm/puppeteer/api/HTTPRequest.js'; import type { CDPSession } from 'puppeteer-core/lib/esm/puppeteer/api/CDPSession.js'; import type { Page } from 'puppeteer-core/lib/esm/puppeteer/api/Page.js'; import type { GathererDriver } from '../types.js'; export interface Trace { traceEvents: TraceEvent[]; frameId?: string; loaderId?: string; pageUrl?: string; traceStart?: number; traceEnd?: number; } export interface WaitPromise { promise: Promise<any>; cancel: Function; } export default class TraceGatherer extends EventEmitter { private _session; private _page; private _driver; private _failingFrameLoadIds; private _pageLoadDetected; private _networkListeners; private _frameId?; private _loaderId?; private _pageUrl?; private _networkStatusMonitor; private _networkMonitor; private _protocolSession; private _trace?; private _traceStart?; private _clickTraceTimeout?; private _waitConditionPromises; constructor(_session: CDPSession, _page: Page, _driver: GathererDriver); startTracing(url: string): Promise<void>; /** * store frame id of frames that are being traced */ onFrameNavigated(msgObj: Protocol.Page.FrameNavigatedEvent): Promise<void>; /** * once the page load event has fired, we can grab some performance * metrics and timing */ onLoadEventFired(): Promise<void>; onFrameLoadFail(request: HTTPRequest): void; get isTracing(): boolean; /** * once tracing has finished capture trace logs into memory */ completeTracing(): Promise<void>; /** * clear tracing states and emit tracingFinished */ finishTracing(): void; waitForMaxTimeout(maxWaitForLoadedMs?: number): Promise<() => Promise<void>>; } //# sourceMappingURL=trace.d.ts.map