Repository navigation
[js] Remove the WebSQL and AppCache atoms - #18137
Merged
AutomatedTester merged 1 commit intoOct 8, 2026
Merged
Conversation
Both features are gone from every browser Selenium supports: AppCache was removed in Chrome 95, Firefox 85 and Safari 15, and WebSQL was removed in Chrome 123. Neither has a W3C WebDriver command, the bindings have already dropped their client-side APIs, and the only targets referencing these fragments were the chrome-driver atoms.h / atoms.cc generators, which have no consumer in this repository. Removes: - bot.storage.database (html5/database.js) and the execute-sql fragment - bot.appcache (html5/appcache.js), webdriver.atoms.storage.appcache and the get-appcache-status fragment - the webdriver.atoms.inject appcache and sql_database wrappers, their closure_js_library rules and the get-appcache-status inject fragment - the matching closure test pages and .appcache test fixtures - the execute-sql-chrome and get-appcache-status-chrome entries in the chrome-driver ATOMS list bot.html5 loses its now-unreachable APPCACHE and DATABASE enum members and switch arms, along with the Safari 4 and Android Froyo version checks that only those arms used. bot.ErrorCode.SQL_DATABASE_ERROR is left in place: it is a numeric wire protocol code rather than a feature, so removing it would be a gratuitous API break.
AutomatedTester
deleted the
copse/look-in-javascript-atoms-and-see-if-07a5ee
branch
October 8, 2026 13:47
5 of 24 tasks
This was referenced Oct 9, 2026
Merged
This was referenced Oct 14, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
None filed. Follow-on from the Java
AppCacheStatusremoval (#15973) and the earlierApplicationCache/LocationContextcleanups.💥 What does this PR do?
Deletes the WebSQL and AppCache atoms and their Bazel wiring.
Removed
bot.storage.database(javascript/atoms/html5/database.js) and theexecute-sqlfragmentbot.appcache(javascript/atoms/html5/appcache.js),webdriver.atoms.storage.appcacheand theget-appcache-statusfragmentwebdriver.atoms.injectappcache/sql_databasewrappers, theirclosure_js_libraryrules, and theget-appcache-statusinject fragment.appcachetest fixtures:execute-sql-chromeand:get-appcache-status-chromefrom thechrome-driverATOMSlistChanged
bot.html5loses its now-unreachableAPPCACHEandDATABASEenum members and switch arms, along with theIS_SAFARI4_OR_EARLIER_andIS_ANDROID_FROYO_OR_EARLIER_constants that only those arms used.Net: 17 files, −857 lines.
🔧 Implementation Notes
Why this is safe:
bot.html5.isSupported()returnsfalsefor both in every browser in the support matrix, so these are permanently dead code paths.getAppCache/getStatus/clearAppCache/executeSQLsurvive only in the legacyjavascript/webdriver/command.jsenum.java/src,py/selenium,rb/lib,dotnet/srcorjavascript/selenium-webdriver.//javascript/chrome-driver'sATOMSlist, which feedsatoms.h/atoms.cc. Nothing here compiles those —cpp/iedriveruses//javascript/ie-driver:header, whose dep list contains neither fragment.bot.ErrorCode.SQL_DATABASE_ERRORis deliberately left in place. It is a numeric wire-protocol code rather than a feature, so removing it would be a gratuitous API break.bot.html5itself survives this PR —storage.jsandlocation.jsstill call it. Shrinking it further is follow-up work (see below).🤖 AI assistance
💡 Additional Considerations
One thing grep cannot answer — please sanity-check me here.
//javascript/chrome-driver:headerand:sourcehave no consumer inside this repo; the generatedatoms.h/atoms.ccexisted for the legacy C++ ChromeDriver, which lives in Chromium. If anything outside this repo still consumes those targets, it would notice these two fragments disappearing. Worth a second opinion from anyone closer to ChromeDriver.Follow-ups, intentionally not folded in:
//javascript/atoms/fragments:get-locationis already orphaned (chrome-driveruses its own local:get-location-chrome) and can go next, together withhtml5/location.js.bot.html5's last caller isstorage.js; inlining its two checks letshtml5_browser.jsand all the remaining IE8 version sniffing go.dotnet/src/webdriver/CapabilityType.csstill has a publicSupportsApplicationCacheconstant — deprecation policy applies, so a separate change.common/src/web/html5Page.html,common/src/web/html5/and the appcache-MIME assertion inAppServerTestBase.javastill earn their keep.javascript/webdriver/command.js.🔄 Types of changes
✅ Validation
bazel query 'rdeps(//javascript/..., //javascript/atoms:html5)'bazel build //javascript/chrome-driver:{header,source} //javascript/ie-driver:header //javascript/atoms/... //javascript/webdriver/...bazel test //java/test/org/openqa/selenium/atoms:all./scripts/format.sh --pre-pushThe closure suites (
//javascript/atoms:closure-test,//javascript/webdriver:closure-test) discover*_test.htmlby glob, so the deleted pages simply stop being picked up — no suite wiring to update.