mirror of
https://github.com/gorhill/uBlock.git
synced 2024-10-06 09:37:12 +02:00
Firefox: workaround for #886
This commit is contained in:
parent
4a9e6c22cc
commit
cc47d13207
@ -1052,14 +1052,7 @@ var httpObserver = {
|
|||||||
12: 'object',
|
12: 'object',
|
||||||
14: 'font'
|
14: 'font'
|
||||||
},
|
},
|
||||||
lastRequest: {
|
lastRequest: [{}, {}],
|
||||||
url: null,
|
|
||||||
type: null,
|
|
||||||
tabId: null,
|
|
||||||
frameId: null,
|
|
||||||
parentFrameId: null,
|
|
||||||
openerURL: null
|
|
||||||
},
|
|
||||||
|
|
||||||
get componentRegistrar() {
|
get componentRegistrar() {
|
||||||
return Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
return Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
||||||
@ -1238,12 +1231,21 @@ var httpObserver = {
|
|||||||
|
|
||||||
// http-on-opening-request
|
// http-on-opening-request
|
||||||
|
|
||||||
var lastRequest = this.lastRequest;
|
var lastRequest = this.lastRequest[0];
|
||||||
|
|
||||||
|
if ( lastRequest.url !== URI.spec ) {
|
||||||
|
if ( this.lastRequest[1].url === URI.spec ) {
|
||||||
|
lastRequest = this.lastRequest[1];
|
||||||
|
} else {
|
||||||
|
lastRequest.url = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( lastRequest.url === null ) {
|
if ( lastRequest.url === null ) {
|
||||||
|
lastRequest.type = channel.loadInfo && channel.loadInfo.contentPolicyType || 1;
|
||||||
result = this.handleRequest(channel, URI, {
|
result = this.handleRequest(channel, URI, {
|
||||||
tabId: vAPI.noTabId,
|
tabId: vAPI.noTabId,
|
||||||
type: channel.loadInfo && channel.loadInfo.contentPolicyType
|
type: lastRequest.type
|
||||||
});
|
});
|
||||||
|
|
||||||
if ( result === true ) {
|
if ( result === true ) {
|
||||||
@ -1255,14 +1257,10 @@ var httpObserver = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Carry data for behind-the-scene redirects
|
// Carry data for behind-the-scene redirects
|
||||||
channelData = [
|
channel.setProperty(
|
||||||
channel.loadInfo && channel.loadInfo.contentPolicyType || 1,
|
this.REQDATAKEY,
|
||||||
vAPI.noTabId,
|
[lastRequest.type, vAPI.noTabId, null, 0, -1]
|
||||||
null,
|
);
|
||||||
0,
|
|
||||||
-1
|
|
||||||
];
|
|
||||||
channel.setProperty(this.REQDATAKEY, channelData);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1311,14 +1309,13 @@ var httpObserver = {
|
|||||||
|
|
||||||
// If request is not handled we may use the data in on-modify-request
|
// If request is not handled we may use the data in on-modify-request
|
||||||
if ( channel instanceof Ci.nsIWritablePropertyBag ) {
|
if ( channel instanceof Ci.nsIWritablePropertyBag ) {
|
||||||
channelData = [
|
channel.setProperty(this.REQDATAKEY, [
|
||||||
lastRequest.type,
|
lastRequest.type,
|
||||||
lastRequest.tabId,
|
lastRequest.tabId,
|
||||||
sourceTabId,
|
sourceTabId,
|
||||||
lastRequest.frameId,
|
lastRequest.frameId,
|
||||||
lastRequest.parentFrameId
|
lastRequest.parentFrameId
|
||||||
];
|
]);
|
||||||
channel.setProperty(this.REQDATAKEY, channelData);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1385,12 +1382,15 @@ vAPI.net.registerListeners = function() {
|
|||||||
var shouldLoadListener = function(e) {
|
var shouldLoadListener = function(e) {
|
||||||
var details = e.data;
|
var details = e.data;
|
||||||
var lastRequest = httpObserver.lastRequest;
|
var lastRequest = httpObserver.lastRequest;
|
||||||
lastRequest.url = details.url;
|
lastRequest[1] = lastRequest[0];
|
||||||
lastRequest.type = details.type;
|
lastRequest[0] = {
|
||||||
lastRequest.tabId = vAPI.tabs.getTabId(e.target);
|
url: details.url,
|
||||||
lastRequest.frameId = details.frameId;
|
type: details.type,
|
||||||
lastRequest.parentFrameId = details.parentFrameId;
|
tabId: vAPI.tabs.getTabId(e.target),
|
||||||
lastRequest.openerURL = details.openerURL;
|
frameId: details.frameId,
|
||||||
|
parentFrameId: details.parentFrameId,
|
||||||
|
openerURL: details.openerURL
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vAPI.messaging.globalMessageManager.addMessageListener(
|
vAPI.messaging.globalMessageManager.addMessageListener(
|
||||||
|
Loading…
Reference in New Issue
Block a user