Reflexion sur MZ jetpack

Poster un nouveau sujet   Répondre au sujet

Voir le sujet précédent Voir le sujet suivant Aller en bas

Reflexion sur MZ jetpack

Message par breizhou13 le Jeu 20 Nov - 16:45

J'ouvre le sujet pour mettre ce que j'ai trouvé:

pour gerer les variables dans about:config
package.json:ajouter la ligne:
"preferences-branch": "mountyhall"  

dans le main.js:
Code:

function variable(nom, valeur)
{
//protection en cas de nom ou valeur non definie
 if ( nom && valeur && nom != '' )
 {
 //inscrit la variable
                require('sdk/simple-prefs').prefs[nom]=valeur;
        //pour l'afficher dans la console
 console.log(require('sdk/simple-prefs').prefs[nom]);
 }
}

il gere automatiquement le type de variable entrée contrairement au pref de tilk.
Les variables seront du style:
extensions.mountyzilla.valeur

breizhou13

Messages : 9
Date d'inscription : 20/11/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par Dabihul le Jeu 20 Nov - 20:55

Ok. Dans un premier temps ça fera très bien l'affaire, l'objectif 1 c'est d'avoir un truc fonctionnel peu importe s'il y a quelques différences.

Ensuite j'irai probablement piquer dans le code de "simple-prefs" pour avoir la mainmise sur le gestionnaire. Je ne supporte pas les boîtes noires / librairies / conneries de ce genre.

De mon côté je ne pourrai pas bosser sur l'extension probablement jusqu'aux congés de fin d'année.

_________________
Dabihul, Running Dudu
avatar
Dabihul

Messages : 4445
Date d'inscription : 18/07/2008
Localisation : Dantonpèt.

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par breizhou13 le Ven 21 Nov - 4:54

oui. Ce que je fais c'est plus premacher le truc pour que tu puisses trouver la base plus rapidement.
Le gros avantage d'utiliser les librairies c'est que ca fonctionne direct sans bug. La ppar exemple, le fait de pas avoir a verifier le type de variable divise par 2 le code.
S'il doit y avoir extensions. devant le nom de la variable c'est pas la mort

breizhou13

Messages : 9
Date d'inscription : 20/11/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par breizhou13 le Ven 21 Nov - 16:55

Bon, je viens de regarder un peut ce qu'il y a dans les librairie, et franchement, je te souhaite bien du courage. Ca va chercher des morceaux dans pas mal de fichiers....

breizhou13

Messages : 9
Date d'inscription : 20/11/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par breizhou13 le Lun 24 Nov - 11:16

Les preferences se rentrent dans le json a la base .
La partie "preference" sera dans les options  de l'extensions.
Le detail se trouve ici:
h-t-t-p-s-:-/-/-developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/simple-prefs

par exemple: la variable MHURL sera nommé extensions.mountyzilla.MHURL dans le about:config
Apres dans le main.js on y accede comme ca:
require("sdk/simple-prefs").prefs.MHURL


Code:
{
  "name": "hallo",
  "title": "hallo",
  "id": "jid1-rtJ0ZwONVY2mZQ",
  "description": "a basic add-on",
  "author": "",
  "license": "MPL 2.0",
  "version": "0.1",
  "preferences-branch": "mountyzilla" ,
"preferences": [{
        "name": "MHURL",
        "title": "Url du serveur MH",
        "type": "string",
        "value": "je peux pas mettre de lien"
    },
    {
        "name": "MAJ",
        "type": "boolint",
        "on": "1",
 "off": "2",
 "value": 2,
        "title": "Mettre a jour"
    }]
  
 }


Pour avoir le choix total du nom de la variable dans le about, il fait pas passe par simple-pref mais faire comme ca:
Code:
require("sdk/preferences/service").set(nom,valeur);
require("sdk/preferences/service").get(nom);

breizhou13

Messages : 9
Date d'inscription : 20/11/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par Dabihul le Lun 24 Nov - 11:30

Si j'ai bien compris y'a plus qu'à définir dans le main:
Code:
function MZ_setValue(nom,valeur) {
  require("sdk/preferences/service").set('mountyzilla.'+nom,valeur);
}

function MZ_getValue(nom) {
  return require("sdk/preferences/service").get('mountyzilla.'+nom);
}
Et tout remarchera comme avant ?

Par contre c'est pas forcément une bonne idée d'aller contre la politique de Mozilla s'ils veulent stocker les prefs d'extensions dans des 'extensions.XXX'. À mon avis la version avancée est destinée à modifier les prefs internes de FF.

Jolie trouvaille en tout cas.

_________________
Dabihul, Running Dudu
avatar
Dabihul

Messages : 4445
Date d'inscription : 18/07/2008
Localisation : Dantonpèt.

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par breizhou13 le Lun 24 Nov - 16:05

En effet, je pense que c'est mieux d'utiliser le simple-pref qui reste dans le standard et qui aura moins de risque d'etre bloquée dans le futur.

Sinon, je n'ai pas encore trouvé comment refaire la fonction isUrl pour pouvoir commencer a tester si les fonctions dans le main fonctionnent depuis un fichier externe

breizhou13

Messages : 9
Date d'inscription : 20/11/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par Dabihul le Lun 24 Nov - 19:32

breizhou13 a écrit:tester si les fonctions dans le main fonctionnent depuis un fichier externe
Euh... j'ai pas tout compris. Rien n'est injecté dans le main, c'est le coeur de l'extension. Tu parles d'un équivalent de isGreasemonkeyable ?

_________________
Dabihul, Running Dudu
avatar
Dabihul

Messages : 4445
Date d'inscription : 18/07/2008
Localisation : Dantonpèt.

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par breizhou13 le Lun 24 Nov - 23:14

je sais pas trop de quoi je parle car j'ai du mal a dechiffrer les js de tilk

Je voulais dire que je ne sais pas ce que ca donne d'appeler une fonction presente dans le main a partir d'un fichier qui est sur un serveur comme par ex vue_FF.js qui appellerait getValue qui est dans le main.js.
Normalement pas de soucis mais j'ai pas encore pu tester

breizhou13

Messages : 9
Date d'inscription : 20/11/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par Dabihul le Mar 25 Nov - 6:58

Bin l'idée c'est que le main est censé mettre en place un environnement de travail pour les autres scripts dans lequel lesdites fonctions seront implémentées. Donc techniqument les scripts externes n'appellent rien dans le main, ils appellent les fonctions que le main dépose pour eux dans la zone de travail qu'il crée pour eux. Enfin... je crois Après dans le détail je ne sais pas encore comment ça fonctionne. Je verrai ça fin décembre.

_________________
Dabihul, Running Dudu
avatar
Dabihul

Messages : 4445
Date d'inscription : 18/07/2008
Localisation : Dantonpèt.

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Reflexion sur MZ jetpack

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous pouvez répondre aux sujets dans ce forum