remove Network.enable buffering override
This commit is contained in:
@@ -360,23 +360,6 @@ export async function startPlayWriterCDPRelayServer({ port = 19988, host = '127.
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Network.enable: Default to zero buffering to fix SSE streaming issues.
|
|
||||||
// CDP's Network domain buffers response bodies by default, which breaks ReadableStream
|
|
||||||
// for SSE/streaming responses. Setting maxTotalBufferSize: 0 disables this buffering.
|
|
||||||
// Agents can re-enable buffering by calling Network.disable then Network.enable with
|
|
||||||
// explicit buffer sizes if they need to read response bodies via Network.getResponseBody.
|
|
||||||
case 'Network.enable': {
|
|
||||||
const modifiedParams = {
|
|
||||||
maxTotalBufferSize: 0,
|
|
||||||
maxResourceBufferSize: 0,
|
|
||||||
...params
|
|
||||||
}
|
|
||||||
return await sendToExtension({
|
|
||||||
method: 'forwardCDPCommand',
|
|
||||||
params: { sessionId, method, params: modifiedParams }
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'Runtime.enable': {
|
case 'Runtime.enable': {
|
||||||
if (!sessionId) {
|
if (!sessionId) {
|
||||||
break
|
break
|
||||||
|
|||||||
@@ -481,31 +481,6 @@ console.log(data);
|
|||||||
|
|
||||||
Clean up listeners when done: `page.removeAllListeners('request'); page.removeAllListeners('response');`
|
Clean up listeners when done: `page.removeAllListeners('request'); page.removeAllListeners('response');`
|
||||||
|
|
||||||
## reading response bodies
|
|
||||||
|
|
||||||
By default, playwriter disables CDP response body buffering to ensure SSE streaming works properly. If you need to read response bodies (e.g., for HAR recording or inspecting API responses), re-enable buffering first:
|
|
||||||
|
|
||||||
```js
|
|
||||||
// Get CDP session and re-enable Network buffering
|
|
||||||
const cdp = await getCDPSession({ page });
|
|
||||||
await cdp.send('Network.disable');
|
|
||||||
await cdp.send('Network.enable', {
|
|
||||||
maxTotalBufferSize: 10000000, // 10MB total buffer
|
|
||||||
maxResourceBufferSize: 5000000 // 5MB per resource
|
|
||||||
});
|
|
||||||
|
|
||||||
// Now use Playwright's response API - it will work because buffering is enabled
|
|
||||||
const [response] = await Promise.all([
|
|
||||||
page.waitForResponse(resp => resp.url().includes('/api/data')),
|
|
||||||
page.click('button.load-data')
|
|
||||||
]);
|
|
||||||
|
|
||||||
const body = await response.text(); // or response.json(), response.body()
|
|
||||||
console.log(body);
|
|
||||||
```
|
|
||||||
|
|
||||||
**Note**: This may cause SSE/streaming responses to buffer. Only enable when you specifically need response bodies.
|
|
||||||
|
|
||||||
## capabilities
|
## capabilities
|
||||||
|
|
||||||
Examples of what playwriter can do:
|
Examples of what playwriter can do:
|
||||||
|
|||||||
Reference in New Issue
Block a user