[GdpIntegration] Handle HTTP errors gracefully

Previously, if an HTTP error happened on `getProfile`
calls, we were assuming it is a user with no GDP
profile and was enabling the starter flows (e.g.
starter badge, and the "Sign up" button in Settings).

However, considering that an overloaded API can
provide 503 responses much more frequently, we need
to handle those failures gracefully and disable
the starter flows.

There are 2 types of error handling here:
1. Internal to `GdpClient`: `makeHttpRequest`
throws a `GdpError` for non-200 responses and
internally, calls in the `makeHttpRequest` handled
in try-catch blocks.
2. External to `GdpClient`: For the external methods
(like `getProfile` or `createAward`), if the request
succeeds we return the response otherwise we return
`null` to the caller.

Fixed: 448012975
Change-Id: I910542a4edb13999b82e0c91d7c7aef26456adb8
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6992374
Commit-Queue: Ergün Erdoğmuş <ergunsh@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
9 files changed
tree: 1689c3438dba5025a32de346288b57385197a4b6
  1. .gemini/
  2. .github/
  3. .vscode/
  4. build_overrides/
  5. config/
  6. docs/
  7. extension-api/
  8. extensions/
  9. front_end/
  10. inspector_overlay/
  11. node_modules/
  12. scripts/
  13. test/
  14. third_party/
  15. v8/
  16. .clang-format
  17. .clang-format-ignore
  18. .editorconfig
  19. .geminiignore
  20. .git-blame-ignore-revs
  21. .gitallowed
  22. .gitattributes
  23. .gitignore
  24. .gitmodules
  25. .gn
  26. .mailmap
  27. .npmignore
  28. .npmrc
  29. .style.yapf
  30. .stylelintignore
  31. .stylelintrc.json
  32. AUTHORS
  33. BUILD.gn
  34. codereview.settings
  35. CONTRIBUTING.md
  36. DEPS
  37. DIR_METADATA
  38. eslint.config.mjs
  39. favicon.ico
  40. LICENSE
  41. OWNERS
  42. package-lock.json
  43. package.json
  44. PRESUBMIT.py
  45. README.md
  46. 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: