aboutsummaryrefslogtreecommitdiff
path: root/js/firefox/content-script-proxy.js
diff options
context:
space:
mode:
authorEinar Egilsson <einar@einaregilsson.com>2015-09-23 12:07:12 +0000
committerEinar Egilsson <einar@einaregilsson.com>2015-09-23 12:07:12 +0000
commitd8cf1e9fb53dc262f6deb8633c5ecc43240c82ef (patch)
tree30aaea34c82072828992da483e142a7217b2f6d8 /js/firefox/content-script-proxy.js
parent354b7325e453c3fa259ecd9a07b4634d09cf5afe (diff)
Mostly working, dead object problems
Diffstat (limited to 'js/firefox/content-script-proxy.js')
-rw-r--r--js/firefox/content-script-proxy.js20
1 files changed, 16 insertions, 4 deletions
diff --git a/js/firefox/content-script-proxy.js b/js/firefox/content-script-proxy.js
index 271bfa1..c56de29 100644
--- a/js/firefox/content-script-proxy.js
+++ b/js/firefox/content-script-proxy.js
@@ -3,7 +3,8 @@
function log(msg) {
self.port.emit('log', msg);
}
-window.addEventListener('message', function(message) {
+
+function receiveWindowMessage(message) {
if (message.data.sender !== 'page') {
return;
}
@@ -18,9 +19,20 @@ window.addEventListener('message', function(message) {
//Forward the message to the background script
self.port.emit('message', message.data);
-})
+}
-self.port.on('message', function(message) {
+window.addEventListener('message', receiveWindowMessage);
+
+function receiveMessage(message) {
log('proxy got chrome message: ' + JSON.stringify(message));
window.postMessage(message, '*');
-}); \ No newline at end of file
+}
+self.port.on('message', receiveMessage);
+
+function cleanup() {
+ window.removeEventListener('message', receiveWindowMessage);
+ self.port.removeListener('message', receiveMessage);
+ self.port.removeListener('detach', cleanup);
+}
+
+self.port.on('detach', cleanup);