Czym jest eksperyment Finch w Chrome?

Data publikacji: 3 kwietnia 2025 r.

W momencie wdrażania nowej funkcji w Chrome przeprowadzamy wiele kontroli, aby mieć pewność, że funkcja działa prawidłowo, jest zgodna z wymaganiami i niezawodna. Jednym z nich są eksperymenty Finch. Nie daj się zwieść nazwie „eksperyment”, która może sugerować, że jest to niepewna metoda. W przeciwieństwie do tego jest ona bardzo bezpieczna. Dzięki wdrażaniu funkcji za pomocą Finch możemy bezpiecznie dodawać funkcje, które mogą powodować problemy ze zgodnością. Pozwala nam to szybko wyłączać funkcje, jeśli napotkamy nieprzewidziane problemy. Z tego artykułu dowiesz się, jak i dlaczego używamy Fincha do publikowania niektórych funkcji w Chrome.

W ogóle włączenie funkcji w Chrome oznacza przełączenie wartości logicznej z wyłączonej na włączoną. Gdy nowa funkcja zostanie „wydana”, oznacza to, że jej stan domyślny zmieni się na „włączona” dla wszystkich użytkowników. Możesz to zrobić na kilka sposobów:

  • Włączanie funkcji „w kodzie”: oznacza to, że plik wykonywalny Chrome ma ustawienie włączone domyślnie.
  • Włączanie funkcji za pomocą „testu wersji próbnej Origin”: system testów wersji próbnej Origin umożliwia danej witrynie włączenie wszystkich użytkowników Chrome do eksperymentu, który włącza określoną funkcję tylko w tej witrynie.
  • Włączanie funkcji „za pomocą Fincha”: Chrome okresowo pobiera plik konfiguracji z serwera, który może zawierać instrukcje włączania i wyłączania funkcji.
  • „Przełącznik bezpieczeństwa Fincha”: jest przeciwieństwem włączenia opcji „Używanie Fincha”. W takim przypadku funkcja jest włączona „w kodzie”, ale następnie wyłączana za pomocą systemu Finch, zwykle z powodu problemów wykrytych po uruchomieniu.

Przypadki użycia Finch

Tematem tego posta jest Finch, więc nie będziemy szczegółowo omawiać włączania opcji „w kodzie” ani „testowania pochodzenia”. Finch ma jednak wiele ciekawych zastosowań.

Testowanie na małej grupie użytkowników (testy A/B)

Finch jest często używany do „testowania A/B” funkcji lub optymalizacji. W tym przypadku funkcja jest włączona dla niewielkiego odsetka użytkowników, aby można było zbierać dane o różnicach w wydajności, zachowaniu lub użytkowaniu, gdy funkcja jest włączona lub wyłączona.

Przykładem testu A/B jest spekulatywne dekodowanie obrazów. Jest to poprawa wydajności, która nie powinna być zauważalna dla deweloperów ani użytkowników, z wyjątkiem szybszego wczytywania stron przez Chrome. Aby mieć pewność, że nie wydarzyło się nic nieoczekiwanego, i aby móc dokładnie zmierzyć wpływ na skuteczność, przeprowadziliśmy test A/B za pomocą Finch.

Wyłączanie problematycznej funkcji

Ze względu na bezpieczeństwo produktu i użytkowników Chrome może używać systemu Finch do zdalnego wyłączania problematycznych funkcji, które zostały włączone „w kodzie”. Jeśli na przykład funkcja była domyślnie włączona, ale problemy pojawiły się dopiero po osiągnięciu przez Chrome stanu stabilnego, potrzebujemy sposobu na szybkie wyłączenie tej funkcji, aby przywrócić użytkownikom i firmom bezpieczny stan. Może być to konieczne, gdy w funkcji występują nieodkryte błędy lub gdy z nieoczekiwanych powodów powoduje ona problemy z dotychczasowymi stronami.

Włączanie ryzykownych funkcji w bezpieczniejszy sposób

W przypadku większości funkcji wprowadzanych przez Chrome ryzyko jest niewielkie, ponieważ możemy przetestować i sprawdzić, czy nowy kod działa na wszystkich stronach.

Czasami jednak wdrażanie funkcji może być dość ryzykowne z powodu nieznanych problemów ze zgodnością lub innych trudnych interakcji. W tym przypadku system Finch może służyć do włączania funkcji, a nie tylko do jej przechowywania jako wyłącznika awaryjnego.

Na przykład parser HTML „relaxation” to zmiana związana z nową funkcją selektorów dostosowywanych, która umożliwia umieszczanie w elemencie <select> większej ilości treści niż wcześniej. Ponieważ ta zmiana może zakłócić działanie istniejących witryn, musieliśmy wdrożyć ją ostrożnie.

Włączanie funkcji za pomocą Finch może być bezpieczniejsze niż ich usuwanie, ponieważ z różnych powodów Finch nie dociera do 100% użytkowników. Na przykład niektórzy użytkownicy korporacyjni mają zasady, które całkowicie uniemożliwiają konfigurowanie Finch. Ci użytkownicy pozostaną w stanie zagrożenia, jeśli funkcja zostanie włączona w kodzie, a potem wyłączona za pomocą Finch, ponieważ nie otrzymają ustawienia Finch i nadal będą mieli włączoną funkcję. Zamiast tego włączamy tę funkcję za pomocą Fincha, co gwarantuje możliwość jej wyłączenia dla wszystkich użytkowników w przypadku nagłej potrzeby.

Jak sprawdzić, czy biorę udział w eksperymencie Finch?

Użytkownicy nie mogą tego zrobić bezpośrednio. Najlepiej skontaktować się z inżynierem Chrome (najczęściej w kontekście błędu w Chromium) i przesłać mu „listę odmian”. To lista wersji wszystkich ustawień Finch z specjalnym kodem w przypadku danej przeglądarki. Można go łatwo odzyskać:

  1. Wejdź na chrome://version.
  2. Skopiuj całą listę tekstów (może być dość długa) wyświetlaną obok opcji „Aktywne warianty”.
  3. Wklej ten tekst w pliku tekstowym (np. variations.txt) i dołącz go do zgłoszenia błędu.

Dzięki tej liście inżynierowie Chrome mogą odkodować listę i zobaczyć, które funkcje są włączone lub wyłączone w Twojej przeglądarce.

Co się stanie, gdy eksperyment Finch osiągnie 100% i będzie gotowy do wdrożenia?

Gdy uznamy, że nasz eksperyment był „udany” i że dana funkcja nie stwarza ryzyka dla deweloperów ani użytkowników, zawsze włączamy ją „w kodzie”. W tym momencie możesz bezpiecznie usunąć konfigurację Finch, aby przestała ona wpływać na przeglądarki po wersji, w której funkcja została włączona w kodzie.