Module: LookbookVisualTester::BrowserDiscovery

Defined in:
lib/lookbook_visual_tester/browser_discovery.rb

Overview

Finds a usable Chrome/Chromium binary, preferring standard absolute paths over PATH-resolved lookups. PATH lookup can resolve to wrapper scripts (e.g. a shell wrapper that injects GPU/Wayland flags) that break headless Chrome with errors like "Multiple targets are not supported in headless mode".

Constant Summary collapse

LINUX_CANDIDATES =
%w[
  /usr/bin/google-chrome-stable
  /usr/bin/google-chrome
  /usr/bin/chromium
  /usr/bin/chromium-browser
  /opt/google/chrome/google-chrome
].freeze
MAC_CANDIDATES =
%w[
  /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  /Applications/Chromium.app/Contents/MacOS/Chromium
].freeze

Class Method Summary collapse

Class Method Details

.find_binaryObject



23
24
25
26
27
28
29
# File 'lib/lookbook_visual_tester/browser_discovery.rb', line 23

def self.find_binary
  candidates = case RbConfig::CONFIG['host_os']
               when /darwin/ then MAC_CANDIDATES
               else LINUX_CANDIDATES
               end
  candidates.find { |path| File.executable?(path) }
end