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
17
18
# File 'lib/ferrum/network/intercepted_request.rb', line 10

def initialize(page, params)
  @status = nil
  @page, @params = page, params
  @request_id = params["requestId"]
  @frame_id = params["frameId"]
  @resource_type = params["resourceType"]
  @request = params["request"]
  @network_id = params["networkId"]
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

#network_idObject

Returns the value of attribute network_id.



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

def network_id
  @network_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

#statusObject

Returns the value of attribute status.



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

def status
  @status
end

Instance Method Details

#abortObject



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

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

#continue(**options) ⇒ Object



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

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

#headersObject



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

def headers
  @request["headers"]
end

#initial_priorityObject



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

def initial_priority
  @request["initialPriority"]
end

#inspectObject



79
80
81
# File 'lib/ferrum/network/intercepted_request.rb', line 79

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)


28
29
30
# File 'lib/ferrum/network/intercepted_request.rb', line 28

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

#methodObject



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

def method
  @request["method"]
end

Returns:

  • (Boolean)


24
25
26
# File 'lib/ferrum/network/intercepted_request.rb', line 24

def navigation_request?
  @params["isNavigationRequest"]
end

#referrer_policyObject



75
76
77
# File 'lib/ferrum/network/intercepted_request.rb', line 75

def referrer_policy
  @request["referrerPolicy"]
end

#respond(**options) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/ferrum/network/intercepted_request.rb', line 32

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.strict_encode64(options.fetch(:body, ""))) if has_body

  @status = :responded
  @page.command("Fetch.fulfillRequest", **options)
end

#status?(value) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/ferrum/network/intercepted_request.rb', line 20

def status?(value)
  @status == value.to_sym
end

#urlObject



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

def url
  @request["url"]
end