2011-10-06 17 views
10

Ya he codificado la mayoría de los complementos de Firefox utilizando Add-on SDK API. Ahora estoy descubriendo que Add-on SDK podría no ser lo suficientemente potente para mis propósitos. Necesito dos cosas:¿Cómo usar Add-on SDK para agregar botones de la barra de herramientas? ¿Integrando XUL y Add-on SDK para complementos de Firefox?

  1. Un botón desplegable en la barra de herramientas junto a la barra de direcciones.
  2. Para modificar el administrador de complementos en Firefox

Es verdaderamente decepcionante, pero no creen que cualquiera de ellos es posible con el add-on SDK.

Antes que nada, entiendo que hay un módulo widget en Add-on SDK API. Pero esto solo me permite agregar un icono o etiqueta simple a la incómoda barra de complementos. ¿Qué ocurre si necesito agregar un botón más bonito como el que está junto a la barra de direcciones de Firebug o Greasemonkey? En cuanto a la modificación del administrador de complementos en Firefox, he intentado Nickolay Ponomarev's XUL with the Add-on SDK sin éxito alguno. Si alguien sabe cómo hacerlo funcionar y puede orientarme en la dirección correcta que sería extremadamente útil (cfx init --template xul no hace nada del SDK normal cuando lo intento)

+2

Los complementos deben agregar su icono a la barra de complementos, esa es la recomendación oficial para todas las extensiones que comiencen con Firefox 4. Si el usuario quiere desordenar sus otras barras de herramientas, puede personalizarlas y arrastrarlas alrededor, eso debería funcionar para complementos de SDK también. –

+0

En cuanto a la modificación del administrador de complementos: no proporciona absolutamente ninguna información sobre lo que está tratando de lograr, y hacer dos preguntas a la vez no es una buena idea de todos modos. Le sugiero que edite su pregunta para preguntar únicamente sobre los botones de la barra de herramientas y mover la modificación del administrador de complementos a otra pregunta. –

+0

@WladimirPalant gracias por las sugerencias.Creo que muchos usuarios de Firefox todavía se sienten incómodos moviendo íconos. Me temo que a la gente no le gustará la posición predeterminada de mi menú adicional en la barra de complementos, y simplemente cerrará la barra como un todo en lugar de tener que preocuparse por la reubicación. – Salami

Respuesta

3

¿Ha mirado el módulo del botón de la barra de herramientas de Erik Vold?

https://github.com/erikvold/toolbarbutton-jplib/

Es posible acceder a todas las API internas de Firefox en módulos SDK exigiendo privilegios de cromo; simplemente no será tan fácil como las aplicaciones de nivel alto de addon-kit.

+2

No he visto esto, pero parece muy útil. Quizás también pueda usar esto como modelo para cambiar el administrador de complementos. ¡Gracias! – Salami

+1

Ciertamente puede modificar el EM con módulos SDK, yo mismo lo haría, así que si ha comenzado algo, ¡por favor hágamelo saber! – erikvold

+1

(El enlace suministrado está muerto) – Mike

1

probado XOL de Nickolay Ponomarev con Jetpack sin ningún éxito. Si alguien sabe cómo conseguir este trabajo y me puede apuntar en la dirección correcta que sería extremadamente útil (CFX init --template XUL no hace nada el SDK normal hace cuando lo intento)

lo haría Me gusta mucho escuchar la descripción detallada de lo que probaste y cómo exactamente falló. No puedo responder la pregunta en su forma actual.

No creo que ninguna de estas cosas sea posible con JetPack.

Quiere decir que solo utiliza los módulos de SDK de alto nivel incorporados. Es posible escribir un módulo de SDK de bajo nivel que use XPCOM e interactúe directamente con el código de Chrome para implementar las características que necesita; después de todo, así es como se implementan el resto de los módulos de SDK. Si realizas esta ruta, perderás la promesa de compatibilidad futura del SDK: tendrás que incluirlo en el SDK original o actualizarlo para las versiones más nuevas de Firefox.

+0

Gracias por su respuesta. Descargué 1.0b1rc4 de su fork github del add-on sdk y ejecuté bin/activate. Entonces, cuando ejecuto 'cfx init --template xul' en una nueva carpeta, no consigo la carpeta' extension' mencionada (junto con lib, tests, etc.) No obtengo ninguno de los archivos mencionados en la sección "Archivos pregenerados en un complemento basado en XUL" ni siquiera los cambios en el archivo package.json. Las instrucciones parecen claras pero no estoy obteniendo los resultados esperados. – Salami

+1

@Salami: OK, estoy sospechando del paso de descarga. ¿Utilizaste el botón "ZIP" en la página de github para descargar? Es posible que haya descargado la versión 'base' del código, no el tenedor. Pruebe https://github.com/nickolay/addon-sdk/zipball/bug641215-xul-extensions-v2 (o mejor aún clonar con git). – Nickolay

+0

Gracias. Esta versión 0.9 que vinculó parece estar funcionando bien – Salami

2

La barra de herramientas buttonlib-jplib a la que se hace referencia anteriormente ya no existe, pero pruebe toolbarwidget-jplib. ¡Funciona a las mil maravillas! Ahorro de vida total

Cuestiones relacionadas