Was ist ein Chrome Finch-Test?

Veröffentlicht: 3. April 2025

Wenn eine neue Funktion in Chrome eingeführt wird, gibt es viele Prüfungen, um sicherzustellen, dass sie funktioniert, richtlinienkonform ist und zuverlässig ist. Eine dieser Maßnahmen sind Finch-Tests. Der Begriff „Test“ im Namen sollte Sie nicht dazu verleiten, zu glauben, dass es sich um eine unsichere Funktion handelt. Ganz im Gegenteil. Mit Finch-Roll-outs können wir Funktionen, die potenziell zu Kompatibilitätsproblemen führen könnten, auf sichere Weise hinzufügen, da wir eine Funktion schnell deaktivieren können, wenn unvorhergesehene Probleme auftreten. In diesem Artikel wird erläutert, wie und warum wir Finch für einige Funktionsveröffentlichungen in Chrome verwenden.

Im Allgemeinen bedeutet das Aktivieren einer Funktion in Chrome, dass Sie einfach eine boolesche Variable in Chrome von „Aus“ auf „An“ umschalten. Wenn eine neue Funktion eingeführt wird, bedeutet das einfach, dass der Standardstatus dieser booleschen Variablen für alle Nutzer in „An“ geändert wird. Dazu haben Sie mehrere Möglichkeiten:

  • Funktion „in Code“ aktivieren: Das bedeutet, dass die Chrome-Ausführdatei selbst eine standardmäßig aktivierte Einstellung hat.
  • Funktion „Über Ursprungstest“ aktivieren: Mit dem Ursprungstestsystem können Sie für eine bestimmte Website alle Chrome-Nutzer für einen Test anmelden, bei dem eine bestimmte Funktion nur auf dieser Website aktiviert wird.
  • Funktion „Mit Finch“ aktivieren: Chrome ruft regelmäßig eine Konfigurationsdatei von einem Server ab. Diese Datei kann Anweisungen zum Aktivieren oder Deaktivieren einer Funktion enthalten.
  • Finch-Killswitch: Das Gegenteil von „Finch verwenden“ aktivieren. In diesem Fall ist die Funktion „im Code“ aktiviert, wird aber dann über das Finch-System deaktiviert, in der Regel aufgrund von Problemen, die nach der Einführung erkannt wurden.

Anwendungsfälle für Finch

Da es in diesem Blogpost um Finch geht, werden wir nicht weiter auf die Aktivierung von „In Code“ oder „Ursprungstest“ eingehen. Finch hat aber mehrere interessante Anwendungsfälle.

Test mit einer kleinen Gruppe von Nutzern (A/B-Test)

Oft wird Finch für A/B-Tests einer Funktion oder Optimierung verwendet. In diesem Fall wird eine Funktion für einen kleinen Prozentsatz der Nutzer aktiviert, damit Daten zu den Unterschieden bei Leistung, Verhalten oder Nutzung erfasst werden können, wenn die Funktion aktiviert oder deaktiviert ist.

Ein Beispiel für A/B-Tests ist die Einführung der spekulativen Bilddekodierung. Diese Leistungsverbesserung sollte für Entwickler oder Nutzer nicht wahrnehmbar sein, außer dass Seiten in Chrome schneller geladen werden. Um sicherzugehen, dass nichts Unerwartetes passiert ist, und um die Leistungsauswirkungen genau messen zu können, haben wir mit Finch einen A/B-Test durchgeführt.

Problematische Funktion deaktivieren

Aus Sicherheitsgründen und zur Verbesserung der Nutzerfreundlichkeit kann Chrome über das Finch-System per Fernzugriff problematische Funktionen deaktivieren, die „im Code“ aktiviert wurden. Wenn eine Funktion beispielsweise standardmäßig aktiviert war, Probleme aber erst auftraten, nachdem Chrome den Status „Stable“ erreicht hatte, müssen wir die Möglichkeit haben, die Funktion schnell zu deaktivieren, um Nutzer und Unternehmen wieder in einen sicheren Zustand zu versetzen. Das kann erforderlich sein, wenn es noch nicht entdeckte Fehler in der Funktion gibt oder wenn eine Funktion aus unvorhergesehenen Gründen bestehende Websites beeinträchtigt.

Riskante Funktionen sicherer aktivieren

Bei den meisten Funktionen, die in Chrome eingeführt werden, besteht nur ein geringes Risiko, da wir den neuen Code testen und prüfen können, ob er auf allen Websites funktioniert.

Manchmal kann die Einführung von Funktionen jedoch aufgrund unbekannter Kompatibilitätsprobleme oder anderer schwieriger Interaktionen ziemlich riskant sein. In diesem Fall kann das Finch-System verwendet werden, um die Funktion tatsächlich zu aktivieren, anstatt sie nur als Notschalter zu verwenden.

Die „Lockerung“ des HTML-Parsers war beispielsweise eine Änderung im Zusammenhang mit der neuen anpassbaren Auswahlfunktion, mit der mehr Inhalte als zuvor in einem <select>-Element platziert werden konnten. Da diese Änderung bestehende Websites beeinträchtigen könnte, mussten wir sie mit Bedacht einführen.

Das Aktivieren von Funktionen mit Finch kann sicherer sein als das Entfernen von Funktionen mit Finch, da Finch aus verschiedenen Gründen nicht alle Nutzer erreicht. So gibt es beispielsweise für einige Nutzer in Unternehmen eine Richtlinie, die die Finch-Konfiguration vollständig verbietet. Diese Nutzer sind weiterhin gefährdet, wenn eine Funktion im Code aktiviert und dann mit Finch deaktiviert wird, da diese Nutzer die Finch-Einstellung nicht erhalten und die Funktion weiterhin aktiviert ist. Wenn wir die Funktion stattdessen mit Finch aktivieren, können wir im Notfall für alle Nutzer die Möglichkeit bieten, sie zu deaktivieren.

So prüfen Sie, ob Sie an einem Finch-Test teilnehmen

Das ist für Nutzer direkt schwierig. Wir empfehlen, sich an einen Chrome-Entwickler zu wenden (in der Regel im Zusammenhang mit einem Chromium-Fehler) und ihm die „Liste der Varianten“ zu senden. Dies ist eine Liste mit speziell codierten Versionen aller Finch-Einstellungen für einen bestimmten Browser. Sie können sie ganz einfach abrufen:

  1. Rufen Sie chrome://version auf.
  2. Kopieren Sie die gesamte Textliste neben „Aktive Varianten“. Diese kann ziemlich lang sein.
  3. Fügen Sie diesen Text in eine Textdatei (z. B. variations.txt) ein und hängen Sie sie an einen Fehler an.

Anhand dieser Liste können die Chrome-Entwickler die Liste entschlüsseln und sehen, welche Funktionen in Ihrem Browser aktiviert oder deaktiviert sind.

Was passiert, wenn der Finch-Test 100% erreicht und einsatzbereit ist?

Sobald wir sicher sind, dass unser Test „erfolgreich“ war und die betreffende Funktion keine Risiken für Entwickler oder Nutzer darstellt, aktivieren wir sie immer „im Code“. Jetzt können Sie die Finch-Konfiguration ein Enddatum geben, damit sie nach der Version, in der die Funktion im Code aktiviert wurde, keine Auswirkungen mehr auf Browser hat.