Ricerca…


introduzione

Add-ons:

I componenti aggiuntivi di Firefox sono generalmente raggruppati in estensioni e quindi "altri tipi" di componenti aggiuntivi di Firefox.

estensioni

Le estensioni consentono di personalizzare Firefox aggiungendo o modificando la funzionalità di Firefox. Alcuni dei tipi di cose che possono essere fatte con le estensioni includono:

  • Cambia il modo in cui appaiono i siti web specifici, i loro contenuti o il modo in cui sono interagiti.
  • Personalizza l'interfaccia utente di Firefox
  • Aggiungi funzionalità aggiuntive a Firefox
  • Cambia il funzionamento delle funzionalità di Firefox esistenti

Le estensioni di Firefox sono, principalmente, scritte in JavaScript con l'aggiunta di alcune API JavaScript.

Deprecazione e rimozione di tutti i tipi di estensioni diverse da WebExtensions

I componenti aggiuntivi di Firefox, in particolare le estensioni, sono in uno stato di flusso al momento. Mozilla ha annunciato e confermato di aver deprecato tutti i tipi di estensioni di Firefox, tranne WebExtensions, e che tutte le estensioni basate su WebExtensions saranno disabilitate in Firefox 57, che è in programma per il 2017-11-14 .

Tipi di estensioni

Firefox ha quattro tipi di estensioni (che sono comunemente chiamati componenti aggiuntivi):

  • WebExtensions : Andando avanti, WebExtensions è l'unico tipo di estensione per Firefox che sarà supportato. Questi componenti aggiuntivi sono descritti da un file manifest.json . Questa API è simile a ciò che viene utilizzato per le estensioni di Google Chrome. Questi componenti aggiuntivi utilizzano HTML e CSS oltre a Javascript. Mentre Mozilla ha dichiarato che questa API è il futuro delle estensioni di Firefox, questa API è ancora in fase di sviluppo. Per ora, probabilmente stai meglio sviluppando e testando il tuo componente aggiuntivo WebExtension con Firefox Developer Edition o Firefox Nightly . Dovresti anche prendere nota di quale versione di Firefox è richiesta per la funzionalità che desideri utilizzare. Questa informazione è contenuta nella sezione "Compatibilità del browser" delle pagine di documentazione di MDN.

    WebExtensions utilizza un'API significativamente diversa rispetto agli altri tre tipi di estensioni. Non c'è, intenzionalmente, alcuna possibilità di utilizzare le interfacce fornite da nessuno degli altri tipi di componenti aggiuntivi.

  • SDK add-on : [ deprecato; programmato per la rimozione ] Questi componenti aggiuntivi sono descritti da un file package.json che viene inizialmente generato eseguendo jpm init . Queste estensioni utilizzano spesso require() per caricare API di alto livello o di basso livello per l'interfaccia con Firefox. Questi componenti aggiuntivi utilizzano HTML e CSS oltre a Javascript. Attualmente, questi componenti aggiuntivi sono avvolti in un'estensione bootstrap quando vengono caricati per il test da jpm run o consolidati in un file .xpi da jpm xpi per la distribuzione (cioè caricarle AMO / Mozilla). In altre parole, sono estensioni bootstrap con un wrapper SDK.

    Mozilla sembra impegnata a continuare a supportare estensioni basate su SDK add-on purché l'estensione non require("chrome") , o comunque dipenda da XUL , XPCOM e XBL .

    La maggior parte delle cose che possono essere fatte in un'estensione bootstrapped può essere fatta in un SDK add-on based. Tuttavia, molte di queste cose bypassano l'SDK che perde una parte significativa dei vantaggi dell'utilizzo dell'SDK aggiuntivo.

  • Bootstrap : [ deprecato; programmato per la rimozione ] Queste estensioni sono anche comunemente chiamate "restartless" perché erano il primo tipo di estensione Mozilla che non richiedeva il riavvio dell'applicazione per caricare / scaricare l'add-on. Tuttavia, restartless è un descrittore di come funzionano. L'utilizzo di "restartless" come il nome per questo tipo di componente aggiuntivo è fonte di confusione perché entrambi i componenti aggiuntivi Add-on SDK e WebExtension non richiedono il riavvio dell'applicazione per caricare o scaricare l'add-on. Per questo motivo, c'è la tendenza a non utilizzare più "restartless" come nome per questo tipo di componente aggiuntivo.

    Questi componenti aggiuntivi utilizzano HTML e CSS oltre a Javascript. Molti interagiscono anche con Firefox usando XUL .

    Questi componenti aggiuntivi hanno un file JavaScript chiamato bootstrap.js che deve contenere punti di ingresso (funzioni) che sono chiamati per l' startup() aggiuntivo startup() , shutdown() , install() e uninstall() .

    Questi componenti aggiuntivi contengono un file install.rdf che descrive il componente aggiuntivo. Solitamente, ma non sempre, contengono anche un file chrome.manifest che descrive in che modo i file e le directory dell'estensione si riferiscono all'applicazione Mozilla (ad esempio Firefox).

    La maggior parte, ma non tutte le cose che si possono fare nelle estensioni overlay / XUL / Legacy possono essere eseguite con componenti aggiuntivi bootstrap. Tutto ciò che può essere fatto nell'SDK add-on può essere fatto in un'estensione bootstrapped (le estensioni del componente aggiuntivo SDK sono add-on bootstrap con alcuni livelli API basati su JavaScript).

    Mozilla ha dichiarato di voler deprecare "componenti aggiuntivi che dipendono da XUL , XPCOM e XBL ". Anche se non tutti i componenti aggiuntivi bootstrap dipendono da queste tecnologie, i componenti aggiuntivi bootstrap tendono a funzionare a un livello inferiore rispetto ai componenti aggiuntivi SDK add-on e WebExtension. Pertanto, sono più propensi a utilizzare queste tecnologie. Mentre ci sono alcuni che dicono che tutti i componenti aggiuntivi bootstrap sono pianificati per essere deprecati, non è chiaro che sia il caso. Dopo tutto, le estensioni del componente aggiuntivo SDK non vengono deprecate (a meno che non utilizzino require("chrome") o dipendano da XUL, XPCOM o XBL) e tutte le estensioni del componente aggiuntivo SDK sono estensioni bootstrap, solo con un wrapper SDK .

  • Sovrapposizione / XUL / Legacy : [ deprecato; programmata per la rimozione ] Questi componenti aggiuntivi contengono un file install.rdf che descrive il componente aggiuntivo e un file chrome.manifest per descrivere in che modo si riferiscono i file del componente aggiuntivo (ad esempio, l'overlay) ai file dell'applicazione. Il modo in cui il componente aggiuntivo funziona con l'applicazione dipende completamente dalle relazioni descritte nel file chrome.manifest . Le uniche eccezioni a questo sono alcune cose come le icone per l'estensione e il file che descrive le opzioni dell'estensione che sono indicate nel file install.rdf . Queste estensioni interagiscono con l'applicazione (ad es. Firefox) ad un livello molto basso. Questo tende a renderli più propensi a rompersi quando vengono apportate modifiche all'applicazione.

    Questi componenti aggiuntivi utilizzano XUL, HTML e CSS oltre a Javascript. Alcuni usano anche XPCOM e XBL .

    Si prevede che tutte le estensioni Overlay / XUL / Legacy siano deprecate.

Altri tipi di componenti aggiuntivi per Firefox

Quando molte persone pensano ai componenti aggiuntivi di Firefox, stanno pensando alle estensioni descritte sopra. Tuttavia, ci sono alcuni tipi aggiuntivi di componenti aggiuntivi per Firefox:

Questo "esempio" viene principalmente copiato, con alcune modifiche, dalla mia risposta, Makyen, su una domanda StackOverflow .
Alcune parti di questo contenuto sono state copiate, o almeno basate sulla pagina del componente aggiuntivo su Mozilla Developer Network (MDN).
Questo è stato originariamente pubblicato da Makyen nella sezione "Note" del tag firefox-addon . Fu poi modificato da Ondřej Doněk , che rimosse un extra "per". In una singola modifica eseguita da nus , è stato spostato da "Note" a un "esempio" bloccato intitolato "Introduzione". Sfortunatamente, facendo ciò, il sistema ha perso le informazioni sull'attribuzione.

Installazione di un componente aggiuntivo temporaneo

Per testare un componente aggiuntivo che stai sviluppando, probabilmente vorrai installarlo temporaneamente in Firefox. Puoi farlo caricandolo come componente aggiuntivo temporaneo . Fare così:

  1. Vai a about:debugging
  2. Clicca su "Carica componente aggiuntivo temporaneo"
  3. Nel selettore di file, accedere alla directory contenente i file aggiuntivi
  4. Seleziona qualsiasi file nella cartella
  5. Clicca "Apri"

L'animazione seguente mostra il caricamento di un componente aggiuntivo denominato "aaaaaaaaaaaaaaaaaa - demo add-on" da about:debugging e che il componente aggiuntivo viene visualizzato in about:addons :

caricamento di un componente aggiuntivo temporaneo

Come componente aggiuntivo temporaneo, puoi caricare un componente aggiuntivo decompresso (una directory che contiene tutti i file per il componente aggiuntivo che dovresti inserire in un file .xpi ), o un componente aggiuntivo che viene inserito in un file .xpi archivio .xpi . I componenti aggiuntivi temporanei non devono essere firmati . Il componente aggiuntivo temporaneo rimane installato fino alla disinstallazione manuale o al riavvio di Firefox.

Documentazione di Mozilla: installazione temporanea in Firefox

WebExtensions

WebExtensions può essere caricato come componente aggiuntivo temporaneo. Questo può essere fatto con i file aggiuntivi scompattati o impacchettati in un file .xpi .

SDK aggiuntivo per Firefox

Non è possibile caricare un add-on Firefox estensione SDK come temporanea add-on senza prima confezione in un file .xpi con jpm xpi . In generale, utilizzerai jpm run per testare l'estensione del tuo SDK add-on per Firefox.

I file che sono in genere modificati per un'estensione Add-on SDK non creano un'estensione completa senza alcune funzioni di wrapping aggiuntive e il file package.json viene tradotto in un file install.rdf e, eventualmente, in un file chrome.manifest . Questo processo avvolge l'estensione dell'SDK aggiuntivo in un componente aggiuntivo Bootstrap / Restartless, che è compreso da Firefox. Senza questo processo, Firefox non sarà in grado di caricare il componente aggiuntivo. Questo processo viene eseguito da jpm xpi risultando in un file .xpi compresso. L'esecuzione di jpm run anche questo processo, ma memorizza i file risultanti in una posizione temporanea e richiama Firefox con il componente aggiuntivo installato.

Bootstrap / Restartless

I componenti aggiuntivi Bootstrap / Restartless possono essere caricati come componenti aggiuntivi temporanei. Questo può essere fatto con i file aggiuntivi scompattati o impacchettati in un file .xpi .

Legacy / Overlay / XUL

I componenti aggiuntivi Legacy / Overlay / XUL non possono essere caricati come componenti aggiuntivi temporanei.

Installazione di componenti aggiuntivi non firmati

Per installare un'estensione come un normale componente aggiuntivo nelle versioni Release o Beta di Firefox superiore o uguale a, versione 48, l'estensione deve essere firmata da Mozilla . Un'estensione è firmata inviandola ad AMO . Una volta firmato, l'estensione può essere installata su qualsiasi versione di Firefox supportata. Per le versioni di Firefox precedenti alla versione 43, le estensioni non dovevano essere firmate da Mozilla. I tipi di componenti aggiuntivi diversi dalle estensioni non devono essere firmati da Mozilla.

È possibile installare estensioni non firmate come normali componenti aggiuntivi in ​​altre versioni di Firefox (ad es. Firefox Developer Edition , Firefox Nightly , Unbranded Beta o Unbranded Release ) impostando xpinstall.signatures.required su false in about:config . L'impostazione di questa opzione era efficace anche nelle versioni Release e Beta Firefox 43-48. L'impostazione di questa opzione non è efficace nelle versioni Release e Beta di Firefox dalla versione 48 in poi.

La necessità di poter installare componenti aggiuntivi non firmati durante lo sviluppo di componenti aggiuntivi è stata notevolmente ridotta dalla disponibilità di installare estensioni come componenti aggiuntivi temporanei . I componenti aggiuntivi temporanei non devono essere firmati e possono essere caricati in qualsiasi versione corrente di Firefox. Come suggerisce il nome, l'inconveniente principale di Temporary Add-on è che sono temporanei. Devono essere reinstallati ogni volta che viene riavviato Firefox. Tuttavia, esistono casi di utilizzo in cui è preferibile installare un componente aggiuntivo come un normale, ma non firmato, componente aggiuntivo anziché come componente aggiuntivo temporaneo. Un componente aggiuntivo deve essere installato come componente aggiuntivo senza firma se è necessario che il componente aggiuntivo rimanga installato anche dopo il riavvio di Firefox. Ciò potrebbe essere auspicabile per una serie di motivi, tra cui: test di utilizzo a più lungo termine o per verificare come le funzioni del componente aggiuntivo all'avvio di Firefox.

Installazione di componenti aggiuntivi per lo sviluppo

I componenti aggiuntivi possono essere installati come:

  1. Componenti aggiuntivi normali, che vengono installati fino alla disinstallazione
  2. Componenti aggiuntivi temporanei (solo estensioni ): vengono installati solo fino al riavvio di Firefox o possono essere disinstallati manualmente in precedenza.
  3. Utilizzo di jpm run (solo SDK add-on ): esegue automaticamente Firefox utilizzando un profilo temporaneo con il componente aggiuntivo caricato.
  4. Utilizzo di web-ext run (solo WebExtensions ): esegue automaticamente Firefox utilizzando un profilo temporaneo con il componente aggiuntivo caricato come componente aggiuntivo temporaneo. Per impostazione predefinita, monitora i tuoi file di estensione per le modifiche e ricarica automaticamente l'estensione quando i file cambiano.

Componenti aggiuntivi normali

L'installazione di estensioni pacchettizzate (ad esempio il file .xpi ) può essere semplicemente una questione di trascinamento e rilascio su una finestra di Firefox che esegue il profilo in cui desideri venga installato. Possono anche essere installati direttamente scaricando l'estensione da AMO . A seconda del tuo obiettivo (un profilo, tutti i profili, tutti gli utenti, quale sistema operativo, ecc.), Ci sono altre opzioni su come installare le estensioni .

Queste altre opzioni includono varie directory al di fuori della directory del profilo in cui è possibile inserire il file .xpi per installarlo per tutti gli utenti di una particolare versione di Firefox o per tutti i profili di un particolare utente. Su Windows, è anche possibile installare un'estensione aggiungendo una chiave al registro di Windows. In generale, queste altre directory non sono quelle in cui si installa un componente aggiuntivo su cui si sta scrivendo attualmente. Tuttavia, possono essere utilizzati per assicurarti di avere componenti aggiuntivi che utilizzi per supportare il tuo test / sviluppo caricato in qualsiasi profilo di Firefox o versione di Firefox che usi. Ad esempio, inserendo un file .xpi in <Firefox install directory>/browser/extensions è possibile avere un'estensione disponibile anche nel profilo temporaneo creato da jpm run (utilizzato per testare estensioni basate su SDK di Firefox Add-on).

Per lo sviluppo / test , è possibile avere l'estensione in qualsiasi directory sull'unità locale utilizzando un file proxy di estensione di Firefox (creare un file denominato come <em:id> dell'estensione (in install.rdf per Bootstrap / Restartless e Overlay / Legacy) nella directory delle estensioni del profilo contenente una riga con il percorso completo alla directory contenente i file dell'estensione). Le estensioni installate in questo modo saranno quasi sempre senza segno (vedi sotto). Pertanto, questo metodo non è molto utile se si desidera installare l'estensione in una versione Beta o versione di Firefox.

Limitazioni sull'installazione di componenti aggiuntivi normali: firma aggiuntiva

Per installare un'estensione come un normale componente aggiuntivo nelle versioni Release o Beta di Firefox superiore o uguale a, versione 48, l'estensione deve essere firmata da Mozilla . Un'estensione è firmata inviandola ad AMO . Una volta firmato, l'estensione può essere installata su qualsiasi versione di Firefox supportata. Per le versioni di Firefox precedenti alla versione 43, le estensioni non dovevano essere firmate da Mozilla. I tipi di componenti aggiuntivi diversi dalle estensioni non devono essere firmati da Mozilla.

È possibile installare estensioni non firmate come normali componenti aggiuntivi in ​​altre versioni di Firefox (ad es. Firefox Developer Edition , Firefox Nightly , Unbranded Beta o Unbranded Release ) impostando xpinstall.signatures.required su false in about:config . L'impostazione di questa opzione era efficace anche nelle versioni Release e Beta Firefox 43-48. L'impostazione di questa opzione non è efficace nelle versioni Release e Beta di Firefox dalla versione 48 in poi.

Tuttavia, è possibile disabilitare completamente il controllo delle firme aggiuntive in Firefox su tutte le versioni, inclusa la versione. La risposta alla domanda Stack Overflow Come posso disattivare il controllo delle firme per i componenti aggiuntivi di Firefox? descrive come farlo.

La necessità di poter installare componenti aggiuntivi non firmati per scopi di sviluppo è stata notevolmente ridotta dalla disponibilità di installare estensioni come componenti aggiuntivi temporanei . I componenti aggiuntivi temporanei non devono essere firmati e possono essere caricati in qualsiasi versione corrente di Firefox. Come suggerisce il nome, l'inconveniente principale di Temporary Add-on è che sono temporanei. Devono essere reinstallati ogni volta che viene riavviato Firefox. Tuttavia, esistono casi di utilizzo in cui è preferibile installare un componente aggiuntivo come un normale, ma non firmato, componente aggiuntivo anziché come componente aggiuntivo temporaneo. Un componente aggiuntivo deve essere installato come componente aggiuntivo senza firma se è necessario che il componente aggiuntivo rimanga installato anche dopo il riavvio di Firefox. Ciò potrebbe essere auspicabile per una serie di motivi, tra cui: test di utilizzo a più lungo termine o per verificare come le funzioni del componente aggiuntivo all'avvio di Firefox.

Componenti aggiuntivi temporanei ( solo estensioni )

WebExtensions, estensioni basate su SDK Add-on di Firefox e estensioni Restartless / Bootstrap possono essere installate come componenti aggiuntivi temporanei da about:debugging . Le estensioni possono essere caricate come componenti aggiuntivi temporanei in qualsiasi versione corrente di Firefox. I componenti aggiuntivi temporanei non devono essere firmati e possono essere caricati sia da unpacked (una directory con file), sia imballati (ad esempio un file .xpi ).

Per informazioni dettagliate sull'installazione temporanea delle estensioni, consultare Installazione di un componente aggiuntivo temporaneo .



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