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.

Parameters:

  • flags (Hash)

    Flags that take precedence over the defaults.

  • options (Ferrum::Browser::Options)

    Browser options.

Returns:

  • (Hash)

    Merged flags.



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.

Parameters:

  • flags (Hash)

    Flags to merge required ones into.

  • options (Ferrum::Browser::Options)

    Browser options.

  • user_data_dir (String)

    Path to the browser's profile directory.

Returns:

  • (Hash)

    Merged flags.



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