class Selenium::WebDriver::Firefox::Legacy::Driver

def browser

def browser
  :firefox
end

def initialize(opts = {})

def initialize(opts = {})
  opts[:desired_capabilities] ||= Remote::Capabilities.firefox
  if opts.key? :proxy
    WebDriver.logger.deprecate ':proxy', "Selenium::WebDriver::Remote::Capabilities.firefox(proxy: #{opts[:proxy]})"
    opts[:desired_capabilities].proxy = opts.delete(:proxy)
  end
  unless opts.key?(:url)
    port = opts.delete(:port) || DEFAULT_PORT
    profile = opts.delete(:profile)
    Binary.path = opts[:desired_capabilities][:firefox_binary] if opts[:desired_capabilities][:firefox_binary]
    @launcher = Launcher.new Binary.new, port, profile
    @launcher.launch
    opts[:url] = @launcher.url
  end
  listener = opts.delete(:listener)
  WebDriver.logger.info 'Skipping handshake as we know it is OSS.'
  desired_capabilities = opts.delete(:desired_capabilities)
  bridge = Remote::Bridge.new(opts)
  capabilities = bridge.create_session(desired_capabilities)
  @bridge = Remote::OSS::Bridge.new(capabilities, bridge.session_id, opts)
  begin
    super(@bridge, listener: listener)
  rescue
    @launcher.quit if @launcher
    raise
  end
end

def quit

def quit
  super
  nil
ensure
  @launcher.quit
end