From 6c0c62cc139281bcda237fd5041f23bd54945573 Mon Sep 17 00:00:00 2001 From: gorhill Date: Tue, 20 Oct 2015 18:10:08 -0400 Subject: [PATCH] this should fix #390 --- platform/firefox/frameModule.js | 45 ++++++++++++++--------------- platform/firefox/vapi-background.js | 35 +++++++++++----------- 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/platform/firefox/frameModule.js b/platform/firefox/frameModule.js index 33f5a0f..a162c73 100644 --- a/platform/firefox/frameModule.js +++ b/platform/firefox/frameModule.js @@ -102,34 +102,33 @@ var contentObserver = { register: function() { Services.obs.addObserver(this, 'document-element-inserted', true); - if ( this.firefoxPre35 ) { - this.componentRegistrar.registerFactory( - this.classID, - this.classDescription, - this.contractID, - this - ); - this.categoryManager.addCategoryEntry( - 'content-policy', - this.contractID, - this.contractID, - false, - true - ); - } + this.componentRegistrar.registerFactory( + this.classID, + this.classDescription, + this.contractID, + this + ); + this.categoryManager.addCategoryEntry( + 'content-policy', + this.contractID, + this.contractID, + false, + true + ); }, unregister: function() { Services.obs.removeObserver(this, 'document-element-inserted'); - if ( this.firefoxPre35 ) { - this.componentRegistrar.unregisterFactory(this.classID, this); - this.categoryManager.deleteCategoryEntry( - 'content-policy', - this.contractID, - false - ); - } + this.componentRegistrar.unregisterFactory( + this.classID, + this + ); + this.categoryManager.deleteCategoryEntry( + 'content-policy', + this.contractID, + false + ); }, // https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIContentPolicy diff --git a/platform/firefox/vapi-background.js b/platform/firefox/vapi-background.js index 0b61aaf..737c402 100644 --- a/platform/firefox/vapi-background.js +++ b/platform/firefox/vapi-background.js @@ -1820,15 +1820,21 @@ var httpObserver = { } // http-on-opening-request - var tabId, rawType; + var tabId; var pendingRequest = this.lookupPendingRequest(URI.asciiSpec); + var rawType = channel.loadInfo && channel.loadInfo.contentPolicyType || 1; if ( pendingRequest !== null ) { tabId = pendingRequest.tabId; - rawType = pendingRequest.rawType; + // https://github.com/gorhill/uBlock/issues/654 + // Use the request type from the HTTP observer point of view. + if ( rawType !== 1 ) { + pendingRequest.rawType = rawType; + } else { + rawType = pendingRequest.rawType; + } } else { tabId = this.tabIdFromChannel(channel); - rawType = channel.loadInfo && channel.loadInfo.contentPolicyType || 1; } if ( this.handleRequest(channel, URI, tabId, rawType) ) { @@ -1900,25 +1906,18 @@ vAPI.net.registerListeners = function() { pendingReq.tabId = tabWatcher.tabIdFromTarget(e.target); }; - // https://github.com/gorhill/uMatrix/issues/200 - // We need this only for Firefox 34 and less: the tab id is derived from - // the origin of the message. - if ( vAPI.firefoxPre35 ) { - vAPI.messaging.globalMessageManager.addMessageListener( - shouldLoadListenerMessageName, - shouldLoadListener - ); - } + vAPI.messaging.globalMessageManager.addMessageListener( + shouldLoadListenerMessageName, + shouldLoadListener + ); httpObserver.register(); cleanupTasks.push(function() { - if ( vAPI.firefoxPre35 ) { - vAPI.messaging.globalMessageManager.removeMessageListener( - shouldLoadListenerMessageName, - shouldLoadListener - ); - } + vAPI.messaging.globalMessageManager.removeMessageListener( + shouldLoadListenerMessageName, + shouldLoadListener + ); httpObserver.unregister(); }); };