puppeteer
puppeteer copied to clipboard
[Bug]: interceptedRequest.respond hangs the browser until worker timeout
Minimal, reproducible example
import puppeteer from "@cloudflare/puppeteer";
interface Env {
MYBROWSER: Fetcher;
}
export default {
async fetch(request, env): Promise<Response> {
const browser = await puppeteer.launch(env.MYBROWSER);
const page = await browser.newPage();
await page.setRequestInterception(true);
page.on('request', (interceptedRequest) => {
if (interceptedRequest.isInterceptResolutionHandled()) return;
if (interceptedRequest.url().endsWith('.png'))
interceptedRequest.respond({
status: 200,
contentType: 'image/png',
body: Buffer.from('iVBORw0KGgoAAAANSUhEUgAAADAAAAAlAQAAAAAsYlcCAAAACklEQVR4AWMYBQABAwABRUEDtQAAAABJRU5ErkJggg==', 'base64')
});
else interceptedRequest.continue();
});
await page.goto('https://google.com');
let img = (await page.screenshot()) as Buffer;
await browser.close();
return new Response(img, {
headers: {
"content-type": "image/jpeg",
},
});
},
} satisfies ExportedHandler<Env>;
Error string
ce: Navigation timeout of 30000 ms exceeded
Bug behavior
- [ ] Flaky
Background
No response
Expectation
interceptedRequest.respond()
should works as in the upstream Puppeer.
Reality
As soon as interceptedRequest.respond()
is called, the browser hangs until timeout.
Puppeteer configuration file (if used)
No response
Puppeteer version
@cloudflare/[email protected]