IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Add-on Firefox bootstrap.js


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par défaut Add-on Firefox bootstrap.js
    Bonjour a vous tous

    J'ai un add-on pour firefox dont la fonction est de bloquer une liste d'urls, malheureusement, ma liste d'urls se trouve a l'interieur de mon fichier bootstrap.js:

    voici le script:

    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
    47
    48
    49
    const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
    Cu.import('resource://gre/modules/Services.jsm');
     
    var urls_block = [ //if urls contain any of these elements they will be blocked or redirected, your choice based on code in observer line 17
    'URL1',
    'URL2',
    'URL3',
    'etc...'];
     
    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<urls_block.length; i++) {
                 if (requestUrl.indexOf(urls_block[i]) > -1) {
                  //httpChannel.cancel(Cr.NS_BINDING_ABORTED); //this aborts the load
                  httpChannel.redirectTo(Services.io.newURI('data:text,CONTENT BLOCKED"', null, null)); //can redirect with this line, if dont want to redirect and just block, then uncomment this line and comment out line above (line 17)
                  break;
    }
                }
            },
            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 install() {}
     
    function uninstall() {}
     
    function startup() {
     for (var o in observers) {
     	observers[o].reg();
     }
    }
     
    function shutdown(aData, aReason) {
     if (aReason == APP_SHUTDOWN) return;
     
     for (var o in observers) {
     	observers[o].unreg();
     }
    }
    le script fonctionne nickel, mais développeurs de Firefox me demandent de faire en sorte que la liste soit externe au bootstrap.js et q'elle soit loadee quand c'est necessaire.

    merci a tous

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Bonjour,

    il est possible de mettre les URLs dans un fichier texte et de les lire lors du premier chargement.

    https://developer.mozilla.org/en-US/...o_text-streams

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par défaut
    Merci pour cette premiere reponse, comme je l'ai dit je ne suis pas expert en javascript.

    Commment adapter donc ce code a mon add-on afin que ma database d'urls soit externe au bootstrap?

    merci encore

  4. #4
    Membre chevronné
    Profil pro
    à la bougie alors
    Inscrit en
    Mai 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : à la bougie alors

    Informations forums :
    Inscription : Mai 2006
    Messages : 224
    Par défaut
    Bonjour,
    Je ne connais rien à l'écriture des addons pour ffx, mais as tu regardé si tu pouvais utiliser une requêtre XMLHttpRequest ?
    L'idée est que ton addons doit-être qque part sur le disque, peut-être peux tu fournir un fichier contenant les urls avec le addon et essayer de le charger avec une XHR.
    Ou aller voir du coté de pref.js ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par défaut
    justement c'est ce qu'il faut il faut que le script charge les urls quand c'est necessaire sans quils soient en local, maintenant moi avec mon add-on, le script que je viens de montrer ici, je ne sais pas comment faire ca, je ne sais pas comment adapter mon code, pour loader les urls depuis un fichier externe

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par défaut
    mon problemme n'est toujours pas résolu :s

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par défaut Javascript et bootsrap.js
    Bonjour a tous
    Je suis toujours bloqué avec mon problemme de script add-on pour Firefox.
    Mon add-on fonctionne nickel il bloque des urls, MAIS le problemem est que ma database est inclue dans le bootstrap.js

    Les developpeur de Firefox, mont repondu ceci:

    Your add-on prints debugging information to the Console, which is generally not allowed in production add-ons.

    2) Please do not store large amounts of JSON/array data in executable files (js). They should be stored in separate .json file, and loaded and parsed via XHR.

    Voici mon script bootstrap.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
    47
    48
    49
    const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
    Cu.import('resource://gre/modules/Services.jsm');
     
    var urls_block = [ //if urls contain any of these elements they will be blocked or redirected, your choice based on code in observer line 17
    'url01.com',
    'url02.com',
    'url03.com'
    ];
     
    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<urls_block.length; i++) {
                 if (requestUrl.indexOf(urls_block[i]) > -1) {
                  //httpChannel.cancel(Cr.NS_BINDING_ABORTED); //this aborts the load
                  httpChannel.redirectTo(Services.io.newURI('data:text,ILLEGAL & DANGEROUS CONTENT BLOCKED', null, null)); //can redirect with this line, if dont want to redirect and just block, then uncomment this line and comment out line above (line 17)
                  break;
    }
                }
            },
            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 install() {}
     
    function uninstall() {}
     
    function startup() {
     for (var o in observers) {
     	observers[o].reg();
     }
    }
     
    function shutdown(aData, aReason) {
     if (aReason == APP_SHUTDOWN) return;
     
     for (var o in observers) {
     	observers[o].unreg();
     }
    }
    Peut t'on m'aider a finaliser mon add-on et resoudre ce problemme?

    Merci

  8. #8
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    ben regarde la coloration syntaxique de ton code

    y pas un truc qui te parait bizare ?
    A+JYT

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par défaut
    Et bien je vois du bleu et du rouge??

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    visiblement tu as vu autre chose puisque tu as corrigé, le soucis et de savoir si maintenant cela fonctionne ?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Par défaut
    j'ai juste modifié une petite virgule en trop
    mais comme je l'ai expliqué la team Mozilla voudrait que mon fichier soit externe dans un json a la place du bootstrap.js ou j'y ai mis ma data-base., après ce qu-ils me demandent moi je sais pas comment le réaliser :s c'est pour cela que je suis ici.

Discussions similaires

  1. Javascript et add-on Firefox
    Par AthackX dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 20/07/2010, 14h27
  2. Besoin de conseils pour un add-on firefox
    Par splash44 dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 21/10/2009, 20h05
  3. Tutoriel pour la création d'add-on firefox.
    Par Armagnak dans le forum Firefox
    Réponses: 3
    Dernier message: 24/07/2009, 11h53
  4. Scan materiel avec un plugin/add-on Firefox
    Par _Alexou dans le forum Firefox
    Réponses: 0
    Dernier message: 11/06/2009, 15h13
  5. Comment piloter un Add-On FireFox, à l'aide de javascript
    Par BozKiller dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/10/2007, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo