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 : 40
    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 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    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