diff --git a/packages/playwright-core/src/server/dispatchers/dispatcher.ts b/packages/playwright-core/src/server/dispatchers/dispatcher.ts index 9881a9eeea..0b250fe76e 100644 --- a/packages/playwright-core/src/server/dispatchers/dispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/dispatcher.ts @@ -351,7 +351,7 @@ export class DispatcherConnection { const result = await dispatcher._handleCommand(callMetadata, method, validParams); const validator = findValidator(dispatcher._type, method, 'Result'); response.result = validator(result, '', { tChannelImpl: this._tChannelImplToWire.bind(this), binary: this._isLocal ? 'buffer' : 'toBase64' }); - callMetadata.result = response.result; + callMetadata.result = result; } catch (e) { if (isTargetClosedError(e) && sdkObject) { const reason = closeReason(sdkObject); diff --git a/packages/playwright-core/src/server/trace/recorder/DEPS.list b/packages/playwright-core/src/server/trace/recorder/DEPS.list index 8f5e716a87..201a4b001d 100644 --- a/packages/playwright-core/src/server/trace/recorder/DEPS.list +++ b/packages/playwright-core/src/server/trace/recorder/DEPS.list @@ -6,4 +6,5 @@ ../../../utils/ ../../../utilsBundle.ts ../../../zipBundle.ts -../common/ +../../dispatchers/dispatcher.ts +../common/ \ No newline at end of file diff --git a/packages/playwright-core/src/server/trace/recorder/tracing.ts b/packages/playwright-core/src/server/trace/recorder/tracing.ts index c2f58e654b..52fe777134 100644 --- a/packages/playwright-core/src/server/trace/recorder/tracing.ts +++ b/packages/playwright-core/src/server/trace/recorder/tracing.ts @@ -42,6 +42,7 @@ import type { SnapshotterBlob, SnapshotterDelegate } from './snapshotter'; import { Snapshotter } from './snapshotter'; import { yazl } from '../../../zipBundle'; import type { ConsoleMessage } from '../../console'; +import { Dispatcher } from '../../dispatchers/dispatcher'; const version: trace.VERSION = 6; @@ -496,8 +497,10 @@ export class Tracing extends SdkObject implements InstrumentationListener, Snaps function visitTraceEvent(object: any, sha1s: Set): any { if (Array.isArray(object)) return object.map(o => visitTraceEvent(o, sha1s)); + if (object instanceof Dispatcher) + return `<${(object as Dispatcher)._type}>`; if (object instanceof Buffer) - return undefined; + return ``; if (object instanceof Date) return object; if (typeof object === 'object') { diff --git a/tests/library/tracing.spec.ts b/tests/library/tracing.spec.ts index 61331fc5fe..e0477bd993 100644 --- a/tests/library/tracing.spec.ts +++ b/tests/library/tracing.spec.ts @@ -109,9 +109,7 @@ test('should not collect snapshots by default', async ({ context, page, server } expect(events.some(e => e.type === 'resource-snapshot')).toBeFalsy(); }); -test('should not include buffers in the trace', async ({ context, page, server, mode }, testInfo) => { - test.skip(mode !== 'default', 'no buffers with remote connections'); - +test('should not include buffers in the trace', async ({ context, page, server }, testInfo) => { await context.tracing.start({ snapshots: true }); await page.goto(server.PREFIX + '/empty.html'); await page.screenshot(); @@ -120,7 +118,9 @@ test('should not include buffers in the trace', async ({ context, page, server, const screenshotEvent = actionObjects.find(a => a.apiName === 'page.screenshot'); expect(screenshotEvent.beforeSnapshot).toBeTruthy(); expect(screenshotEvent.afterSnapshot).toBeTruthy(); - expect(screenshotEvent.result).toEqual({}); + expect(screenshotEvent.result).toEqual({ + 'binary': '', + }); }); test('should exclude internal pages', async ({ browserName, context, page, server }, testInfo) => {