[breakpoint] Don't spam the backend when enabling Debugger takes a while

There are sites where the 'Debugger.enable' CDP call can take a couple
of seconds. During this time, the BreakpointManager currently tries to
repeatedly set the breakpoint even though the call is guaranteed to
fail.

This CL changes to logic to wait for the 'Debugger' domain to enable
after the first attempt fails.

We don't want to generally wait for the enable result as that could
cause us to miss breakpoints. In most cases sending off the
'Debugger.enable' call and already send 'Debugger.setBreakpointByUrl'
while the enable is still in-flight, is fine.

R=kimanh@chromium.org

Bug: 391200159
Change-Id: Ib7f40aa85d5fdcb31d45898d4e070478b79fa890
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6468180
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
3 files changed
tree: 273b23c8bb59697b90838c82558b4b2c1104d55f
  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. .clang-format-ignore
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitallowed
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .mailmap
  24. .npmignore
  25. .npmrc
  26. .style.yapf
  27. .stylelintignore
  28. .stylelintrc.json
  29. AUTHORS
  30. BUILD.gn
  31. codereview.settings
  32. CONTRIBUTING.md
  33. DEPS
  34. eslint.config.mjs
  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: