class Selenium::WebDriver::ServiceManager

def check_connection_error

def check_connection_error
  response = Net::HTTP.start(@host, @port, open_timeout: 0.5, read_timeout: 1) do |http|
    http.get('/status', {'Connection' => 'close'})
  end
  return "status returned #{response.code}\n#{response.body}" unless response.is_a?(Net::HTTPSuccess)
  status = JSON.parse(response.body)
  ready = status['ready'] || status.dig('value', 'ready')
  "driver not ready: #{response.body}" unless ready
rescue Errno::ECONNREFUSED, Errno::ECONNRESET, Errno::EPIPE, Errno::ETIMEDOUT,
       Errno::EADDRNOTAVAIL, Errno::EHOSTUNREACH, Net::OpenTimeout, Net::ReadTimeout,
       EOFError, SocketError, Net::HTTPBadResponse, JSON::ParserError => e
  "#{e.class}: #{e.message}"
end