Feature implementation from commits 1efb74d..e1cb6a5#2
Conversation
[skip ci]
…HQ#15929) Update pinned browser versions Co-authored-by: Selenium CI Bot <selenium-ci@users.noreply.github.com>
* add deprecation warn for ftp proxy type * [proxy] Replace deprecation warning for FTP proxy support with logger method --------- Co-authored-by: Augustin Gottlieb <33221555+aguspe@users.noreply.github.com>
- Remove an empty space in the constructor. Co-authored-by: Diego Molina <diemol@users.noreply.github.com> [skip ci]
SeleniumHQ#15910) * [FEAT] Add macOS-specific keys (OPTION, FN) to Keys enum for improved platform support * [FEAT] These additions (RIGHT_SHIFT, RIGHT_CONTROL, RIGHT_ALT, RIGHT_COMMAND) follow conventions already in use by ChromeDriver and allow for more accurate key simulations. While not currently in the W3C WebDriver specification, they represent a practical standard used in the field. * [FEAT] Add macOS-specific and ChromeDriver-aligned extended keys - Added RIGHT_SHIFT, RIGHT_CONTROL, RIGHT_ALT, and RIGHT_COMMAND using Unicode PUA codes observed in ChromeDriver. - Included symbolic macOS keys OPTION and FN, marked with TODO comments for future validation against W3C WebDriver spec. - Updated class-level Javadoc to clarify the role of PUA mappings and their interoperability considerations. These additions improve platform representation and lay the groundwork for consistent macOS key handling. * Format script --------- Co-authored-by: Corey Goldberg <1113081+cgoldberg@users.noreply.github.com> Co-authored-by: Diego Molina <diemol@users.noreply.github.com> Co-authored-by: Diego Molina <diemol@gmail.com>
Re-word section of `CONTRIBUTING.md` to clarify development steps.
* [java][BiDi] implement web extensions * cleanup * fix spotbug --------- Co-authored-by: Corey Goldberg <1113081+cgoldberg@users.noreply.github.com> Co-authored-by: Diego Molina <diemol@users.noreply.github.com>
…eleniumHQ#15885) Made ``JsonToWebElementConverter`` methods protected so that the class can be properly extended Co-authored-by: Diego Molina <diemol@users.noreply.github.com>
…cstring updates) (SeleniumHQ#15927) * [py] Adding Note to enable_webextensions() regarding CDP (plus some docstring updates) * format.sh * update error message * Update py/selenium/webdriver/chromium/options.py Per @navin772 suggestions Co-authored-by: Navin Chandra <navinchandra772@gmail.com> --------- Co-authored-by: Navin Chandra <navinchandra772@gmail.com> Co-authored-by: Diego Molina <diemol@users.noreply.github.com>
* [js] Update dependency ws to ^8.18.2 * Repin dependencies --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Selenium CI Bot <selenium-ci@users.noreply.github.com>
* [js] Update dependency sinon to ^19.0.5 * Repin dependencies --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Selenium CI Bot <selenium-ci@users.noreply.github.com>
* [js] Update dependency multer to v1.4.5-lts.2 * Repin dependencies --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Selenium CI Bot <selenium-ci@users.noreply.github.com>
* [grid] Session can be deleted via Grid UI * Add notification on the flag to disable session deletion * Use Node config to disable delete session on UI * Add unit test Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com> * Run format * Disable by default * Run format --------- Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com> Co-authored-by: Diego Molina <diemol@users.noreply.github.com>
| internal sealed record RemoveUserContextCommandParameters(UserContext UserContext) : CommandParameters; | ||
|
|
||
| public record RemoveUserContextOptions : CommandOptions; | ||
| public sealed class RemoveUserContextOptions : CommandOptions; |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking API change: record to class conversion.
Changing RemoveUserContextOptions from a record to a class removes value equality and immutability, breaking existing code that depends on record semantics.
Current Code (Diff):
- public sealed class RemoveUserContextOptions : CommandOptions;
+ public sealed record RemoveUserContextOptions : CommandOptions;📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public sealed class RemoveUserContextOptions : CommandOptions; | |
| public sealed record RemoveUserContextOptions : CommandOptions; |
| internal sealed record HandleUserPromptCommandParameters(BrowsingContext Context, bool? Accept, string? UserText) : CommandParameters; | ||
|
|
||
| public record HandleUserPromptOptions : CommandOptions | ||
| public sealed class HandleUserPromptOptions : CommandOptions |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking API Change: Record to Class Conversion.
Changing HandleUserPromptOptions from a record to a class breaks compatibility with any code relying on record-specific features like value equality or deconstruction.
Current Code (Diff):
- public sealed class HandleUserPromptOptions : CommandOptions
+ public sealed record HandleUserPromptOptions : CommandOptions📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public sealed class HandleUserPromptOptions : CommandOptions | |
| public sealed record HandleUserPromptOptions : CommandOptions |
| internal sealed record SetViewportCommandParameters(BrowsingContext Context, Viewport? Viewport, double? DevicePixelRatio) : CommandParameters; | ||
|
|
||
| public record SetViewportOptions : CommandOptions | ||
| public sealed class SetViewportOptions : CommandOptions |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking change: record to sealed class conversion.
Changing SetViewportOptions from a record to a sealed class removes value equality semantics and other record features that dependent code may rely on.
Current Code (Diff):
- public sealed class SetViewportOptions : CommandOptions
+ public sealed record SetViewportOptions : CommandOptions📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public sealed class SetViewportOptions : CommandOptions | |
| public sealed record SetViewportOptions : CommandOptions |
| namespace OpenQA.Selenium.BiDi.Communication; | ||
|
|
||
| public record CommandOptions | ||
| public abstract class CommandOptions |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking change: Record to abstract class conversion.
Changing CommandOptions from a record to an abstract class breaks instantiation and equality behavior, potentially causing runtime exceptions in dependent code.
Current Code (Diff):
- public abstract class CommandOptions
+ public record CommandOptions📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public abstract class CommandOptions | |
| public record CommandOptions |
| internal sealed record ContinueRequestCommandParameters(Request Request, BytesValue? Body, IEnumerable<CookieHeader>? Cookies, IEnumerable<Header>? Headers, string? Method, string? Url) : CommandParameters; | ||
|
|
||
| public record ContinueRequestOptions : CommandOptions | ||
| public sealed class ContinueRequestOptions : CommandOptions |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking API Change: Record to Class Conversion.
Changing ContinueRequestOptions from record to class removes value equality, immutability, and with-expressions which may break dependent code.
Current Code (Diff):
- public sealed class ContinueRequestOptions : CommandOptions
+ public sealed record ContinueRequestOptions : CommandOptions📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public sealed class ContinueRequestOptions : CommandOptions | |
| public sealed record ContinueRequestOptions : CommandOptions |
| } | ||
|
|
||
| public record InterceptRequestOptions : AddInterceptOptions; | ||
| public sealed class InterceptRequestOptions : AddInterceptOptions; |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking change: Record to class conversion.
Changing InterceptRequestOptions from record to sealed class breaks value equality semantics which could cause runtime errors in code comparing these objects
Current Code (Diff):
- public sealed class InterceptRequestOptions : AddInterceptOptions;
+ public sealed record InterceptRequestOptions : AddInterceptOptions;📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public sealed class InterceptRequestOptions : AddInterceptOptions; | |
| public sealed record InterceptRequestOptions : AddInterceptOptions; |
| public sealed class InterceptRequestOptions : AddInterceptOptions; | ||
|
|
||
| public record InterceptResponseOptions : AddInterceptOptions; | ||
| public sealed class InterceptResponseOptions : AddInterceptOptions; |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking change: Record to class conversion.
Changing InterceptResponseOptions from record to sealed class breaks value equality semantics which could cause runtime errors in code comparing these objects
Current Code (Diff):
- public sealed class InterceptResponseOptions : AddInterceptOptions;
+ public sealed record InterceptResponseOptions : AddInterceptOptions;📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public sealed class InterceptResponseOptions : AddInterceptOptions; | |
| public sealed record InterceptResponseOptions : AddInterceptOptions; |
| public sealed class InterceptResponseOptions : AddInterceptOptions; | ||
|
|
||
| public record InterceptAuthOptions : AddInterceptOptions; | ||
| public sealed class InterceptAuthOptions : AddInterceptOptions; |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking change: Record to class conversion.
Changing InterceptAuthOptions from record to sealed class breaks value equality semantics which could cause runtime errors in code comparing these objects
Current Code (Diff):
- public sealed class InterceptAuthOptions : AddInterceptOptions;
+ public sealed record InterceptAuthOptions : AddInterceptOptions;📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public sealed class InterceptAuthOptions : AddInterceptOptions; | |
| public sealed record InterceptAuthOptions : AddInterceptOptions; |
| internal sealed record RemoveInterceptCommandParameters(Intercept Intercept) : CommandParameters; | ||
|
|
||
| public record RemoveInterceptOptions : CommandOptions; | ||
| public class RemoveInterceptOptions : CommandOptions; |
There was a problem hiding this comment.
🐛 Correctness Issue
Breaking API Change: Record to Class Conversion.
Converting RemoveInterceptOptions from a record to a class removes value equality, immutability, and other record features that existing code may depend on.
Current Code (Diff):
- public class RemoveInterceptOptions : CommandOptions;
+ public record RemoveInterceptOptions : CommandOptions;📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public class RemoveInterceptOptions : CommandOptions; | |
| public record RemoveInterceptOptions : CommandOptions; |
|
|
||
| public class UninstallExtensionParameters { | ||
|
|
||
| public final Map<String, Object> extension; |
There was a problem hiding this comment.
🐛 Correctness Issue
Exposed Mutable State.
The public final Map field allows external modification of its contents, which could lead to unexpected state changes and potential runtime exceptions.
Current Code (Diff):
- public final Map<String, Object> extension;
+ private final Map<String, Object> extension;📝 Committable suggestion
‼️ IMPORTANT
Trust, but verify! 🕵️ Please review this suggestion with the care of a code archaeologist - check that it perfectly replaces the highlighted code, preserves all lines, maintains proper indentation, and won't break anything in production. Your future self will thank you! 🚀
| public final Map<String, Object> extension; | |
| private final Map<String, Object> extension; |
This PR contains changes from a range of commits from the original repository.
Commit Range:
1efb74d..e1cb6a5Files Changed: 140 (128 programming files)
Programming Ratio: 91.4%
Commits included:
JsonToWebElementConvertermethods/fields protected ([java] MadeJsonToWebElementConvertermethods/fields protected SeleniumHQ/selenium#15885)... and 5 more commits