Hvorfor Firefox måtte dræbe din foretrukne udvidelse
Firefox 57 eller Quantum er her, og det er en enorm forbedring. Firefox har endelig fået fat i Chrome med hensyn til hastighed, grænsefladen er meget renere, og der er nogle gode nye funktioner til at starte. Der er ikke meget at klage over her.
Bare for sjov. På internettet er der altid noget at klage over.
Med Firefox Quantum er klagen de jour, at visse udvidelser ikke virker længere. Talrige avancerede udvidelser, herunder DownThemAll og Greasemonkey, arbejder ikke i øjeblikket med Quantum. Andre, herunder Firebug and ScrapBook, vil sandsynligvis aldrig arbejde igen.
Dette er frustrerende, hvis du er bruger af en af disse tjenester, og du tror måske, at det er noget vilkårligt. Det er det ikke. Ligesom det eller ej, følte Mozilla, at de ikke havde et valg, men at opgive, hvad det kalder "arv" -tillæg for at komme videre. Her er hvorfor.
Hvordan gamle Firefox-udvidelser fungerede
Traditionelle Firefox-udvidelser blev generelt skrevet i XML User Interface Language (XUL). Dette er det sprog, Firefox-brugergrænsefladen er bygget sammen med, og XUL-baserede udvidelser kan ændre denne grænseflade direkte. Disse tilføjelser havde også næsten fuld adgang til XPCOM, den kraftfulde komponentobjektmodel, der bruges af Firefox.
Hvis det gik over hovedet, så kender du bare dette: Firefox-udvidelser havde en mere eller mindre total evne til at ændre din browser, og de har foretaget disse ændringer direkte. Derfor var disse udvidelser så kraftfulde: der var ikke et foreskrevet sæt ting, de kunne og ikke kunne ændre. Det er også derfor, at disse udvidelser tendens til at bryde med nye Firefox udgivelser.
Udvidelser til Chrome eller Safari fungerer ikke på denne måde. Disse browsere tilbyder udvidelsesudviklere specifikke API'er, de kan bruge, hvilket betyder, at der er en liste over ting, som udvidelser kan og ikke kan kontrollere. I to år har Firefox tilbudt en lignende API kaldet WebExtensions, som den har opfordret udviklere til at vedtage.
Traditionelle udvidelser gjort forbedring af Firefox svært
Firefox Quantam er ikke den første opdatering til at bryde en udvidelse: dette har været et igangværende problem i årevis. Da Firefox-udvidelser kunne påvirke Firefox så direkte, var det muligt for selv små ændringer i Firefox selv at bryde tilføjelser helt eller blot introducere ydeevne-sapping bugs.
Firefox-brugere, der ikke vidste, at udvidelserne forårsagede problemet, ville antage, at den nye Firefox-version er buggy, og fra deres synspunkt var det. Firefox-teamet ville gøre deres bedste for at sikre, at populære udvidelser fungerede, før du skubber en ny version, men det er nemt at forestille sig alt dette sænker udviklingen.
WebExtensions API gør alt dette nemmere ved specifikt at definere, hvad udvidelser kan gøre, og hvordan de kan gøre det. Dette betyder, at udviklere kun skal sikre, at API'en fungerer korrekt, og ikke bekymre dig om, at en ydelses tweak eller UI-ændring vil bryde bestemte udvidelser. Resultatet skal være færre forlængelser, der bryder i det lange løb, men for at gøre det muligt, har Mozilla behov for at opgive det gamle forlængelsesøkosystem.
Ændringen gør også nogle af Quantams bedste funktioner mulige. Multi-processfunktionen, for eksempel, er en stor del af Firefox Quantams hastighedsforøgelse. Fire separate processer håndterer Firefox-grænsefladen og fanerne, hvilket betyder, at Firefox kan bruge alle fire kerner i din processor i stedet for kun en. Dette er en realitet, som det traditionelle forlængelsesøkosystem simpelthen ikke blev bygget til, og det er svært at forestille sig at få det til at fungere uden mange lag af abstraktion, der uundgåeligt vil bremse tingene ned. Mange kommende ændringer til Firefox blev ligeledes tilbageholdt af legacy add-ons, hvilket betyder, at økosystemet måtte ændre for at Firefox kunne udvikle sig.
Cross Platform Compatibility var et problem
En gang imellem tilføjede tilføjelser folk en overbevisende grund til at bruge Firefox over Chrome. I disse dage er Chrome langt den førende med hensyn til tilføjelser, mens Firefox kan føle sig som et kirkegård af ubesvarede udvidelser fra mange år siden.
Sikker på, at der er et par Firefox-udvidelser, som du ikke kan få i Chrome, men Chrome har langt det større økosystem. Det nye WebExtensions API vil ikke løse dette natten over, men det gør det meget lettere for Chrome-udvidelser at blive overført til Firefox, fordi sproget, der bruges til at skrive udvidelser, er ens nok til at gøre overfladen overfladisk. I mange tilfælde er det kun nødvendigt med nogle få tweaks til, at en Chrome-udvidelse kan køre i Firefox, hvilket betyder, at dine foretrukne Chrome-udvidelser ikke kan komme til Firefox nu, hvis du spørger udvikleren pænt nok. Dette burde føre til en oversvømmelse af nye udvidelser i et økosystem, der helt ærligt kunne bruge det.
Firefox havde allerede tabt brugere
Nogle kan hævde, at Firefox vil tabe brugere på grund af brudte udvidelser, men det er værd at bemærke, at Firefox allerede tabte brugere til Chrome i en alarmerende hastighed og har været i mange år. Sammenligningshastighed og mangel på visse tilføjelser hjalp ikke på den front, og Firefox Quantum har til formål at løse begge disse problemer.
Er der en chance for at dette vil komme i brand igen? Jo da. Nogle mennesker vil hoppe skib til Chrome, og andre kan søge gamle gafler, der opretholder det gamle forlængelsesøkosystem. Men det var ikke som om det gik godt før. Firefox havde brug for at udvikle sig for at forblive relevant, og sådan besluttede de at gøre det.
Udviklere havde tid til at skifte til den nye API
Nogle brugere vil ikke bemærke denne switch er endda sket, fordi de udvidelser, de arbejder med allerede bruger WebExtension API. Andre udvidelser har ikke skiftet.
Dette kunne skyldes, at bygherren forlod udvidelsen for længe siden, eller har ikke lyst til at skrive om det for at bruge API'en. I nogle tilfælde giver API ikke tilstrækkelig kontrol til at genskabe den originale udvidelse, så udviklere overgiver deres projekter. Og i mange tilfælde er konverteringen simpelthen ikke færdig endnu.
Uanset hvad der sker, bryder udvidelserne ikke, fordi Mozilla ændret noget helt pludseligt. WebExtensions har været en del af Firefox i to år, og fristen for opdatering af udvidelser blev annonceret for et år siden:
Ved udgangen af 2017 og med udgivelsen af Firefox 57 vil vi kun flytte til WebExtensions og stoppe med at indlæse andre udvidelsestyper på skrivebordet.
Mangler du stadig en udvidelse, du er afhængig af? Dette Google-dokument sporer flere populære udvidelser og giver alternativer til flere almindelige. Denne liste er også nyttig.