Puppeteer から Headless Chromium を動かしている時のログ
概要
Headless modeが TrueかFalseかでChromiumの動作が変化するが、それをどうやって実現しているのかが知りたかったので調査した。
以下のようにオプションで指定し変化させてログを確認してみる。
puppeteer.launch({ headless: false })
Headless が有効な時
puppeteer.launch({ headless: ture })
の場合
[ '/mozy/headless_test/node_modules/puppeteer/.local-chromium/mac-609904/chrome-mac/Chromium.app/Contents/MacOS/Chromium', '--disable-background-networking', '--disable-background-timer-throttling', '--disable-backgrounding-occluded-windows', '--disable-breakpad', '--disable-client-side-phishing-detection', '--disable-default-apps', '--disable-dev-shm-usage', '--disable-extensions', '--disable-features=site-per-process', '--disable-hang-monitor', '--disable-ipc-flooding-protection', '--disable-popup-blocking', '--disable-prompt-on-repost', '--disable-renderer-backgrounding', '--disable-sync', '--disable-translate', '--metrics-recording-only', '--no-first-run', '--safebrowsing-disable-auto-update', '--enable-automation', '--password-store=basic', '--use-mock-keychain', '--headless', '--hide-scrollbars', '--mute-audio', 'about:blank', '--remote-debugging-port=0', '--user-data-dir=/var/folders/h2/489kk0vs5bl5y6232v874xsc0000gn/T/puppeteer_dev_profile-9vrPLR' ],
Headless が無効な時
puppeteer.launch({ headless: false })
の場合
[ '/mozy/headless_test/node_modules/puppeteer/.local-chromium/mac-609904/chrome-mac/Chromium.app/Contents/MacOS/Chromium', '--disable-background-networking', '--disable-background-timer-throttling', '--disable-backgrounding-occluded-windows', '--disable-breakpad', '--disable-client-side-phishing-detection', '--disable-default-apps', '--disable-dev-shm-usage', '--disable-extensions', '--disable-features=site-per-process', '--disable-hang-monitor', '--disable-ipc-flooding-protection', '--disable-popup-blocking', '--disable-prompt-on-repost', '--disable-renderer-backgrounding', '--disable-sync', '--disable-translate', '--metrics-recording-only', '--no-first-run', '--safebrowsing-disable-auto-update', '--enable-automation', '--password-store=basic', '--use-mock-keychain', 'about:blank', '--remote-debugging-port=0', '--user-data-dir=/var/folders/h2/489kk0vs5bl5y6232v874xsc0000gn/T/puppeteer_dev_profile-LX7XmK' ],
違い
Headless TrueとするとChromiumを起動する際に以下の指定がある。
'--headless', '--hide-scrollbars', '--mute-audio',
つまりは、headlessにしてスクロールバーを決して、音が再生しないように指定をしているようだ。
その他、それぞれのオプションに関しては順次まとめていく。
関連して
Chromium ではなく、すでにインストールしてある Chrome で起動したい場合は以下のようにパスを指定すると良い。
puppeteer.launch({executablePath: '/path/to/Chrome'});
参考文献
Chromium と Chrome は何が違うかをわかりやすく解説した記事。
www.howtogeek.com
さっき書いた記事。 mozy-ok.hatenablog.com