-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
[🚀 Feature]: Remove CDP support for Firefox browser #11736
Comments
@pujagani, thank you for creating this issue. We will troubleshoot it as soon as we can. Info for maintainersTriage this issue by using labels.
If information is missing, add a helpful comment and then
If the issue is a question, add the
If the issue is valid but there is no time to troubleshoot it, consider adding the
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
add the applicable
After troubleshooting the issue, please add the Thank you! |
As the CDP is depricated in the firefox browser to be moving to BiDi protocol
@diemol based on your comment here — #12270 (review) I think we should close this issue. What do you think? |
Note that we are most likely going to remove our partial CDP support before WebDriver BiDi is completely implemented. It may even happen later this year. As such leaving support around in Selenium might break users. |
@whimboo do you have an approximate date for that to happen? So we can synchronize. |
There is no clear date yet given that we still have a lot of work to do, but not before the next ESR 128 release. So at earliest for version 129. |
We are in-par with our plan and the releases as mentioned above should hold. That means with Firefox 129 the CDP protocol will not be enabled by default anymore. For details see the following blog post: https://fxdx.dev/deprecating-cdp-support-in-firefox-embracing-the-future-with-webdriver-bidi/ |
Would be really nice if we could have the network/logging/script BiDi pieces implemented in Selenium before this happens |
Please note that this is not the complete removal. You would just have to set a preference for the default profile as in use for Firefox. Then CDP will be enabled. I assume that this could be implemented easily in necessary bindings? |
Maybe Selenium should toggle it on by default until we get bidi working? Depends on timing maybe |
That's probably a good idea. Do you or @pujagani know which APIs are still lacking WebDriver BiDi support and were implemented via CDP before? |
So at the Dev Summit a few weeks ago we agreed on what the High Level API should look like for BiDi. We haven't implemented it in any of the bindings yet. We have low level implementations of BiDi in some of the languages. I'm ok with not toggling CDP to enabled for Firefox once we have the High Level API implemented in the language. |
I think till we get to the point of implementing the High-Level APIs that were decided. We should probably toggle the CDP support on and keep. |
I see. So @juliandescottes is currently working on these pieces and we hope that |
Thank you for the update. That's great! |
@pujagani I assume that in that case one of you will take care of getting this preference set to the required value in one of the upcoming Selenium releases? Otherwise users, who are using CDP, will have to do it on their own when creating a new session. |
Sure. We can take care of it. Any documentation link that I can refer to regarding which preference needs to be set? |
Just check the Blog post that I referenced at #11736 (comment). Thanks! |
Sorry, I missed that. Thank you! |
@whimboo "Defaults to 3 (WebDriver BiDi and CDP)" - This is mentioned in https://firefox-source-docs.mozilla.org/remote/Prefs.html. Can we use that once CDP is deprecated? To ensure both protocols are active. |
Oh yes, you should definitely use |
Great! Thank you! |
Also, since it defaults to 3 (and that's what Selenium wants to use), do we need to explicitly set the preference? |
As mentioned on the blog post starting with Firefox 129 the preference will default to |
Okay, got it. Thank you so much! I need to fix some tests in the PRs and will then merge it. |
Hi @pujagani. It's been a while since we spoke the last time. Would you mind sharing if there are some updates in Selenium about moving away from CDP in Firefox? We are getting closer to the removal date, so I would like to know if there are blocking issues. Thanks. |
Hey! I can loop this back to the Selenium TLC and see if get the support removed as soon as possible. |
Typically we deprecate a feature for 2 versions and then remove it. Our plan is to add deprecation warnings and then remove the support. |
Thank you for the details. What does 2 versions mean in detail? I assume not major releases? What is your expected date of a release with the CDP support removed for Firefox? |
2 versions are not major versions, 2 minor versions are good too. We roughly do a release each month. Our November release will have the warning, which will be present in December's release. So by January's release we should be able to remove it. However, this is an ideal situation and we will try our best to stick to it. Considering December is the holiday season and our releases might get delayed. |
That sounds good. So I would suggest that we sync up mid of December again. If you see troubles don't hesitate to reach out to us. Thanks! |
I appreciate your help. Thank you so much! |
Feature and motivation
Firefox's implementation of ChromeDevTools protocol (CDP) is half-baked and not complete. This leads to errors when trying to use certain CDP APIs and tends to cause CI failures. Firefox is focused on implementing the W3C-compliant BiDi protocol. https://wpt.fyi/results/webdriver/tests/bidi?label=experimental&label=master&aligned&view=subtest is a good way to track the progress.
The BiDi protocol has the capability to provide the same real-world use cases described in https://www.selenium.dev/documentation/webdriver/bidirectional/bidi_api/ as CDP provides currently.
Selenium has started working towards implementing BiDi in different languages.
Since BiDi is Firefox's focus and Selenium's long-term focus (since all major browser vendors are working towards implementing the BiDi), transitioning to BiDi only for Firefox seems apt.
Usage example
The removal of CDP support for Firefox will follow Selenium's way of deprecating for at least 2 versions and then removing the support completely.
BiDi usage is documented at https://www.selenium.dev/documentation/webdriver/bidirectional/bidirectional_w3c/.
The text was updated successfully, but these errors were encountered: