class Selenium::WebDriver::Network
def add_authentication_handler(username = nil, password = nil, *filter, pattern_type: nil, &block)
def add_authentication_handler(username = nil, password = nil, *filter, pattern_type: nil, &block) selected_block = if username && password proc { |auth| auth.authenticate(username, password) } else block end add_handler( :auth_required, BiDi::Network::PHASES[:auth_required], BiDi::InterceptedAuth, filter, pattern_type: pattern_type, &selected_block ) end
def add_handler(event_type, phase, intercept_type, filter, pattern_type: nil)
def add_handler(event_type, phase, intercept_type, filter, pattern_type: nil) intercept = network.add_intercept(phases: [phase], url_patterns: [filter].flatten, pattern_type: pattern_type) callback_id = network.on(event_type) do |event| request = event['request'] intercepted_item = intercept_type.new(network, request) yield(intercepted_item) end callbacks[callback_id] = intercept callback_id end
def add_request_handler(*filter, pattern_type: nil, &block)
def add_request_handler(*filter, pattern_type: nil, &block) add_handler( :before_request, BiDi::Network::PHASES[:before_request], BiDi::InterceptedRequest, filter, pattern_type: pattern_type, &block ) end
def add_response_handler(*filter, pattern_type: nil, &block)
def add_response_handler(*filter, pattern_type: nil, &block) add_handler( :response_started, BiDi::Network::PHASES[:response_started], BiDi::InterceptedResponse, filter, pattern_type: pattern_type, &block ) 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