-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(ext/node): do not apply socket-init-workaround to ipc socket #27779
Conversation
import { chromium } from "npm:playwright"; | ||
await chromium.launch(); | ||
console.log("chromium launched"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this actually work on CI?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I suppose so. The first step in this test run -A npm:playwright install chromium
should be downloading the chromium for the corresponding platform.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it's not cached already, it's worth looking into caching the chromium artifact.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added browser binary cache at key playwright-${{ runner.os }}-${{ runner.arch }}
Looks it's been saved successfully
![Screenshot 2025-01-27 at 17 25 25](https://private-user-images.githubusercontent.com/613956/406844668-7024e782-80ab-4967-b9f4-b4c326aa6d1e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNzYzMzMsIm5iZiI6MTczOTE3NjAzMywicGF0aCI6Ii82MTM5NTYvNDA2ODQ0NjY4LTcwMjRlNzgyLTgwYWItNDk2Ny1iOWY0LWI0YzMyNmFhNmQxZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQwODI3MTNaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01NDQ1ZWUzY2QyYjMzODgxODg0ZmM0Y2FlNDNjNzEwNjNmMDM2NGQ0YTEzMWY2ZjE5ODgzN2JkYTM4MjFkY2NlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.Wz9Geia1y9jztcILrML0f55cnbY03eoum91djzmz8PQ)
https://github.com/denoland/deno/actions/runs/12984044432/job/36206262673
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for confirming
6c67bbb
to
2ef49be
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Do you know when this will be part of an official release? Thank you! |
In 2.2 next week. You can upgrade to canary in the meantime ( |
Amazing! Thanks! |
) This PR resolves 2 issues of Socket class of node compat (both are related to playwright) Currently `browser.launch()` of playwright is not working. `browser.launch` opens PipeTransport (which is based on Pipe/IPC socket) with the browser process. But that pipe doesn't start reading the data because of the workaround #27662 (which pauses the socket at the beginning if it's from playwright-core). This PR fixes this issue by checking whether the given handle is `ipc` handle or not. Another issue is that sock-init-workaround for TLS connection stopped working at #27707 because of the changes of TLS socket initialization steps. This change fixes the issue by correctly returning the function in workaround path. The added case `specs::npm::playwright_compat` checks both fixes with actual playwright and playwright-core packages. `browser.launch` issues closes #16899 closes #27623 `https.request` issue closes #27658
This PR resolves 2 issues of Socket class of node compat (both are related to playwright)
Currently
browser.launch()
of playwright is not working.browser.launch
opens PipeTransport (which is based on Pipe/IPC socket) with the browser process. But that pipe doesn't start reading the data because of the workaround #27662 (which pauses the socket at the beginning if it's from playwright-core). This PR fixes this issue by checking whether the given handle isipc
handle or not.Another issue is that sock-init-workaround for TLS connection stopped working at #27707 because of the changes of TLS socket initialization steps. This change fixes the issue by correctly returning the function in workaround path.
The added case
specs::npm::playwright_compat
checks both fixes with actual playwright and playwright-core packages.browser.launch
issuescloses #16899
closes #27623
https.request
issuecloses #27658