Skip to content

[🚀 Feature]: [dotnet] [bidi] Finalize public API to prevent further breaking changes #16095

@nvborisenko

Description

@nvborisenko

Description

Let's see how confident we are about BiDi API. In general I like the applied approach, but with some concerns.

  • driver.AsBiDiAsync() extension method should be finally live in AnyDriver class. Thus AnyDriver object is an owner of the BiDi instance, and dispose BiDi as soon as owner is disposed. Not sure, but I think IWebDriver interface is a great candidate to have this new AsBiDiAsync() method.
    It is important. Finally we will have straightforward dependency: Selenium.Webdriver -> Selenium.WebDriver.BiDi.
  • Really expose all hidden methods from users, such as AddIntercept(). So just make it public instead of internal, that's it. [🚀 Feature]: [dotnet] [bidi] Expose BiDi to be truly public low-level API #15612
  • Revisit InterceptRequestAsync() method (and neighbors: response, auth). This method(s) provides more convenient API to intercept network. Literally saying it should be extensions built on top of already publicly available methods.
  • EmptyResult should be valid return type for all methods instead of void. [🚀 Feature]: [dotnet] [bidi] Introduce EmptyResult as a type #15562
  • Anything else?..

Have you considered any alternatives or workarounds?

This issue is for tracking possible big changes in the approach. As soon as we resolve all of them, then we are confident with the approach and can move further (like documenting and fine tuning).

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-needs-triagingA Selenium member will evaluate this soon!I-enhancementSomething could be better

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions