From 8f0172467a9082ebf51cda5bd539e661c424da14 Mon Sep 17 00:00:00 2001 From: Deathamns Date: Mon, 10 Nov 2014 08:11:49 +0100 Subject: [PATCH] Remove unnecessary messaging workaround A better fix was introduced in e36c702 for this issue. The actual problem was that Safari when sends a message from the background to content, then it passes to all the frames in the target tab, but it doesn't make copies, it passes only references to the same object, so if one frame modifies the message, then other frames would have received the modified message. --- src/js/vapi-client.js | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/js/vapi-client.js b/src/js/vapi-client.js index 26bc6d8..4460bba 100644 --- a/src/js/vapi-client.js +++ b/src/js/vapi-client.js @@ -29,6 +29,8 @@ var messagingConnector = function(response) { if (response.requestId) { listener = vAPI.messaging.listeners[response.requestId]; + delete vAPI.messaging.listeners[response.requestId]; + delete response.requestId; } if (!listener) { @@ -37,14 +39,6 @@ var messagingConnector = function(response) { } if (typeof listener === 'function') { - // Safari bug - // Deleting the response.requestId below (only in some cases, probably - // when frames are present on the page) will remove it from all the - // future messages too, however with the following line it won't. - vAPI.safari && console.log; - - delete vAPI.messaging.listeners[response.requestId]; - delete response.requestId; listener(response.msg); } };