Trwa konkurs "Ogól naczelnego", w którym codziennie możecie wygrać najnowsze maszynki systemowe Hydro Connect 5 marki Wilkinson Sword.

Więcej informacji
Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

WebExtensions i przyszłość przeglądarki Firefox

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_engine
Jako 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ę:
5072696d6120617072696c6973
Od 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łaniach
Z 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). 

oprogramowanie internet

Komentarze

0 nowych
kwpolska   7 #1 02.04.2017 13:23

„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).”

Nie rób tego ręcznie, wystarczy np. `git blame` na pliku, w którym wprowadzono zmianę.

  #2 02.04.2017 15:00

@kwpolska: firefox jest na mercurialu, więc bardziej `hg annotate`

~MacG   5 #3 02.04.2017 16:27

Nie znam się specjalnie na tej tematyce ale jeśli FF chcę osiągnąć coś takiego to albo potrzebuje dużego zastrzyku funduszy albo masy czasu żeby wszystko działało. Na tą chwilę nawet jeśli wszystko by się udało to i tak przegrają z czasem zostając nadal za konkurencją.

Pablo_Wawa   9 #4 02.04.2017 16:46

Wpis ciekawy, jedno co mnie razi, to błąd ortograficzny w tekście "zależnie od tępa prac"...

Eiji   5 #5 02.04.2017 18:14

@kwpolska: Dwa cytaty:
"na pliku, w którym wprowadzono zmianę"
oraz moja odpowiedź:
"Od 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."

Niestety nie mogę być pewny w jakiej formie trzymają owe wpisy. Mogę mieć przykładowo jakiś plik CSV do którego odwołują się poprzez id czy też numer linii, więc tutaj ręczne wyszukiwanie byłoby konieczne.

Autor edytował komentarz w dniu: 02.04.2017 18:15
Eiji   5 #6 02.04.2017 18:20

@~MacG: Miałem nadzieję, że data mojego postu na blogu oraz ostatnie zdanie (w szczególności ta część w nawiasie) były wystarczające, by zrozumieć najzabawniejszą część owego postu, ale chyba troszkę przekombinowałem. :-)

Odpowiadając jednak na Twój komentarz to muszę przyznać, że nie jestem tego do końca pewny. W zależności od przyjętej strategii rozwoju programu oraz umiejętności programistów można zrobić naprawdę ciekawe projekty w dość sensownym czasie. Na własnym przykładzie mogę Tobie zapewnić, że czasami mogą ograniczać nas jedynie fundusze i chęci. :-)

Autor edytował komentarz w dniu: 02.04.2017 18:27
Eiji   5 #7 02.04.2017 18:24

@Pablo_Wawa: Dziękuję za uznanie wpisu. Jest on moim pierwszym na tej stronie, więc dziękuję za wyrozumiałość i zwrócenie uwagi - myślę że zrobienie jednego błędu przy wpisie o tej długości można wybaczyć. Przed opublikowaniem sprawdzałem ten tekst parę razy, ale każdemu może coś umknąć. Oczywiście poprawione i jeszcze raz dziękuję za pomoc. :-)

~MacG   5 #8 02.04.2017 18:28

@Eiji: Tak jak wspomniałem. Nie znam się więc w wiele jestem w stanie uwierzyć. A że dla mnie to dzień jak każdy inny to nie zwracam na "żarty" uwagi.

Dementor   34 #9 02.04.2017 18:53

Bardzo dobry wpis, napisany ze znajomością tematu. Oby takich jak najwięcej.

Pablo_Wawa   9 #10 02.04.2017 19:22

@Eiji: gratuluję pierwszego wpisu na blogu DP. Wpis bardzo dobry, czekamy na kolejne. Cieszy mnie fakt, że do poprawności pisania przywiązujesz dużą wagę, bo z tym to tu różnie bywa (często redaktorzy DP robią sporo błędów i literówek). Pozdrawiam!

  #11 03.04.2017 07:37

Spoko wpis, wyglądasz trochę jak syn Pablo_Wawy :)

Berion   15 #12 04.04.2017 03:36

Zapowiada się na to, że będę zmuszony pożegnać się z Lisem, pozostając na wersji nie okaleczonej (56? chyba że wcześniej zabiją skóry...).

Photon odbiera kilka kluczowych funkcjonalności, a jeśli będzie można przemeblować pozycję przycisków do "tylko" jedną.

Dalej piszesz o ustawieniach, z czego między wierszami wyczytałem, że odbiorą mi jako użytkownikowi swobodę w ustawieniu... wszystkiego.

Są dodatki nie do zastąpienia ze względu na ubogie API itd. Sporo deweloperów już deklaruje swoje oburzenie. Nie ma szans na kilka silników, rozszerzenia do różnych i migrację pomiędzy nimi. Nie mają na to zasobów ani finansowych, ani ludzkich. A więc nie ma szans na implementację tego pomysłu.

To po prostu jest koniec Lisa, a początek nowej mutacji Chrome - i pewnie najgorszej z obecnych... Na Firefox crippled series nie przejdę. A najgorsze jest to, że nikt się tym nie przejmie i pewnego dnia tak jak konserwy Opery 12.17 będą zmuszeni przeskoczyć... ;(

pocolog   12 #13 04.04.2017 15:39

@kentaro: "Spoko wpis, wyglądasz trochę jak syn Pablo_Wawy :)"
Wypowiadasz się z pozycji dziadka rodziny? :D

  #14 04.04.2017 20:41

Wpis bardzo dobry, dużo wiarygodniejszy i lepiej opracowany, niż inne artykuły o przeglądarkach na tym portalu.

Gratulacje!

znalezione maszynki:

Twój czas:

Ogól Naczelnego!
Znalazłeś(aś) 10 maszynek Wilkinson Sword
oraz ogoliłaś naszego naczelnego!
Przejdź do rankingu
Podpowiedź: Przyciśnij lewy przycisk myszki i poruszaj nią, aby ogolić brodę.