Firefox celowo spowalnia śledzące nas skrypty, aby szybciej załadować strony
Ogromny wzrost szybkości ładowania stron internetowych przezFirefoksa 57 nie wziął się tylko z nowego silnikaQuantum. Jeden z programistów Mozilli ujawnił właśnie, że wpewnym sensie przeglądarka ta łamie zasadę neutralności sieci.Traktuje pewne zasoby internetowe jako gorsze od innych i opóźniaich ładowanie. Użytkownicy nie powinni jednak z tego powodunarzekać – te gorsze zasoby to wszelkiej maści skrypty śledzącei analizujące naszą aktywność w Internecie.
22.12.2017 12:16
Przy okazji wydania nowego Firefoksa, Mozilla coś tam wspomniałao zmianach w planiście żądań sieciowych, ale szczegółów niezdradziła. Teraz programista Honza Bambas na łamach swojego blogawyjaś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 automatycznieopóźnia ładowanie wszelkich skryptów śledzących w czasie gdystrona się pobiera i rysuje. W ten sposób udaje się zaoszczędzićzasoby komputera i sieci – to co chcemy zobaczyć w oknieprzeglądarki pojawi się po prostu szybciej.
A skryptów takich na nowoczesnych stronach może być coniemiara. Analityka Google’a, Yandexa, Hotjara – to wszystkowydłuża czas ładowania strony o cenne sekundy, służąc wyłączniedo śledzenia użytkowników optymalizacji stron internetowych.Firefox 57 by tego uniknąć, opóźnia załadowanie ładowanychskryptó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 żądaniasamego skryptu śledzącego. Opóźnianie nie zawsze jednak jestwłączane, lecz tylko wtedy, gdy skrypty zostają dynamicznie dodanedo 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 zestandardami HTML, ale może oznaczać pewne problemy w rysowaniu źlenapisanych stron internetowych, jak również tych, w których narysowanie wpływ mają skrypty. To co miało przyspieszać ładowaniestron, potrafi więc wyraźnie je spowolnić. Przykładem może byćfragment kodu Google’a do ukrywaniastron zanim załadowany zostanie kontener z głównązawartością. Użycie go w Firefoksie może sprawić, że przezkilkasekund użytkownik w ogóle niczego nie zobaczy.
Najbardziej w tym wszystkim zaskakujące jest to, że sama branżareklamowa wcale nie jest zła z tego powodu. Na łamach Hacker Newstoczy się ciekawadyskusja w tej sprawie, otworzona przez inżyniera z firmy HeapAnalytics. Stwierdził on, że to co Mozilla zrobiła, wręcz pomożebranży reklamowej. Gdy bowiem twórcy stron wrzucają pełnoskryptów śledzących, to zaczynają one ze sobą konkurować ozasoby, jak również spowalniają samo narysowanie strony. Sensownejest więc nadanie priorytetu temu, co służy rysowaniu. Firmyanalityczne dostają to czego chcą – możliwość śledzeniaużytkownika, użytkownicy dostają to, czego chcą – szybkoładujące się strony.
Zaawansowani użytkownicy mogą w Firefoksie wpłynąć nazachowanie planisty i opóźnianie ładowania skryptów. W paneluabout:config służą do tego cztery parametry:network.http.tailing.delay-quantum-after-domcontentloaded oraznetwork.http.tailing.delay-quantum określają minimalne opóźnienia(w milisekundach), parametr network.http.tailing.delay-max określamaksymalne opóźnienie, zaś network.http.tailing.enabled pozwalawłączyć lub wyłączyć ten efekt.