From 89c43534082b920f68503eddc1dd3cc8f16aeb17 Mon Sep 17 00:00:00 2001 From: Graham Kaemmer Date: Mon, 18 Feb 2019 13:07:58 -0800 Subject: Fix inpage.js event handler memory leak (#6177) Fixes #6176 --- app/scripts/inpage.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'app/scripts') diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js index fb2a84d1a..ae5a375b0 100644 --- a/app/scripts/inpage.js +++ b/app/scripts/inpage.js @@ -29,12 +29,13 @@ console.warn('ATTENTION: In an effort to improve user privacy, MetaMask ' + * @param {Function} handler - event handler * @param {boolean} remove - removes this handler after being triggered */ -function onMessage (messageType, handler, remove) { - window.addEventListener('message', function ({ data }) { +function onMessage (messageType, callback, remove) { + const handler = function ({ data }) { if (!data || data.type !== messageType) { return } remove && window.removeEventListener('message', handler) - handler.apply(window, arguments) - }) + callback.apply(window, arguments) + } + window.addEventListener('message', handler) } // -- cgit v1.2.3