diff --git a/src/chromium/crNetworkManager.ts b/src/chromium/crNetworkManager.ts index 1b1e5f8d9f..c4c4585ebc 100644 --- a/src/chromium/crNetworkManager.ts +++ b/src/chromium/crNetworkManager.ts @@ -140,7 +140,17 @@ export class CRNetworkManager { requestId: event.requestId }).catch(logError(this._page)); } - if (!event.networkId || event.request.url.startsWith('data:')) + if (!event.networkId) { + // Fetch without networkId means that request was not recongnized by inspector, and + // it will never receive Network.requestWillBeSent. Most likely, this is an internal request + // that we can safely fail. + this._client.send('Fetch.failRequest', { + requestId: event.requestId, + errorReason: 'Aborted', + }).catch(logError(this._page)); + return; + } + if (event.request.url.startsWith('data:')) return; const requestId = event.networkId; diff --git a/src/frames.ts b/src/frames.ts index 5bbef9a3d9..5dcac12074 100644 --- a/src/frames.ts +++ b/src/frames.ts @@ -215,8 +215,13 @@ export class FrameManager { this._inflightRequestStarted(request); for (const task of request.frame()._frameTasks) task.onRequest(request); - if (!request._isFavicon) - this._page._requestStarted(request); + if (request._isFavicon) { + const route = request._route(); + if (route) + route.continue(); + return; + } + this._page._requestStarted(request); } requestReceivedResponse(response: network.Response) {