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"
  }
}

aplicaciones


Nota:

Firma de extensión :

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.

Incompatibilidades de cromo

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 .

Paquete de proyectos

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 .

Instalar extensión

Cuando se cargue la extensión, la página about:addons se verá así:

Resultado de la instalación

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 ):

Resultado del trabajo


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



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow