[Merge to M110] Prerender: Record events on PrerenderPageLoadMetricsObserver in UMA

This UMA is used for debugging the issue. From this UMA, it's expected
that we understand...

- whether prerender page load events are notified to the observer, and
- whether the events are ignored as the prerendered page gets
  backgrounded.

Intentionally this UMA doesn't record observer events per trigger type
(e.g., SpeculationRules) because some functions can be called before
PrerenderPageLoadMetricsObserver::trigger_type_ is set (e.g., when
OnComplete() called from the destructor of PageLoadTracker before
prerender activation).

(cherry picked from commit 1ea20577c4bba7bf6b6c383cbe5a6873a1ed53ab)

Bug: 1379491
Change-Id: Ibecacc386142397a8dd9ddc298b9adccaa80cc63
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4194898
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Asami Doi <asamidoi@chromium.org>
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#1097400}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4206627
Commit-Queue: Takashi Toyoshima <toyoshim@chromium.org>
Auto-Submit: Hiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/branch-heads/5481@{#811}
Cr-Branched-From: 130f3e4d850f4bc7387cfb8d08aa993d288a67a9-refs/heads/main@{#1084008}
5 files changed
tree: f6cec239e0a3523991636c237aa35a0bfa05edd4
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. weblayer/
  51. .clang-format
  52. .clang-tidy
  53. .eslintrc.js
  54. .git-blame-ignore-revs
  55. .gitattributes
  56. .gitignore
  57. .gn
  58. .mailmap
  59. .rustfmt.toml
  60. .vpython3
  61. .yapfignore
  62. ATL_OWNERS
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. DEPS
  68. DIR_METADATA
  69. LICENSE
  70. LICENSE.chromium_os
  71. OWNERS
  72. PRESUBMIT.py
  73. PRESUBMIT_test.py
  74. PRESUBMIT_test_mocks.py
  75. README.md
  76. 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.