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 はさまざまな理由でユーザーの 100% に到達しないためです。たとえば、一部のエンタープライズ ユーザーには、Finch の構成を完全に禁止するポリシーがあります。これらのユーザーは、コード内で機能が有効になり、Finch を使用してキルスイッチが切り替えられた場合、Finch の設定を受け取らず、機能が有効なままになるため、リスクが残ります。代わりに Finch を使用して機能を有効 にすることで、緊急時にすべてのユーザーに対して機能を無効にすることができます。

Finch のテストに参加しているかどうかを確認する方法

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

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

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

Finch のテストが 100% に達して準備が整うとどうなりますか?

テストが「成功」し、問題の機能がデベロッパーやユーザーにリスクをもたらさないことを確認したら、常に「コード内」で機能を有効にします。この時点で、Finch の構成の終了日を設定しても安全です。これにより、コード内で機能が有効になったバージョン以降、ブラウザに影響しなくなります。