aboutsummaryrefslogtreecommitdiff
path: root/js/firefox
diff options
context:
space:
mode:
Diffstat (limited to 'js/firefox')
-rw-r--r--js/firefox/background-shim.js31
-rw-r--r--js/firefox/content-script-proxy.js38
-rw-r--r--js/firefox/extension-storage.jsm4
-rw-r--r--js/firefox/page-shim.js27
4 files changed, 38 insertions, 62 deletions
diff --git a/js/firefox/background-shim.js b/js/firefox/background-shim.js
index 5598920..d43d662 100644
--- a/js/firefox/background-shim.js
+++ b/js/firefox/background-shim.js
@@ -106,6 +106,10 @@ var chrome = {
}
},
+ clearCache : function() {
+ ExtensionStorage.clearCache();
+ },
+
onChanged : {
addListener : function(listener) {
ExtensionStorage.addOnChangedListener(extensionId, listener);
@@ -136,7 +140,11 @@ var panel = panels.Panel({
width: 200,
height: 110,
contentURL: makeUrl('popup.html'),
- contentScriptFile : makeUrl('js/firefox/content-script-proxy.js'),
+ contentScriptFile : [
+ makeUrl('js/firefox/page-shim.js'),
+ makeUrl('js/angular.min.js'),
+ makeUrl('js/popup.js')
+ ],
onHide: function() {
button.state('window', {checked: false});
}
@@ -145,9 +153,6 @@ var panel = panels.Panel({
function attachedPage(worker) {
function sendReply(originalMessage, reply) {
var msg = {messageId:originalMessage.messageId, payload:reply};
- if (typeof log == 'undefined') {
- Cu.reportError('LOG IS DEAD DEAD DEAD');
- }
log('background sending message: ' + JSON.stringify(msg));
worker.port.emit('message', msg);
}
@@ -210,10 +215,20 @@ function attachedPage(worker) {
attachedPage(panel);
pageMod.PageMod({
- include: makeUrl('redirector.html'),
- contentScriptFile: makeUrl('js/firefox/content-script-proxy.js'),
- contentScriptWhen: 'start',
- onAttach : attachedPage
+ include: makeUrl('redirector.html'),
+ contentScriptFile: [
+ makeUrl("js/firefox/page-shim.js"),
+ makeUrl("js/angular.min.js"),
+ makeUrl("js/redirect.js"),
+ makeUrl("js/app.js"),
+ makeUrl("js/controllers/redirectorpage.js"),
+ makeUrl("js/controllers/editredirect.js"),
+ makeUrl("js/controllers/deleteredirect.js"),
+ makeUrl("js/controllers/importexport.js"),
+ makeUrl("js/controllers/listredirects.js")
+ ],
+ contentScriptWhen: 'start',
+ onAttach : attachedPage
});
diff --git a/js/firefox/content-script-proxy.js b/js/firefox/content-script-proxy.js
deleted file mode 100644
index c56de29..0000000
--- a/js/firefox/content-script-proxy.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// This file listens to messages
-
-function log(msg) {
- self.port.emit('log', msg);
-}
-
-function receiveWindowMessage(message) {
- if (message.data.sender !== 'page') {
- return;
- }
-
- if (message.data.logMessage) {
- //Special handling for log messages.
- log(message.data.logMessage);
- return;
- }
-
- log('proxy got page message: ' + JSON.stringify(message.data));
-
- //Forward the message to the background script
- self.port.emit('message', message.data);
-}
-
-window.addEventListener('message', receiveWindowMessage);
-
-function receiveMessage(message) {
- log('proxy got chrome message: ' + JSON.stringify(message));
- window.postMessage(message, '*');
-}
-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);
diff --git a/js/firefox/extension-storage.jsm b/js/firefox/extension-storage.jsm
index 02c59a3..f102b6f 100644
--- a/js/firefox/extension-storage.jsm
+++ b/js/firefox/extension-storage.jsm
@@ -36,6 +36,10 @@ this.ExtensionStorage = {
return Path.join(this.extensionDir, extensionId, "storage.js");
},
+ clearCache : function() {
+ this.cache = new Map();
+ },
+
read(extensionId) {
if (this.cache.has(extensionId)) {
return this.cache.get(extensionId);
diff --git a/js/firefox/page-shim.js b/js/firefox/page-shim.js
index dd2361b..6496910 100644
--- a/js/firefox/page-shim.js
+++ b/js/firefox/page-shim.js
@@ -1,32 +1,27 @@
(function() {
- //Communication functions for
-
- if (typeof chrome !== 'undefined') {
- return;
- }
function log(msg) {
- window.postMessage({sender:'page', logMessage: msg}, '*');
+ self.port.emit('log', msg);
}
+ var parts = location.pathname.split('/');
+ var urlName = parts[parts.length-1];
var messageId = 1;
var callbacks = {};
function send(type, message, callback) {
var id = messageId++;
- window.postMessage({sender:'page', url:location.href, messageId:id, messageType:type, payload:message}, '*');
- callbacks[id] = callback;
+ self.port.emit('message', {url:urlName, messageId:id, messageType:type, payload:message});
+ callbacks[id] = callback || function(){};
}
- window.addEventListener('message', function(message) {
- if (message.data.sender == 'page') {
- return; //Ignore messages we sent ourselves
- }
- log('page got message: ' + JSON.stringify(message.data));
+
+ self.port.on('message', function(message) {
+ log('page got message: ' + JSON.stringify(message));
- var callback = callbacks[message.data.messageId];
+ var callback = callbacks[message.messageId];
if (callback) {
- callback(message.data.payload);
- delete callbacks[message.data.messageId];
+ callback(message.payload);
+ delete callbacks[message.messageId];
}
});