Veröffentlicht am 3. April 2025
Wenn es an der Zeit ist, eine neue Funktion in Chrome einzuführen, gibt es viele Kontrollen, um sicherzustellen, dass sie funktioniert, den Richtlinien entspricht und zuverlässig ist. Eines dieser Gleichgewichte sind Finch-Tests. Lassen Sie sich nicht vom Begriff „Test“ im Namen in die Irre führen. Es handelt sich nicht um eine unsichere Funktion, sondern um das Gegenteil. Finch-Roll-outs helfen uns, Funktionen hinzuzufügen, die möglicherweise Kompatibilitätsprobleme verursachen könnten. So können wir eine Funktion schnell deaktivieren, wenn unerwartete 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 in Chrome einen booleschen Wert von „Aus“ auf „Ein“ umschalten. Wenn eine neue Funktion „veröffentlicht“ wird, bedeutet das lediglich, dass der Standardstatus dieses booleschen Werts für alle Nutzer in „Aktiviert“ geändert wird. Dazu haben Sie mehrere Möglichkeiten:
- Funktion „im Code“ aktivieren: Das bedeutet, dass die ausführbare Datei von Chrome selbst eine Einstellung hat, die standardmäßig aktiviert ist.
- Funktion über einen Ursprungstest aktivieren: Das Ursprungstestsystem ermöglicht es einer bestimmten Website, alle Chrome-Nutzer für einen Test zu registrieren, wodurch 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 Kill Switch“: Das Gegenteil von „Finch verwenden“ aktivieren. In diesem Fall ist die Funktion „im Code“ aktiviert, wird dann aber über das Finch-System deaktiviert, in der Regel aufgrund von Problemen, die nach dem Start erkannt wurden.
Finch-Anwendungsfälle
In diesem Blogbeitrag geht es um Finch. Daher werden wir die Aktivierung „im Code“ oder „Origin Trial“ nicht weiter erläutern. Finch bietet jedoch mehrere interessante Anwendungsfälle.
Mit einer kleinen Gruppe von Nutzern testen (A/B-Tests)
Finch wird häufig 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 zum Unterschied in Leistung, Verhalten oder Nutzung gesammelt werden können, wenn die Funktion aktiviert bzw. deaktiviert ist.
Ein Beispiel für A/B-Tests ist die Einführung von spekulativen Bilddecodierungen. Diese Leistungsverbesserung sollte für Entwickler und Nutzer nicht spürbar sein, außer dass Chrome Seiten schneller lädt. Um sicherzugehen, dass nichts Unerwartetes passiert ist, und um die Auswirkungen auf die Leistung genau messen zu können, haben wir Finch für A/B-Tests verwendet.
Problematisches Feature deaktivieren
Aus Sicherheitsgründen und zur Verbesserung der Nutzerfreundlichkeit kann Chrome das Finch-System verwenden, um problematische Funktionen, die „im Code“ aktiviert wurden, per Remotezugriff zu deaktivieren. Wenn beispielsweise eine Funktion standardmäßig aktiviert war, Probleme aber erst auftraten, nachdem Chrome den Status „Stabil“ erreicht hatte, benötigen wir eine Möglichkeit, die Funktion schnell zu deaktivieren, um Nutzern und Unternehmen wieder einen sicheren Zustand zu ermöglichen. Das kann erforderlich sein, wenn es in der Funktion noch nicht entdeckte Fehler gibt oder wenn eine Funktion aus unvorhergesehenen Gründen bestehende Websites beschädigt.
Risikoreiche Funktionen auf sicherere Weise aktivieren
Bei den meisten Funktionen, die in Chrome eingeführt werden, besteht nur ein geringes Risiko, da wir testen und überprüfen können, ob der neue Code auf allen Websites funktioniert.
Manchmal kann die Einführung von Funktionen jedoch riskant sein, da unbekannte Kompatibilitätsprobleme oder andere schwierige Interaktionen auftreten können. In diesem Fall kann das Finch-System verwendet werden, um die Funktion tatsächlich zu aktivieren, anstatt sie nur als Kill-Switch zu reservieren.
Beispiel: „Lockerung“ des HTML-Parsers: Diese Änderung bezog sich auf die neue Funktion für benutzerdefinierte Auswahlfelder, mit der mehr Inhalte als zuvor in einem <select>
-Element platziert werden konnten. Da diese Änderung möglicherweise zu Problemen auf bestehenden Websites führen kann, mussten wir sie vorsichtig einführen.
Funktionen mit Finch zu aktivieren ist möglicherweise sicherer als sie damit zu entfernen, da Finch aus verschiedenen Gründen nicht alle Nutzer erreicht. Einige Unternehmensnutzer haben beispielsweise eine Richtlinie, die die Finch-Konfiguration vollständig verbietet. Diese Nutzer wären weiterhin gefährdet, wenn eine Funktion im Code aktiviert und dann mit Finch deaktiviert wird, da sie die Finch-Einstellung nicht erhalten und die Funktion weiterhin aktiviert ist. Wenn wir die Funktion stattdessen mit Finch aktivieren, können wir garantieren, dass sie im Notfall für alle Nutzer deaktiviert werden kann.
So prüfen Sie, ob Sie an einem Finch-Test teilnehmen
Für Nutzer ist das schwierig. Am besten kontaktieren Sie einen Chrome-Entwickler (in der Regel im Zusammenhang mit einem Chromium-Fehler) und senden ihm Ihre „Variationsliste“. Dies ist eine Liste mit speziellen codierten Versionen aller Finch-Einstellungen für einen bestimmten Browser. Sie lässt sich ganz einfach abrufen:
- Rufen Sie
chrome://version
auf. - Kopieren Sie die gesamte Textliste (die sehr lang sein kann) neben „Aktive Varianten“.
- Fügen Sie diesen Text in eine Textdatei ein (z. B.
variations.txt
) und hängen Sie sie an einen Fehler an.
Anhand dieser Liste von Varianten können Chrome-Entwickler die Liste decodieren und sehen, welche Funktionen in Ihrem Browser aktiviert oder deaktiviert sind.
Was passiert, wenn der Finch-Test 100% erreicht hat und bereit ist?
Sobald wir uns sicher sind, dass unser Test erfolgreich ist und die betreffende Funktion kein Risiko für Entwickler oder Nutzer darstellt, aktivieren wir die Funktion immer im Code. An diesem Punkt können Sie die Finch-Konfiguration beenden, damit sie sich nach der Version, in der die Funktion im Code aktiviert wurde, nicht mehr auf Browser auswirkt.