From b3a3845892fd4c44536ab643c1b23d83bf7c8451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Z=C3=BCnd?= Date: Mon, 20 Oct 2025 10:40:57 +0200 Subject: [PATCH 1/3] feat: Add DevTools connection adapter --- src/DevToolsConnectionAdapter.ts | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/DevToolsConnectionAdapter.ts diff --git a/src/DevToolsConnectionAdapter.ts b/src/DevToolsConnectionAdapter.ts new file mode 100644 index 000000000..abcc48046 --- /dev/null +++ b/src/DevToolsConnectionAdapter.ts @@ -0,0 +1,40 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import {type ConnectionTransport} from 'puppeteer-core'; +import {Connection} from '../node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js'; + +/** + * Allows a puppeteer {@link ConnectionTransport} to act like a DevTools {@link Connection}. + */ +class DevToolsConnectionAdapter extends Connection { + #transport: ConnectionTransport|null; + #onDisconnect: ((arg0: string) => void) | null = null; + + constructor(transport: ConnectionTransport) { + super(); + this.#transport = transport; + this.#transport.onclose = () => this.#onDisconnect?.(''); + this.#transport.onmessage = (msg) => this.onMessage?.(msg); + } + + override setOnMessage(onMessage: (arg0: Object|string) => void): void { + this.onMessage = onMessage; + } + + override setOnDisconnect(onDisconnect: (arg0: string) => void): void { + this.#onDisconnect = onDisconnect; + } + + override sendRawMessage(message: string): void { + this.#transport?.send(message); + } + + override async disconnect(): Promise { + this.#transport?.close(); + this.#transport = null; + } +} From 3b910d7a7b089e6644f8f9821557dd251dd780fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Z=C3=BCnd?= Date: Mon, 20 Oct 2025 10:54:31 +0200 Subject: [PATCH 2/3] Format and mark DevToolsConnectionAdapter as unused for now --- src/DevToolsConnectionAdapter.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/DevToolsConnectionAdapter.ts b/src/DevToolsConnectionAdapter.ts index abcc48046..d1c4b55d6 100644 --- a/src/DevToolsConnectionAdapter.ts +++ b/src/DevToolsConnectionAdapter.ts @@ -5,23 +5,24 @@ */ import {type ConnectionTransport} from 'puppeteer-core'; + import {Connection} from '../node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js'; /** * Allows a puppeteer {@link ConnectionTransport} to act like a DevTools {@link Connection}. */ -class DevToolsConnectionAdapter extends Connection { - #transport: ConnectionTransport|null; +class _DevToolsConnectionAdapter extends Connection { + #transport: ConnectionTransport | null; #onDisconnect: ((arg0: string) => void) | null = null; constructor(transport: ConnectionTransport) { super(); this.#transport = transport; this.#transport.onclose = () => this.#onDisconnect?.(''); - this.#transport.onmessage = (msg) => this.onMessage?.(msg); + this.#transport.onmessage = msg => this.onMessage?.(msg); } - override setOnMessage(onMessage: (arg0: Object|string) => void): void { + override setOnMessage(onMessage: (arg0: object | string) => void): void { this.onMessage = onMessage; } From 6ee60da8ab6a609a3a063d6eb0398cb19ce930bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Z=C3=BCnd?= Date: Mon, 20 Oct 2025 10:59:08 +0200 Subject: [PATCH 3/3] Export class instead of prefixing with underscore. Co-authored-by: Alex Rudenko --- src/DevToolsConnectionAdapter.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DevToolsConnectionAdapter.ts b/src/DevToolsConnectionAdapter.ts index d1c4b55d6..814dc7f60 100644 --- a/src/DevToolsConnectionAdapter.ts +++ b/src/DevToolsConnectionAdapter.ts @@ -11,7 +11,7 @@ import {Connection} from '../node_modules/chrome-devtools-frontend/front_end/cor /** * Allows a puppeteer {@link ConnectionTransport} to act like a DevTools {@link Connection}. */ -class _DevToolsConnectionAdapter extends Connection { +export class DevToolsConnectionAdapter extends Connection { #transport: ConnectionTransport | null; #onDisconnect: ((arg0: string) => void) | null = null;