firefox-addon Handledning
Komma igång med firefox-addon
Sök…
Introduktion
Add-ons:
Firefox-tillägg grupperas vanligtvis i tillägg, och sedan "andra typer" av Firefox-tillägg.
Extensions
Extensions gör att Firefox kan anpassas genom att lägga till eller ändra Firefox funktionalitet. Några av de typer av saker som kan göras med tillägg inkluderar:
- Ändra hur specifika webbplatser visas, deras innehåll eller hur de interagerar med.
- Anpassa Firefox-användargränssnittet
- Lägg till ytterligare funktioner i Firefox
- Ändra hur befintliga Firefox-funktioner fungerar
Firefox-tillägg skrivs i första hand i JavaScript med tillägg av vissa JavaScript-API: er.
Avskrivning och borttagning av alla andra tillägg än WebExtensions
Firefox-tillägg, särskilt tillägg, är i flödesmoment för närvarande. Mozilla har meddelat och bekräftat att de har tagit bort alla typer av Firefox-tillägg, förutom WebExtensions, och att alla tillägg som inte är baserade på WebExtensions kommer att inaktiveras i Firefox 57, som är planerat 2017-11-14 .
Typer av tillägg
Firefox har fyra typer av tillägg (alla kallas vanligtvis tillägg):
WebExtensions : WebExtensions är den enda typen av Firefox-förlängning som stöds. Dessa tillägg beskrivs av en manifest.json- fil. Detta API liknar det som används för Google Chrome-tillägg. Dessa tillägg använder HTML och CSS utöver Javascript. Även om Mozilla har sagt att detta API är framtiden för Firefox-tillägg, är detta API fortfarande under utveckling. För närvarande är du förmodligen bäst att utveckla och testa ditt WebExtension-tillägg med Firefox Developer Edition , eller Firefox Nightly . Du bör också notera noggrant vilken version av Firefox som krävs för den funktionalitet du vill använda. Denna information finns i avsnittet "Webbläsarkompatibilitet" på MDN-dokumentationssidorna.
WebExtensions använder ett betydligt annat API än de andra tre typerna av tillägg. Det finns avsiktligt ingen möjlighet att använda gränssnitten som tillhandahålls av någon av de andra tilläggstyperna.
Tilläggs-SDK : [ avskrivet; schemalagd för borttagning ] Dessa tillägg beskrivs av en package.json- fil som initialt genereras genom att
jpm init
. Dessa tillägg använder oftarequire()
att ladda antingen API på hög nivå eller låg nivå för att gränssnitt med Firefox. Dessa tillägg använder HTML och CSS utöver Javascript. För närvarande är dessa tillägg lindade i en bootstrapped förlängning när de laddas för testning medjpm run
eller konsolideras till en .xpi- fil avjpm xpi
för distribution (dvs. ladda upp till AMO / Mozilla). Med andra ord är de bootstrapped-tillägg med en SDK-omslag.Mozilla verkar ha åtagit sig att fortsätta stödja tilläggs-SDK-baserade tillägg så länge tillägget inte använder
require("chrome")
eller på annat sätt beror på XUL , XPCOM och XBL .De flesta saker som kan göras i en bootstrapped förlängning kan göras i en tilläggs-SDK-baserad. Många sådana saker kringgår dock SDK som förlorar en betydande del av fördelarna med att använda Add-on SDK.
Bootstrapped : [ avskrivet; schemalagd för borttagning ] Dessa tillägg kallas också vanligtvis "restartless" eftersom de var den första typen av Mozilla-förlängning som inte krävde att programmet startades om för att ladda / lossa tillägget. Men omstart är en beskrivning av hur de fungerar. Att använda "restartless" som namnet på denna typ av tillägg är förvirrande eftersom både Add-on SDK och WebExtension tillägg inte heller kräver att programmet startas om vid laddning eller lossning av tillägget. Av den anledningen finns det en tendens att inte längre använda "restartless" som namnet på denna typ av tillägg.
Dessa tillägg använder HTML och CSS utöver Javascript. Många interagerar också med Firefox med XUL .
Dessa tillägg har en JavaScript-fil som heter bootstrap.js som måste innehålla postpunkter (funktioner) som krävs för tilläggsstart
startup()
,shutdown()
,install()
ochuninstall()
.Dessa tillägg innehåller en install.rdf- fil som beskriver tillägget. De innehåller vanligtvis, men inte alltid, också en chrome.manifest- fil som beskriver hur filerna och katalogerna i tillägget relaterar till Mozilla-applikationen (t.ex. Firefox).
De flesta, men inte alla, saker som kan göras i överlägg / XUL / Legacy-tillägg kan utföras i bootstrapped tillägg. Allt som kan göras i Add-on SDK kan göras i en bootstrapped förlängning (Add-on SDK extensions är bootstrapped tillägg med några JavaScript-baserade API-lager).
Mozilla har uttalat att de planerar att avskriva "tillägg som beror på XUL , XPCOM och XBL ." Även om inte alla bootstrapped-tillägg beror på dessa teknologier, finns det en tendens för att bootstrapped-tillägg fungerar på en lägre nivå än Add-on SDK och WebExtension-tillägg. Således är de mer benägna att använda dessa teknologier. Det finns vissa som säger att alla bootstrappade tillägg planeras att avskrivas, men det är inte klart att så är fallet. När allt kommer omkring tilläggs inte tilläggs-SDK-tillägg (såvida de inte
require("chrome")
, eller på annat sätt beror på XUL, XPCOM eller XBL) och alla tilläggs-SDK-tillägg är bootstrapped-tillägg, bara med en SDK-omslag .Övertäckning / XUL / Legacy : [ utgått; schemalagd för borttagning ] Dessa tillägg innehåller en install.rdf- fil som beskriver tillägget och en chrome.manifest- fil för att beskriva hur tilläggets filer relaterar till (t.ex. överlägg) applikationens filer. Hur tilläggsfunktionerna med applikationen är helt beroende av förhållandena som beskrivs i filen chrome.manifest . De enda undantagen från detta är några saker som ikoner för tillägget och filen som beskriver tilläggets alternativ som anges i filen install.rdf . Dessa tillägg interagerar med applikationen (t.ex. Firefox) på en mycket låg nivå. Detta tenderar att göra dem mer benägna att bryta när ändringar görs i applikationen.
Dessa tillägg använder XUL, HTML och CSS förutom Javascript. Vissa använder också XPCOM och XBL .
Alla överlägg / XUL / Legacy-tillägg planeras att avskrivas.
Andra typer av Firefox-tillägg
När de flesta tänker på Firefox-tillägg tänker de på de tillägg som beskrivs ovan. Det finns dock några ytterligare typer av Firefox-tillägg:
- Teman [ delvis avskrivna ] möjliggör anpassning av utseende och känsla för Firefox. Primärt genom att tillhandahålla olika CSS-regler till alla delar av webbläsaren. "Kompletta teman" skrivs ut och planeras att delvis ersättas med ett gränssnitt som för närvarande inte finns .
- Mobila tillägg är för Firefox för Android. För närvarande stöds alla Firefox-tilläggstyper som är omstartlösa.
- Sökmotorplugin används för att lägga till ytterligare sökmotorer i webbläsarens sökfält.
- Användarordböcker tillåter stavningskontroll på ytterligare språk.
- Språkpaket lägger till fler språk i Firefox-användargränssnittet.
- Plugins är delade bibliotek för att visa innehåll som själva applikationen inte kan visa ursprungligen.
Detta "exempel" kopieras främst, med några ändringar, från mitt, Makyens svar på en stackoverflow-fråga .
Vissa delar av detta innehåll kopierades, eller åtminstone baserade på, tilläggssidan på Mozilla Developer Network (MDN).
Detta postades ursprungligen av Makyen i avsnittet "Anmärkningar" i taggen firefox-addon . Den modifierades sedan av Ondřej Doněk , som tog bort ett extra "för". I en enda redigering utförd av nus flyttades den från "Kommentarer" till ett fästat "exempel" med titeln "Introduktion". Tyvärr resulterade detta i att systemet tappade attributinformation.
Installera ett tillfälligt tillägg
För att testa ett tillägg du utvecklar kommer du troligtvis att installera det tillfälligt i Firefox. Du kan göra det genom att ladda det som ett tillfälligt tillägg . Att göra så:
- Gå till
about:debugging
- Klicka på "Ladda tillfälligt tillägg"
- I filväljaren navigerar du till katalogen som innehåller tilläggsfilerna
- Välj vilken fil som helst i mappen
- Klicka på "Öppna"
Följande animering visar laddning av ett tillägg med namnet "aaaaaaaaaaaaaaaaaa - demo-tillägg" från about:debugging
och att tillägget då dyker upp i about:addons
:
Som ett tillfälligt tillägg kan du ladda antingen ett uppackat tillägg (en katalog som innehåller alla filer för tillägget som du skulle packa i en .xpi- fil) eller ett tillägg som är förpackat i en .xpi
arkiv. Tillfälliga tillägg behöver inte undertecknas . Tillfälligt tillägg förblir installerat tills manuellt avinstalleras, eller Firefox startar om.
Mozilla-dokumentation: Tillfällig installation i Firefox
WebExtensions
WebExtensions kan laddas som tillfälliga tillägg. Detta kan göras med tilläggsfilerna antingen packade eller paketerade i en .xpi- fil.
Firefox-tilläggs-SDK
Du kan inte ladda ett Firefox-tilläggs-SDK-tillägg som ett tillfälligt tillägg utan att först packa det i en .xpi- fil med jpm xpi
. I allmänhet kommer du att använda jpm run
att testa din Firefox Add-on SDK-förlängning.
Filerna som vanligtvis redigeras för ett tillägg SDK-tillägg gör inte ett komplett tillägg utan några extra inslagningsfunktioner och paket.json- filen översätts till en install.rdf- fil och eventuellt en chrome.manifest- fil. Denna process lindar tilläggs-SDK-tillägget i ett Bootstrap / Restartless-tillägg, vilket förstås av Firefox. Utan denna process kan Firefox inte ladda tillägget. Denna process utförs av jpm xpi
vilket resulterar i en packad .xpi- fil. Att utföra jpm run
utför också denna process, men lagrar de resulterande filerna på en tillfällig plats och åkallar Firefox med tillägget installerat.
Bootstrap / Restartless
Bootstrap / Restartless-tillägg kan laddas som tillfälliga tillägg. Detta kan göras med tilläggsfilerna antingen packade eller paketerade i en .xpi- fil.
Legacy / Overlay / XUL
Legacy / Overlay / XUL-tillägg kan inte laddas som tillfälliga tillägg.
Installera osignerade tillägg
För att installera ett tillägg som ett normalt tillägg till Release- eller Beta-versioner av Firefox större än, eller lika med version 48, måste tillägget vara undertecknat av Mozilla . En förlängning undertecknas genom att skicka den till AMO . När den är signerad kan tillägget installeras på alla versioner av Firefox som det stöder. För Firefox-versioner före version 43 krävdes inte tillägg att undertecknas av Mozilla. Andra typer av tillägg än tillägg krävs inte att signeras av Mozilla.
Du kan installera osignerade tillägg som vanliga tillägg i andra versioner av Firefox (t.ex. Firefox Developer Edition , Firefox Nightly , Unbranded Beta eller Unbranded Release ) genom att ställa in xpinstall.signatures.required
till false
in about:config
. Att ställa in detta alternativ var också effektivt i versioner och Beta Firefox versionerna 43–48. Det är inte effektivt att ställa in detta alternativ i versioner och betaversioner av Firefox från version 48 och framåt.
Behovet av att kunna installera osignerade tillägg under tilläggsutveckling har minskat kraftigt av tillgängligheten för att installera tillägg som tillfälliga tillägg . Tillfälliga tillägg behöver inte undertecknas, och kan laddas in i någon aktuell version av Firefox. Som namnet antyder är den primära nackdelen med tillfälliga tillägg att de är tillfälliga. De måste installeras igen när Firefox startas om. Det finns dock användningsfall där det är att föredra att installera ett tillägg som ett normalt, men osignerat tillägg istället för som ett tillfälligt tillägg. Ett tillägg bör installeras som ett osignerat tillägg om det är nödvändigt att tillägget förblir installerat även efter Firefox har startats om. Detta kan vara önskvärt av olika skäl, inklusive: testning på längre sikt eller för att testa hur tillägget fungerar när Firefox startar.
Installera tillägg för utveckling
Tillägg kan installeras som:
- Normala tillägg, som installeras tills de avinstalleras
- Tillfälliga tillägg (endast tillägg ): installeras bara tills Firefox startas om eller kan avinstalleras manuellt tidigare.
- Använda
jpm run
(endast tilläggs-SDK ): kör Firefox automatiskt med en tillfällig profil med ditt tillägg laddat. - Använda
web-ext run
(endast WebExtensions ): kör Firefox automatiskt med en tillfällig profil med tillägget laddat som ett tillfälligt tillägg. Som standard övervakar du dina tilläggsfiler för ändringar och laddar om tillägget automatiskt när filer ändras.
Normala tillägg
Att installera paketerade tillägg (dvs. .xpi
filen) kan vara en enkel fråga om att dra och släppa den till ett Firefox-fönster som kör profilen där du önskar att den installeras. De kan också installeras direkt genom att ladda ner tillägget från AMO . Beroende på vad ditt mål är (en profil, alla profiler, alla användare, vilket operativsystem etc.) finns det andra alternativ för hur du installerar tillägg .
Dessa andra alternativ inkluderar olika kataloger utanför profilens katalog där du kan placera .xpi- filen för att den ska installeras för alla användare av en viss version av Firefox, eller alla profiler för en viss användare. På Windows kan du också installera ett tillägg genom att lägga till en nyckel i Windows-registret. I allmänhet är dessa andra kataloger inte de som du skulle installera ett tillägg som du för närvarande skriver på. De kan emellertid användas för att se till att du har tillägg som du använder för att stödja din test / utveckling laddad i någon Firefox-profil eller Firefox-version som du använder. Genom att t.ex. placera en .xpi- fil i <Firefox install directory>/browser/extensions
du ha ett tillägg tillgängligt även i den tillfälliga profilen som skapats av jpm run
(används för att testa Firefox Add-on SDK-baserade tillägg).
För utveckling / testning kan du ha tillägget att vara i valfri katalog på din lokala enhet genom att använda en Firefox-proxy-fil (skapa en fil som heter tilläggets <em:id>
(i install.rdf för Bootstrap / Restartless och Overlay / Äldre) i profilens tilläggskatalog som innehåller en rad med hela sökvägen till katalogen som innehåller tilläggets filer). Tillägg installerade på detta sätt kommer nästan alltid att vara signerade (se nedan). Således är denna metod inte särskilt användbar om du vill installera tillägget i en version eller betaversion av Firefox.
Begränsningar för installation av normala tillägg: Add-on Signing
För att installera ett tillägg som ett normalt tillägg till Release- eller Beta-versioner av Firefox större än, eller lika med version 48, måste tillägget vara undertecknat av Mozilla . En förlängning undertecknas genom att skicka den till AMO . När den är signerad kan tillägget installeras på alla versioner av Firefox som det stöder. För Firefox-versioner före version 43 krävdes inte tillägg att undertecknas av Mozilla. Andra typer av tillägg än tillägg krävs inte att signeras av Mozilla.
Du kan installera osignerade tillägg som vanliga tillägg i andra versioner av Firefox (t.ex. Firefox Developer Edition , Firefox Nightly , Unbranded Beta eller Unbranded Release ) genom att ställa in xpinstall.signatures.required
till false
in about:config
. Att ställa in detta alternativ var också effektivt i versioner och Beta Firefox versionerna 43–48. Det är inte effektivt att ställa in detta alternativ i versioner och betaversioner av Firefox från version 48 och framåt.
Du kan dock helt inaktivera kontroll av tilläggssignatur i Firefox i alla versioner, inklusive release. Svaret på Stack Overflow-frågan Hur kan jag inaktivera signaturkontroll för Firefox-tillägg? beskriver hur man gör det.
Behovet av att kunna installera osignerade tillägg för utvecklingsändamål har minskat kraftigt av tillgängligheten för att installera tillägg som tillfälliga tillägg . Tillfälliga tillägg behöver inte undertecknas, och kan laddas in i någon aktuell version av Firefox. Som namnet antyder är den primära nackdelen med tillfälliga tillägg att de är tillfälliga. De måste installeras igen när Firefox startas om. Det finns dock användningsfall där det är att föredra att installera ett tillägg som ett normalt, men osignerat tillägg istället för som ett tillfälligt tillägg. Ett tillägg bör installeras som ett osignerat tillägg om det är nödvändigt att tillägget förblir installerat även efter Firefox har startats om. Detta kan vara önskvärt av olika skäl, inklusive: testning på längre sikt eller för att testa hur tillägget fungerar när Firefox startar.
Tillfälliga tillägg ( endast tillägg )
WebExtensions, Firefox-tilläggs-SDK-baserade tillägg och Restartless / Bootstrap-tillägg kan installeras som tillfälliga tillägg från about:debugging
. Tillägg kan laddas som tillfälliga tillägg i alla aktuella versioner av Firefox. Tillfälliga tillägg krävs inte att signeras och kan laddas från antingen packade upp (en katalog med filer) eller packade (t.ex. en .xpi- fil).
För detaljerad information om tillfälligt installation av tillägg, se Installera ett tillfälligt tillägg .