Class: Puppeteer::NetworkManager
Defined Under Namespace
Classes: Credentials, InternalNetworkCondition, QueuedEventGroup, RedirectInfo
Instance Method Summary
collapse
Methods included from IfPresent
#if_present
#add_event_listener, #emit_event, #observe_first, #on_event, #remove_event_listener
Methods included from DebugPrint
#debug_print, #debug_puts
Constructor Details
#initialize(client, ignore_https_errors, frame_manager) ⇒ NetworkManager
Returns a new instance of NetworkManager.
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/puppeteer/network_manager.rb', line 75
def initialize(client, ignore_https_errors, frame_manager)
@client = client
@ignore_https_errors = ignore_https_errors
@frame_manager = frame_manager
@network_event_manager = Puppeteer::NetworkEventManager.new
@extra_http_headers = {}
@attempted_authentications = Set.new
@user_request_interception_enabled = false
@protocol_request_interception_enabled = false
@user_cache_disabled = false
@internal_network_condition = InternalNetworkCondition.new(@client)
@client.on_event('Fetch.requestPaused') do |event|
handle_request_paused(event)
end
@client.on_event('Fetch.authRequired') do |event|
handle_auth_required(event)
end
@client.on_event('Network.requestWillBeSent') do |event|
handle_request_will_be_sent(event)
end
@client.on_event('Network.requestServedFromCache') do |event|
handle_request_served_from_cache(event)
end
@client.on_event('Network.responseReceived') do |event|
handle_response_received(event)
end
@client.on_event('Network.loadingFinished') do |event|
handle_loading_finished(event)
end
@client.on_event('Network.loadingFailed') do |event|
handle_loading_failed(event)
end
@client.on_event('Network.responseReceivedExtraInfo') do |event|
handle_response_received_extra_info(event)
end
end
|
Instance Method Details
#authenticate(username:, password:) ⇒ Object
132
133
134
135
|
# File 'lib/puppeteer/network_manager.rb', line 132
def authenticate(username:, password:)
@credentials = Credentials.new(username: username, password: password)
update_protocol_request_interception
end
|
#cache_enabled=(enabled) ⇒ Object
179
180
181
182
|
# File 'lib/puppeteer/network_manager.rb', line 179
def cache_enabled=(enabled)
@user_cache_disabled = !enabled
update_protocol_cache_disabled
end
|
#emulate_network_conditions(network_condition) ⇒ Object
165
166
167
|
# File 'lib/puppeteer/network_manager.rb', line 165
def emulate_network_conditions(network_condition)
@internal_network_condition.network_condition = network_condition
end
|
151
152
153
|
# File 'lib/puppeteer/network_manager.rb', line 151
def
@extra_http_headers.dup
end
|
138
139
140
141
142
143
144
145
146
147
148
|
# File 'lib/puppeteer/network_manager.rb', line 138
def ()
= {}
.each do |key, value|
unless value.is_a?(String)
raise ArgumentError.new("Expected value of header \"#{key}\" to be String, but \"#{value}\" is found.")
end
[key.downcase] = value
end
@extra_http_headers =
@client.send_message('Network.setExtraHTTPHeaders', headers: )
end
|
#init ⇒ Object
115
116
117
118
119
120
|
# File 'lib/puppeteer/network_manager.rb', line 115
def init
@client.send_message('Network.enable')
if @ignore_https_errors
@client.send_message('Security.setIgnoreCertificateErrors', ignore: true)
end
end
|
#inspect ⇒ Object
122
123
124
125
126
127
128
|
# File 'lib/puppeteer/network_manager.rb', line 122
def inspect
values = %i[network_event_manager].map do |sym|
value = instance_variable_get(:"@#{sym}")
"@#{sym}=#{value}"
end
"#<Puppeteer::HTTPRequest #{values.join(' ')}>"
end
|
#num_requests_in_progress ⇒ Object
155
156
157
|
# File 'lib/puppeteer/network_manager.rb', line 155
def num_requests_in_progress
@network_event_manager.num_requests_in_progress
end
|
#offline_mode=(value) ⇒ Object
160
161
162
|
# File 'lib/puppeteer/network_manager.rb', line 160
def offline_mode=(value)
@internal_network_condition.offline_mode=(value)
end
|
#request_interception=(enabled) ⇒ Object
184
185
186
187
|
# File 'lib/puppeteer/network_manager.rb', line 184
def request_interception=(enabled)
@user_request_interception_enabled = enabled
update_protocol_request_interception
end
|
#set_user_agent(user_agent, user_agent_metadata = nil) ⇒ Object
Also known as:
user_agent=
171
172
173
174
175
176
|
# File 'lib/puppeteer/network_manager.rb', line 171
def set_user_agent(user_agent, user_agent_metadata = nil)
@client.send_message('Network.setUserAgentOverride', {
userAgent: user_agent,
userAgentMetadata: user_agent_metadata,
}.compact)
end
|