module Capybara::Selenium::ChromeLogs

def available_log_types

def available_log_types
  types = execute :get_available_log_types
  Array(types).map(&:to_sym)
rescue ::Selenium::WebDriver::Error::UnknownCommandError
  raise NotImplementedError, LOG_MSG
end

def commands(command)

def commands(command)
  COMMANDS[command] || super
end

def log(type)

def log(type)
  data = begin
    execute :get_log, {}, type: type.to_s
  rescue ::Selenium::WebDriver::Error::UnknownCommandError
    execute :get_log_legacy, {}, type: type.to_s
  end
  Array(data).map do |l|
    ::Selenium::WebDriver::LogEntry.new l.fetch('level', 'UNKNOWN'), l.fetch('timestamp'), l.fetch('message')
  rescue KeyError
    next
  end
rescue ::Selenium::WebDriver::Error::UnknownCommandError
  raise NotImplementedError, LOG_MSG
end