javascript - una - scanner virus sitio web
¿Hay una manera de portar una extensión de Chrome a otros navegadores? (3)
¿Hay una manera de portar una extensión de Chrome a otros navegadores, sin tener que volver a escribir el código por completo? Mi extensión de Chrome usa el comando browser_action para abrir "popup.html" en la ventana de extensión ...
Actualización: encontré adblockforchrome port.js y lo encontré solo algo útil para la migración a Safari ...
Apple proporciona una guía sobre cómo convertir una extensión de Chrome a Safari, pero el problema con el que se encontrará es que cada navegador tiene un conjunto diferente de funcionalidades permitidas para las extensiones. Incluso con Chrome to Safari, hay cosas que podrías hacer en Chrome que no puedes hacer en Safari, y viceversa.
Depende del tipo de extensión, pero no realmente. Para responder a su pregunta con mayor claridad, debe especificar de qué se trata su extensión: modificar algunas páginas (como, por ejemplo, scripts de usuario / usuarios), ampliar las funciones de los navegadores o algo más.
Sin embargo, hay algunas notas de portabilidad que podrían ayudarlo a simplificar este proceso:
- No escriba el código específico del navegador. En algunos navegadores modernos, puede utilizar las funciones de HTML5, como la API de base de datos web SQL. Es difícil emular este tipo de comportamiento en IE, por ejemplo.
- Mantenga su JavaScript modular; no utilice métodos de JavaScript específicos del proveedor, y su código será portátil y no se basará en TraceMonkey o V8;
- Separe el HTML de CSS y Javascript, no haga que su código sea sucio y complicado.
Saltando un poco tarde.
Nuestra empresa - Slice Factory (¡la revelación completa aquí!) Proporciona un servicio de conversión de extensión de navegador: http://gallery.extensionfactory.com/labs/conversion/ En la mayoría de los casos, su extensión de Chrome funcionará perfectamente en FF y Safari.
El servicio aún está en fase de prueba beta, y la conversión de Firefox funciona mejor que la de Safari. No puedo revelar completamente cuál es nuestra solución técnica, pero como esta es una respuesta SO, puedo agregar algunos detalles: hemos re-desarrollado una pila de api de javascript que imita la mayoría de las API de extensiones de Chrome para Safari y Firefox; En Firefox basamos nuestro trabajo en JetChrome. Además, tenemos envoltorios que re-empaquetan la extensión de Chrome, añaden nuestra biblioteca y registran manifiestos, etc.
Más allá de eso, son principalmente algunas buenas ideas, prueba y error, y MUCHO tiempo de desarrollo.
Como ejemplo: Safari 5.1 acaba de presentar una ventana emergente correspondiente a browser_action de Chrome, pero ya tenemos una solución alternativa que funciona para versiones anteriores. Firefox no admite HTML5 WebSQL, pero tenemos una API para ello. También proporcionamos una manera de llevar aplicaciones web a FF, y pronto a Safari. El objetivo es tener la API de Chrome como referencia e imitarla en todos los demás navegadores.
Sin empujarlo hacia nuestra solución, podría agregar que el tiempo para cubrir completamente la API de Chrome en Safari y Firefox probablemente no valga la pena, a menos que planee convertir varias extensiones. Por lo tanto, solo para una o dos extensiones recomendaría que su código sea lo más modular posible, y que simplemente cree tres extensiones, ¡o pruebe nuestro servicio!