Class: Ferrum::Network::InterceptedRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/ferrum/network/intercepted_request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(page, params) ⇒ InterceptedRequest

Returns a new instance of InterceptedRequest.



10
11
12
13
14
15
16
# File 'lib/ferrum/network/intercepted_request.rb', line 10

def initialize(page, params)
  @page, @params = page, params
  @request_id = params["requestId"]
  @frame_id = params["frameId"]
  @resource_type = params["resourceType"]
  @request = params["request"]
end

Instance Attribute Details

#frame_idObject

Returns the value of attribute frame_id.



8
9
10
# File 'lib/ferrum/network/intercepted_request.rb', line 8

def frame_id
  @frame_id
end

#request_idObject

Returns the value of attribute request_id.



8
9
10
# File 'lib/ferrum/network/intercepted_request.rb', line 8

def request_id
  @request_id
end

#resource_typeObject

Returns the value of attribute resource_type.



8
9
10
# File 'lib/ferrum/network/intercepted_request.rb', line 8

def resource_type
  @resource_type
end

Instance Method Details

#abortObject



46
47
48
# File 'lib/ferrum/network/intercepted_request.rb', line 46

def abort
  @page.command("Fetch.failRequest", requestId: request_id, errorReason: "BlockedByClient")
end

#continue(**options) ⇒ Object



41
42
43
44
# File 'lib/ferrum/network/intercepted_request.rb', line 41

def continue(**options)
  options = options.merge(requestId: request_id)
  @page.command("Fetch.continueRequest", **options)
end

#headersObject



58
59
60
# File 'lib/ferrum/network/intercepted_request.rb', line 58

def headers
  @request["headers"]
end

#initial_priorityObject



62
63
64
# File 'lib/ferrum/network/intercepted_request.rb', line 62

def initial_priority
  @request["initialPriority"]
end

#inspectObject



70
71
72
# File 'lib/ferrum/network/intercepted_request.rb', line 70

def inspect
  %(#<#{self.class} @request_id=#{@request_id.inspect} @frame_id=#{@frame_id.inspect} @resource_type=#{@resource_type.inspect} @request=#{@request.inspect}>)
end

#match?(regexp) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/ferrum/network/intercepted_request.rb', line 22

def match?(regexp)
  !!url.match(regexp)
end

#methodObject



54
55
56
# File 'lib/ferrum/network/intercepted_request.rb', line 54

def method
  @request["method"]
end

Returns:

  • (Boolean)


18
19
20
# File 'lib/ferrum/network/intercepted_request.rb', line 18

def navigation_request?
  @params["isNavigationRequest"]
end

#referrer_policyObject



66
67
68
# File 'lib/ferrum/network/intercepted_request.rb', line 66

def referrer_policy
  @request["referrerPolicy"]
end

#respond(**options) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/ferrum/network/intercepted_request.rb', line 26

def respond(**options)
  has_body = options.has_key?(:body)
  headers = has_body ? { "content-length" => options.fetch(:body, '').length } : {}
  headers = headers.merge(options.fetch(:responseHeaders, {}))

  options = {responseCode: 200}.merge(options)
  options = options.merge({
    requestId: request_id,
    responseHeaders: header_array(headers),
  })
  options = options.merge(body: Base64.encode64(options.fetch(:body, '')).strip) if has_body

  @page.command("Fetch.fulfillRequest", **options)
end

#urlObject



50
51
52
# File 'lib/ferrum/network/intercepted_request.rb', line 50

def url
  @request["url"]
end