Move BiDi creation to RemoteWebDriver. Allow enabling BiDi in Safari options.#17753
Move BiDi creation to RemoteWebDriver. Allow enabling BiDi in Safari options.#17753pujagani wants to merge 9 commits into
Conversation
PR Summary by QodoCentralize BiDi initialization in RemoteWebDriver; add SafariOptions enableBiDi
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Code Review by Qodo
Context used✅ Tickets:
🎫 Instance ChroneDriver Error: ConnectFailure 🎫 2.48 doesn't trigger javascript in link's href on click()✅ Compliance rules (platform):
18 rules 1.
|
|
Code review by qodo was updated up to the latest commit 5627182 |
|
Code review by qodo was updated up to the latest commit 10347f6 |
|
Code review by qodo was updated up to the latest commit 26bb8e6 |
|
Code review by qodo was updated up to the latest commit ebae01d |
|
Code review by qodo was updated up to the latest commit 0a20547 |
|
Code review by qodo was updated up to the latest commit 69d6161 |
🔗 Related Issues
💥 What does this PR do?
It moves BiDi creation to the parent class RemoteWebDriver and removes BiDi creation from child classes like FirefoxDriver and ChromiumDriver. Also, add a method to enable BiDi for Safari.
🔧 Implementation Notes
This is the pattern that Java follows and will the aim that Selenium 5, we have BiDi commands as first class citizen on the driver class, this is aligned with that goal. Also, Augmenter logic is no longer required for end-users who want to use BiDi with Grid using the RemoteWebDriver.
RemoteWebDriver now creates and owns the BiDi connection directly in startSession(), so BiDiProvider no longer needs to inject HasBiDi via the Augmenter.
A related test using the BiDiProvider to test Grid config is now removed. Rationale: connectionLimitIsRespected relied on BiDiProvider to manually create multiple raw BiDi connections to a single session. RemoteWebDriver now owns exactly one BiDi connection per session internally, making that multi-connection scenario unreachable through the public API.
🤖 AI assistance
💡 Additional Considerations
Pending, enabling tests for Safari BiDi.
🔄 Types of changes