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

  1. #41
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    il doit bien avoir une solution plus simple, plutot que de devoir refaire tout le code de mon add-on.

  2. #42
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    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

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

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

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

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

  4. #44
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

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

  5. #45
    Modérateur

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

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

  6. #46
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    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.

  7. #47
    Membre averti
    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
    Points : 362
    Points
    362
    Par défaut
    Doublon de http://www.developpez.net/forums/d14...-bootstrap-js/

    Ton code ne semble pas avoir évolué malgré les différentes approches proposées ..?!
    Peut-être n'es tu pas encore prêt à écrire un add-on qui va être utilisé en confiance par des utilisateurs ?

  8. #48
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    Charger un fichier local avec une XHR comment faire ca???

  9. #49
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Il est inutile de créer un troisième topic pour un problème inchangé... Toutes les pistes t'ont été donné, tu as reçu une trentaine de messages pour t'aider à avancer. Mais sans une bonne connaissance de JavaScript des API abordées, ton projet d'add-on n'a que très peu de chances d'aboutir.
    One Web to rule them all

  10. #50
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    Et bien mon add-on fonctionne depuis 2 ans, mais on me demande de mettre ma data-base d’URL a l’extérieur du fichier bootstrap.js et ça je n'arrive pas a le concrétiser.

  11. #51
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Cela fait peut-être deux ans mais tu ne sembles toujours pas trouver le temps pour approfondir les pistes que l'on te donne. Lysandro et beekeep t'ont donné les deux meilleures solutions il y a plus d'un mois: readTextFromFile et AJAX. Il ne te reste plus qu'à en implémenter une, la première option en suivant la doc de Mozilla et la seconde en consultant un tuto parmi la centaine d'existants sur le net.
    One Web to rule them all

  12. #52
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    Et bien j'en suis toujours la si je reprends

    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 = null;
     
    if(!urls_block)
    {
      urls_block = readTextFromFile("url.txt").Split(',');
    }
    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();
     }
    }
    mais LA mon add-on ne fonctionne plus, il ne bloque plus les urls qui sont dans le fichier texte

  13. #53
    Membre averti
    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
    Points : 362
    Points
    362
    Par défaut
    Tu as tout à partir de Mozilla / Add-ons / Bootstrapped extensions.

    Sinon, as tu des erreurs ? Si oui, lesquelles ?
    La méthode split s'écrit, en principe, avec un s en minuscule, es tu sûr qu'il existe une méthode Split avec un S en majuscule ?
    Que contient, après chargement, ta variable urls_block ?
    A quel moment du cycle de vie de ton add-on ton code de chargement de tes urls s'exécute-t-il ? Est-ce le bon moment ?

  14. #54
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 96
    Points : 36
    Points
    36
    Par défaut
    J'ai corrigé le S oui c'est un s minuscule, mai mon module ne fonctionne toujours pas, il ne bloque plus les urls qui sont contenues dans le fichier 'url.txt'
    a l'interieur du fichier txt j'ai des urls comme ceci:

    'url01.com',
    'url02.com',
    'url03.com',
    etc...

    donc dans mon code j'ai au debut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var urls_block = null;
     
    if(!urls_block)
    {
      urls_block = readTextFromFile("url.txt").split(',');
    je nsais pas sir le split est correct mais je pense que oui


    Mon add-on s'execute au moment ou l'utilisateur tape un url quelquonque, si il correspond aceux dans la database il le bloque et met juste un message d'erreur 'ILLEGAL_&_DANGEROUS_CONTENT_BLOCKED'

  15. #55
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Concernant l'application de la méthode split(), regarde quand même qu'il ne traine pas de retour chariot en fin de ligne.

  16. #56
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Et les apostrophes aussi sont en trop dans le fichier texte.

    Le mieux serait de laisser des traces de debug, histoire d'aller un peu plus loin que "ça marche pas" comme constat
    One Web to rule them all

  17. #57
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Il est aussi nécessaire d'utiliser la console du navigateur (CTRL + MAJ + J).
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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