diff --git a/experimental/puppeteer-firefox/lib/NetworkManager.js b/experimental/puppeteer-firefox/lib/NetworkManager.js index be7b653daf9fc..73c0f77451c7a 100644 --- a/experimental/puppeteer-firefox/lib/NetworkManager.js +++ b/experimental/puppeteer-firefox/lib/NetworkManager.js @@ -18,6 +18,10 @@ class NetworkManager extends EventEmitter { ]; } + dispose() { + helper.removeEventListeners(this._eventListeners); + } + setFrameManager(frameManager) { this._frameManager = frameManager; } @@ -57,10 +61,6 @@ class NetworkManager extends EventEmitter { this._requests.delete(request._id); this.emit(Events.NetworkManager.RequestFinished, request); } - - dispose() { - helper.removeEventListeners(this._eventListeners); - } } /** diff --git a/experimental/puppeteer-firefox/lib/Page.js b/experimental/puppeteer-firefox/lib/Page.js index e0a9b8c0e40d6..1f9784502359f 100644 --- a/experimental/puppeteer-firefox/lib/Page.js +++ b/experimental/puppeteer-firefox/lib/Page.js @@ -570,6 +570,7 @@ class Page extends EventEmitter { _onClosed() { this._isClosed = true; this._frameManager.dispose(); + this._networkManager.dispose(); helper.removeEventListeners(this._eventListeners); this.emit(Events.Page.Close); } diff --git a/test/navigation.spec.js b/test/navigation.spec.js index 99940dda05695..dd1a0fe5a415e 100644 --- a/test/navigation.spec.js +++ b/test/navigation.spec.js @@ -256,7 +256,7 @@ module.exports.addTests = function({testRunner, expect, Errors, CHROME}) { process.removeListener('warning', warningHandler); expect(warning).toBe(null); }); - it_fails_ffox('should not leak listeners during bad navigation', async({page, server}) => { + it('should not leak listeners during bad navigation', async({page, server}) => { let warning = null; const warningHandler = w => warning = w; process.on('warning', warningHandler);