class Selenium::WebDriver::Network

def add_authentication_handler(username, password)

def add_authentication_handler(username, password)
  intercept = @network.add_intercept(phases: [BiDi::Network::PHASES[:auth_required]])
  auth_id = @network.on(:auth_required) do |event|
    request_id = event['requestId']
    @network.continue_with_auth(request_id, username, password)
  end
  @callbacks[auth_id] = intercept
  auth_id
end

def add_request_handler

def add_request_handler
  intercept = @network.add_intercept(phases: [BiDi::Network::PHASES[:before_request]])
  request_id = @network.on(:before_request) do |event|
    request_id = event['requestId']
    @network.continue_with_request(request_id: request_id)
  end
  @callbacks[request_id] = intercept
  request_id
end

def clear_handlers

def clear_handlers
  @callbacks.each_key { |id| remove_handler(id) }
end

def initialize(bridge)

def initialize(bridge)
  @network = BiDi::Network.new(bridge.bidi)
  @callbacks = {}
end

def remove_handler(id)

def remove_handler(id)
  intercept = @callbacks[id]
  @network.remove_intercept(intercept['intercept'])
  @callbacks.delete(id)
end