Blog (3)
Komentarze (338)
Recenzje (0)
@EijiWebExtensions i przyszłość przeglądarki Firefox

WebExtensions i przyszłość przeglądarki Firefox

01.04.2017 19:17, aktualizacja: 02.04.2017 18:12

Wstęp

Zarówno zwolennicy, jak i przeciwnicy liska z pewnością zdążyli zapoznać się z wpisem na oficjalnym blogu Mozilli dotyczącym API WebExtensions i planów zastąpienia nim wcześniej używanego API. Co za tym idzie wiele rozszerzeń nie będzie już wstecznie kompatybilnych z nowymi wydaniami tej przeglądarki. Problem jednak okazał się o wiele większy niż konieczność przepisania rozszerzeń. Wraz z porzuceniem starego API tracimy także wiele możliwości dokonywania modyfikacji Firefoksa i przynajmniej nie jest to tylko kwestia zmiany kilku kolorków ... Wiele developerów zniechęciło się taką zmianą np. Anthony Lieuallen (twórca Greasemonkey). Jak się okazuje Mozilla jeszcze nie wystawiła wszystkich kart na stół i możliwe, że rozszerzenia zostaną z nami na dłużej.

Diabeł tkwi w szczegółach

Co mogłoby zmienić wcześniejsze postanowienia? Tak naprawdę nic, stare wersje rozszerzeń nie będą działały już od wersji 57 jednej z najpopularniejszych przeglądarek, ale jest jeden haczyk. Kilka dni temu po ostatniej aktualizacji w kanale Nightly pojawił się nowy wpis na stronie "about:config" o wymownej nazwie: browser.render_engineJako programista aplikacji webowych, który lubi być na bieżąco z nowinkami zainteresowałem się tematem i postanowiłem poszukać informacji o tajemniczym wpisie. Dlaczego tejamniczym? Otóż nigdzie nie mogłem doszukać się jakiejkolwiek wzmianki o tym kluczu. Jeszcze ciekawiej robi się, gdy zwrócimy uwagę na typ tego właśnie klucza jakim jest "liczba całkowita" o domyślnej wartości "0". Zaintrygowany tym postanowiłem na własną rękę sprawdzić czy jakiekolwiek zmiany są widoczne. Wykonałem więc pełny backup profilu i zacząłem zmieniać tą wartość na 1, 2 oraz 3 za każdym razem (oczywiście po restarcie przeglądarki) przeszukując opcje, sprawdzając wszystkie menu oraz odwiedzając kilka witryn. Niestety nie odczułem jakichkolwiek zmian.

Jeśli nie możesz znaleźć informacji to szukaj głębiej

Postanowiłem więc poszukać w źródłach repozytorium "mozilla-central", by po kilkunastu minutach znaleźć interesującą mnie rewizję: 5072696d6120617072696c6973Od razu zaznaczam, że nie jestem jakimś ekspertem w kodzie źródłowym przeglądarek, ale mam na tyle dobre umiejętności by znaleźć fragment kodu, który był powiązany z interesującym mnie tematem. Muszę przyznać, że miałem szczęście znajdując tą rewizję, gdyż była ona względnie nowa (raczej nie miałbym tyle siły by przeglądać kilka tygodni prac wielu programistów). Ku memu zdziwieniu we wspomnianej wcześniej rewizji były wszystkie informacje o zmianach (a raczej poprawkach) jakie wprowadził autor za wyjątkiem jednej interesującej mnie linijki. Postanowiłem więc wysłać wiadomość e‑mail by skontaktować się z autorem, jednak jego nietypowa odpowiedź zaskoczyła mnie jeszcze bardziej.

Nic jeszcze nie jest przesądzone

Z wiadomości jaką otrzymałem było jasne, że Mozilla nie jest jeszcze pewna dalszych wydań Firefoksa. Zespół odpowiedzialny za przenoszenie funkcjonalności z silnika Servo do przeglądarki Firefox miałby być możliwie jak najbardziej elastyczny w swoich działaniachZ informacji jaką udzielił mi programista dowiedziałem się, że rozważanych jest kilka dość interesujących dróg rozwoju przeglądarki. Wśród nich oprócz wyżej wspomnianej wstecznej kompatybilności nie jest do końca jasna wizja ustawień przeglądarki. Twórcy muszą brać pod uwagę wiele okoliczności. Pod żadnym pozorem nie mogą np. po prostu dodawać i dodawać kolejnych opcji i oczekiwać, że każdy Smith (u nas Kowalski) będzie mógł swobodnie się po nich poruszać. Ciężko jest zastosować się do jednej reguły w sytuacji, gdy interfejs ma być przeznaczony dla wielu grup docelowych. (pamiętajcie, że nadal istnieją osoby, które nie rozróżniają przeglądarki Chrome od wyszukiwarki Google). Efektem takiego konfliktu idei jest teraz podział na klasyczne ustawienia oraz te ustawienia na stronie "about:config", ale jak to opisuje programista w obecnych czasach nie jest to wystarczające i Firefox musi przejść swego rodzaju metamorfozę, której efekty możemy zauważyć już wkrótce w projekcie Photon - tak to właśnie nowo przyjęta stylistyka wraz z nowymi możliwościami ma zapoczątkować nowy spójny wygląd przeglądarki.

Chwila ... ale o co chodzi z tymi ustawieniami?

Sporą część wiadomości faktycznie zajęła informacja o ustawieniach i nie została ona przytoczona całkowicie przypadkowo. Jak już wspominałem ustawienia w tak prostej formie jak na stronie "about:config" stają się coraz mniej wygodne, a przeszukiwanie dokumentacji dla każdego wpisu woła wprost o pomstę do nieba - to było dobre rozwiązanie kiedyś. Nowa wersja ustawień miałaby pojawić się w przyszłym roku pomiędzy wersjami 58‑61 (zależnie od tempa prac), jednakże na początku tylko w wersji Developer Edition co osobiście uważam za całkiem ciekawe i dobrze przemyślane posunięcie. Zwykłemu Kowalskiemu nie będzie przeszkadzała nadmierna mnogość opcji konfiguracyjnych, a osoby bardziej "wtajemniczone" będą mogły cieszyć się być może najbardziej rozwiniętym panelem ustawień przeglądarek internetowych w historii.

Rozważania

W dalszej części wiadomości programista dość jasno określił, że nowy klucz jest na takim samym "poziomie niepewności", jednak istotne jest nie to, jak pewną przyszłość ma Firefox, a to jak niepewna ona jest. Otóż Mozilla obecnie rozważa możliwość wyboru silnika, którym przeglądarka będzie się posługiwała. Póki co oczywiście (na potrzeby migracji) rozważane jest możliwość zmiany Gecko na Servo i odwrotnie, ale jeśli ta funkcja okaże się bardziej przydatna niż w założeniach, to Firefox już w następnych latach będzie przeglądarką, która będzie wspierała wiele silników renderowania. W tym momencie należy zauważyć, że owa funkcjonalność wcale taka nowatorska nie jest. Już dziś można skorzystać z przeglądarki Lunascape, która oferuje możliwość zmiany silnika przeglądarki. Obecnie owa przeglądarka wspiera trzy silniki: Trident, Gecko i WebKit. Jednakże to rozwiązanie do idealnych nie należy i wymusza pewne ograniczenia. Jednak Mozilla ma o wiele lepsze plany jeśli zdecyduje się podążać w tym kierunku:

  1. po pierwsze profile użytkownika mają być zależne od danego silnika renderowania - ma to zapewnić kompatybilność między silnikami; będzie także możliwa migracja danego profilu do innego silnika, jednakże część danych nie będzie mogła być przeniesiona np. rozszerzenia ....
  2. zgodnie z powyższym punktem Mozilla docelowo wprowadzi WebExtensions dla zmodyfikowanego Gecko (później przeniesionemu w jego miejsce Servo) oraz innych silników i przywróci wsparcie dla starszych rozszerzeń dla wcześniejszych wersji Gecko (z tymże dodatkowe wsparcie dla Gecko musiałoby być opłacalne, a biorąc pod uwagę ilość nieprzeniesionych jeszcze rozszerzeń to prawdopodobnie takie będzie)
  3. Mozilla udostępni API, które będzie pozwalało na łatwiejsze tworzenie nowych silników renderowania - jeśli dany silnik nie będzie implementował wsparcia dla wprowadzonego API w nowej wersji Firefoksa, to zostanie albo tymczasowo wyłączony, albo użytkownik/programista dostanie komunikat ostrzegający o możliwości utraty funkcjonalności w razie kontynuowania

Nie ma to jak narobić smaczku

Końcówka wiadomości jednak ściąga nas z powrotem na ziemię. Autor przypomina jak łatwo rozważania mogą się zmienić za przykład podając choćby sytuację z  Firefox Test Pilot Musimy być świadomi, że biorąc udział w jakiejkolwiek zmianie musimy być w pełni świadomi przyszłych konsekwencji i za nie odpowiedzialni. Co z tego, że dana przeglądarka będzie najpiękniejsza i najbardziej konfigurowalna, jeśli mnogość opcji po prostu przytłoczy nowego użytkownika chcącego tylko zmienić adres strony domowej. Najlepsze zostawiłem na koniec. Pamiętacie jeszcze ten wpis o którym wspomniałem wcześniej? Otóż programista przyznał się, że dodał tą linijkę do repozytorium przypadkowo, gdyż podczas wstępnych prac został poproszony o naprawienie kilku znalezionych błędów. Skutkiem tego był właśnie dodatkowy klucz na stronie "about:config",, który jak już sam zdążyłem zauważyć nie wprowadza żadnych (póki co) zmian. Poprawka została już wysłana czego efektem była wczorajsza aktualizacja. Po szybkim sprawdzeniu wspomnianego wyżej klucza oczywiście nie znalazłem , jednak nadzieja pozostała (no przynajmniej w formie dowcipu, ale jednak :D).

Wybrane dla Ciebie
Komentarze (14)