Ricerca…


Osservazioni

Se stai utilizzando una versione di Firefox prima di 48, avrai anche bisogno di una chiave aggiuntiva in manifest.json chiamata applicazioni:

"applications": {
  "gecko": {
    "id": "[email protected]",
    "strict_min_version": "42.0",
    "strict_max_version": "50.*",
    "update_url": "https://example.com/updates.json"
  }
}

applicazioni


Nota:

Firma estensione :

Con il rilascio di Firefox 48, la firma dell'estensione non può più essere disabilitata nelle versioni di rilascio e beta channel utilizzando una preferenza. Come delineato quando è stata annunciata la firma dell'estensione, pubblichiamo build specializzati che supportano questa preferenza in modo che gli sviluppatori possano continuare a testare il codice generato da beta e release build.

Stato di WebExtensions :

WebExtensions sono attualmente in uno stato alfa sperimentale. Da Firefox 46, puoi pubblicare WebExtensions per gli utenti di Firefox, proprio come qualsiasi altro componente aggiuntivo. Puntiamo a una prima versione stabile in Firefox 48.

UPD : Firefox 48 rilasciato il 02.08.2016.


link:

Stato di supporto dell'API - L'elenco delle API e il loro stato.

Incompatibilità Chrome

WebExtensions - API JavaScript, chiavi di manifest.json, tutorial, ecc.

Porting attraverso WebExtensions

Prima di parlare del porting delle estensioni di Firefox da / a, si dovrebbe sapere cosa sono WebExtensions .

WebExtensions - è una piattaforma che rappresenta un'API per la creazione di estensioni di Firefox .

Utilizza la stessa architettura di estensione di Chromium , di conseguenza, questa API è compatibile in molti modi con l'API in Google Chrome e Opera (Opera basata su Chromium). In molti casi, le estensioni sviluppate per questi browser funzioneranno in Firefox con alcune modifiche o addirittura senza di esse.

MDN consiglia di utilizzare WebExtension per le nuove estensioni:

In futuro, WebExtensions sarà il modo consigliato per sviluppare componenti aggiuntivi di Firefox e altri sistemi saranno deprecati.

In considerazione di quanto sopra, se si desidera effettuare il porting di estensioni a Firefox , è necessario sapere come è stata scritta l'estensione.

Le estensioni per Firefox possono essere basate su WebExtension , Add-on SDK o XUL .


Estensioni compatibili basate su WebExtension

Quando si utilizza WebExtension , si deve esaminare l'elenco delle incompatibilità , poiché alcune funzioni sono supportate completamente o parzialmente, ovvero in altre parole, si dovrebbe controllare manifest.json .

Consente inoltre di utilizzare lo stesso spazio dei nomi :

Al momento, tutte le API sono accessibili tramite lo spazio dei nomi chrome. *. Quando iniziamo ad aggiungere le nostre API, ci aspettiamo di aggiungerle al browser. * Namespace. Gli sviluppatori saranno in grado di utilizzare il rilevamento delle funzioni per determinare se un'API è disponibile nel browser. *.

Una semplice estensione che può funzionare in Firefox e 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/*"]
}

sceneggiatura di 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);

Comprimere il progetto come file zip standard, ma con estensioni .xpi .

Pack progetto

Quindi, devi caricare l'estensione in Firefox .

Apri la pagina about:addons , accessibile tramite Menu> Componenti aggiuntivi .

Fai clic sul pulsante Strumenti per tutti i componenti aggiuntivi .

Installa l'estensione

Quando l'estensione è caricata la pagina about:addons sarà simile a questa:

Risultato dell'installazione

Le indicazioni sul caricamento dell'estensione in Google Chrome sono in un altro argomento: come iniziare con Chrome Extensions .

Il risultato dell'operazione di estensione sarà lo stesso in entrambi i browser ( Firefox / Google Chrome ):

Risultato del lavoro


Se il componente aggiuntivo corrente è basato su Add-on SDK o XUL

Quando l'estensione in fase di porting è basato su Add-on SDK si deve guardare attraverso il tavolo di confronto per Add-on SDK => WebExtensions , perché queste tecnologie hanno caratteristiche simili, ma differiscono per l'attuazione. Ogni sezione della tabella descrive l'equivalente di Add-on SDK per WebExtension .

Confronto con l'SDK add-on

Un approccio simile e per le estensioni XUL.

Confronto con le estensioni XUL / XPCOM



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow