I'm using this code to log the encoded response size when loading a page in Chrome:
const puppeteer = require("puppeteer");
(async function() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
page._client.on("Network.loadingFinished", data => {
console.log("finished", { encodedDataLength: data.encodedDataLength });
});
// await page.setRequestInterception(true);
// page.on("request", async request => {
// request.continue();
// });
await page.goto("http://example.com");
await browser.close();
})();
This is the output:
finished { encodedDataLength: 967 }
However, if I uncomment the four lines in the code snippet the output changes to:
finished { encodedDataLength: 0 }
This does make some sense, since the intercepted request could have been modified in some way by the client, and it would not have been gzipped again afterwards.
However, is there a way to access the original gzipped response size?
The Chrome trace also doesn't include the gzipped size:
"encodedDataLength": 0, "decodedBodyLength": 1270,