You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add proper null and type validation for shadow root ID to prevent runtime errors
The shadowRootValue?.ToString()! expression assumes the value is non-null and can be converted to string. Add explicit null check and type validation to avoid potential runtime errors.
-shadowRoot = new ShadowRoot(parentDriver, shadowRootValue?.ToString()!);+if (shadowRootValue is string shadowRootId)+{+ shadowRoot = new ShadowRoot(parentDriver, shadowRootId);+}+else+{+ throw new ArgumentException("Shadow root value must be a non-null string");+}
Apply this suggestion
Suggestion importance[1-10]: 8
Why: The suggestion addresses a critical safety issue by adding proper type checking and null validation for the shadow root ID, which could prevent runtime errors and improve error handling in a core functionality.
8
General
Ensure dictionary values are non-nullable to prevent potential null reference exceptions
The Dictionary<string, object> parameters should be marked as non-nullable since null values are not handled and would cause runtime errors.
Why: While the suggestion offers a more concise and modern syntax using collection initialization, the actual impact on preventing null references is minimal since the existing code already uses non-null values.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
User description
Thanks for contributing to Selenium!
A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines.
Avoid large PRs, help reviewers by making them as simple and short as possible.
Description
Adds nullable reference type annotations to
ShadowRootand dependent types.Motivation and Context
Contributes to #14640
Types of changes
Checklist
PR Type
enhancement
Description
ShadowRootconstructor to prevent null reference issues.ShadowRootmethods to use pattern matching and nullable annotations, enhancing code readability and maintainability.WebDriverto use the newShadowRoot.TryCreatemethod, streamlining shadow root creation logic.Changes walkthrough 📝
ISearchContext.cs
Enable nullable reference types in ISearchContextdotnet/src/webdriver/ISearchContext.cs
IWrapsDriver.cs
Enable nullable reference types in IWrapsDriverdotnet/src/webdriver/IWrapsDriver.cs
IWebDriverObjectReference.cs
Enable nullable reference types in IWebDriverObjectReferencedotnet/src/webdriver/Internal/IWebDriverObjectReference.cs
ShadowRoot.cs
Add nullability annotations and refactor ShadowRoot classdotnet/src/webdriver/ShadowRoot.cs
WebDriver.cs
Refactor WebDriver to use ShadowRoot.TryCreatedotnet/src/webdriver/WebDriver.cs