Class: Ferrum::Browser::Options::Firefox

Inherits:
Base
  • Object
show all
Defined in:
lib/ferrum/browser/options/firefox.rb

Overview

Firefox-specific default flags and binary locations. Provides the CLI flags required to drive Firefox over CDP (remote debugger address and profile directory) along with its (minimal) set of default flags.

Constant Summary collapse

DEFAULT_OPTIONS =
{
  "headless" => nil
}.freeze
MAC_BIN_PATH =
[
  "/Applications/Firefox.app/Contents/MacOS/firefox-bin"
].freeze
LINUX_BIN_PATH =
%w[firefox].freeze
WINDOWS_BIN_PATH =
[
  "C:/Program Files/Firefox Developer Edition/firefox.exe",
  "C:/Program Files/Mozilla Firefox/firefox.exe"
].freeze
PLATFORM_PATH =
{
  mac: MAC_BIN_PATH,
  windows: WINDOWS_BIN_PATH,
  linux: LINUX_BIN_PATH
}.freeze

Instance Method Summary collapse

Methods inherited from Base

#detect_path, #except, options, #to_h, version

Instance Method Details

#merge_default(flags, options) ⇒ Hash

Merges Firefox's default flags with the given ones.



61
62
63
64
65
66
# File 'lib/ferrum/browser/options/firefox.rb', line 61

def merge_default(flags, options)
  defaults = except("headless") unless options.headless

  defaults ||= DEFAULT_OPTIONS
  defaults.merge(flags)
end

#merge_required(flags, options, user_data_dir) ⇒ Hash

Merges CLI flags required for Firefox to work with CDP.



45
46
47
# File 'lib/ferrum/browser/options/firefox.rb', line 45

def merge_required(flags, options, user_data_dir)
  flags.merge("remote-debugger" => "#{options.host}:#{options.port}", "profile" => user_data_dir)
end