Skip to content

Conversation

@selenium-ci
Copy link
Member

@selenium-ci selenium-ci commented Oct 24, 2025

User description

Warning: Manually update the changelogs before merging

This PR:

  • Updates Pinned browser version to coincide with new CDP release
  • Adds support for new CDP version and removes old CDP version
  • Selenium Manager references the new Selenium Manager release
  • Updates Maven Dependencies
  • Adds new authors to authors file
  • Updates all versions for all bindings
  • Generates rough change logs for each bindings (please tidy them up before merging this)
    • Not all commits need to be in the change log — users do not need to see anything about building or testing Selenium
    • Remove references to updating versions including nightly
    • The code now outputs the complete body of the commit message; make sure the changelog message is complete and correct

PR Type

Enhancement


Description

  • Update Chrome DevTools Protocol support from v139 to v142

  • Bump all binding versions to 4.38.0 for release

  • Update Selenium Manager to latest release version

  • Update Maven dependencies including spotbugs and lettuce-core

  • Add new contributor to AUTHORS file

  • Generate changelogs for all language bindings


Diagram Walkthrough

flowchart LR
  A["CDP v139"] -->|"Update to"| B["CDP v142"]
  C["Version 4.37.x"] -->|"Bump to"| D["Version 4.38.0"]
  E["Selenium Manager"] -->|"Update"| F["Latest Release"]
  B --> G["Java/DotNet/Python/Ruby/JS"]
  D --> G
  F --> G
  G -->|"Generate"| H["Changelogs"]
Loading

File Walkthrough

Relevant files
Enhancement
22 files
v142Target.java
Update package and class names from v139 to v142                 
+12/-12 
v142Network.java
Update package and class names from v139 to v142                 
+10/-10 
v142Events.java
Update package and class names from v139 to v142                 
+9/-9     
v142Domains.java
Update package and class names from v139 to v142                 
+13/-13 
v142Javascript.java
Update package and class names from v139 to v142                 
+7/-7     
v142Log.java
Update package and class names from v139 to v142                 
+5/-5     
v142CdpInfo.java
Update CDP version number from 139 to 142                               
+4/-4     
V142Domains.cs
Update namespace and class names from V139 to V142             
+11/-11 
V142Network.cs
Update namespace and class names from V139 to V142             
+12/-12 
V142JavaScript.cs
Update namespace and class names from V139 to V142             
+8/-8     
V142Target.cs
Update namespace and class names from V139 to V142             
+7/-7     
V142Log.cs
Update namespace and class names from V139 to V142             
+7/-7     
DevToolsDomains.cs
Update supported DevTools version from 139 to 142               
+2/-2     
DevToolsTargetTest.cs
Update CDP version reference from V141 to V142                     
+2/-2     
DevToolsTabsTest.cs
Update CDP version reference from V141 to V142                     
+1/-1     
DevToolsPerformanceTest.cs
Update CDP version reference from V141 to V142                     
+1/-1     
DevToolsProfilerTest.cs
Update CDP version reference from V141 to V142                     
+1/-1     
DevToolsConsoleTest.cs
Update CDP version reference from V141 to V142                     
+1/-1     
DevToolsLogTest.cs
Update CDP version reference from V141 to V142                     
+1/-1     
DevToolsNetworkTest.cs
Update CDP version reference from V141 to V142                     
+1/-1     
DevToolsSecurityTest.cs
Update CDP version reference from V141 to V142                     
+1/-1     
js_protocol.pdl
Add new CDP v142 protocol definitions and fields                 
+8/-0     
Configuration changes
17 files
selenium_manager.bzl
Update Selenium Manager release artifacts and checksums   
+6/-6     
__init__.py
Update Python version to 4.38.0 release                                   
+1/-1     
__init__.py
Update Python package version to 4.38.0                                   
+1/-1     
selenium-dotnet-version.bzl
Update .NET version and supported DevTools versions           
+2/-2     
versions.bzl
Update supported CDP versions to include v142                       
+1/-1     
version.bzl
Update Java version to 4.38.0 release                                       
+1/-1     
version.rb
Update Ruby version to 4.38.0 release                                       
+1/-1     
version.rb
Update Ruby DevTools version to 0.142.0                                   
+1/-1     
Rakefile
Update release target from v139 to v142                                   
+1/-1     
BUILD.bazel
Update Python version and supported CDP versions                 
+2/-2     
BUILD.bazel
Update JavaScript version and supported CDP versions         
+2/-2     
BUILD.bazel
Update CDP version variable from v139 to v142                       
+1/-1     
Cargo.toml
Update Rust Selenium Manager version to 0.4.38                     
+1/-1     
pyproject.toml
Update Python project version to 4.38.0                                   
+1/-1     
package.json
Update JavaScript package version to 4.38.0                           
+1/-1     
BUILD.bazel
Update Rust binary version to 0.4.38                                         
+1/-1     
BUILD.bazel
Update supported CDP versions to include v142                       
+1/-1     
Documentation
8 files
conf.py
Update documentation version to 4.38.0                                     
+1/-1     
CHANGELOG
Add v4.38.0 changelog entries for Java                                     
+14/-0   
bug-report.yml
Update latest version reference to 4.38                                   
+1/-1     
CHANGES
Add v4.38.0 changelog entries for Ruby                                     
+7/-0     
CHANGES
Add v4.38.0 changelog entries for Python                                 
+5/-0     
CHANGELOG
Add v4.38.0 changelog entries for .NET                                     
+5/-0     
CHANGES.md
Add v4.38.0 changelog entries for JavaScript                         
+4/-0     
CHANGELOG.md
Add v0.4.38 changelog entry for Rust                                         
+4/-0     
Dependencies
2 files
maven_install.json
Update Maven dependencies and artifact hashes                       
+10/-10 
MODULE.bazel
Update Maven dependency versions for build                             
+2/-2     
Miscellaneous
1 files
AUTHORS
Add new contributor Ethan to authors list                               
+1/-0     
Additional files
2 files
BUILD.bazel [link]   
browser_protocol.pdl +9293/-8695

@selenium-ci selenium-ci added C-build C-py Python Bindings C-rb Ruby Bindings C-dotnet .NET Bindings C-java Java Bindings C-nodejs JavaScript Bindings B-build Includes scripting, bazel and CI integrations B-devtools Includes everything BiDi or Chrome DevTools related C-rust Rust code is mostly Selenium Manager B-manager Selenium Manager labels Oct 24, 2025
@titusfortner titusfortner force-pushed the release-preparation-4.38.0 branch from 76b8cd1 to 33f749c Compare October 24, 2025 13:19
@titusfortner titusfortner marked this pull request as ready for review October 24, 2025 23:55
@qodo-merge-pro
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 <!-- /create_ticket --create_ticket=true -->

</details></td></tr>
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
No custom compliance provided

Follow the guide to enable custom compliance check.

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

@titusfortner titusfortner merged commit 281a200 into trunk Oct 24, 2025
12 of 13 checks passed
@titusfortner titusfortner deleted the release-preparation-4.38.0 branch October 24, 2025 23:56
@qodo-merge-pro
Copy link
Contributor

PR Code Suggestions ✨

Explore these optional code suggestions:

CategorySuggestion                                                                                                                                    Impact
Possible issue
Validate file paths before processing

Validate that file paths provided to the launchFilesInApp command exist and are
accessible. Return an error if any file is not found to prevent silent failures.

common/devtools/chromium/v142/browser_protocol.pdl [9767-9786]

 # Opens one or more local files from an installed web app identified by its
 # manifestId. The web app needs to have file handlers registered to process
 # the files. The API returns one or more page Target.TargetIDs which can be
 # used to attach to via Target.attachToTarget or similar APIs.
 # If some files in the parameters cannot be handled by the web app, they will
 # be ignored. If none of the files can be handled, this API returns an error.
 # If no files are provided as the parameter, this API also returns an error.
+# The command will return an error if any of the specified file paths do not exist.
 #
 # According to the definition of the file handlers in the manifest file, one
 # Target.TargetID may represent a page handling one or more files. The order
 # of the returned Target.TargetIDs is not guaranteed.
-#
-# TODO(crbug.com/339454034): Check the existences of the input files.
 command launchFilesInApp
   parameters
     string manifestId
+    # Paths to local files to be opened.
     array of string files
   returns
     # IDs of the tab targets created as the result.
     array of Target.TargetID targetIds
  • Apply / Chat
Suggestion importance[1-10]: 7

__

Why: This is a valid suggestion that improves API robustness by proposing to validate file existence for the launchFilesInApp command, addressing a TODO comment added in the PR and preventing silent failures.

Medium
Handle device pixel ratio correctly

Add an optional dpr parameter to the highlightRect command. This allows the
backend to handle coordinate scaling, simplifying client logic and improving
robustness.

common/devtools/chromium/v142/browser_protocol.pdl [9523-9540]

 # Highlights given rectangle. Coordinates are absolute with respect to the main frame viewport.
-# Issue: the method does not handle device pixel ratio (DPR) correctly.
-# The coordinates currently have to be adjusted by the client
-# if DPR is not 1 (see crbug.com/437807128).
+# Issue: the method does not handle device pixel ratio (DPR) correctly
+# unless the `dpr` parameter is provided (see crbug.com/437807128).
 command highlightRect
   parameters
     # X coordinate
     integer x
     # Y coordinate
     integer y
     # Rectangle width
     integer width
     # Rectangle height
     integer height
     # The highlight fill color (default: transparent).
     optional DOM.RGBA color
     # The highlight outline color (default: transparent).
     optional DOM.RGBA outlineColor
+    # The device pixel ratio of the screen. If provided, coordinates will be scaled correctly.
+    optional number dpr
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why: The suggestion proposes a good API improvement by adding a dpr parameter to handle device pixel ratio scaling on the backend, which is more robust than the client-side workaround mentioned in the PR's new comment.

Low
Learned
best practice
Fix comment typo

Fix the typo in the comment to maintain accurate documentation and avoid
confusion.

common/devtools/chromium/v142/browser_protocol.pdl [118]

-# - from 'activeFullscreenElement' to 'uninteresting': reasons why this noode is hidden
+# - from 'activeFullscreenElement' to 'uninteresting': reasons why this node is hidden
  • Apply / Chat
Suggestion importance[1-10]: 6

__

Why:
Relevant best practice - Keep API and documentation accurate and consistent by fixing typos and ensuring comments precisely describe behavior.

Low
General
Populate the empty changelog section

Populate the empty changelog for the Rust component selenium-manager version
0.4.38. If there are no user-facing changes, explicitly state that.

rust/CHANGELOG.md [1-2]

 0.4.38
 ======
 
+* No user-facing changes.
+

[To ensure code accuracy, apply this suggestion manually]

Suggestion importance[1-10]: 5

__

Why: The suggestion correctly identifies an empty changelog section, and adding release notes, even if to state no changes, is good practice for user communication.

Low
  • More

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-build Includes scripting, bazel and CI integrations B-devtools Includes everything BiDi or Chrome DevTools related B-manager Selenium Manager C-build C-dotnet .NET Bindings C-java Java Bindings C-nodejs JavaScript Bindings C-py Python Bindings C-rb Ruby Bindings C-rust Rust code is mostly Selenium Manager Review effort 3/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants