diff --git a/packages/playwright-cloudflare/index.d.ts b/packages/playwright-cloudflare/index.d.ts index d92dacf4a..8d13eb65f 100644 --- a/packages/playwright-cloudflare/index.d.ts +++ b/packages/playwright-cloudflare/index.d.ts @@ -86,6 +86,7 @@ export interface LimitsResponse { */ export interface WorkersLaunchOptions { keep_alive?: number; // milliseconds to keep browser alive even if it has no activity (from 10_000ms to 600_000ms, default is 60_000) + recording?: boolean; } // Extracts the keys whose values match a specified type `ValueType` diff --git a/packages/playwright-cloudflare/src/index.ts b/packages/playwright-cloudflare/src/index.ts index 51330adfe..758d83460 100644 --- a/packages/playwright-cloudflare/src/index.ts +++ b/packages/playwright-cloudflare/src/index.ts @@ -145,16 +145,21 @@ export async function launch(endpoint: BrowserEndpoint, launchOptions?: WorkersL export async function acquire(endpoint: BrowserEndpoint, options?: WorkersLaunchOptions): Promise { options = { ...extractOptions(endpoint), ...options }; - let acquireUrl = `${HTTP_FAKE_HOST}/v1/acquire`; + + // add options to acquire endpoint as query parameters + const searchParams = new URLSearchParams(); if (options?.keep_alive) - acquireUrl = `${acquireUrl}?keep_alive=${options.keep_alive}`; + searchParams.set("keep_alive", options.keep_alive.toString()); + if (options?.recording) + searchParams.set("recording", options.recording.toString()); + const acquireUrl = `${HTTP_FAKE_HOST}/v1/acquire?${searchParams.toString()}`; const res = await getBrowserBinding(endpoint).fetch(acquireUrl); const status = res.status; const text = await res.text(); if (status !== 200) { throw new Error( - `Unable to create new browser: code: ${status}: message: ${text}` + `Unable to create new browser: code: ${status}: message: ${text}` ); } // Got a 200, so response text is actually an AcquireResponse