With request interception enabled, protocol currently emits two events for every request:
- requestWillBeSent(requestId)
- requestIntercepted(interceptionId)
Since interceptionId and requestId aren't matching, clients (e.g. Puppeteer) use all kinds of heuristics to match these events together.
However, these heuristics aren't reliable and break under different corner cases.
To make request interception story reliable, we need to pass matching requestId in the requestIntercepted events. Since NetworkService is almost there, this seems to quite feasible.