Rebonjour a vous, mon extension chrome etant finie, je dois desormais la convertir vers Firefox, qui n'est pas facile a readapter.

En gros je veux juste bloquer une liste d'urls, on a tenté de m'aider, mais le script ne marche pas, voici le code actuel pour firefox.

le bootstratp.js:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(){}
en gros je veux bloquer dhnet.be et www.dhnet.be, mais ca ne marche pas.