Chrome バリエーション(Chrome フィールド トライアル、内部コードネーム Chrome Finch とも呼ばれます)をご存じかもしれません。
これらはすべて同じことを指します。Chrome ブラウザや ChromeOS(Chromebook で動作する Chrome オペレーティング システム)の新しい機能や変更をテストするためのメカニズムです。
Chrome のバリエーションとは
Chrome バリエーションを使用すると、一部のユーザーに対して新しい機能を有効にしたり、機能を無効にしたり、機能の変更を試したりできます。
Chrome のすべての機能が Chrome バリエーションを使用して導入されるわけではありません。ただし、Chrome チームは必要に応じて Chrome バリエーションを使用できます。Chrome のバリエーションを使用すると、次のことができます。
- Chrome エンジニアが特定の変更を行う際に特に注意を払えるようにします。ブラウザのパフォーマンスにリスクがあると思われたり、その他の懸念がある場合などです。
- 変更や更新に関する仮説を検証します。たとえば、Chrome バリエーション グループの一部ユーザーに対して、QUIC ネットワーキング プロトコルのパラメータを変更し、ユーザーの実際のネットワーク状況に合わせて Chrome を高速化しました。
- オリジン トライアル機能の有効化を制御します。デフォルトでは、有効なトライアル トークンを提供するすべてのページでオリジン トライアルが有効になります。ただし、有効なトライアル トークンを提供するページにアクセスしても、特定のユーザーが機能を利用できない場合があります。
Chrome のバリエーションの仕組み
デスクトップまたはモバイルでは 30 分ごとに、または Chrome を起動するたびに、ブラウザは Chrome バックエンドにリクエストを送信して Chrome バリエーション構成ファイル(バリエーション シード)を取得します。Chrome バリエーションのシードを提供する専用サーバーが用意されています。Chrome がサーバーに HTTPS リクエストを送信し、サーバーは差分圧縮されたシードで応答します。
デバイス上の Chrome がシードファイルをリクエストすると、Chrome はバージョン番号と実行されているオペレーティング システムを提供します。Chrome バリエーション バックエンドで返されたファイルは、機能の有効化、機能の無効化、機能のバリエーションの指定に使用されます。
Chrome は、シードファイル内のデータとローカルに保存されたランダム化シードを使用して、ブラウザをバリエーション グループにランダムに割り当てます。デバイス上のブラウザは、どのバリエーション グループに属しているかを追跡します。
機能のリリースと Chrome チャンネル
Chrome バリアーションの最も重要な用途の 1 つは、Chrome クライアントの一部に変更や新機能を段階的に導入することです。これは、Chrome のような複雑なアプリケーションにとって非常に重要です。Chrome は、数十億人のユーザーが使用し、複数のプラットフォームに数千種類のデバイスがあり、数十種類の言語で数百万ものアプリやウェブサイトが使用されています。
Chrome は、Chrome Canary、Dev、Beta での使用とテストから有益なフィードバックを得ています。Chrome バリエーションを使用すると、これらのリリース チャンネル内の機能を有効または無効にできます。ただし、これらのチャネルは主にデベロッパーやその他のスペシャリストが使用します。
Chrome Stable のユーザーは Chrome を異なる方法で、はるかに多くの数で操作するため、Stable チャンネルで常に検証する必要があります。これにより、通常のブラウザの使用中に発生した問題に対処できます。Chrome エンジニアは、変更や新機能に対する実際のユーザーの反応を大規模に予測することはできません。
Chrome バリエーションを使用すると、Chrome Stable の使用状況と指標を確認できます。Chrome Stable で変更の影響を測定することで、トレードオフが複雑な場合でも、可能な限り優れた機能をリリースし、より優れたブラウザを構築できます。
Chrome エンジニアは Chrome バリエーションをどのような場合に使用しますか?
Chrome に Chrome バリエーションが必要である主な理由は 3 つあります。
新しい機能を有効にする
Chrome バリエーションを使用して新機能の有効化を制御することは、何らかのリスクが高いものや、パフォーマンスに影響する可能性があるものに対して特に便利です。
Chrome バリエーションを使用すると、一部のユーザーに新しい機能を提供できます。Chrome エンジニアは、パフォーマンスの違いを確認したり、バリエーション グループからの他の種類のフィードバックを確認したりできます。
機能を無効にする
Chrome バリエーションは、機能を無効にする安全メカニズムとして使用できますが、これはまれなケースです。
たとえば、新しいネットワーキング機能がサービス拒否攻撃の対象になる可能性があります。Chrome バリエーションを使用すると、この機能をすばやく有効にできます。Chrome バリエーションの設定は 30 分ごとにダウンロードされ、Chrome の再起動ごとに設定が有効になります。
一方、Chrome を更新して、数十億人のユーザーに新しいバージョンが伝播されるのを待つ方法は、はるかに時間がかかります。
機能の変更を試す
Chrome バリエーションを使用すると、変更や更新を検証できます。たとえば、Chrome オフライン Dino ゲームの難易度を微調整して、操作をより楽しくすることができます。
Chrome バリエーションを使用して、新機能の長期的な影響を調査することもできます。これは、Chrome バリエーション メカニズムを使用して、少数のユーザー(1% 未満)に機能を公開しないことで行われます。ホールドバック グループは、時間の経過とともにのみ明らかになる変更や副作用を確認する場合に役立ちます。
ホールドバック グループは、ユーザー インターフェースの変更に特に重要です。ユーザーは新機能の登場時には操作する可能性が高いですが、長期的には異なる動作をする可能性があります。
たとえば、Chrome で写真選択ツールをリリースしましたが、結果を比較するために、ごく一部のユーザーに対しては、この機能を一時的にリリースしませんでした。新しい Android フォト ピッカーを多くのユーザーにリリースしたところ、当初は、グループがウェブ上で共有する画像の数が増加しました。ただし、抑制バリエーションを適用した 6 か月間では、使用量の増加が大幅に減少しました。これは、新しい写真選択ツールの利用により、サイトがファイル入力要素に accept 属性を追加することが推奨されたためです。これにより、すべてのユーザーの利便性が向上しました。
Chrome バリエーションは検証にどのように使用されますか?
Chrome の機能とパフォーマンスの改善に役立つ設定が有効になっている場合(chrome://settings/syncSetup?search=improve
)、Chrome はユーザー指標分析(UMA)を使用して指標を自動的にモニタリングし、Chrome バックエンドに送信できます。
Chrome の匿名使用状況統計の例(CSS プロパティ、HTML または JavaScript の機能を使用するページ読み込みの割合など)は、chromestatus.com/metrics で確認できます。
Chrome バリエーションは、ユーザーのグループ間の統計情報を比較する場合に特に便利です。たとえば、一部のユーザーに対してのみ機能をオンにすると、Chrome は各グループの指標を比較できます。これらの指標には、メモリ使用量、ページの読み込み時間、ブラウザ機能の使用状況などがあります。これにより、Chrome エンジニアは、機能をオンにしているユーザー、機能をオフにしているユーザー、機能の種類が異なるユーザーの間で、パフォーマンスやその他の指標を比較できます。
フィールド トライアル
特徴の各バリエーション セットはスタディまたはフィールド テストと呼ばれ、それぞれに固定の期間があります。調査が完了すると、デフォルト以外の行動グループに含まれていたユーザーには、その機能のデフォルトの Chrome 設定(有効または無効)が適用されます。
Chrome バリアションで制御できる機能のほとんどは、chrome://flags
ページから設定できるフラグに対応しています。コマンドラインから Chrome を実行する場合は、--enable-features
フラグと --disable-features
フラグを使用して Chrome のバリエーションを構成できます。
--reset-variation-state
フラグは、現在のクライアントの Chrome バリアーションの状態を強制的にリセットします。つまり、クライアントが別の Chrome バリエーション グループに移動する可能性があります。
企業向け Chrome のバリエーション
Chrome には、企業ユーザー向けに Chrome バリエーションを管理するための Chrome バリエーション ポリシーも用意されています。Chrome で重要なセキュリティ修正を迅速に提供できるように、Chrome バリエーションを有効にしたままにすることをおすすめします。