Skip to content
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

Add support for Firefox #59

Open
JodanJodan opened this issue May 13, 2023 · 13 comments
Open

Add support for Firefox #59

JodanJodan opened this issue May 13, 2023 · 13 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@JodanJodan
Copy link

The latest curl_impersonate supports 6 Firefox versions, could these be added?

@codeman5000
Copy link

codeman5000 commented Sep 12, 2023

Hi, this would also interest me. is there any way we can modify code to do this ourself?

@perklet
Copy link
Collaborator

perklet commented Sep 13, 2023

Take a look at the makefile, it's fairly simple. Basically, it's just downloading the compiled .so files and then using cibuildwheel to build binary wheels.

@codeman5000
Copy link

codeman5000 commented Sep 13, 2023 via email

@codeman5000
Copy link

codeman5000 commented Sep 14, 2023 via email

@gunir
Copy link

gunir commented Oct 6, 2023

+1

I also think Firefox's TLS Fingerprint should also be an option, it's useful to impersonate Firefox in case we use curl_cffi as proxy to surf the web with Firefox too, can't just impersonate Chrome because it's easy to detect.

@lxntagram
Copy link

Hello, I'm trying to add firefox. How can I get browser infos like ciphers, and curves?

@perklet
Copy link
Collaborator

perklet commented Nov 14, 2023 via email

@bjia56
Copy link
Contributor

bjia56 commented Dec 17, 2023

Would it be easier to have a sibling package, e.g. curl_cffi_ff, which provides the Firefox version of curl-impersonate? I would think that avoids the duplicate symbols issue

@perklet
Copy link
Collaborator

perklet commented Dec 17, 2023 via email

@gunir
Copy link

gunir commented Dec 17, 2023

I was thinking that is it possible to use boringssl to emulate NSS? Then it

I think it's possible, as BoringSSL is very very close to NSS, unlike OpenSSL it's impossible because OpenSSL doesn't allow to hide some ciphers and a lot of extensions.

@Kwsswart Kwsswart mentioned this issue Dec 21, 2023
2 tasks
@bjia56
Copy link
Contributor

bjia56 commented Dec 26, 2023

It turns out that ffi is happy build multiple .so wrappers within the curl_cffi package, so it's possible to build curl_cffi._wrapper_chrome and curl_cffi._wrapper_ff at the same time.
image
Much of the library will need to be tweaked slightly to generalize the assumption that there's only one wrapper. Additionally, Firefox does not support the certificate store:
image

@perklet
Copy link
Collaborator

perklet commented Dec 26, 2023

Cool, do you mind submitting a PR?

@bjia56
Copy link
Contributor

bjia56 commented Dec 26, 2023

Yeah I'll probably need a bit of time to clean things up but I'll open a PR soon

@perklet perklet modified the milestones: v0.7, v0.8 Jul 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants