Skip to content

[dotnet] [bidi] Expose Input module in root BiDi class#16940

Merged
nvborisenko merged 1 commit intoSeleniumHQ:trunkfrom
nvborisenko:bidi-input-exposure
Jan 18, 2026
Merged

[dotnet] [bidi] Expose Input module in root BiDi class#16940
nvborisenko merged 1 commit intoSeleniumHQ:trunkfrom
nvborisenko:bidi-input-exposure

Conversation

@nvborisenko
Copy link
Member

@nvborisenko nvborisenko commented Jan 18, 2026

User description

💥 What does this PR do?

Make Input module publicly available. Continue to expose everything what the specification defines.

🔄 Types of changes

  • Cleanup (formatting, renaming)
  • New feature (non-breaking change which adds functionality and tests!)

PR Type

Enhancement


Description

  • Expose Input module as public property in root BiDi class

  • Rename InputModule property to Input for consistency

  • Update BrowsingContext to reference public Input property


Diagram Walkthrough

flowchart LR
  BiDi["BiDi class"]
  InputModule["InputModule property"]
  PublicInput["Public Input property"]
  BrowsingContext["BrowsingContext class"]
  BiDi -- "change internal to public" --> PublicInput
  PublicInput -- "referenced by" --> BrowsingContext
Loading

File Walkthrough

Relevant files
Enhancement
BiDi.cs
Make Input module publicly accessible                                       

dotnet/src/webdriver/BiDi/BiDi.cs

  • Changed InputModule property from internal to public
  • Renamed property from InputModule to Input for API consistency
  • Aligns with other public module properties like Browser, Network,
    Script
+1/-1     
BrowsingContext.cs
Update Input module reference                                                       

dotnet/src/webdriver/BiDi/BrowsingContext/BrowsingContext.cs

  • Updated reference from BiDi.InputModule to BiDi.Input
  • Maintains consistency with the renamed public property
+1/-1     

@qodo-code-review
Copy link
Contributor

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

@qodo-code-review
Copy link
Contributor

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
General
Add obsolete alias for compatibility

Reintroduce the old InputModule property as an [Obsolete] alias to the new Input
property to maintain backward compatibility.

dotnet/src/webdriver/BiDi/BiDi.cs [51]

 public Input.InputModule Input => AsModule<Input.InputModule>();
 
+[Obsolete("Use the new Input property instead.")]
+internal Input.InputModule InputModule => Input;
+
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: This is a valuable suggestion for API evolution, as it maintains backward compatibility for internal consumers by re-introducing the old property accessor marked as [Obsolete], preventing immediate breaking changes.

Medium
  • More

@nvborisenko nvborisenko merged commit 47dbd0d into SeleniumHQ:trunk Jan 18, 2026
15 checks passed
@nvborisenko nvborisenko deleted the bidi-input-exposure branch January 18, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants