Varför Firefox måste döda din favoritförlängning
Firefox 57, eller Quantum, är här, och det är en stor förbättring. Firefox har äntligen hamnat i Chrome när det gäller hastighet, gränssnittet är mycket renare, och det finns några bra 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å.
Med Firefox Quantum är klagomålet de jour att vissa tillägg inte fungerar längre. Många avancerade tillägg, inklusive DownThemAll och Greasemonkey, arbetar för närvarande inte med Quantum. Andra, inklusive Firebug and ScrapBook, kommer sannolikt aldrig att fungera igen.
Detta är frustrerande om du är en användare av en av dessa tjänster, och du kanske tror att det är lite godtyckligt. Det är det inte. Gilla det eller inte, kände Mozilla att de inte hade något val, men att överge vad det kallar "äldre" tillägg för att kunna gå vidare. Här är varför.
Så fungerar äldre Firefox-tillägg
Traditionella Firefox-extensions skrivs generellt i XML User Interface Language (XUL). Detta är språket Firefox användargränssnitt är byggt med, och XUL-baserade tillägg kan ändra det här gränssnittet direkt. Dessa tillägg hade också nära full tillgång till XPCOM, den kraftfulla komponentobjektmodellen som används av Firefox.
Om det gick över huvudet, vet du bara här: Firefox-tillägg har en mer eller mindre total förmåga att ändra din webbläsare, och de gjorde de ändringar direkt. Det var därför dessa tillägg var så kraftfulla: det fanns inte en föreskriven uppsättning saker de kunde och kunde inte förändras. Det är också varför dessa tillägg tenderade att bryta med nya Firefox-utgåvor.
Tillägg för Chrome eller Safari fungerar inte så här. Dessa webbläsare erbjuder utvecklingsprogram för särskilda utvecklingsprogram för förlängningsutvecklare som de kan använda, vilket betyder att det finns en lista över saker som extensions kan och inte kan styra. I två år har Firefox erbjudit ett liknande API som heter WebExtensions, vilket det har uppmanat utvecklare att anta.
Traditionella tillägg gjorde förbättring av Firefox svårt
Firefox Quantam är inte den första uppdateringen för att bryta en förlängning: det har varit ett pågående problem i många år. Eftersom Firefox-tillägg kan påverka Firefox så direkt, var det möjligt att även små förändringar av Firefox själv för att bryta tillägg helt eller bara introducera prestanda-sapping buggar.
Firefox-användare, som inte kände till att tilläggen orsakade problemet, skulle anta att den nya Firefox-versionen är buggy, och från deras perspektiv var det. Firefox-teamet skulle göra sitt bästa för att se till att populära tillägg fungerade innan du tryckte på en ny version, men det är lätt att föreställa sig allt detta saktar utvecklingen.
WebExtensions API gör allt detta enklare genom att specifikt definiera vilka tillägg som kan göra och hur de kan göra det. Det innebär att utvecklare bara behöver se till att API: n fungerar korrekt och inte oroa dig för att en prestandakonfiguration eller användargränssnittändring kommer att bryta specifika tillägg. Resultatet borde vara färre förlängningar som bryter på sikt, men för att göra det möjligt behövde Mozilla att överge det gamla extensionsekosystemet.
Förändringen gör också några av Quantams bästa funktioner möjliga. Flera processfunktioner, till exempel, är en stor del av Firefox Quantams hastighetsökning. Fyra separata processer hanterar Firefox-gränssnittet och flikar, vilket innebär att Firefox kan använda alla fyra kärnorna i din processor istället för bara en. Det här är en verklighet som det traditionella förlängningsekosystemet inte helt enkelt byggdes för, och det är svårt att tänka sig att det fungerar utan många abstraktionslager som oundvikligen skulle sakta ner sakerna. Många kommande ändringar i Firefox hölls på samma sätt av äldre add-ons, vilket innebär att ekosystemet måste ändras för att Firefox ska kunna utvecklas.
Cross-plattformskompatibilitet var ett problem
En gång i tiden gav tillägg personer en tvingande 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 ett kyrkogård av obestämda tillägg från år tillbaka.
Visst, det finns några Firefox-tillägg som du inte kan få i Chrome, men Chrome har det större ekosystemet än så länge. Det nya WebExtensions API kommer inte att fixa det här över natten, 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 lika stort för att göra portfiguration ytlig. I många fall behövs bara några tweaks för att en Chrome-tillägg ska kunna köras i Firefox, vilket innebär att det inte finns någon anledning 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 helt enkelt skulle kunna använda det.
Firefox förlorade redan användare
Vissa kan hävda att Firefox kommer att förlora användare på grund av brutna tillägg, men det är värt att notera att Firefox redan förlorat användare till Chrome i en alarmerande takt. Jämförande hastighet och brist på vissa tillägg bidrog inte till den fronten, och Firefox Quantum syftar till att fixa båda problemen.
Finns det en chans att detta kommer att slå tillbaka? Säker. Vissa människor kommer hoppa fartyget till Chrome, och andra kan söka gamla forks som behåller det gamla extensionsekosystemet. Men det är inte som det gick bra innan. Firefox behövde utvecklas för att vara relevant, och det här var hur de bestämde sig för att göra det.
Utvecklare hade tid att byta till det nya API
Vissa användare kommer inte märka att den här omkopplaren ens har hänt, eftersom de tillägg som de arbetar med redan använder WebExtension API. Andra tillägg har inte bytts.
Detta kan bero på att utvecklaren övergav förlängningen för länge sedan, eller känner inte som att skriva om det för att använda API: n. I vissa fall erbjuder API inte tillräckligt med kontroll för att återskapa originalutvidgningen, så utvecklare överger sina projekt. Och i många fall är konverteringen helt enkelt inte färdig.
Oavsett fallet bryter inte tillägget eftersom Mozilla ändrats någonting helt plötsligt. WebExtensions har varit en del av Firefox i två år, och tidsfristen för uppdatering av tillägg meddelades för ett år sedan:
I slutet av 2017, och med utgåvan av Firefox 57 kommer vi att flytta till WebExtensions uteslutande, och kommer sluta ladda andra andra typer av tillägg på skrivbordet.
Fortfarande saknas en förlängning 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.