[umbrella] Fix Request Interception
See original GitHub issueUmbrella bug for all request interception issues in Puppeteer. This mostly depends on upstream Chromium bug: https://crbug.com/899386
Description
DevTools Protocol emits two events for every intercepted request:
Puppeteer extracts different pieces of information from these events. However, since interceptionId
and requestId
aren’t matching, Puppeteer uses heuristics to match these events together. This is necessary to provide a consistent API to our clients.
Unfortunately, these heuristics aren’t reliable and break under different corner cases: #1664, #2848, #3030, #3369 and so on.
Mitigation
We weren’t able to fix this upstream up until today due to the network stack refactoring in Chromium. Now, with Network Service getting gradually adopted, we can fix this upstream.
The plan is:
- Enable Network Service by default to Puppeteer users
- Fix network instrumentation in DevTools protocol for the Network Service and migrate onto it. (see https://crbug.com/899386).
Issue Analytics
- State:
- Created 5 years ago
- Reactions:36
- Comments:53 (13 by maintainers)
Top GitHub Comments
The fix has landed and will be available in the next release (will be published in the end of April / beginning of may 2019). 🎉
For now, please give it a try with 👉
npm i puppeteer@next
@sradu we’re working on it. Still no ETA.