[cleanup] Remove `UI.UItils.registerCustomElement()`.

As part of the Vision for the Chrome DevTools UI Engineering[^1],
we need to migrate off of built-in custom elements. Which also has
the additional benefit that our UI will work in Safari (part of
this was already fixed with https://crrev.com/c/6028362 earlier).

This CL replaces the previous built-in custom elements with proper
autonomous custom elements: `BezierSwatch`,`DevToolsIconLabel`,
`DevToolsSmallBubble`, and `DevToolsCloseButton`.

The `HistoryInput` component only added special handling for keydown
and input events, and otherwise was just a simple `HTMLInputElement`.
This migrates the class to a simple helper function that does the
same (without requiring a built-in custom element, which we're
trying to migrate off of).

The `DevToolsSlider` and `DevToolsRadioButton` built-in custom
elements are removed in favor of simple helpers that just create
the appropriate `HTMLInputElement`s. The styles for these are
moved to the `inspectorCommon.css`. The custom elements were
really overkill for something trivial as these and only added
confusion. The component server and documentation now also describe
sliders and radio buttons.

This change is functionally neutral and only replaces implementation
details.

Drive-by-fix: Fix a bunch of outdated / incorrect CSS along the way.

[^1]: http://go/chrome-devtools:ui-engineering-proposal

Bug: 386453980
Change-Id: I7ba9f9c156e5f0f9396c0c6eb3d2febc8d371b33
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6114579
Reviewed-by: Changhao Han <changhaohan@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
40 files changed
tree: 19f88b0927f5df749a9651b7fb2883e1d2481544
  1. .vscode/
  2. build_overrides/
  3. config/
  4. docs/
  5. extension-api/
  6. extensions/
  7. front_end/
  8. inspector_overlay/
  9. node_modules/
  10. scripts/
  11. test/
  12. third_party/
  13. v8/
  14. .clang-format
  15. .editorconfig
  16. .eslintignore
  17. .eslintrc.js
  18. .git-blame-ignore-revs
  19. .gitallowed
  20. .gitattributes
  21. .gitignore
  22. .gitmodules
  23. .gn
  24. .mailmap
  25. .npmignore
  26. .npmrc
  27. .style.yapf
  28. .stylelintignore
  29. .stylelintrc.json
  30. AUTHORS
  31. BUILD.gn
  32. codereview.settings
  33. CONTRIBUTING.md
  34. DEPS
  35. favicon.ico
  36. LICENSE
  37. OWNERS
  38. package-lock.json
  39. package.json
  40. PRESUBMIT.py
  41. README.md
  42. tsconfig.json
  43. WATCHLISTS
README.md

Chrome DevTools frontend

npm package

The client-side of the Chrome DevTools, including all TypeScript & CSS to run the DevTools webapp.

Source code and documentation

The frontend is available on chromium.googlesource.com. Check out the Chromium DevTools documentation for instructions to set up, use, and maintain a DevTools front-end checkout, as well as design guidelines, and architectural documentation.

Source mirrors

DevTools frontend repository is mirrored on GitHub.

DevTools frontend is also available on NPM as the chrome-devtools-frontend package. It's not currently available via CJS or ES modules, so consuming this package in other tools may require some effort.

The version number of the npm package (e.g. 1.0.373466) refers to the Chromium commit position of latest frontend git commit. It's incremented with every Chromium commit, however the package is updated roughly daily.

Getting in touch

There are a few options to keep an eye on the latest and greatest of DevTools development: