Chrome のバリエーションとは

Chrome のブラウザの新機能をテストするメカニズム

「Chrome のバリエーション」や「Chrome フィールド トライアル」、社内向けのコードネーム「Chrome Finch」など、聞いたことがある方もいらっしゃるかもしれません。

これらはすべて、Chrome ブラウザの新機能や変更をテストするメカニズム、または Chromebook で動作する Chrome オペレーティング システムである ChromeOS をテストするメカニズムを指す名前です。

Chrome のバリエーションはどのような目的で使用されますか?

Chrome のバリエーションを使用すると、Chrome で新しい機能を有効化したり、機能を無効化したり、一部のユーザーを対象に機能の変更を試したりできます。

Chrome のすべてが Chrome のバリエーション メカニズムを介して導入されるわけではありません。ただし、変更に特に注意する必要がある場合や、変更が想定外のパフォーマンスに影響する可能性があるリスクがある場合、Chrome チームは Chrome のバリエーションを使用できます。「変更」とは、Chrome のコードのパフォーマンス向上、ブラウザの外観や機能の更新、場合によっては JavaScript API の変更を意味します。

Chrome のバリエーションは、変更や更新に関する仮説の検証にも使用できます。たとえば、Chrome のバリエーション グループの一部のユーザーを対象に、ユーザーの実際のネットワーク状態に応じて Chrome の動作を速くするため、QUIC ネットワーク プロトコル パラメータを調整しました。

Chrome のバリエーションを利用できるもう 1 つのケースは、Chrome のオリジン トライアルを利用している場合です。オリジン トライアル機能はデフォルトで、有効なトライアル トークンを提供するすべてのページで有効になりますが、場合によっては Chrome のバリエーションを使用して機能の有効化を制御することもあります。つまり、一部のユーザーは、有効なトライアル トークンを提供するページにアクセスしても、オリジン トライアル機能を利用できない場合があります。オリジン トライアル機能を有効化できるユーザーの割合に関する情報は、各オリジン トライアルのドキュメントと最新情報に記載されています。

Chrome のバリエーションの仕組み

パソコンまたはモバイルでは 30 分ごと、または Chrome を起動するたびに、ブラウザは Chrome のバリエーション構成ファイル(バリエーションのシード)を取得するリクエストを Chrome バックエンドに送信します。つまり、Chrome のバリエーション シードを提供する専用サーバーがあるということです。Chrome はサーバーに HTTPS リクエストを行い、サーバーは delta-compressed シードを返します。

ブラウザとオペレーティング システムに関する情報は Chrome のバリエーションのバックエンドに送信されます。Chrome のバリエーションのシードはブラウザに送信されるため、ランダム化のシードが設定されます。

デバイス上の Chrome が Chrome のバリエーション バックエンドに接続してシードファイルを取得すると、Chrome のバージョンと実行中のオペレーティング システムに関する情報も提供されます。Chrome のバリエーションのバックエンドから返されたファイルは、機能の有効化、機能の無効化、機能のバリエーションの指定に使用されます。

Chrome は、シードファイルのデータとローカルに保存されているランダム化シードを使用して、ブラウザをパターン グループにランダムに割り当てます。つまり、ランダム化シードと Chrome のバリエーション バックエンドのシードファイルを組み合わせて、一部のユーザーを対象にブラウザの機能を有効化または無効化できます。デバイス上のブラウザは、どのパターン グループに属しているかを記録します。

機能のロールアウトと Chrome チャンネル

Chrome のバリエーションの最も重要な用途の 1 つは、変更や新機能を一定の割合のユーザーに段階的にロールアウトすることです。これは、何十億人ものユーザーがいて、複数のプラットフォームに何千種類ものデバイスを使用し、何百万もの異なるアプリやウェブサイトで数十の異なる言語を使用する、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 Offline Dino ゲームの難易度を微調整して、操作をより楽しくすることができます。

Chrome のバリエーションは、新機能の長期的な影響を調べるために使用することもできます。これを行うには、Chrome のバリエーション メカニズムを使用して、ごく一部のユーザー(おそらく 1% 以下)に対して機能を制限します。ホールドバック グループは、時間の経過とともにのみ発生する変更や副作用を確認するために役立ちます。

ホールドバック グループは、ユーザー インターフェースの変更において特に重要です。ユーザー インターフェースの変更では、ユーザーが新しい機能を使用する可能性は高いものの、長期的には動作が変化する可能性があります。

たとえば、Chrome で写真選択ツール機能をリリースしましたが、結果を比較するためにこの機能が少数のユーザーで一時的に使用されていませんでした。新しい Android 写真選択ツールを多くのユーザーにリリースしたところ、最初はグループがウェブ上で共有する画像の数が大幅に増えました。ただし、ホールドバックのバリエーションがあった 6 か月間で、使用量の伸びが大幅に減少しました。これは、新しい写真選択ツールの使用により、サイトでファイル入力要素に Accept 属性を追加することが推奨され、すべてのユーザー エクスペリエンスが向上したためです。

Chrome のバリエーションは検証にどのように使用されますか?

Chrome の機能とパフォーマンスを向上させる設定が有効になっている場合(chrome://settings/syncSetup?search=improve)は、ユーザー指標分析(UMA)と呼ばれるメカニズムを使用して指標を自動的にモニタリングし、Chrome のバックエンドに送信します。CSS プロパティ、HTML、JavaScript の機能を使用したページ読み込みの割合など、Chrome の匿名の使用統計情報の例は chromestatus.com/metrics で確認できます。

Chrome のバリエーションは、あるユーザー グループと別のユーザー グループの統計情報を比較する場合に特に便利です。たとえば、あるユーザーに対してのみ機能を有効にしたり、無効にしたりして、Chrome でグループごとに指標を比較できます。これらの指標には、メモリ使用量、ページの読み込み時間、ブラウザ機能の使用状況などがあります。これにより、Chrome のエンジニアは、機能が有効になっているユーザー、機能がオフになっているユーザー、機能が異なるユーザー間でパフォーマンスなどの指標を比較できます。

Chrome のバリエーション フィールド トライアル

特徴のバリエーションの各セットはスタディまたはフィールド トライアルと呼ばれ、各セットには一定の期間が存在します。機能の調査が終了すると、デフォルト以外の動作グループに含まれていたユーザーには、その機能のデフォルトの Chrome 設定(有効または無効)が適用されます。

Chrome のバリエーションで制御できるほとんどの機能は、chrome://flags ページで設定できるフラグに対応しています。または、コマンドラインから Chrome を実行する場合は、--enable-features フラグと --disable-features フラグを使用して Chrome のバリエーションを設定できます。

企業向け Chrome のバリエーション

企業のお客様向けに、Chrome のバリエーションを管理するための ChromeVariations ポリシーも提供しています。重要なセキュリティ修正を迅速に適用できるように、Chrome のバリエーションを有効にしておくことをおすすめします。

補足説明