1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| //const {interfaces: Ci, utils: Cu, classes: Cc, results: Cr } = Components; //use this line if you are NOT using addon builder
const { Ci, Cu, Cc, Cr } = require('chrome'); //use this line if using addon-builder
Cu.import('resource://gre/modules/Services.jsm');
//Cu.import('resource://gre/modules/devtools/Console.jsm');
var patternsToBlock = [new RegExp('.*\:\/\/.*\.www.dhnet.be\/.*','i'), new RegExp('.*\:\/\/.*\.dhnet.be\/.*','i')];
var observers = {
'http-on-modify-request': {
observe: function(aSubject, aTopic, aData) {
//console.info('http-on-modify-request: aSubject = ' + aSubject + ' | aTopic = ' + aTopic + ' | aData = ' + aData);
var httpChannel = aSubject.QueryInterface(Ci.nsIHttpChannel);
var requestUrl = httpChannel.URI.spec;
for (var i = 0; i < patternsToBlock.length; i++) {
if (patternsToBlock[i].test(requestUrl)) {
httpChannel.cancel(Cr.NS_BINDING_ABORTED); //or can do redirect instead of cancel like: httpChannel.redirectTo(Services.io.newURI('http://www.google.com', null, null));
//console.log('requestUrl was', requestUrl, 'which matches blocked pattern:', patternsToBlock[i], 'so blocked it');
break;
}
}
if (requestUrl.indexOf('google.com') > -1) {
}
},
reg: function() {
Services.obs.addObserver(observers['http-on-modify-request'], 'http-on-modify-request', false);
},
unreg: function() {
Services.obs.removeObserver(observers['http-on-modify-request'], 'http-on-modify-request');
}
}
};
function startup(aData, aReason) {
for (var o in observers) {
observers[o].reg();
}
}
function shutdown(aReason) {
for (var o in observers) {
observers[o].unreg();
}
}
function install() {}
function uninstall(){} |
Partager