Chrome Finch テストとは

公開日: 2025 年 4 月 3 日

Chrome に新しい機能をリリースする際は、機能が動作し、コンプライアンスを遵守し、信頼性があることを確認するための多くのチェックとバランスがあります。そのバランスの一つが Finch テストです。名前の「テスト」という部分から、安全でないと思われがちですが、実際はまったく逆です。Finch ロールアウトを使用すると、互換性の問題を引き起こす可能性のある機能を安全に追加できます。予期しない問題が発生した場合は、機能をすばやく無効にできます。この記事では、Chrome の一部の機能リリースで Finch を使用する方法と理由について説明します。

通常、Chrome で機能を有効にするには、Chrome 内でブール値をオフからオンに切り替えるだけです。新しい機能が「リリース」されると、このブール値のデフォルト状態がすべてのユーザーに対して「オン」に変更されます。方法はいくつかあります。

  • 「コード内で」機能を有効にする: Chrome 実行可能ファイル自体に、デフォルトで有効になっている設定がある場合です。
  • 「オリジン トライアル」で機能を有効にする: オリジン トライアル システムは、特定のサイトがすべての Chrome ユーザーを試験運用にオプトインし、そのサイトにのみ特定の機能を有効にするための方法です。
  • 「Finch を使用して」機能を有効にする: Chrome はサーバーから構成ファイルを定期的に取得します。このファイルには、機能を有効または無効にする手順が含まれている場合があります。
  • 「Finch キルスイッチ」: 「Finch の使用」を有効にすることと正反対です。この場合、機能は「コード内で」有効になっていますが、Finch システムを使用して無効になっています。通常、これはリリース後に問題が検出された場合に発生します。

Finch のユースケース

このブログ投稿のトピックは Finch であるため、「コード内」または「オリジン トライアル」での有効化については詳しく説明しません。しかし、Finch には興味深いユースケースが複数あります。

少数のユーザーを対象にテストする(A/B テスト)

Finch は、機能や最適化のA/B テストを行うために使用されます。この場合、一部のユーザーに対して機能が有効にされ、機能が有効と無効の時のパフォーマンス、動作、使用状況の違いに関するデータを収集できます。

A/B テストの例として、推測画像デコードのリリースがあります。このパフォーマンスの向上は、Chrome のページ読み込みが速くなる以外、デベロッパーやユーザーには目立たないはずです。ただし、予期しない事態が発生しないようにし、パフォーマンスへの影響を正確に測定できるように、Finch を使用して A/B テストを行いました。

問題のある機能を無効にする

プロダクトの安全性とユーザー エクスペリエンスを確保するため、Chrome では Finch システムを使用して、「コード内で」有効にされた問題のある機能をリモートで無効にできます。たとえば、ある機能がデフォルトで有効になっており、Chrome が安定版ステータスに達した後にのみ問題が発生した場合、その機能をすばやく無効にして、ユーザーと企業を安全な状態に戻す方法が必要です。これは、機能に未発見のバグがある場合や、予期しない理由で機能が既存のサイトを破壊した場合に必要になることがあります。

リスクの高い機能をより安全に有効にする

Chrome でリリースされる機能のほとんどは、新しいコードがすべてのサイトで動作することをテストして確認できるため、リスクはほとんどありません。

ただし、未知の互換性の問題やその他の複雑な操作が原因で、機能をリリースすることが非常にリスクが高い場合もあります。この場合、Finch システムを使用して、この機能をキルスイッチとして単に予備に置いておくのではなく、実際に有効にできます。

たとえば、HTML パーサーの「緩和」は、<select> 要素内に以前よりも多くのコンテンツを配置できる、新しいカスタマイズ可能な選択機能に関連する変更です。この変更によって既存のサイトが破損する可能性があるため、慎重にロールアウトする必要がありました。

Finch を使用して機能を有効にすることは、Finch を使用して機能を削除するよりも安全な場合があります。これは、Finch がさまざまな理由ですべてのユーザーに届くわけではないためです。たとえば、一部の企業ユーザーには、Finch の構成を完全に禁止するポリシーが適用されています。これらのユーザーは、コードで機能が有効にされ、Finch を使用してキルスイッチがオンにされた場合、引き続きリスクにさらされます。これらのユーザーは Finch の設定を受け取らず、機能は引き続き有効になります。代わりに Finch を使用してこの機能を有効にすることで、緊急時にすべてのユーザーに対して無効にできることを保証できます。

Finch の試験運用版に参加しているかどうかを確認する方法

ユーザーが直接行うことは困難です。おすすめの方法は、Chrome エンジニアに連絡し(通常は Chromium のバグのコンテキストで)、この「バリエーション リスト」を送信することです。これは、特定のブラウザのすべての Finch 設定の特別なコードバージョンのリストです。簡単に取得できます。

  1. chrome://version に移動します。
  2. [有効なバリエーション] の横に表示されているテキスト リスト全体をコピーします(かなり長い場合があります)。
  3. そのテキストをテキスト ファイル(variations.txt など)に貼り付けて、バグに添付します。

このバリエーション リストにより、Chrome エンジニアはリストをデコードして、ブラウザで有効または無効になっている機能を確認できます。

Finch テストが 100% に達して問題がなければ、どうなりますか?

テストが「成功」し、対象の機能がデベロッパーやユーザーにリスクをもたらさないことが確認できたら、必ず「コード内で」機能を有効にします。この時点で、Finch 構成の有効期限を設定しても問題ありません。これにより、コードでこの機能が有効にされたバージョン以降のブラウザには影響しなくなります。