mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
Never sent 'requestfinished' event without passing actual request
It turns out we're not receiving 'Network.requestWillBeSent' event for every requestId. This patch makes sure we don't dispatch `requestfinished` and `requestfailed` events without passing actual request. References #168
This commit is contained in:
@@ -114,6 +114,10 @@ class NetworkManager extends EventEmitter {
|
||||
*/
|
||||
_onLoadingFinished(event) {
|
||||
let request = this._idToRequest.get(event.requestId);
|
||||
// For certain requestIds we never receive requestWillBeSent event.
|
||||
// @see https://github.com/GoogleChrome/puppeteer/issues/168
|
||||
if (!request)
|
||||
return;
|
||||
this._idToRequest.delete(event.requestId);
|
||||
this.emit(NetworkManager.Events.RequestFinished, request);
|
||||
}
|
||||
@@ -123,6 +127,10 @@ class NetworkManager extends EventEmitter {
|
||||
*/
|
||||
_onLoadingFailed(event) {
|
||||
let request = this._idToRequest.get(event.requestId);
|
||||
// For certain requestIds we never receive requestWillBeSent event.
|
||||
// @see https://github.com/GoogleChrome/puppeteer/issues/168
|
||||
if (!request)
|
||||
return;
|
||||
this._idToRequest.delete(event.requestId);
|
||||
this.emit(NetworkManager.Events.RequestFailed, request);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user