def initialize(opts = {})
port = opts.delete(:port) || DEFAULT_PORT
profile = opts.delete(:profile)
http_client = opts.delete(:http_client)
proxy = opts.delete(:proxy)
@launcher = create_launcher(port, profile)
unless opts.empty?
raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
end
@launcher.launch
caps = Remote::Capabilities.firefox(:native_events => DEFAULT_ENABLE_NATIVE_EVENTS)
caps.proxy = proxy if proxy
remote_opts = {
:url => @launcher.url,
:desired_capabilities => caps
}
remote_opts.merge!(:http_client => http_client) if http_client
begin
super(remote_opts)
rescue
@launcher.quit
raise
end
end