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
• Removes deprecated Firefox profile extension installation APIs across five language bindings.
• Removes obsolete Java, Python, and Ruby profile certificate and legacy settings.
• Cleans related tests, build fixtures, signatures, and Ruby's direct REXML dependency.
Direct removal is appropriate because these public APIs were already deprecated and supported replacements exist at the driver or options level. Retaining compatibility shims or runtime-failing methods would prolong dead profile-management code and preserve unnecessary parsing and dependency surfaces.
• Removes the deprecated AddExtension API, extension registry, and profile-layout installation phase. Firefox profiles now serialize preferences and existing profile content without staging add-ons.
FirefoxProfile.javaRemove deprecated extension and legacy profile settings+0/-126
Remove deprecated extension and legacy profile settings
• Removes extension registration and installation from profile layout. Also removes obsolete no-focus native-event methods and profile-level certificate setters in favor of supported session options.
• Removes profile-based add-on installation and manifest parsing, including AddonFormatError. Also removes deprecated port and untrusted-certificate properties now owned by Service and Options.
FirefoxProfileTest.javaRemove tests for deprecated profile extension installation+0/-32
Remove tests for deprecated profile extension installation
• Deletes tests for installing Firefox extensions from XPI files, directories, and classpath resources, along with their unused imports and fixture constants.
• Deletes Firefox Options tests for installing extensions into new and custom profiles. Associated extension resources, element assertions, and imports are also removed.
selenium-webdriver.gemspecDrop REXML from runtime gem dependencies+0/-1
Drop REXML from runtime gem dependencies
• Removes the direct REXML dependency after deleting the Firefox extension RDF parser. REXML remains available transitively for development where required.
1. Java users lose an undeprecated API 📘 Rule violation≡ Correctness
Description
The public containsWebDriverExtension() method is removed even though it has no @Deprecated
annotation or migration message. Existing callers compiling or linking against FirefoxProfile lose
this query on upgrade, while the adjacent extension APIs had explicit deprecation markers and
replacements.
- public boolean containsWebDriverExtension() {- return extensions.containsKey("webdriver");- }
Evidence
PR Compliance ID 1 permits public API removal only after the documented deprecation process. The
removed method is public but has neither the @Deprecated annotation nor a message identifying a
supported alternative, unlike the extension methods immediately following it.
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution
## Issue description
The public `containsWebDriverExtension()` API is being removed without first completing a documented deprecation cycle or giving callers migration guidance.
## Fix Focus Areas
- java/src/org/openqa/selenium/firefox/FirefoxProfile.java[147-149]
## Recommended Fix
Restore `containsWebDriverExtension()` for the current release, mark it for removal, and provide a deprecation message identifying the supported replacement or migration path before removing it in a later breaking release.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
Context sources
Review mode: 🧠 Deep: This is a cross-language, breaking public API removal with 49 edit sites across multiple Firefox profile and extension code paths, creating substantial opportunity for independent compatibility or build defects.
Tip of the day
💡 Did you know, you can route each action level your way: inline, summary, both, or drop
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
B-buildIncludes scripting, bazel and CI integrationsC-dotnet.NET BindingsC-javaJava BindingsC-nodejsJavaScript BindingsC-pyPython BindingsC-rbRuby Bindings
2 participants
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.
🔗 Related Issues
Finishes work from #17871 & #13477
💥 What does this PR do?
Removes deprecated/invalid Firefox profile code (including extension and certificate management)
🔧 Implementation Notes
rexmlis removed from the gemspec as a direct dependency, but it is kept as a transitive dev dependency🤖 AI assistance
💡 Additional Considerations
third_partycan be cleaned up in a future PR🔄 Types of changes