13Sep

Hvorfor Firefox måtte drepe din favorittforlengelse

Firefox 57, eller Quantum, er her, og det er en stor forbedring. Firefox har endelig oppdaget Chrome når det gjelder hastighet, grensesnittet er mye renere, og det er noen flotte nye funksjoner å starte opp. Det er ikke mye å klage på her.

Bare tuller. På internett er det alltid noe å klage på.

Med Firefox Quantum er klagen de jour at visse utvidelser ikke fungerer lenger. Tallrike høyprofilutvidelser, inkludert DownThemAll og Greasemonkey, jobber for øyeblikket ikke med Quantum. Andre, inkludert Firebug og ScrapBook, vil sannsynligvis aldri fungere igjen.

Dette er frustrerende hvis du er bruker av en av disse tjenestene, og du tror kanskje det er noe vilkårlig. Det er det ikke. Liker det eller ikke, følte Mozilla at de ikke hadde et valg, men å forlate det som kalles "eldre" tillegg for å kunne bevege seg fremover. Her er hvorfor.

Hvordan eldre Firefox-utvidelser jobbet

Tradisjonelle Firefox-utvidelser ble vanligvis skrevet i XML User Interface Language( XUL).Dette er språket Firefox brukergrensesnitt er bygd med, og XUL-baserte utvidelser kan endre dette grensesnittet direkte. Disse tilleggene hadde også nær full tilgang til XPCOM, den kraftige komponentobjektmodellen som brukes av Firefox.

Hvis det gikk over hodet ditt, vet du bare dette: Firefox-utvidelser hadde en mer eller mindre total evne til å endre nettleseren din, og de gjorde de endringene direkte. Det var derfor disse utvidelsene var så kraftige: det var ikke et foreskrevet sett av ting de kunne og ikke kunne endre. Det er også derfor disse utvidelsene tendens til å bryte med nye Firefox-utgivelser.

-utvidelser for Chrome eller Safari fungerer ikke på denne måten. Disse nettleserne tilbyr utvidelsesutviklerne spesifikke APIer de kan bruke, noe som betyr at det er en liste over ting som utvidelser kan og ikke kan kontrollere. I to år har Firefox tilbudt en lignende API kalt WebExtensions, som den har oppmuntret utviklere til å adoptere.

Tradisjonelle utvidelser gjort forbedring av Firefox Vanskelig

Firefox Quantam er ikke den første oppdateringen som bryter en forlengelse: dette har vært et pågående problem i mange år. Fordi Firefox-utvidelser kan påvirke Firefox så direkte, var det mulig for selv små endringer i Firefox selv å koble til tillegg helt, eller bare introdusere bugs for ytelse.

Firefox-brukere, uten å vite at utvidelsene forårsaket problemet, antar at den nye Firefox-versjonen er buggy, og fra deres perspektiv var det. Firefox-teamet vil gjøre sitt beste for å sikre at populære utvidelser virket før du trykker på en ny versjon, men det er lett å forestille seg alt dette reduserer utviklingen.

WebExtensions API gjør alt dette enklere ved å spesifikt definere hvilke tillegg som kan gjøre og hvordan de kan gjøre det. Dette betyr at utviklere bare trenger å sikre at API-en fungerer som den skal, og ikke bekymre deg for at en ytelsesjustering eller brukergrensesnittendring vil ødelegge bestemte utvidelser. Resultatet skulle være færre utvidelser som bryter i det lange løp, men for å gjøre dette mulig, trengte Mozilla å forlate det gamle utvidelsesøkosystemet.

Endringen gjør også noen av Quantams beste funksjoner mulig. Multi-prosessegenskapen, for eksempel, er en stor del av Firefox Quantams fartforbedring. Fire separate prosesser håndterer Firefox grensesnitt og faner, noe som betyr at Firefox kan bruke alle fire kjernene til prosessoren din i stedet for bare en. Dette er en realitet som det tradisjonelle utvidelsesøkosystemet ikke ble bygget for, og det er vanskelig å forestille seg at det fungerer uten mange lag av abstraksjon som uunngåelig vil bremse ting ned. Mange kommende endringer i Firefox ble likevel holdt tilbake av legacy add-ons, noe som betyr at økosystemet måtte endre for at Firefox skulle utvikle seg.

Kryssplattformskompatibilitet var et problem

En gang i gang ga tilleggsprogrammer folk en overbevisende grunn til å bruke Firefox over Chrome. I disse dager er Chrome langt overlegen når det gjelder tilleggsprogrammer, mens Firefox kan føles som et kirkegård av uovervåtte utvidelser fra år til år.

Visst, det er noen Firefox-utvidelser som du ikke kan komme inn i Chrome, men Chrome har det største økosystemet langt. Den nye WebExtensions API vil ikke fikse dette over natten, men det gjør det mye enklere for Chrome-utvidelser å bli overført til Firefox fordi språket som brukes til å skrive utvidelser, er like stort for å gjøre overflaten overflødig. I mange tilfeller er det bare noen få tilpasninger som kreves for at en Chrome-utvidelse skal kjøre i Firefox, noe som betyr at det ikke er noen grunn til at favoritt Chrome-utvidelsene dine ikke kan komme til Firefox nå hvis du spør utvikleren pent nok. Dette burde føre til en oversvømmelse av nye utvidelser i et økosystem som helt ærlig kunne bruke det.

Firefox var allerede å miste brukere

Noen kan hevde at Firefox vil miste brukere på grunn av ødelagte utvidelser, men det er verdt å merke seg at Firefox allerede mistet brukere til Chrome i en alarmerende hastighet, og har vært i mange år. Sammenligningshastighet og mangel på bestemte tilleggsprogrammer hjalp ikke på den fronten, og Firefox Quantum har som mål å fikse begge disse problemene.

Er det en sjanse for at dette vil komme tilbake? Sikker. Noen vil hoppe skipet til Chrome, og andre kan oppsøke gamle gafler som opprettholder det gamle utvidelsesøkosystemet. Men det er ikke som ting gikk bra før. Firefox trengte å utvikle seg for å være relevant, og slik bestemte de seg for å gjøre det.

Utviklere hadde tid til å bytte til den nye API

Noen brukere vil ikke legge merke til at denne bryteren selv har skjedd, fordi utvidelsene de jobber med allerede bruker WebExtension API.Andre utvidelser har ikke byttet.

Dette kan skyldes at utvikleren forlot utvidelsen for lenge siden, eller har ikke lyst til å skrive på nytt for å bruke API.I noen tilfeller gir API ikke nok kontroll til å gjenopprette den opprinnelige utvidelsen, slik at utviklere forlater prosjektene sine. Og i mange tilfeller er konverteringen ganske enkelt ikke ferdig ennå.

Uansett er ikke utvidelsene bryte fordi Mozilla forandret noe plutselig. WebExtensions har vært en del av Firefox i to år, og fristen for oppdatering av utvidelser ble annonsert for et år siden:

Ved utgangen av 2017, og med utgivelsen av Firefox 57, vil vi bare flytte til WebExtensions, og vil slutte å laste noenandre utvidelsestyper på skrivebordet.

Mangler fortsatt en utvidelse du er avhengig av? Dette Google-dokumentet sporer flere populære utvidelser, og gir alternativer til flere vanlige. Denne listen er også nyttig.