Firefox Replay to narzędzie, które umożliwia kartom przeglądarki Firefox nagrywanie, odtwarzanie i przewijanie tego co się na nich dzieje.
Czym jest Firefox Replay
Mozilla stale ulepsza poszczególne narzędzia wchodzące w skład przeglądarki Firefox. Jednym z przykładów takich działań jest Firefox Replay. Stanowi ono eksperymentalne narzędzie, które umożliwia procesom zawartości Firefoksa rejestrowanie ich zachowania, aby można je było później odtworzyć i przewinąć.
Głównym „ficzerem” Firefox Replay jest coś co można nazwać „osią czasu kodu”. Umożliwia ona szybkie przeglądanie każdego wykonania kodu. Wraz z punktami wykonania oś czasu pokazuje również wyjątki, zdarzenia i żądania sieciowe w czasie rzeczywistym. Umożliwia także zapisywanie nagrań i odtwarzanie ich.
Jak działa Firefox Replay
Nagrywanie i odtwarzanie odbywa się poprzez kontrolowanie wszystkich niedeterministycznych (niezależnych od warunków) zdarzeń w przeglądarce. Czyli najpierw Firefox Reply rejestruje zachowania niedeterministyczne (tak występujące wewnątrz wątku jak i między wątkami) a następnie odtwarza je później, aby – jak to określają twórcy - „zmusić przeglądarkę do zachowania deterministycznego”.
Firefox Replay jest zintegrowany z Inter-process Communication (IPC), aby umożliwić komunikację między procesem nagrywania lub odtwarzania a procesem chrome (czyli UI przeglądarki). Jego funkcja przewijania pozwala na to aby podczas odtwarzania przywrócić poprzedni stan. Z kolei integracja z debuggerem umożliwia samemu debuggerowi Javascript odczytywanie wymaganych informacji z procesu odtwarzania i kontrolowanie wykonania tego procesu.
Przyszłość
Firefox Replay nie jest jeszcze oficjalnie wydany, jednak użytkownicy Maców mogą go już wypróbować, pobierając nocne „buildy”. Ponieważ nadal jest on w fazie eksperymentalnej, funkcja Firefox Replay jest nawet w nich domyślnie wyłączona. Możesz ją jednak włączyć za pomocą ustawienia devtools.recordreplay.enabled
.
Zespół pracuje również nad obsługą innych platform.
Prace nad portem Windows są w toku, ale jeszcze nie mamy wersji w pełni funkcjonalnej. Trudności polegają na ustaleniu zestawu interfejsów API bibliotek systemowych do przechwycenia, uruchomieniu zarządzania pamięcią oraz w obsłudze różnych sposobów wyświetlania grafiki i IPC na różnych platformach.
Chrome zagrożony?
Podczas dyskusji w serwisie Hacker News wielu użytkowników było podekscytowanych możliwością wypróbowania tego narzędzia. Jeden z użytkowników skomentował: To może wystarczyć, bym mógł używać Firefoksa do pracy jako deweloper. To może także mieć ogromne znaczenie ze względu na udział Firefoksa w rynku; w końcu istotnym powodem, dla którego Chrome stał się tak popularny, było to, że posiadał bardzo dobre narzędzia dla deweloperów (przynajmniej w porównaniu z konkurencją w tamtym czasie). Firefox zdecydowanie nadrobił zaległości, ale wcześniej wielu programistów przeszło już na Chrome i przestało sprawdzać zgodność z poziomu Firefoksa. O popularności Chrome’a poczytajcie też nasz artykuł.
Zobacz również: Zdalne debugowanie w Chrome za pomocą DevTools
Zapowiada się więc przełom w tworzeniu stron internetowych. Pozwoli mieć do czynienia z dużą ilością danych w czasie rzeczywistym. Dzięki niemu można na przykład sztucznie wytworzyć a następnie przebadać niektóre problemy, które w inny sposób były trudne do odtworzenia (np. kłopoty z synchronizacją sieci i danych wejściowych użytkownika).
Więcej można dowiedzieć się z oficjalnej strony projektu.