13Sep

Waarom Firefox je favoriete extensie moest doden

click fraud protection

Firefox 57, of Quantum, is hier en het is een enorme verbetering. Firefox heeft Chrome eindelijk in termen van snelheid ingehaald, de interface is een stuk schoner en er zijn een aantal geweldige nieuwe functies om op te starten. Er valt hier niet veel te klagen.

Maak maar een grapje. Op internet is altijd iets om over te klagen.

Met Firefox Quantum is de klacht de dag dat bepaalde extensies niet meer werken. Talrijke high-profile uitbreidingen, waaronder DownThemAll en Greasemonkey, werken momenteel niet met Quantum. Anderen, waaronder Firebug en ScrapBook, zullen waarschijnlijk nooit meer werken.

Dit is frustrerend als je een gebruiker van een van deze services bent, en je zou denken dat het enigszins willekeurig is. Dat is het niet. Leuk vinden of niet, Mozilla vond dat ze geen andere keus hadden dan af te zien van wat ze "legacy" add-ons noemden om verder te gaan. Dit is waarom.

Hoe legacy Firefox-uitbreidingen werkten

Traditionele Firefox-uitbreidingen werden over het algemeen geschreven in XML User Interface Language( XUL).Dit is de taal waarin de gebruikersinterface van Firefox is gebouwd en op XUL gebaseerde extensies kunnen die interface rechtstreeks wijzigen. Deze add-ons hadden ook vrijwel volledige toegang tot XPCOM, het krachtige componentobjectmodel dat door Firefox wordt gebruikt.

instagram viewer

Als dat je gek was, weet je dit gewoon: Firefox-extensies hadden min of meer de mogelijkheid om je browser te veranderen en ze hebben die wijzigingen direct aangebracht. Daarom waren die extensies zo krachtig: er was geen voorgeschreven reeks dingen die ze wel en niet konden veranderen. Het is ook waarom deze extensies de neiging hadden te breken met nieuwe Firefox-releases.

-extensies voor Chrome of Safari werken niet op deze manier. Deze browsers bieden ontwikkelaars specifieke API's die ze kunnen gebruiken, wat betekent dat er een lijst met dingen is die extensies kunnen en niet kunnen beheren. Sinds twee jaar biedt Firefox een vergelijkbare API aan, WebExtensions genaamd, die ontwikkelaars heeft aangemoedigd om te adopteren.

Traditionele uitbreidingen gemaakt Verbetering van Firefox Moeilijk

Firefox Quantam is niet de eerste update om een ​​extensie te verbreken: dit is al jaren een voortdurend probleem. Omdat Firefox-uitbreidingen Firefox zo rechtstreeks konden beïnvloeden, was het voor zelfs kleine wijzigingen in Firefox zelf mogelijk om add-ons volledig te verbreken, of om gewoon bugs te introduceren die de prestaties ondermijnen.

Firefox-gebruikers, die niet wisten dat de extensies het probleem veroorzaakten, zouden aannemen dat de nieuwe Firefox-versie buggy is, en vanuit hun perspectief was dat. Het Firefox-team zou zijn best doen om ervoor te zorgen dat populaire extensies werkten voordat een nieuwe versie werd gepusht, maar je kunt je dit alles gemakkelijk voorstellen.

De WebExtensions API maakt dit alles eenvoudiger door specifiek te definiëren wat extensies kunnen doen en hoe ze dit kunnen doen. Dit betekent dat ontwikkelaars alleen moeten zorgen dat de API naar behoren werkt, en zich geen zorgen hoeven te maken dat een prestatienorm of UI-wijziging bepaalde extensies zal doorbreken. Het resultaat zou op de lange termijn minder uitbreidingen moeten bevatten, maar om dit mogelijk te maken, moest Mozilla het oude extensie-ecosysteem verlaten.

De wijziging maakt ook enkele van Quantam's beste functies mogelijk. De multi-process capability, bijvoorbeeld, is een groot deel van de snelheidsboost van Firefox Quantam. Vier afzonderlijke processen verwerken de interface en tabbladen van Firefox, wat betekent dat Firefox alle vier de cores van uw processor kan gebruiken in plaats van slechts één. Dit is een realiteit waar het traditionele uitbreidingsecosysteem eenvoudigweg niet voor is gebouwd, en het is moeilijk om het te laten werken zonder veel lagen van abstractie die de dingen onvermijdelijk zouden vertragen. Veel aankomende wijzigingen in Firefox werden op dezelfde manier tegengehouden door legacy add-ons, wat betekent dat het ecosysteem moest veranderen om Firefox te laten evolueren.

Cross Platform-compatibiliteit Was een probleem

Once upon a time gaven add-ons mensen een overtuigende reden om Firefox via Chrome te gebruiken. Tegenwoordig is Chrome verreweg de leider op het gebied van add-ons, terwijl Firefox zich een kerkhof van niet-onderhouden extensies van vervlogen tijden voelt.

Natuurlijk, er zijn een paar Firefox-extensies die je niet kunt krijgen in Chrome, maar Chrome heeft verreweg het grotere ecosysteem. De nieuwe WebExtensions-API lost dit niet van de ene op de andere dag op, maar het maakt het een stuk eenvoudiger om Chrome-uitbreidingen over te zetten naar Firefox, omdat de taal die wordt gebruikt om extensies te schrijven, vergelijkbaar genoeg is om portering oppervlakkig te maken. In veel gevallen zijn slechts een paar aanpassingen nodig om een ​​Chrome-extensie in Firefox uit te voeren, wat betekent dat er geen reden is waarom uw favoriete Chrome-extensies nu niet naar Firefox kunnen komen als u de ontwikkelaar mooi genoeg vraagt. Dit zou moeten leiden tot een stortvloed van nieuwe extensies in een ecosysteem dat het eerlijk zou kunnen gebruiken.

Firefox raakte al gebruikers kwijt

Sommigen beweren dat Firefox gebruikers verliest vanwege verbroken extensies, maar het is de moeite waard om op te merken dat Firefox gebruikers al aan het verliezen was in een alarmerend tempo, en dit al jarenlang is. Comparatieve snelheid en een gebrek aan bepaalde add-ons hielpen daar niet aan, en Firefox Quantum probeert beide problemen op te lossen.

Is er een kans dat dit een averechts effect zal hebben? Zeker. Sommige mensen zullen naar Chrome springen en anderen kunnen oude vorken zoeken die het oude extensie-ecosysteem onderhouden. Maar het is niet alsof de dingen lang goed gingen. Firefox moest evolueren om relevant te blijven, en dit is hoe ze besloten om het te doen.

-ontwikkelaars hadden tijd om over te schakelen naar de nieuwe API

Sommige gebruikers zullen niet merken dat deze switch zelfs is gebeurd, omdat de extensies waarmee ze werken al gebruikmaken van de WebExtension-API.Andere extensies zijn niet geschakeld.

Dit kan zijn omdat de ontwikkelaar lang geleden de extensie heeft verlaten of geen zin heeft om de extensie opnieuw te schrijven om de API te gebruiken. In sommige gevallen biedt de API onvoldoende controle om de oorspronkelijke extensie opnieuw te maken, zodat ontwikkelaars hun projecten verlaten. En in veel gevallen is de conversie gewoon nog niet voltooid.

Hoe het ook zij, de uitbreidingen breken niet omdat Mozilla opeens iets heeft veranderd. WebExtensions maakt al twee jaar deel uit van Firefox en de deadline voor het bijwerken van extensies werd een jaar geleden aangekondigd:

Tegen het einde van 2017 en met de release van Firefox 57 zullen we exclusief naar WebExtensions gaan en zullen we stoppen met het laden vanandere typen extensies op het bureaublad.

Mist u nog steeds een extensie waarvan u afhankelijk bent? Dit Google-document houdt verschillende populaire extensies bij en biedt alternatieven voor verschillende veelgebruikte extensies. Deze lijst is ook nuttig.