mirror of
https://github.com/gorhill/uMatrix.git
synced 2024-06-14 08:15:03 +12:00
this should fix #390
This commit is contained in:
parent
b279c85afc
commit
6c0c62cc13
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
});
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue