Waarom Firefox je favoriete extensie moest doden
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.
Grapje. Op internet is altijd iets om over te klagen.
Met Firefox Quantum is de klacht de jour 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 u een gebruiker van een van deze services bent en misschien denkt u dat het enigszins willekeurig is. Dat is het niet. Leuk vinden of niet, Mozilla vond dat ze geen andere keuze 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-extensies zijn 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.
Als dat je gek was, weet 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 om te breken met nieuwe Firefox-releases.
Extensies voor Chrome of Safari werken niet op deze manier. Die 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. Firefox biedt al twee jaar een soortgelijke API aan, WebExtensions genaamd, die ontwikkelaars heeft aangemoedigd om te adopteren.
Traditionele uitbreidingen gemaakt Firefox moeilijk verbeteren
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 simpelweg performance-sapping bugs in te voeren.
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 prestatieaanpassing of gebruikersinterface bepaalde extensies zal doorbreken. Het resultaat zou op de lange termijn minder uitbreidingen moeten zijn, 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 is bijvoorbeeld 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 simpelweg niet voor is gebouwd, en het is moeilijk om je voor te stellen 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-to-time gaven add-ons mensen een overtuigende reden om Firefox via Chrome te gebruiken. Tegenwoordig is Chrome veruit de leider op het gebied van add-ons, terwijl Firefox zich een kerkhof kan voelen van niet-onderhouden extensies uit vervlogen tijden.
Natuurlijk zijn er 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 enkele 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 gaan als u de ontwikkelaar mooi genoeg vraagt. Dit zou moeten leiden tot een stroom van nieuwe uitbreidingen 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 schakelaar 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, gaan we exclusief over naar WebExtensions en stoppen we met het laden van andere 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.