/ / Varför Firefox var tvungen att döda din favoritförlängning

Varför Firefox var tvungen att döda din favoritförlängning

Firefox 57, eller Quantum, är här, och det är en enormförbättring. Firefox har äntligen fångat Chrome när det gäller hastighet, gränssnittet är mycket renare och det finns några fantastiska nya funktioner att starta. Det finns inte mycket att klaga på här.

Skojar bara. På internet finns det alltid något att klaga på.

RELATERAD: Hur du kontrollerar om dina tillägg slutar arbeta med Firefox 57

Med Firefox Quantum är klagomålet de jouratt vissa tillägg inte fungerar längre. Många högprofiltillägg, inklusive DownThemAll och Greasemonkey, fungerar för närvarande inte med Quantum. Andra, inklusive Firebug och ScrapBook, kommer sannolikt aldrig att fungera igen.

Detta är frustrerande om du är en användare av en avdessa tjänster, och du kanske tycker att det är något godtyckligt. Det är det inte. Gilla det eller inte, Mozilla tyckte att de inte hade något annat val än att överge det som kallas "äldre" tillägg för att gå vidare. Här är varför.

Hur Legacy Firefox-tillägg fungerade

Traditionella Firefox-tillägg var i allmänhetskrivet i XML-användargränssnittsspråk (XUL). Detta är språket som Firefox: s användargränssnitt är byggt med, och XUL-baserade tillägg kan ändra det gränssnittet direkt. Dessa tillägg hade också nästan full tillgång till XPCOM, den kraftfulla komponentobjektmodellen som används av Firefox.

Om det gick över ditt huvud, bara veta detta: Firefox-tillägg hade en mer eller mindre total förmåga att ändra din webbläsare, och de gjorde dessa ändringar direkt. Det är därför dessa tillägg var så kraftfulla: det fanns inte en föreskriven uppsättning saker de kunde och inte kunde ändra. Det är också därför som dessa tillägg tenderade att bryta med nya Firefox-utgåvor.

Tillägg för Chrome eller Safari fungerar intesätt. Dessa webbläsare erbjuder specifika API: er för tilläggsutvecklare som de kan använda, vilket innebär att det finns en uppsatt lista över saker som tillägg kan och inte kan kontrollera. I två år nu har Firefox erbjudit ett liknande API som heter WebExtensions, som det har uppmuntrat utvecklare att anta.

Traditionella tillägg gör det svårt att förbättra Firefox

Firefox Quantam är inte den första uppdateringen som brytsen förlängning: detta har varit ett pågående problem i flera år. Eftersom Firefox-tillägg kan påverka Firefox så direkt, var det möjligt för till och med mindre ändringar i Firefox själv att bryta tillägg helt eller bara introducera prestandaspappande buggar.

Firefox-användare, som inte visste tillägg varorsakar problemet, skulle anta att den nya Firefox-versionen är buggy, och ur deras perspektiv var det. Firefox-teamet skulle göra sitt bästa för att säkerställa att populära tillägg fungerade innan de pressade en ny version, men det är lätt att föreställa sig allt detta bromsa utvecklingen.

WebExtensions API gör allt detta lättare genomspecifikt definiera vad tillägg kan göra och hur de kan göra det. Detta innebär att utvecklare bara behöver se till att API: n fungerar korrekt, och inte oroa sig för att en prestandajustering eller UI-ändring kommer att bryta vissa tillägg. Resultatet borde bli färre tillägg på lång sikt, men för att möjliggöra detta behövde Mozilla att överge det gamla ekosystemet för förlängning.

Ändringen gör också några av Quantams bästafunktioner möjliga. Exempelvis är flera processfunktioner en stor del av Firefox Quantams hastighetsökning. Fyra separata processer hanterar Firefox: s gränssnitt och flikar, vilket betyder att Firefox kan använda alla fyra kärnor på din processor istället för bara en. Detta är en verklighet som det traditionella ekosystemet för förlängning helt enkelt inte byggdes för, och det är svårt att föreställa sig att det fungerar utan många lager av abstraktion som oundvikligen skulle bromsa saker och ting. Många kommande ändringar av Firefox hölls på liknande sätt av gamla tillägg, vilket innebär att ekosystemet måste ändras för att Firefox skulle kunna utvecklas.

Cross Platform Compatibility var ett problem

En gång i tiden gav tillägg människor entvingande anledning att använda Firefox över Chrome. Idag är Chrome överlägset ledande när det gäller tillägg, medan Firefox kan känna sig som en kyrkogård av oupphörliga tillägg från tidigare år.

Visst finns det några Firefox-tillägg som dukan inte komma in i Chrome, men Chrome har det större ekosystemet överlägset. Det nya API för WebExtensions kommer inte att fixa det över en natt, men det gör det mycket lättare för Chrome-tillägg att överföras till Firefox eftersom språket som används för att skriva tillägg är tillräckligt lika för att göra porting ytlig. I många fall behövs det bara några justeringar för att en Chrome-förlängning ska kunna köras i Firefox, vilket betyder att det inte finns någon anledning till att dina favorit Chrome-tillägg inte kan komma till Firefox nu om du frågar utvecklaren tillräckligt bra. Detta borde leda till en översvämning av nya tillägg i ett ekosystem som ärligt kan använda det.

Firefox tappade redan användare

Vissa kan hävda att Firefox kommer att förlora användarepå grund av trasiga tillägg, men det är värt att notera att Firefox redan tappade användare till Chrome i en oroväckande takt och har varit det i flera år. Jämförande hastighet och brist på vissa tillägg hjälpte inte på den fronten, och Firefox Quantum syftar till att fixa båda dessa problem.

Är det en chans att detta kommer att återfå? Säker. Vissa människor hoppar fartyget till Chrome, och andra kan söka gamla forks som upprätthåller det gamla ekosystemet för förlängning. Men det är inte som att saker gick bra tidigare. Firefox behövde utvecklas för att hålla sig relevant, och det är så de beslutade att göra det.

Utvecklare hade tid att byta till det nya API: et

Vissa användare märker inte att den här växeln till och med har hänt, eftersom de tillägg de arbetar med redan använder WebExtension API. Andra tillägg har inte bytts.

Detta kan bero på att utvecklaren övergavförlängning för länge sedan, eller känner inte för att skriva om det för att använda API: n. I vissa fall erbjuder API: n inte tillräckligt med kontroll för att återskapa det ursprungliga tillägget, så utvecklare lämnar sina projekt. Och i många fall är konverteringen helt enkelt inte gjort ännu.

Hur som helst, tillägget bryts inteeftersom Mozilla plötsligt ändrade något. WebExtensions har varit en del av Firefox i två år, och tidsfristen för uppdatering av tillägg tillkännagavs för ett år sedan:

I slutet av 2017, och med lanseringen av Firefox 57, kommer vi att gå till WebExtensions exklusivt och slutar ladda alla andra tilläggstyper på skrivbordet.

Saknar du fortfarande ett tillägg du är beroende av? Detta Google-dokument spårar flera populära tillägg och erbjuder alternativ till flera vanliga. Denna lista är också användbar.