class Selenium::WebDriver::Firefox::Options

def add_argument(arg)

def add_argument(arg)
  @args << arg
end

def add_option(name, value)

def add_option(name, value)
  @options[name] = value
end

def add_preference(name, value)

def add_preference(name, value)
  prefs[name] = value
end

def as_json(*)

def as_json(*)
  opts = @options
  opts[:profile] = @profile.encoded if @profile
  opts[:args] = @args if @args.any?
  opts[:binary] = @binary if @binary
  opts[:prefs] = @prefs unless @prefs.empty?
  opts[:log] = {level: @log_level} if @log_level
  {KEY => opts}
end

def initialize(**opts)

def initialize(**opts)
  @args = opts.delete(:args) || []
  @binary = opts.delete(:binary)
  @profile = opts.delete(:profile)
  @log_level = opts.delete(:log_level)
  @prefs = opts.delete(:prefs) || {}
  @options = opts.delete(:options) || {}
end

def profile=(profile)

def profile=(profile)
  @profile = if profile.is_a?(Profile)
               profile
             else
               Profile.from_name(profile)
             end
end