Skip to content

[πŸš€ Feature]: Rewrite Atoms in TypeScriptΒ #15596

Description

@titusfortner

Description

Migrating the atoms off the Closure Library/Compiler to TypeScript. Closure now
builds under Bazel 9, so this is no longer blocking β€” but we'd rather not keep
maintaining Closure, and TypeScript is a far more widely understood toolchain.

Scope is everything Closure builds, across four directories:
javascript/atoms/fragments, javascript/chrome-driver, javascript/ie-driver,
and javascript/webdriver/atoms (+ /inject). Shared internals (bot, dom,
events, locators/*, …) convert as dependencies, not as separate tasks.

βœ… Completed (Closure β†’ TypeScript)

πŸ”„ Convert to TypeScript

  • clear
  • click
  • execute-async-script
  • execute-script
  • get-effective-style
  • get-size
  • get-text
  • is-enabled
  • submit
  • find-element (singular) β€” verify a live consumer first
  • Chrome-specific: get-location-in-view, get-first-client-rect,
    is-element-clickable, get-page-zoom, is-element-displayed,
    get-location (element offset)

πŸ”€ Convert or delete

Legacy JSON Wire Protocol atoms with no W3C endpoint. Convert if still needed,
otherwise delete (deletion staged on the dead_atoms branch).

  • get-element-from-cache
  • execute-sql + html5/database.js (WebSQL)
  • get-location / geolocation (bot.geolocation) + html5/location.js
  • get-appcache-status + html5/appcache.js
  • storage atoms (webdriver/atoms + /inject) + html5/storage.js
  • html5/html5_browser.js (bot.html5)

πŸ”€ Convert, or retire the IE driver and delete

Used only by the IE driver. Either convert them to TypeScript, or retire the IE
driver and delete them with it.

  • is-editable
  • is-focusable
  • is-interactable
  • IE-local: get-element-rect, is-element-in-parent-overflow,
    is-offset-in-parent-overflow, IE find-element / find-elements

Metadata

Metadata

Assignees

No one assigned

    Labels

    B-atomsJavaScript chunks generated by Google closureI-enhancementSomething could be better

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions