aboutsummaryrefslogtreecommitdiff
path: root/js/firefox
diff options
context:
space:
mode:
Diffstat (limited to 'js/firefox')
-rw-r--r--js/firefox/background-shim.js26
-rw-r--r--js/firefox/content-script-proxy.js20
2 files changed, 34 insertions, 12 deletions
diff --git a/js/firefox/background-shim.js b/js/firefox/background-shim.js
index 4cf96eb..34d0fc5 100644
--- a/js/firefox/background-shim.js
+++ b/js/firefox/background-shim.js
@@ -34,7 +34,9 @@ function migrateFromOlderVersion() {
var Redirect = require('../redirect').Redirect;
var newData = {redirects:[]};
for (var r of jsonData.redirects) {
- newData.redirects.push(new Redirect(r).toObject());
+ var redirect = new Redirect(r);
+ redirect.updateExampleResult();
+ newData.redirects.push(redirect.toObject());
}
Cu.import("resource://gre/modules/Services.jsm");
@@ -49,8 +51,9 @@ function migrateFromOlderVersion() {
var oldPrefs = ['enabled', 'debugEnabled', 'enableShortcutKey', 'version', 'defaultDir'];
for (var p of oldPrefs) {
try {
- Services.prefs.deleteBranch('extensions.redirector.' + oldPrefs);
- } catch(e) {}
+ Services.prefs.deleteBranch('extensions.redirector.' + p);
+ } catch(e) {
+ }
}
@@ -147,12 +150,13 @@ function attachedPage(worker) {
worker.port.emit('message', msg);
}
- //We proxy all logging over here so we can control it with one switch
- worker.port.on('log', function(logMessage) {
+ function logger(logMessage) {
log(logMessage);
- });
+ }
+ //We proxy all logging over here so we can control it with one switch
+ worker.port.on('log', logger);
- worker.port.on('message', function(message) {
+ function receive(message) {
log('background got message: ' + JSON.stringify(message));
if (message.messageType == 'storage.get') {
@@ -195,7 +199,13 @@ function attachedPage(worker) {
panel.hide();
sendReply(message, null);
}
- });
+ }
+ worker.port.on('message', receive);
+
+ worker.on('detach', function() {
+ worker.port.removeListener('message', receive);
+ worker.port.removeListener('log', logger);
+ });
}
attachedPage(panel);
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);