Firefox 67 narysuje strony w 60 FPS – WebRender pokazuje, jak pomocne jest GPU

Adam Golański , 22.05.2019 r.
firefox

To ważny dzień dla Mozilli: właśnie w kanale stabilnym pojawił się Firefox 67, a wraz z nim debiutuje na rynku technologia, która może dać „ognistemu liskowi” znaczną przewagę nad wszechobecnym Google Chrome. Chodzi o WebRender, nowy renderer stron webowych, który dzięki wykorzystaniu akceleracji GPU pozwoli na superpłynne ich rysowanie w 60 ramkach na sekundę.

Zobacz też: Mobilny Firefox odchodzi na emeryturę, Mozilla zastąpi go przeglądarką dla młodych

Firefox 67 pojawić się miał już tydzień temu, ale doszło do opóźnienia, m.in. ze względu na czas, jaki zabrało naprawienie sytuacji po wpadce z wyłączeniem wszystkich rozszerzeń wskutek wygaśnięcia certyfikatu bezpieczeństwa. Teraz jednak nowa przeglądarka już jest. Użytkownicy komputerów z Windows 10 i układami graficznymi Nvidii jako pierwsi mogą zobaczyć, jak spisuje się WebRender, wcześniej znany jako Quantum Render i zastępujący w tym wydaniu komponent Compositor.

Do tej pory Firefox używał API trybu natychmiastowego (immediate) do rysowania treści. W trybie tym zwykle wymagany jest obiekt kontekstowy dla którego programista ustawia różne stany, a następnie rysuje na ekranie rzeczy po kolei. Wykorzystywany w WebRender interfejs trybu zachowanego (retained) działa odmiennie. Renderowanie odbywa się tu w dwóch przejściach. Na początku dane są konfigurowane i przesyłane do GPU z wywołaniem do renderowania. Nic na tym etapie nie jest jednak rysowane. Dopiero później mówi się GPU, aby narysował wszystko to, co zostało wskazane. W ten sposób WebRender bierze sobie opis układu widoku strony, a następnie analizuje ten opis pod kątem tego, jak najlepiej zoptymalizować polecenia wysłane do GPU. Więcej na ten temat znajdziecie w dokumentacji Mozilli.

Zobacz też: Monopolista gorszy od Microsoftu? Firefox przez całe lata ofiarą sabotażu Google

Zmiana tak ważnego dla działania przeglądarki komponentu została wprowadzona jednak bardzo ostrożnie. Nawet na oficjalnie wspieranych systemach został on włączony jedynie w 5% instalacji. Pozostali użytkownicy, o ile dysponują odpowiednią konfiguracją sprzętową i systemową, mogą włączyć go ręcznie. W tym celu muszą w panelu about:config znaleźć właściwość gfx.webrender.all i ustawić jej wartość na True.

Nie powinno to nikogo dziwić: użytkownicy testowych wydań Firefox Nightly mogli wypróbować WebRender we wrześniu zeszłego roku… choć może wypróbować to za mocne słowo. Przeglądarka zawieszała się na niemal każdej bardziej skomplikowanej stronie. Dzisiaj jednak wygląda na to, że nowy, obsługujący wielowątkowość silnik rysujący działa poprawnie – i potrafi rysować w 60 FPS strony, które na Chrome z trudem rysują się w 15 FPS.

Nowy renderer to nie wszystko

Oczywiście nowy Firefox to znacznie więcej niż (aż) nowy silnik rysowania. Oto najważniejsze z wprowadzonych w tym wydaniu zmian:

  • Nowe instalacje będą używały teraz własnych nowych profili użytkownika, aby uniknąć problemów. Do tej pory Firefox używał istniejących profili, co utrudniało uruchamianie niezależnych instancji przeglądarki obok siebie i dawało się odczuć przede wszystkim użytkownikom wydań testowych.
  • Firefox 67 sam teraz blokuje skrypty służące do robienia cyfrowych odcisków palca przeglądarki oraz koparki kryptowalut. Zabezpieczenia te są domyślnie wyłączone, jednak w ustawieniach prywatności (about:preferences#privacy) można je sobie włączyć, wybierając w panelu blokowania opcję Dostosuj.
  • W trybie prywatnym można wreszcie zapisywać hasła do menedżera.
  • Rozszerzenia przeglądarki nie mają już domyślnie dostępu do okien otwieranych w trybie prywatnym. Jeśli chcemy to zmienić, musimy indywidualnie przyznać takie uprawnienie każdemu z rozszerzeń poprzez Menedżera rozszerzeń.
  • Poprawiono menu Konta Firefoksa
  • Mechanizm zrzutów zawartości strony Firefox Screenshot nie pozwala już wgrywać ich online, można je zapisywać jedynie lokalnie.
  • Domyślnym dekoderem mediów AV1 jest teraz dav1d, dzięki czemu filmiki powinny odtwarzać się płynniej.

A co dla deweloperów?

Deweloperzy powinni zwrócić uwagę na następujące rzeczy z tą nową wersją:

  • Strony bez certyfikatu SSL nie mogą korzystać z powiadomień przez Notifications API.
  • Źródłem pływających ramek nie mogą już być zewnętrzne URL-e, które nie zwracają danych.
  • Stare API Touch Events już nie działa w desktopowej wersji przeglądarki.
  • Firefox wspiera dynamiczne importowanie modułów JavaScriptu.
  • Zwiększono dokładność debugera JavaScriptu, wprowadzając wewnątrzwierszowe punkty przerwań.
  • Poprawiono obsługę jednostek viewport z CSS3 w mobilnym Firefoksie, tak że działa to jak w innych przeglądarkach.
  • W narzędziach deweloperskich panel zmian obsługuje kopiowanie zmodyfikowanych reguł CSS.

Cała lista wprowadzonych zmian oczywiście w informacjach o wydaniu.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT: