Firefox celowo spowalnia śledzące nas skrypty, aby szybciej załadować strony

Strona główna Aktualności
image

O autorze

Ogromny wzrost szybkości ładowania stron internetowych przez Firefoksa 57 nie wziął się tylko z nowego silnika Quantum. Jeden z programistów Mozilli ujawnił właśnie, że w pewnym sensie przeglądarka ta łamie zasadę neutralności sieci. Traktuje pewne zasoby internetowe jako gorsze od innych i opóźnia ich ładowanie. Użytkownicy nie powinni jednak z tego powodu narzekać – te gorsze zasoby to wszelkiej maści skrypty śledzące i analizujące naszą aktywność w Internecie.

Przy okazji wydania nowego Firefoksa, Mozilla coś tam wspomniała o zmianach w planiście żądań sieciowych, ale szczegółów nie zdradziła. Teraz programista Honza Bambas na łamach swojego bloga wyjaśnia, co właściwie zrobiono. Doszło do integracji tego planisty z bazą danych wykorzystywaną do ochrony użytkowników przed śledzeniem. Korzystając z umieszczonych w niej wpisów, planista automatycznie opóźnia ładowanie wszelkich skryptów śledzących w czasie gdy strona się pobiera i rysuje. W ten sposób udaje się zaoszczędzić zasoby komputera i sieci – to co chcemy zobaczyć w oknie przeglądarki pojawi się po prostu szybciej.

A skryptów takich na nowoczesnych stronach może być co niemiara. Analityka Google’a, Yandexa, Hotjara – to wszystko wydłuża czas ładowania strony o cenne sekundy, służąc wyłącznie do śledzenia użytkowników optymalizacji stron internetowych. Firefox 57 by tego uniknąć, opóźnia załadowanie ładowanych skryptów śledzących na czas ładowania innych zasobów strony, maksymalnie do sześciu sekund. W ten sposób traktowane są też obrazki śledzące i obiekty XHR, oraz oczywiście wszelkie żądania samego skryptu śledzącego. Opóźnianie nie zawsze jednak jest włączane, lecz tylko wtedy, gdy skrypty zostają dynamicznie dodane do strony, albo przez asynchroniczne wywołanie.

Taka dyskryminacja (którą Bambas określił słowem „tailing” – podążanie za kimś na jego ogonie) jest całkowicie zgodna ze standardami HTML, ale może oznaczać pewne problemy w rysowaniu źle napisanych stron internetowych, jak również tych, w których na rysowanie wpływ mają skrypty. To co miało przyspieszać ładowanie stron, potrafi więc wyraźnie je spowolnić. Przykładem może być fragment kodu Google’a do ukrywania stron zanim załadowany zostanie kontener z główną zawartością. Użycie go w Firefoksie może sprawić, że przez kilka sekund użytkownik w ogóle niczego nie zobaczy.

Najbardziej w tym wszystkim zaskakujące jest to, że sama branża reklamowa wcale nie jest zła z tego powodu. Na łamach Hacker News toczy się ciekawa dyskusja w tej sprawie, otworzona przez inżyniera z firmy Heap Analytics. Stwierdził on, że to co Mozilla zrobiła, wręcz pomoże branży reklamowej. Gdy bowiem twórcy stron wrzucają pełno skryptów śledzących, to zaczynają one ze sobą konkurować o zasoby, jak również spowalniają samo narysowanie strony. Sensowne jest więc nadanie priorytetu temu, co służy rysowaniu. Firmy analityczne dostają to czego chcą – możliwość śledzenia użytkownika, użytkownicy dostają to, czego chcą – szybko ładujące się strony.

Zaawansowani użytkownicy mogą w Firefoksie wpłynąć na zachowanie planisty i opóźnianie ładowania skryptów. W panelu about:config służą do tego cztery parametry: network.http.tailing.delay-quantum-after-domcontentloaded oraz network.http.tailing.delay-quantum określają minimalne opóźnienia (w milisekundach), parametr network.http.tailing.delay-max określa maksymalne opóźnienie, zaś network.http.tailing.enabled pozwala włączyć lub wyłączyć ten efekt.

© dobreprogramy