google-chrome-extension
Portando a / desde Firefox
Buscar..
Observaciones
Si está utilizando una versión de Firefox antes de 48, también necesitará una clave adicional en
manifest.json
llamada aplicaciones:
"applications": {
"gecko": {
"id": "[email protected]",
"strict_min_version": "42.0",
"strict_max_version": "50.*",
"update_url": "https://example.com/updates.json"
}
}
Nota:
Con el lanzamiento de Firefox 48, la firma de extensión ya no se puede deshabilitar en el lanzamiento y las compilaciones del canal beta usando una preferencia. Tal como se describió cuando se anunció la firma de extensión, estamos publicando compilaciones especializadas que admiten esta preferencia para que los desarrolladores puedan continuar probando contra el código del que se generan las versiones beta y de versión.
Estado de las WebExtensions
:
Las extensiones web están actualmente en un estado alfa experimental. Desde Firefox 46, puedes publicar WebExtensions para usuarios de Firefox, como cualquier otro complemento. Estamos apuntando para un primer lanzamiento estable en Firefox 48.
UPD : Firefox 48 lanzado el 02.08.2016.
Campo de golf:
Estado de soporte de API : la lista de API y su estado.
WebExtensions - API de JavaScript, claves de manifest.json, tutoriales, etc.
Portando a través de WebExtensions
Antes de hablar sobre portar extensiones de Firefox de / a, uno debe saber qué es WebExtensions
.
WebExtensions
: es una plataforma que representa una API para crear extensiones de Firefox .
Utiliza la misma arquitectura de extensión que Chromium , como resultado, esta API es compatible de muchas maneras con la API en Google Chrome y Opera (Opera, que se basa en Chromium). En muchos casos, las extensiones desarrolladas para estos navegadores funcionarán en Firefox con algunos cambios o incluso sin ellos.
MDN recomienda utilizar WebExtension
para nuevas extensiones:
En el futuro, WebExtensions será la forma recomendada para desarrollar complementos de Firefox, y otros sistemas quedarán obsoletos.
En vista de lo anterior, si desea portar extensiones a Firefox , debe saber cómo se escribió la extensión.
Las extensiones para Firefox pueden basarse en WebExtension
, Add-on SDK
o XUL
.
Extensiones compatibles basadas en WebExtension
Al usar WebExtension
, uno tiene que mirar a través de la lista de incompatibilidades , ya que algunas funciones son compatibles total o parcialmente, es decir, uno debe verificar su manifest.json
.
También permite usar el mismo espacio de nombres :
En este momento, se puede acceder a todas las API a través del espacio de nombres chrome. *. Cuando comencemos a agregar nuestras propias API, esperamos agregarlas al navegador. * Espacio de nombres. Los desarrolladores podrán utilizar la detección de características para determinar si una API está disponible en el navegador. *.
Una extensión simple que puede funcionar en Firefox y Google Chrome.
manifest.json
:
{
"manifest_version": 2,
"name": "StackMirror",
"version": "1.0",
"description": "Mirror reflection of StackOverflow sites",
"icons": {
"48": "icon/myIcon-48.png"
},
"page_action": {
"default_icon": "icon/myIcon-48.png"
},
"background": {
"scripts" : ["js/background/script.js"],
"persistent": false
},
"permissions": ["tabs", "*://*.stackoverflow.com/*"]
}
guión de background
:
function startScript(tabId, changeInfo, tab) {
if (tab.url.indexOf("stackoverflow.com") > -1) {
chrome.tabs.executeScript(tabId,
{code: 'document.body.style.transform = "scaleX(-1)";'}, function () {
if (!chrome.runtime.lastError) {
chrome.pageAction.show(tabId);
}
});
}
}
chrome.tabs.onUpdated.addListener(startScript);
Empaque el proyecto como archivo zip
estándar, pero con extensiones .xpi
.
Entonces, tienes que cargar la extensión en Firefox .
Abra la página about:addons
, accesible a través de Menú> Complementos .
Haga clic en el botón Herramientas para todos los complementos .
Cuando se cargue la extensión, la página about:addons
se verá así:
Las instrucciones para cargar la extensión en Google Chrome se encuentran en otro tema: cómo comenzar con las extensiones de Chrome .
El resultado de la operación de extensión será el mismo en ambos navegadores ( Firefox / Google Chrome ):
Si el complemento actual se basa en el SDK de complemento o XUL
Cuando la extensión que se va a portar se basa en Add-on SDK
uno tiene que mirar a través de la tabla de comparación para Add-on SDK
=> WebExtensions
, porque estas tecnologías tienen características similares, pero difieren en la implementación. Cada sección de la tabla describe el equivalente de Add-on SDK
para WebExtension
.
Comparación con el complemento SDK
Un enfoque similar y para las extensiones XUL.
Comparación con las extensiones XUL / XPCOM