From a71c967613a2654bd852d7c1d95dc2c245cb9413 Mon Sep 17 00:00:00 2001 From: Deathamns Date: Fri, 9 Jan 2015 07:58:07 +0100 Subject: [PATCH] Firefox: fixed content scripts? --- platform/firefox/frameModule.js | 22 +--------------------- platform/firefox/vapi-background.js | 3 +-- platform/firefox/vapi-client.js | 6 ++++-- 3 files changed, 6 insertions(+), 25 deletions(-) diff --git a/platform/firefox/frameModule.js b/platform/firefox/frameModule.js index 8974839c9..5b7419404 100644 --- a/platform/firefox/frameModule.js +++ b/platform/firefox/frameModule.js @@ -30,8 +30,6 @@ const {Services} = Cu.import('resource://gre/modules/Services.jsm', null); const hostName = Services.io.newURI(Components.stack.filename, null, null).host; let uniqueSandboxId = 1; -Cu.import('resource://gre/modules/devtools/Console.jsm'); - /******************************************************************************/ const getMessageManager = function(win) { @@ -54,7 +52,6 @@ const contentObserver = { MAIN_FRAME: Ci.nsIContentPolicy.TYPE_DOCUMENT, contentBaseURI: 'chrome://' + hostName + '/content/js/', cpMessageName: hostName + ':shouldLoad', - frameSandboxes: new WeakMap(), get componentRegistrar() { return Components.manager.QueryInterface(Ci.nsIComponentRegistrar); @@ -86,7 +83,6 @@ const contentObserver = { register: function() { Services.obs.addObserver(this, 'document-element-inserted', true); - Services.obs.addObserver(this, 'dom-window-destroyed', true); this.componentRegistrar.registerFactory( this.classID, @@ -105,7 +101,6 @@ const contentObserver = { unregister: function() { Services.obs.removeObserver(this, 'document-element-inserted'); - Services.obs.removeObserver(this, 'dom-window-destroyed'); this.componentRegistrar.unregisterFactory(this.classID, this); this.categoryManager.deleteCategoryEntry( @@ -196,10 +191,6 @@ const contentObserver = { sandbox = win; } - if ( win !== win.top ) { - this.frameSandboxes.set(win, sandbox); - } - sandbox._sandboxId_ = sandboxId; sandbox.sendAsyncMessage = messager.sendAsyncMessage; sandbox.addMessageListener = function(callback) { @@ -238,18 +229,7 @@ const contentObserver = { return sandbox; }, - observe: function(subject, topic) { - if ( topic === 'dom-window-destroyed' ) { - let sandbox = this.frameSandboxes.get(subject); - - if ( sandbox ) { - sandbox.removeMessageListener(); - this.frameSandboxes.delete(subject); - } - - return; - } - + observe: function(subject) { let win = subject.defaultView; if ( !win ) { diff --git a/platform/firefox/vapi-background.js b/platform/firefox/vapi-background.js index dbbaeca25..255668893 100644 --- a/platform/firefox/vapi-background.js +++ b/platform/firefox/vapi-background.js @@ -30,8 +30,7 @@ /******************************************************************************/ const {classes: Cc, interfaces: Ci, utils: Cu} = Components; - -Cu.import('resource://gre/modules/Services.jsm'); +const {Services} = Cu.import('resource://gre/modules/Services.jsm', null); /******************************************************************************/ diff --git a/platform/firefox/vapi-client.js b/platform/firefox/vapi-client.js index d0a05ed55..4886bb6cf 100644 --- a/platform/firefox/vapi-client.js +++ b/platform/firefox/vapi-client.js @@ -149,14 +149,16 @@ vAPI.messaging = { /******************************************************************************/ var toggleListener = function({type, persisted}) { - if ( !persisted || !vAPI.messaging.connector ) { + if ( !vAPI.messaging.connector ) { return; } if ( type === 'pagehide' ) { removeMessageListener(); + return; } - else { + + if ( persisted ) { addMessageListener(vAPI.messaging.connector); } };