Skip to content

Commit 9d3394b

Browse files
committed
fix: add host header in parse_json_version method to get ws_url
1 parent d192e65 commit 9d3394b

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

lib/ferrum/browser/process.rb

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class Process
2323
:v8_version, :webkit_version, :xvfb
2424

2525
extend Forwardable
26+
2627
delegate path: :command
2728

2829
def self.start(*args)
@@ -196,15 +197,21 @@ def parse_json_version(url)
196197
end
197198
end
198199

199-
response = JSON.parse(::Net::HTTP.get(URI(url.to_s)))
200+
http = Net::HTTP.new(url.host, url.port)
201+
request = Net::HTTP::Get.new(URI(url.to_s))
202+
request["Host"] = "127.0.0.1:#{url.port}"
203+
response = http.request(request)
204+
data = JSON.parse(response.body)
205+
206+
data["webSocketDebuggerUrl"] = data["webSocketDebuggerUrl"].gsub("127.0.0.1", url.host)
200207

201-
@v8_version = response["V8-Version"]
202-
@browser_version = response["Browser"]
203-
@webkit_version = response["WebKit-Version"]
204-
@default_user_agent = response["User-Agent"]
205-
@protocol_version = response["Protocol-Version"]
208+
@v8_version = data["V8-Version"]
209+
@browser_version = data["Browser"]
210+
@webkit_version = data["WebKit-Version"]
211+
@default_user_agent = data["User-Agent"]
212+
@protocol_version = data["Protocol-Version"]
206213

207-
response
214+
data
208215
rescue JSON::ParserError
209216
# nop
210217
end

0 commit comments

Comments
 (0)