Reland "Reland "DevTools Network Response Body Durable Storage implementation""

This is a reland of commit f68fb6456fb6271f81791a40e9112fd1eed9056d

The most recent revert of this is unrelated to this change itself, but
due to an issue that existed in a PHP test script. I've created a
separate fix CL crrev.com/c/6877661 that needs to land before this can
be relanded. I've also removed some of the expectations that may help to
reduce any potential flakes due to platform differences.

Original change's description:
> Reland "DevTools Network Response Body Durable Storage implementation"
>
> This is a reland of commit 9a67277c4c1e28001785ac7117c67c8299d5eea8
>
> This CL adds an explicit destruction of the Durable Messages Collector
> map to prevent a destruction order related crash on MSAN builds.
>
> Original change's description:
> > DevTools Network Response Body Durable Storage implementation
> >
> > This CL implements a response body storage mechanism that allow
> > introspection of network response bodies after the renderer has been
> > terminated. This reuses CDP's `NetworkHandler::enable()` with a
> > new parameter and `::GetResponseBody()` methods to switch to
> > the `DevtoolsDurableMessage` storage hosted in the Network Service.
> > The storage is designed to be evicted based on the set limit, or as
> > CDP clients are disconnected.
> >
> > Follow up CLs will complete the following:
> >  * Decoding stored messages on retrieval (gzip, brotli etc).
> >  * Base64 encoding binary payloads on retrieval to match current CDP
> >    API design.
> >
> > Design doc: https://docs.google.com/document/d/1CGX7k-8KLJBPUCWGUzJSNF991JPBDYGEQF_-hYGQ2hA/edit?pli=1&tab=t.0#heading=h.7nki9mck5t64
> >
> > Bug: 414864477
> > Change-Id: Ib991fb2d2801a5ef0e17517ec0a1c719a2e1687c
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6503314
> > Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
> > Reviewed-by: Tom Sepez <tsepez@chromium.org>
> > Commit-Queue: Alex N. Jose <alexnj@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#1503009}
>
> Bug: 414864477
> Change-Id: Ifbe215f084e049f3ea289f98aced13c357d763b6
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6861675
> Commit-Queue: Alex N. Jose <alexnj@chromium.org>
> Reviewed-by: Adam Rice <ricea@chromium.org>
> Reviewed-by: Andrey Kosyakov <caseq@chromium.org>
> Reviewed-by: Tom Sepez <tsepez@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1504827}

Bug: 414864477
Change-Id: I44bd30b9592866a50fd8789fc4a0a61d78ad0ebf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6876126
Reviewed-by: Adam Rice <ricea@chromium.org>
Commit-Queue: Alex N. Jose <alexnj@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1507116}
32 files changed
tree: 01ef9f48a0158c6f503e14386702ac07fdb9bc6f
  1. .gemini/
  2. .github/
  3. agents/
  4. android_webview/
  5. apps/
  6. ash/
  7. base/
  8. build/
  9. build_overrides/
  10. buildtools/
  11. cc/
  12. chrome/
  13. chromecast/
  14. chromeos/
  15. codelabs/
  16. components/
  17. content/
  18. crypto/
  19. dbus/
  20. device/
  21. docs/
  22. extensions/
  23. fuchsia_web/
  24. gin/
  25. google_apis/
  26. gpu/
  27. headless/
  28. infra/
  29. ios/
  30. ipc/
  31. media/
  32. mojo/
  33. net/
  34. pdf/
  35. printing/
  36. remoting/
  37. rlz/
  38. sandbox/
  39. services/
  40. skia/
  41. sql/
  42. storage/
  43. styleguide/
  44. testing/
  45. third_party/
  46. tools/
  47. ui/
  48. url/
  49. webkit/
  50. .clang-format
  51. .clang-tidy
  52. .clangd
  53. .cursorignore
  54. .geminiignore
  55. .git-blame-ignore-revs
  56. .gitallowed
  57. .gitattributes
  58. .gitignore
  59. .gitmodules
  60. .gn
  61. .mailmap
  62. .rustfmt.toml
  63. .vpython3
  64. .yapfignore
  65. ATL_OWNERS
  66. AUTHORS
  67. BUILD.gn
  68. CODE_OF_CONDUCT.md
  69. codereview.settings
  70. CPPLINT.cfg
  71. CRYPTO_OWNERS
  72. DEPS
  73. DIR_METADATA
  74. LICENSE
  75. LICENSE.chromium_os
  76. OWNERS
  77. PRESUBMIT.py
  78. PRESUBMIT_test.py
  79. PRESUBMIT_test_mocks.py
  80. README.md
  81. SECURITY_OWNERS
  82. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure.

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.