Reland: Split histograms for HTTP error code and status

Original description:

> This CL adds more specific variants of the following histograms:
>
> * PrivacySandbox.AggregationService.ReportSender.HttpResponseOrNetErrorCode
> * PrivacySandbox.AggregationService.ReportSender.Status
>
> The new histograms break out "Status" and "HttpResponseOrNetErrorCode"
> information based on whether the request was not scheduled, or was
> originally scheduled for future delivery after a reduced delay or full
> delay.
>
> ```
> $ ./tools/metrics/histograms/print_histogram_names.py --diff origin/main
> 6 histograms added:
> PrivacySandbox.AggregationService.ReportSender.ScheduledWithFullDelay.HttpResponseOrNetErrorCode
> PrivacySandbox.AggregationService.ReportSender.ScheduledWithFullDelay.Status
> PrivacySandbox.AggregationService.ReportSender.ScheduledWithReducedDelay.HttpResponseOrNetErrorCode
> PrivacySandbox.AggregationService.ReportSender.ScheduledWithReducedDelay.Status
> PrivacySandbox.AggregationService.ReportSender.Unscheduled.HttpResponseOrNetErrorCode
> PrivacySandbox.AggregationService.ReportSender.Unscheduled.Status
> 0 histograms removed:
> ```
>
> Initially, I thought I'd replace the histograms with their more specific
> variants. However, I chose to keep the original histograms to avoid any
> monitoring disruptions. The "Status" histogram is a critical system
> health metric, so it's probably not a good idea to delete it without
> having a successor in place.
>
> Bug: 325449807

In <https://crrev.com/c/5598362>, I introduced two new death tests that
used `EXPECT_DEATH_IF_SUPPORTED`. These passed CQ, but started failing
on linux-chromeos-chrome after the CL was merged. It turns out that
under some GN args, the `CHECK` macro will discard log strings rather
than streaming them.

Patchset 1 is just a cherrypick of the original CL. I verified that it
fails on the linux-chromeos-chrome as described in issue 352185227.

This reland replaces the gtest-provided `EXPECT_DEATH_IF_SUPPORTED` with
the //base wrapper `EXPECT_CHECK_DEATH_WITH`, which accounts for whether
the `CHECK` macro will stream or discard its messages.

Bug: 325449807, 352185227
Cq-Include-Trybots: luci.chrome.try:linux-chromeos-chrome
Change-Id: I1b1935c206ddb3b258b3229d888c3f614b3627e0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5688555
Reviewed-by: Alex Turner <alexmt@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Reviewed-by: Nan Lin <linnan@chromium.org>
Commit-Queue: Dan McArdle <dmcardle@chromium.org>
Auto-Submit: Dan McArdle <dmcardle@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1326362}
NOKEYCHECK=True
GitOrigin-RevId: ed224e2bb688981e5517544073ce200b0f7f6160
1 file changed
tree: 22819dd83f721d1072f1374da833381035147ecf
  1. accessibility/
  2. aggregation_service/
  3. android/
  4. binary_size/
  5. bisect/
  6. bisect_repackage/
  7. browserbench-webdriver/
  8. captured_sites/
  9. cast3p/
  10. cfi/
  11. check_ecs_deps/
  12. checkbins/
  13. checklicenses/
  14. checkperms/
  15. checkteamtags/
  16. chrome_extensions/
  17. chromeos/
  18. clang/
  19. code_coverage/
  20. codeql/
  21. compile_test/
  22. cr/
  23. crates/
  24. crbug/
  25. cros/
  26. cygprofile/
  27. determinism/
  28. diagnosis/
  29. disable_tests/
  30. dromaeo_benchmark_runner/
  31. dump_process_memory/
  32. emacs/
  33. find_runtime_symbols/
  34. flags/
  35. flakiness/
  36. fuchsia/
  37. gdb/
  38. generate_library_loader/
  39. generate_shim_headers/
  40. generate_stubs/
  41. get_asan_chrome/
  42. get_swarming_logs/
  43. git/
  44. gn/
  45. grd/
  46. grit/
  47. gritsettings/
  48. idl_parser/
  49. imagediff/
  50. infra/
  51. interactive_ui_tests/
  52. ipc_fuzzer/
  53. json_comment_eater/
  54. json_data_generator/
  55. json_schema_compiler/
  56. json_to_struct/
  57. l10n/
  58. licenses/
  59. linux/
  60. lldb/
  61. mac/
  62. mb/
  63. md_browser/
  64. media_engagement_preload/
  65. memory/
  66. metrics/
  67. msan/
  68. nix/
  69. nocompile/
  70. oobe/
  71. origin_trials/
  72. page_cycler/
  73. perf/
  74. perfbot-analysis/
  75. pgo/
  76. pixel_test/
  77. polymer/
  78. privacy_budget/
  79. profiling/
  80. protoc_wrapper/
  81. python/
  82. real_world_impact/
  83. resources/
  84. rust/
  85. search_engine_choice/
  86. security/
  87. site_compare/
  88. stats_viewer/
  89. strict_enum_value_checker/
  90. style_variable_generator/
  91. sublime/
  92. symsrc/
  93. traceline/
  94. tracing/
  95. traffic_annotation/
  96. translation/
  97. typescript/
  98. ubsan/
  99. usb_gadget/
  100. utr/
  101. v8_context_snapshot/
  102. valgrind/
  103. variations/
  104. vim/
  105. visual_debugger/
  106. vscode/
  107. web_bluetooth/
  108. web_dev_style/
  109. whats_new/
  110. win/
  111. .gitignore
  112. .style.yapf
  113. add_header.py
  114. add_header_test.py
  115. apply_cpplint_header_guard.py
  116. auto-nav.py
  117. autotest.py
  118. bash-completion
  119. bisect-builds.py
  120. bisect_test.py
  121. boilerplate.py
  122. buildstate.bat
  123. buildstate.py
  124. check_git_config.py
  125. check_grd_for_unused_strings.py
  126. clang-format-js
  127. DEPS
  128. diagnose-me.py
  129. DIR_METADATA
  130. download_optimization_profile.py
  131. hresult_to_enum.py
  132. include_tracer.py
  133. ipc_messages_log.py
  134. make_gtest_filter.py
  135. make_gtest_filter_test.py
  136. mojo_messages_log.py
  137. multi_process_rss.py
  138. omahaproxy.py
  139. OWNERS
  140. perry.py
  141. PRESUBMIT.py
  142. remove_stale_files.py
  143. remove_stale_pyc_files.py
  144. roll_webgl_conformance.py
  145. run-swarmed.py
  146. sample_clang_tidy_results.py
  147. sort_sources.py
  148. uberblame.py
  149. unused-symbols-report.py
  150. update_pgo_profiles.py
  151. yes_no.py