古いヘッドレス Chrome を chrome-headless-shell としてダウンロードします

今年、Chrome 112 で Chrome の新しいヘッドレス モード(--headless=newが利用可能になったことをお知らせしました。このモードでは、デベロッパーは UI が表示されない無人環境で Chrome を実行できます。テストや自動化のユースケースに役立ちます。

この発表の中で、Chrome バイナリから古いヘッドレス モードを削除する予定であることをお知らせしました。古いヘッドレスは技術的には独立したブラウザであり、現在 2 つのブラウザ バイナリを一体化してリリースしているため、この削除は理にかなっています。同時に、新旧のヘッドレス モードには次のような異なるユースケースがあることも認識しています。

  1. 古いヘッドレス モードは、Chromium の //content モジュールの軽量ラッパーであるため、依存関係が大幅に少なくなります。具体的には、X11/Wayland、D-Bus を必要とせず、ある点で本格的な Chrome ブラウザよりもパフォーマンスが優れています。そのため、自動スクリーンショット作成やウェブ スクレイピングなどのユースケースに適しています。
  2. 一方、New Headless は真の Chrome ブラウザであるため、信頼性と信頼性に優れ、より多くの機能を備えています。そのため、高精度のエンドツーエンドのウェブアプリ テストやブラウザ拡張機能テストに適しています。

つまり、パフォーマンスと信頼性の間にはトレードオフがあります。最適なヘッドレス モードはどれですか?これはユースケースによって異なります。

上のリストの情報を示す図。

自動化のユースケースに Chrome のフル機能を必要としないデベロッパーやテスターは、古いヘッドレスを使用することをおすすめします。それ以外の場合は、新しいヘッドレスが最適でしょう。

デベロッパーとテスターの皆様がこれら 2 つのオプションから引き続き選択できるようにするため、古いヘッドレス実装がスタンドアロンの chrome-headless-shell バイナリとして利用できるようになりました。これらの新しい chrome-headless-shell バイナリは、ユーザー向けの Chrome リリースごとに生成され、Chrome 120 以降では Chrome for Testing インフラストラクチャを介してダウンロードできます。

chrome-headless-shell バイナリを取得するにはどうすればよいですか?

他の Chrome for Testing バイナリと同様に、お使いのプラットフォーム用の chrome-headless-shell をダウンロードする最も簡単な方法は、Google の @puppeteer/browsers コマンドライン ユーティリティを使用することです。このユーティリティは npm を使用して入手できます。次に例を示します。

# Download the latest available `chrome-headless-shell` binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome-headless-shell@stable

# Download a specific `chrome-headless-shell` version.
npx @puppeteer/browsers install chrome-headless-shell@120.0.6098.0

chrome-headless-shell バイナリをダウンロードする独自の自動スクリプトを作成したい方のために、Google がお手伝いします。Chrome for Testing には、Chrome リリース チャンネルごとに利用可能な最新バージョン(Stable、Beta、Dev、Canary)の JSON API エンドポイントが用意されています。最新のステータスの概要については、Chrome for Testing の提供状況ダッシュボードをご覧ください。

フィードバック

chrome-headless-shell についてのフィードバックをお待ちしています。問題が発生した場合は、ご報告ください