¿Cuál es la forma más fácil de desarrollar la extensión de Firefox?


Estoy planeando desarrollar una simple extensión de Firefox que acortará la URL de una pestaña actualmente activa, mostrará una ventana emergente con la URL acortada y la colocará en el portapapeles.

En Google Chrome, esto sería bastante fácil (de acuerdo con http://developer.chrome.com/extensions/getstarted.html ) JavaScript JavaScript puro más algunas llamadas a API-s de JavaScript de interactuar con la interfaz de usuario del navegador.

Sin embargo, después de buscar un buen tutorial de extensiones de Firefox, el la mayoría de los enlaces de aspecto oficial que encontré son:

Según ellos, parece que tendré que aprender el lenguaje XUL incluso para las interacciones más simples con la interfaz de usuario del navegador. Además de eso, tendré que configurar el perfil personalizado de Firefox para no manguera mi defecto perfil durante el desarrollo, crear una estructura de directorios complicada, escribir manifiesto en XML oscuro, averiguar cómo empaquetar y probar lo que implemente, etc.

Es 2013, ¿no hay una forma más fácil de construir extensiones de Firefox?

Author: Community, 2013-12-05

5 answers

Es 2013, ¿no hay una forma más fácil de construir extensiones de Firefox?

¡Sí que lo hay!

Los enlaces que proporcionaste en la pregunta están increíblemente desactualizados. Hay una nueva, mucho mejor manera de desarrollar extensiones de Firefox { Firefox Add-on SDK .

Sin embargo, es bastante difícil tropezar con él simplemente buscando en Google a lo largo de las líneas de 'firefox addon tutorial'. Me sorprende que Mozilla no lo anuncie de manera más agresiva, o al menos menciónalo en las páginas que encontraste.

Pasos para comenzar (Mac / Linux, pero debería ser bastante similar para PC):

  • Descargue el SDK desde https://addons.mozilla.org/en-US/developers/builder , desempaquetarlo.
  • Eche un vistazo rápidamente al archivo README (siempre útil).
  • Ejecute source bin/activate desde el directorio SDK (el mismo directorio en el que se encuentra el archivo README).
  • Execute cfx docs this este bootstraps copia local de SDK docs y lo abre en su navegador.
  • Deje el directorio SDK, cree un directorio vacío para su extensión.
  • Ejecutar cfx init dentro del directorio de extensiones generates esto genera todos los archivos/directorios necesarios.
  • Siga el resto de página de introducción a cfx:
    • Actualice lib/main.js con solo unas pocas líneas de JS para colocar un widget personalizado en la barra de complementos.
    • Execute cfx run opens esto abre una nueva instancia de Firefox con su nueva extensión shiny.

Todo en todo, me tomó solo unas horas para leer la documentación, familiarizarse con el SDK API-s, encontrar SDK módulo para colocar un widget en una barra de navegación en lugar de barra de complemento, y desarrollar extensión totalmente funcional en casi 50 líneas de JavaScript.

HTH!

Actualizar

Hay un nuevo estándar, llamado WebExtensions

De MDN

Actualmente hay varios conjuntos de herramientas para desarrollar complementos de Firefox, pero Las extensiones web se convertirán en el estándar a finales de 2017.

Si está escribiendo un nuevo complemento, le recomendamos que escriba una extensión web.

 72
Author: dorserg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-24 12:26:27

Sí hay tres técnicas diferentes que puede utilizar para construir extensiones:

  1. Add-on SDK-based extensions
  2. extensiones restartless con arranque manual
  3. extensiones superpuestas

Puedes leer la comparación entre aquí

Si puede, es recomendable utilizar el Add-on SDK, que utiliza el mecanismo de extensión restartless pero simplifica ciertas tareas y limpia después de sí mismo. Si el Complemento SDK no es suficiente para su necesidades, implementar una extensión manual restartless en su lugar.

Pasos para comenzar con Extensiones basadas en SDK de complementos

  1. Instalación
  2. Crear interfaces de usuario
  3. Interactuar con el navegador
 9
Author: Subodh Ghulaxe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-02 03:55:49

A partir de https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017 / , la única manera de seguir adelante será usar WebExtensions. Las últimas extensiones del SDK se aceptarán para Firefox 52, mientras que Firefox 57 finalizará el resto del soporte de extensiones , soportando solo WebExtensions.

Firefox copió la API de extensión de Google Chrome. Por lo tanto, podría simplemente usar su extensión de Chrome y ver si todas las API ya son compatibles con Firefox (deberían ser a partir de ahora). Programadores como Giorgio Maone de NoScript apoyan activamente el cambio a WebExtensions .

Para desarrollar una extensión web, necesita

  • O bien el web-ext-herramienta que se puede instalar a través de

    npm install --global web-ext
    
  • O simplemente utilice Firefox about:debugging o Chromium chrome:extensions para cargar temporalmente la extensión web.

De cualquier manera, necesita un archivo manifest.json en un directorio creado por usted, que pegue todas las funcionalidades junto. Véase https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Your_first_WebExtension para un primer ejemplo. O los documentos de Google en https://developer.chrome.com/getstarted .

 7
Author: serv-inc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-25 07:36:53

Hay dos vías oficiales para desarrollar complementos, cada uno de ellos tiene pros y contras:

1- WebExtensions (método más reciente):

Las extensiones web son el futuro de los complementos de Firefox. Si puedes usar la API de WebExtensions, es la mejor opción. Puedes desarrollar y publicar extensiones web ahora mismo, pero todavía están en un estado temprano.

2- Add-on SDK (método anterior):

El Add-on SDK proporciona API para el desarrollo Complementos de Firefox, y una herramienta para desarrollarlos, probarlos y empaquetarlos.

 4
Author: iraj jelodari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-04 07:50:35

Hice un tutorial sobre el desarrollo de extensiones usando el Firefox addon SDK:

Cómo desarrollar una extensión de Firefox con el addon SDK

 3
Author: ejectamenta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-10 08:59:06