YusukeIwaki/puppeteer-ruby

Not work with Firefox >= v97.0

Closed this issue · 4 comments

Step To Reproduce / Observed behavior

Puppeteer.launch(product: 'firefox') do |browser|
  page = browser.new_page
  page.goto('http://localhost:3000/')

causes TimeoutError on Firefox >= 97

D, [2022-05-10T10:53:53.543614 #18498] DEBUG -- : SEND >> {"sessionId":"33a61280-1631-43f4-8d99-0a2d1c112f60","method":"Page.navigate","params":{"url":"http://localhost:4567/empty.html","frameId":"46"},"id":16}
..127.0.0.1 - - [10/May/2022:10:53:53 JST] "GET /empty.html HTTP/1.1" 200 0
- -> /empty.html
..
D, [2022-05-10T10:53:53.590377 #18498] DEBUG -- : RECV << {"id"=>16, "result"=>{"frameId"=>"46", "loaderId"=>"39754217291793"}, "sessionId"=>"33a61280-1631-43f4-8d99-0a2d1c112f60"}
..127.0.0.1 - - [10/May/2022:10:53:53 JST] "GET /favicon.ico HTTP/1.1" 200 70
http://localhost:4567/empty.html -> /favicon.ico

on Firefox 96 it works well.

D, [2022-05-10T10:55:18.601081 #18549] DEBUG -- : SEND >> {"sessionId":"8d9812c4-7880-4a51-ab87-80d10e69881d","method":"Page.navigate","params":{"url":"http://localhost:4567/empty.html","frameId":"46"},"id":16}
.127.0.0.1 - - [10/May/2022:10:55:18 JST] "GET /empty.html HTTP/1.1" 200 0
- -> /empty.html
...
D, [2022-05-10T10:55:18.623721 #18549] DEBUG -- : RECV << {"id"=>16, "result"=>{"frameId"=>"46", "loaderId"=>"39863738957857"}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.633810 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextDestroyed", "params"=>{"executionContextId"=>1}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.644027 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextDestroyed", "params"=>{"executionContextId"=>2}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
127.0.0.1 - - [10/May/2022:10:55:18 JST] "GET /favicon.ico HTTP/1.1" 200 70
http://localhost:4567/empty.html -> /favicon.ico
.
D, [2022-05-10T10:55:18.652913 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextsCleared", "params"=>{}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.662139 #18549] DEBUG -- : RECV << {"method"=>"Page.frameStartedLoading", "params"=>{"frameId"=>"46"}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
...
D, [2022-05-10T10:55:18.679790 #18549] DEBUG -- : RECV << {"method"=>"Page.frameNavigated", "params"=>{"frame"=>{"id"=>"46", "loaderId"=>"39863738957857", "url"=>"http://localhost:4567/empty.html", "securityOrigin"=>nil, "mimeType"=>nil}}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.689955 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextCreated", "params"=>{"context"=>{"id"=>3, "origin"=>"http://localhost:4567", "name"=>"", "auxData"=>{"isDefault"=>true, "frameId"=>"46", "type"=>"default"}}}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.698859 #18549] DEBUG -- : RECV << {"method"=>"Log.entryAdded", "params"=>{"entry"=>{"source"=>"other", "level"=>"warning", "text"=>"This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”.", "timestamp"=>1652147718619, "url"=>"http://localhost:4567/empty.html", "lineNumber"=>0}}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.707272 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextCreated", "params"=>{"context"=>{"id"=>4, "origin"=>"http://localhost:4567", "name"=>"__puppeteer_utility_world__", "auxData"=>{"isDefault"=>false, "frameId"=>"46", "type"=>"isolated"}}}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.717357 #18549] DEBUG -- : RECV << {"method"=>"Page.domContentEventFired", "params"=>{"timestamp"=>1652147718.622}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
...
D, [2022-05-10T10:55:18.734900 #18549] DEBUG -- : RECV << {"method"=>"Page.loadEventFired", "params"=>{"timestamp"=>1652147718.623}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
..D, [2022-05-10T10:55:18.746086 #18549] DEBUG -- : SEND >> {"sessionId":"8d9812c4-7880-4a51-ab87-80d10e69881d","method":"Page.navigate","params":{"url":"http://localhost:4567/consolelog.html","frameId":"46"},"id":17}
.127.0.0.1 - - [10/May/2022:10:55:18 JST] "GET /consolelog.html HTTP/1.1" 200 252
- -> /consolelog.html

D, [2022-05-10T10:55:18.754450 #18549] DEBUG -- : RECV << {"method"=>"Page.navigatedWithinDocument", "params"=>{"frameId"=>"46", "url"=>"http://localhost:4567/empty.html"}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.763822 #18549] DEBUG -- : RECV << {"method"=>"Page.frameStoppedLoading", "params"=>{"frameId"=>"46"}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.........
D, [2022-05-10T10:55:18.793760 #18549] DEBUG -- : RECV << {"id"=>17, "result"=>{"frameId"=>"46", "loaderId"=>"39863738957861"}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.804001 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextDestroyed", "params"=>{"executionContextId"=>3}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.814827 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextDestroyed", "params"=>{"executionContextId"=>4}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.824612 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextsCleared", "params"=>{}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.834726 #18549] DEBUG -- : RECV << {"method"=>"Page.frameStartedLoading", "params"=>{"frameId"=>"46"}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
...
D, [2022-05-10T10:55:18.853375 #18549] DEBUG -- : RECV << {"method"=>"Page.frameNavigated", "params"=>{"frame"=>{"id"=>"46", "loaderId"=>"39863738957861", "url"=>"http://localhost:4567/consolelog.html", "securityOrigin"=>nil, "mimeType"=>nil}}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}
.
D, [2022-05-10T10:55:18.863577 #18549] DEBUG -- : RECV << {"method"=>"Runtime.executionContextCreated", "params"=>{"context"=>{"id"=>5, "origin"=>"http://localhost:4567", "name"=>"", "auxData"=>{"isDefault"=>true, "frameId"=>"46", "type"=>"default"}}}, "sessionId"=>"8d9812c4-7880-4a51-ab87-80d10e69881d"}

It seems Page.navigatedWithinDocument event cannot be received on Firefox >= 97

Expected behavior

Works well.

Environment

Paste the output of ruby --version

JS version of Puppeteer works well also on Firefox >= 97

  puppeteer:protocol:SEND ► {"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","method":"Page.navigate","params":{"url":"http://localhost:4567/empty.html","frameId":"46"},"id":16} +27ms
  puppeteer:protocol:RECV ◀ {"method":"Network.requestWillBeSent","params":{"requestId":"32678258671632","loaderId":"32678258671632","documentURL":"http://localhost:4567/empty.html","request":{"url":"http://localhost:4567/empty.html","method":"GET","headers":{"host":"localhost:4567","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8","accept-language":"ja,en-US;q=0.7,en;q=0.3","accept-encoding":"gzip, deflate, br","connection":"keep-alive"},"hasPostData":false,"isLinkPreload":false},"timestamp":1652141600.666,"type":"Document","frameId":"46"},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +6ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Network.requestWillBeSent\",\"params\":{\"requestId\":\"32678258671632\",\"loaderId\":\"32678258671632\",\"documentURL\":\"http://localhost:4567/empty.html\",\"request\":{\"url\":\"http://localhost:4567/empty.html\",\"method\":\"GET\",\"headers\":{\"host\":\"localhost:4567\",\"user-agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0\",\"accept\":\"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\",\"accept-language\":\"ja,en-US;q=0.7,en;q=0.3\",\"accept-encoding\":\"gzip, deflate, br\",\"connection\":\"keep-alive\"},\"hasPostData\":false,\"isLinkPreload\":false},\"timestamp\":1652141600.666,\"type\":\"Document\",\"frameId\":\"46\"}}"}} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Network.responseReceived","params":{"requestId":"32678258671632","loaderId":"32678258671632","timestamp":1652141600.668,"type":"Document","response":{"url":"http://localhost:4567/empty.html","status":404,"statusText":"File not found","headers":{"server":"SimpleHTTP/0.6 Python/3.9.10","date":"Tue, 10 May 2022 00:13:20 GMT","connection":"close","content-type":"text/html;charset=utf-8","content-length":"469"},"mimeType":"text/html","requestHeaders":{"host":"localhost:4567","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8","accept-language":"ja,en-US;q=0.7,en;q=0.3","accept-encoding":"gzip, deflate, br","connection":"keep-alive","upgrade-insecure-requests":"1","sec-fetch-dest":"document","sec-fetch-mode":"navigate","sec-fetch-site":"cross-site"},"remoteIPAddress":"127.0.0.1","remotePort":4567,"fromDiskCache":false,"protocol":"http/1.0","securityDetails":null,"securityState":"unknown"},"frameId":"46"},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Network.responseReceived\",\"params\":{\"requestId\":\"32678258671632\",\"loaderId\":\"32678258671632\",\"timestamp\":1652141600.668,\"type\":\"Document\",\"response\":{\"url\":\"http://localhost:4567/empty.html\",\"status\":404,\"statusText\":\"File not found\",\"headers\":{\"server\":\"SimpleHTTP/0.6 Python/3.9.10\",\"date\":\"Tue, 10 May 2022 00:13:20 GMT\",\"connection\":\"close\",\"content-type\":\"text/html;charset=utf-8\",\"content-length\":\"469\"},\"mimeType\":\"text/html\",\"requestHeaders\":{\"host\":\"localhost:4567\",\"user-agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0\",\"accept\":\"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\",\"accept-language\":\"ja,en-US;q=0.7,en;q=0.3\",\"accept-encoding\":\"gzip, deflate, br\",\"connection\":\"keep-alive\",\"upgrade-insecure-requests\":\"1\",\"sec-fetch-dest\":\"document\",\"sec-fetch-mode\":\"navigate\",\"sec-fetch-site\":\"cross-site\"},\"remoteIPAddress\":\"127.0.0.1\",\"remotePort\":4567,\"fromDiskCache\":false,\"protocol\":\"http/1.0\",\"securityDetails\":null,\"securityState\":\"unknown\"},\"frameId\":\"46\"}}"}} +1ms
  puppeteer:protocol:RECV ◀ {"id":16,"result":{"frameId":"46","loaderId":"32678258671632"},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +2ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"id\":16,\"result\":{\"frameId\":\"46\",\"loaderId\":\"32678258671632\"}}"}} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Runtime.executionContextDestroyed","params":{"executionContextId":1},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Runtime.executionContextDestroyed\",\"params\":{\"executionContextId\":1}}"}} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Runtime.executionContextDestroyed","params":{"executionContextId":2},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Runtime.executionContextDestroyed\",\"params\":{\"executionContextId\":2}}"}} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Runtime.executionContextsCleared","params":{},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Runtime.executionContextsCleared\",\"params\":{}}"}} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Page.frameStartedLoading","params":{"frameId":"46"},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Page.frameStartedLoading\",\"params\":{\"frameId\":\"46\"}}"}} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Page.lifecycleEvent","params":{"frameId":"46","loaderId":"32678258671632","name":"init","timestamp":1652141600.672},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Page.lifecycleEvent\",\"params\":{\"frameId\":\"46\",\"loaderId\":\"32678258671632\",\"name\":\"init\",\"timestamp\":1652141600.672}}"}} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Page.frameNavigated","params":{"frame":{"id":"46","loaderId":"32678258671632","url":"http://localhost:4567/empty.html","securityOrigin":null,"mimeType":null}},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +14ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Page.frameNavigated\",\"params\":{\"frame\":{\"id\":\"46\",\"loaderId\":\"32678258671632\",\"url\":\"http://localhost:4567/empty.html\",\"securityOrigin\":null,\"mimeType\":null}}}"}} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Runtime.executionContextCreated","params":{"context":{"id":3,"origin":"http://localhost:4567","name":"","auxData":{"isDefault":true,"frameId":"46","type":"default"}}},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"id\":3,\"origin\":\"http://localhost:4567\",\"name\":\"\",\"auxData\":{\"isDefault\":true,\"frameId\":\"46\",\"type\":\"default\"}}}}"}} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Runtime.executionContextCreated","params":{"context":{"id":4,"origin":"http://localhost:4567","name":"__puppeteer_utility_world__","auxData":{"isDefault":false,"frameId":"46","type":"isolated"}}},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Runtime.executionContextCreated\",\"params\":{\"context\":{\"id\":4,\"origin\":\"http://localhost:4567\",\"name\":\"__puppeteer_utility_world__\",\"auxData\":{\"isDefault\":false,\"frameId\":\"46\",\"type\":\"isolated\"}}}}"}} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Page.domContentEventFired","params":{"timestamp":1652141600.68},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Page.domContentEventFired\",\"params\":{\"timestamp\":1652141600.68}}"}} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Page.lifecycleEvent","params":{"frameId":"46","loaderId":"32678258671632","name":"DOMContentLoaded","timestamp":1652141600.68},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Page.lifecycleEvent\",\"params\":{\"frameId\":\"46\",\"loaderId\":\"32678258671632\",\"name\":\"DOMContentLoaded\",\"timestamp\":1652141600.68}}"}} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Page.loadEventFired","params":{"timestamp":1652141600.686},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Page.loadEventFired\",\"params\":{\"timestamp\":1652141600.686}}"}} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Page.lifecycleEvent","params":{"frameId":"46","loaderId":"32678258671632","name":"load","timestamp":1652141600.686},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Page.lifecycleEvent\",\"params\":{\"frameId\":\"46\",\"loaderId\":\"32678258671632\",\"name\":\"load\",\"timestamp\":1652141600.686}}"}} +0ms
  puppeteer:protocol:SEND ► {"method":"Browser.close","id":17} +32ms
  puppeteer:protocol:RECV ◀ {"method":"Page.navigatedWithinDocument","params":{"frameId":"46","url":"http://localhost:4567/empty.html"},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +1ms
  puppeteer:protocol:RECV ◀ {"method":"Target.receivedMessageFromTarget","params":{"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376","message":"{\"method\":\"Page.navigatedWithinDocument\",\"params\":{\"frameId\":\"46\",\"url\":\"http://localhost:4567/empty.html\"}}"}} +0ms
  puppeteer:protocol:RECV ◀ {"method":"Page.frameStoppedLoading","params":{"frameId":"46"},"sessionId":"a1ef8150-275d-454c-9eae-443fa8093376"} +1ms
stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

There is another issue with Firefox, CDP HTTP endpoints get initialized after the CDP port is ready, leading to failing first requests.

See: https://github.com/opal/opal/blob/cf89fd00103d2146751833e29fda9360cf6bb3f1/lib/opal/cli_runners/firefox.rb#L157