UXP CDP WebSocket URL (e.g. ws://127.0.0.1:PORT/socket/cdt/UUID)
The numeric execution context ID obtained from
waitForExecutionContextCreated on the first CDP connection.
import puppeteer from 'puppeteer-core';
import { createUxpPuppeteerTransport } from '@bubblydoo/uxp-puppeteer-transport';
const transport = await createUxpPuppeteerTransport(cdpUrl, executionContextId);
const browser = await puppeteer.connect({ transport, defaultViewport: null });
const [page] = await browser.pages();
const result = await page.evaluate(() => 1 + 1);
Creates a Puppeteer ConnectionTransport that adapts a UXP page-level CDP WebSocket endpoint to look like a full Chrome browser-level endpoint.
Puppeteer's
connect()expects to talk to a browser-level CDP that supportsTarget.*andBrowser.*commands. UXP only exposes a page-level CDP.The returned transport:
Target.targetCreated/Target.attachedToTargetevents as neededPage.getFrameTree,Page.createIsolatedWorld,Runtime.enable)sessionId)sessionIdbefore delivering to Puppeteer