Firefox 57 i nowsze#

Podstawy#

14 listopada 2017 roku wydana została stabilna wersja przeglądarki Firefox 57 (określana przez samą Mozillę nazwą kodową Quantum). Zmiany są bardzo rozległe, poczynając od domyślnie włączonych wielu procesów, podmianie niektórych komponentów silnika renderującego ich odpowiednikami napisanymi w języku Rust, szerokiej optymalizacji i wyeliminowaniu jak największej liczy operacji synchronicznych (zobacz blogowy zapis z przebiegu prac), zmodyfikowaniu interfejsu przeglądarki, aż po wprowadzenie całkowicie nowego modelu rozszerzeni WebExtension.

Obecnie Firefox, Chrome, Opera, Edge i Internet Explorer wyglądają bardzo podobnie - postawiono na jak największą przestrzeń roboczą interfejsu przeglądarki eliminując wszystkie zbędne przyciski i dodatkowe paski.

Firefox 57 - nowy interfejs w projekcie Quantum

Rysunek. Firefox 57 - nowy interfejs w projekcie Quantum

Oczywiście po raz kolejny producenci przeglądarki zaczęli reklamować swój produkt jako najlepszy, najszybszy, no po prostu cudo. Prawda jest zgoła inna, żadna optymalizacja nie zrekompensuje strat, jakie spowodował nowy model rozszerzeń. Niestety, jeśli ktoś używał przeglądarki Firefox do czegoś więcej niż przeglądania portali społecznościowych to będzie musiał się z nim rozstać. Takie mamy czasy, wszystko zostaje przesadnie upraszczane do tego stopnia, że zaczyna oferować coraz mniej opcji, w dodatku z coraz brzydszym interfejsem (nie sposób nie wymienić tutaj Windowsa 10). Dla osób nietechnicznych nie ma to większego znaczenia, ale dla geeków przyszłość nie wygląda zbyt różowo.

Ja osobiście, posiadając aktualnie 116 rozszerzeń (z czego 88 jest stale włączonych), gdzie część z nich pomaga mi szybciej i wygodniej generować tę stronę, zmuszony jestem pozostać na starszej wersji przeglądarki (obecnie 54). Rozważam także przesiadkę na wersję 52 ESR, a w przyszłości pewnie skorzystam z jakiegoś forka. Na dzień dzisiejszy innej możliwości nie widzę, bez klasycznych dodatków ta przeglądarka ginie w tłumie i w zasadzie nie oferuje niczego ciekawegoo.

Poniżej zamieszczam kilka istotnych informacji i wskazówek w odniesieniu do moich skryptów. Każdy niech sam zdecyduje którą przeglądarkę i w jakiej wersji będzie używał.

WebExtensions#

WebExtensions to nowy model tworzenia rozszerzeń w przeglądarce Firefox. Całość w zasadzie wywodzi się z samego Chrome, z lekkimi modyfikacjami i wzbogaceniami o nowe polecenia. Począwszy od Firefoksa 57 żaden inny rodzaj rozszerzeń nie jest już obsługiwany (tj. XUL i inne jego odmiany). Oznacza to ni mniej, ni więcej, jak przekreślenie wieloletniej pracy autorów takich rozszerzeń, którzy robili to hobbystycznie i całkowicie za darmo (nie ładnie ze strony Mozilli).

Problem z nowym podejściem jest taki, że w porównaniu z XUL-em oferuje on tak ograniczone możliwości, że niektórych dodatków nie da się przepisać, a w większości z nich (głównie tych bardziej rozbudowanych) nie da się przenieść wszystkich opcji do nowego modelu. Obecne podejście działa na zasadzie: masz młotek i spróbuj zbudować wieżowiec, kiedy wcześniej mogłeś wejść do magazynu i wybrać sobie takie narzędzia, jakie tylko chciałeś.

Warto zaznaczyć, że wszystkie przeportowane do tej pory rozszerzenia do WebExtensions są brzydsze, mniej funkcjonalne i działają wolniej niż ich wcześniejsze XUL-we odpowiedniki. Niestety to nie ulegnie zmianie bo taka jest specyfika nowego podejścia.

Samo WebExtensions jest ciekawą inicjatywą, z założenia ma być to niewielki zestaw API działający tak samo we wszystkich aktualnych przeglądarkach (Firefox, Chrome, Opera, Edge, Safari), co pozwala niewielkim nakładem pracy tworzyć dodatki dla wszystkich tych programów. Oczywiście odbywa się to kosztem ekstremalnie okrojonej funkcjonalności. W przypadku prostych narzędzi jest to niewątpliwie zaleta, i można by nawet przyklasnąć Mozilli, ale nie kosztem porzucenia swojego dotychczasowego modelu. To właśnie XUL i dodatki w nim utworzone decydowały o sile Firefoksa, przyciągały i utrzymywały zaawansowanych użytkowników, którzy wymagali od przeglądarki nieograniczonych możliwości (tym argumentem Mozilla zachęcała do pierwszych wydań swojego produktu). Po raz kolejny sprawdza się stare dobre porzekadło, że wszystko co dobre kiedyś się kończy.

#Prawda jest taka, że wszystko rozbija się o pieniądze. Tworzenie przeglądarki internetowej wymaga gigantycznych nakładów finansowych, na co mogą sobie pozwolić tylko najwięksi gracze tej branży (Google, Microsoft czy Apple - szkoda że Intel i Samsung nie mają jeszcze swojego przyczółka). Mozilla po utracie swojego głównego źródła dochodu, tj. finansowania przez Google (za promowanie jego wyszukiwarki w Firefoksie), nie ma już takich możliwości i zaplecza. Obserwując pootwierane błędy na Bugzilli da się zauważyć mniejszą aktywność w ich rozwiązywaniu, jak również odpływ starych i doświadczonych programistów. Upodabnianie się i wdrażanie mechanizmów z Chrome jest tego skutkiem. W przyszłości pewnie dojdzie do całkowitego porzucenia własnej platformy na rzecz Chromium, co mogliśmy zaobserwować w przypadku Opery (swego czasu świetnej przeglądarki). Takie są niestety realia, a poczynione na przestrzeni ostatnich lat zmiany w Firefoksie (zaczynając od nieszczęsnego Australis) jeszcze bardziej mnie przy tym utwierdzają.

Smutne jest to, że niewiele w tej kwestii da się już zrobić. Bardzo wielu autorów rozszerzeń, na skutek nieustannych i mało przemyślanych zmian, bezpowrotnie zrezygnowało z ich dalszego rozwoju i porzuciło produkty Mozilli. Nawet jeśli Firefox jakimś cudem zezwoli na dostęp do szerszego API (choćby poprzez Gecko Elevated WebExtensions) to i tak będzie to wymagało przepisania starszych dodatków przez ich autorów, co wydaje się mało prawdopodobne, bo ich już po prostu utracili. Z drugiej strony ryzyko kolejnego wypięcia się na twórców rozszerzeń przez Mozillę jest tak duże, że sam miałbym wątpliwości ponownego zaangażowania się w tego typu aktywność programistyczną (szkoda czasu, zdrowia i nerwów). Mleko się rozlało i ferment pozostało.

Możliwe opcje wyboru#

Trzeba wyraźnie zaznaczyć, że do prawidłowej obsługi botów wymagana jest tylko przeglądarka internetowa i jakiś dodatek, który zapewni w niej zarządzanie skryptami JavaScript dla dowolnej strony. Pozostałe pliki (tj. filtr i style) są jedynie dodatkiem, ale nie ma konieczności ich instalowania. Poniżej zamieszczam kilka wskazówek dla tych osób, które wciąż chcieliby używać Firefoksa. Nie są to pełne instrukcje, stanowią jedynie drogowskaz do samodzielnego poszukiwania optymalnego dla siebie rozwiązania. Dla osób mniej obytych z komputerami proponuję wypróbować Chrome, gdzie proces instalacji i dalsze użytkowanie botów wydaje się łatwiejsze i wydajniejsze.

Aktualne rozwiązanie#

W przypadku aktualnych wydań Firefoksa (tj. od numeru 57 i nowszych) należy instalować te same rozszerzenia, co w przypadku przeglądarki Chrome, aczkolwiek ze sklepu Mozilli:

Instalacja i użytkowanie moich plików w tych rozszerzeniach jest identyczne jak w Chrome, dlatego też nie powielam wcześniejszych opisów, wystarczy dokładnie przeczytać instrukcje utworzone dla Chrome. Zaznaczam tylko, że w tych nowych wydaniach Firefoksa należy wgrywać filtry i style przeznaczone dla Chrome, czyli stylTheCrimsV4(Chrome).txt i TCLightV4(Chrome).txt. Wynika to z wcześniej już opisywanego uniwersalnego modelu rozszerzeń WebExtensions obsługiwanego przez te przeglądarki.

Nie polecam instalowania nowych wersji Greasemonkeya i Adblock Plusa bo w porównaniu ze swoimi XUL-owymi odpowiednikami są brzydkie i mało użyteczne. Na dzień dzisiejszy wspomniane wyżej alternatywy sprawują się zdecydowanie lepiej, praktycznie tak samo jak w Chrome, dlatego z przesiadką nie powinno być większych problemów.

Jeśli chodzi o wydajność nowej platformy to jest z tym różnie. Co prawda sam Firefox niewątpliwie przyspieszył, doczekał się sporej optymalizacji na wielu płaszczyznach, ale w odniesieniu do skryptów szału nie widzę. Mając kilka jednocześnie włączonych skryptów zauważam problem z chwilowym pojawianiem się białej strony. Ustaliłem jedynie, że powodem jest jeden ze skryptów i sposób jego uruchamiania, wystarczy go wyłączyć i po problemie. Ogólnie rzecz biorąc to w nowym modelu rozszerzeń jest kłopot z wczesnym wykonywaniem pewnych skryptów i nie wiadomo kiedy, i czy w ogóle zostanie on naprawiony. Co prawda w aktualnych botach do TC nie wykorzystuje tej techniki, ale nie wykluczam, że w przyszłości może okazać się niezbędna. Starsze wersje Firefoksa nie miały z tym żadnych problemów.

Kolejna sprawa to zwalnianie pamięci przez przeglądarkę po intensywnym użytkowaniu, przykładowo przy dłuższym spalaniu biletów da się zauważyć, że Firefox wciąż ma z tym problem, tj. proces z kartą TC startuje np. od 250 MB i po 30 minutach gry kończy z 500 MB lub więcej, a powinien wracać do początkowego stanu. Nie są to kolosalne wartości, no ale np. Chrome wypada tutaj zdecydowanie lepiej, przeglądarka Google po dłuższym użytkowaniu skryptów zachowuje się żwawiej niż Firefox, który może wymagać zresetowania by powrócić do prawidłowego/wyjściowego stanu.

Przestarzałe rozwiązanie#

Osoby przyzwyczajone do starego modelu rozszerzeń mogą pozostać przy jakimś starszym wydaniu Firefoksa (sprzed wersji 57). Głównym i w zasadzie jedynym kryterium, który decyduje o wyborze wcześniejszej wersji przeglądarki będzie sama gra The Crims. Strona ma wszczepionych sporą liczbę skryptów (także popularnych bibliotek), i niektóre z nich mogą wymagać funkcjonalności, które pojawiły się w późniejszych wydaniach przeglądarki. Metodą prób i błędów można ustalić, na którym najstarszym Firefoksie gra wciąż działa prawidłowo, najlepiej testować wersje portable. Potem pozostanie tylko dogranie starszych rozszerzeń, które będą prawidłowo działać z wybraną wersją Firefoksa. Na stronie addons.mozilla.org znajdują się wszystkie wersje każdego opublikowanego do tej pory dodatku, dlatego z ustaleniem odpowiedniej wersji nie powinno być większych problemów. Na koniec proponowałbym wyłączenie automatycznych aktualizacji dla przeglądarki i rozszerzeń, tak aby nie uległy one samoczynnej aktualizacji.

W tych starszych wydaniach Firefoksa należy wgrywać filtry i style przeznaczone dla Firefoksa, czyli stylTheCrimsV4(Firefox).txt i TCLightV4(Firefox).txt.

Ostatnia wersja Firefoksa prawidłowo obsługująca rozszerzenia XUL zależy od wersji samych rozszerzeń. Jeśli były one aktualizowane systematycznie to prawdopodobnie będą działały najwyżej z wydaniem Firefox 56. W razie problemów z działaniem należałoby wypróbować wcześniejsze numery przeglądarki, np. Firefox 55 czy Firefox 54 # (na którym samy utknąłem). Można też sięgnąć po Firefox 52 ESR #, czyli przeglądarkę o wydłużonym wsparciu. Jest to specjalna wersja programu, która będzie otrzymywała łatki bezpieczeństwa, ale bez żadnych innych dodatkowych opcji aż do 8 maja 2018 roku. Warto zaznaczyć, że jest to ostatnia wersji przeznaczona dla Windowsa XP, osoby korzystające ze starego systemu Microsoftu nowszej wersji Firefoksa już nie dostaną.

W przypadku gry TC i moich skryptów takie rozwiązanie powinno sprawdzić się jeszcze przez długi czas. Niestety do ogólnego przeglądania internetu wielkich szans nie widzę, technologie webowe ewoluują na bieżąco, strony internetowe zaczynają je stosować, z biegiem czasu starsze wydania przeglądarek przestaną je prawidłowo wyświetlać/obsługiwać. Dla osób przyzwyczajonych do Firefoksa i starego modelu rozszerzeń proponuję zainstalowanie sobie dwóch wersji portable, jednej starszej do gry w TC (z poprzednimi dodatkami) i drugiej aktualnej (do ogólnego przeglądania internetu). Sam od dłuższego czasu właśnie w ten sposób użytkuję produkty Mozilli, z tym że ja mam postawionych wiele wersji portable dla różnych celów. Alternatywnie można wypróbować jeszcze jeden z forków.

Forki#

Ostatnią możliwością jaka przychodzi mi do głowy to sięgnięcie po jakiegoś forka, który jest rozwijany przez niezależne osoby. Na chwilę obecną mamy następujące forki oparte na źródłach Firefoksa i obsługujące XUL-owy model rozszerzeń:

Z tego typu aplikacjami wiążą się dwa następujące problemy:

Sam osobiście jeszcze nie miałem okazji przetestować wyżej wymienionych programów. Nie mam pojęcia jak wygląda sytuacja z rozszerzeniami potrzebnymi do uruchamiania moich botów. Każdy niech pokombinuje na własną rękę i w razie sukcesów da mi o tym znać. Moją uwagę przykuł projekt Basilisk, ale jest jeszcze zbyt świeży by dało się go używać na co dzień.

W forkach należy wgrywać filtry i style przeznaczone dla Firefoksa, czyli stylTheCrimsV4(Firefox).txt i TCLightV4(Firefox).txt.

Wspomniałem już wcześniej, że w przypadku rozwoju większego projektu (jakim niewątpliwie jest przeglądarka internetowa) wszystko rozbija się o kasę. Jeśli jakiś fork okaże się ogromnym sukcesem to niewykluczone, że pozyska odpowiedniego inwestora, który wyłoży kasę na dalszy jego rozwój. Tak przecież wyodrębnił się Firefox z kodu Netscape Navigatora. Z całego serca życzę takiego sukcesu jakiemuś forkowi, który utrzyma wsparcie dla prawdziwych rozszerzeń bazujących na XUL, reszta bajerów to tylko wisienka na torcie. Czas pokaże jak sytuacja rozwinie się w przyszłości.

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

Firefox 57 i nowsze (H1) Podstawy (H2) WebExtensions (H3) Możliwe opcje wyboru (H3) Aktualne rozwiązanie (H4) Przestarzałe rozwiązanie (H4) Forki (H4)