Quel est le meilleur moyen de développer l'extension Firefox?
J'ai l'intention de développer une simple extension Firefox qui va raccourcir une URL d'un onglet actif, l'affichage d'un popup avec l'URL raccourcie, et la placer dans le presse-papiers.
Dans Google Chrome, ce serait assez facile (selon http://developer.chrome.com/extensions/getstarted.html) -- JavaScript et quelques appels à l'API JavaScript-s de l'interaction avec l'INTERFACE utilisateur du navigateur.
Cependant, après une recherche autour d'un bon extensions Firefox tutoriel, le plus officiellement à la recherche des liens que j'ai trouvé sont:
- https://developer.mozilla.org/en-US/docs/Extensions
- https://developer.mozilla.org/en-US/docs/Building_an_Extension
- Comment puis-je écrire un Addon Firefox?
Selon eux, il semble que je vais avoir à apprendre le langage XUL, même pour le plus simple des interactions avec l'INTERFACE utilisateur du navigateur. En plus de cela, je vais devoir mettre en place personnalisé Firefox profil afin de ne pas le tuyau de mon profil par défaut au cours du développement, de créer compliqué structure de répertoire, écrire manifeste dans d'obscures XML, comprendre comment le colis et de tester tout ce que j'mettre en œuvre, etc.
C'est 2013, n'est-il pas un moyen plus facile de construire des extensions Firefox?
Vous devez vous connecter pour publier un commentaire.
Oui, il y est!
Les liens que vous avez fournies dans la question sont incroyablement obsolètes. Il y a un nouveau, bien meilleure façon de développer des extensions Firefox -- Add-on Firefox SDK.
Cependant, il est assez difficile de tomber sur seulement par googler le long des lignes de "addon firefox tutoriel". Je suis étonné de voir que Mozilla ne fait pas de publicité plus agressive, ou au moins le mentionner sur ces pages que vous avez trouvé.
Étapes pour commencer à (Mac/Linux, mais devrait être assez similaire pour PC):
source bin/activate
à partir du SDK dir (le même dir le fichier README est dans).cfx docs
-- cette amorce copie locale de SDK docs et l'ouvre dans votre navigateur.cfx init
à l'intérieur de la extensions dir -- cela génère tous les fichiers/répertoires.lib/main.js
avec seulement quelques lignes de JS pour placer un widget personnalisé sur ajouter-sur la barre.cfx run
-- cela ouvre des frais Firefox exemple avec votre nouveau brillant extension en elle.Dans l'ensemble, il m'a fallu quelques heures pour lire la documentation, de se familiariser avec l'API du SDK-s, trouver SDK module pour placer un widget sur une barre de navigation au lieu de ajouter sur la barre, et de développer pleinement extension fonctionnelle dans à peu près 50 lignes de JavaScript.
HTH!
Mise à jour
Il y a une nouvelle norme, appelée WebExtensions
De MDN
.bashrc
, de sorte que vous n'avez pas manuellement le cd à l'add-on du répertoire plus:alias addon-sdk="cd /opt/addon-sdk && source bin/activate; cd -"
. Puisque vous avez mentionné "l'extension Chrome", je tiens à ajouter que j'ai aussi créé un module appelé un le navigateur d'action module qui rend le portage d'une extension qui utilise google Chrome,chrome.browserAction
API très facile.bash cfx init
dans mon nouveau dossier, j'obtiens cette erreur:/opt/addon-sdk-1.16/bin/cfx: line 12: syntax error near unexpected token '(' /opt/addon-sdk-1.16/bin/cfx: line 12: 'cuddlefish_root = os.path.dirname(os.path.dirname(os.path.realpath(sys.argv[0])))'
alias cfx="python /opt/addon-sdk-1.16/bin/cfx"
npm
. Mais le SDK ne peut pas être utilisée pour développer de nouvelles extensions plus. Voir stackoverflow.com/a/41107443/1587329Oui, il ya trois différentes techniques que vous pouvez utiliser pour construire des extensions:
Vous pouvez lire comparaison entre ici
Étapes pour commencer avec Ajouter-sur SDK extensions à base de
bin\activate
partie dans Windows est cassé lors de Python est installé dansProgram Files (x86)
.De https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/, la seule façon d'aller de l'avant est d'utiliser WebExtensions. Le dernier SDK extensions seront acceptés pour Firefox 52, tandis que Firefox 57 ce sera la fin de tout autre support de l'extension, prenant en charge WebExtensions.
Firefox copié Google Chrome est une extension de l'API. Donc, vous pourriez suffit d'utiliser votre extension Chrome et voir si toutes les Api sont déjà pris en charge dans Firefox (ils doivent être dès à présent).
Programmeurs comme NoScript's Giorgio Maone soutenir activement le changement de WebExtensions.
De développer un WebExtension, vous avez besoin
le
web-ext
-outil qui peut être installé viaou tout simplement d'utiliser Firefox
about:debugging
ou de Chrome estchrome:extensions
de charger temporairement la webextension.De toute façon, vous avez besoin d'un
manifest.json
fichier dans un répertoire créé par vous, qui les colles à toutes les fonctionnalités à l'ensemble. Voir https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_first_WebExtension pour un premier exemple. Ou Google docs à https://developer.chrome.com/getstarted.Il y a deux façons pour le développement de modules complémentaires, chacun d'eux a des avantages et des inconvénients:
1 - WebExtensions (nouvelle méthode):
WebExtensions sont l'avenir de Firefox add-ons. Si vous pouvez utiliser la WebExtensions API, c'est le meilleur choix. Vous pouvez développer et publier WebExtensions droit maintenant, mais ils sont encore dans un état.
2 - Ajouter-sur SDK (ancienne méthode):
L'Add-on SDK fournit des Api pour développer des modules complémentaires de Firefox, et un outil de développement, de test et de leur emballage.
J'ai fait un tutoriel sur le développement d'extensions à l'aide de l'addon Firefox SDK:
Comment développer une extension Firefox avec l'addon SDK