PageLoadMetrics renderer and browser implementation.

This change addresses issues with lost UMA data, by pushing UMA metrics
to the browser process over IPC.

In the render process, we implement a RenderFrameObserver that attaches
to top-level frames, and pushes interesting document timing metrics to
the browser process.

In the browser process, we implement a WebContentsObserver that
receives the document timing metrics and UMA logs them. We implement
WebContentsObserver because, in a future change, we'll start observing
page close events in order to log cases where a page load is aborted
before a layout occurs.

See https://docs.google.com/document/d/1HJsJ5W2H_3qRdqPAUgAEo10AF8gXPTXZLUET4X4_sII/edit for additional details.

BUG=382542

patch from issue 1282303002 at patchset 740001 (http://crrev.com/1282303002#ps740001)

Review URL: https://codereview.chromium.org/1312213010

Cr-Commit-Position: refs/heads/master@{#350038}


CrOS-Libchrome-Original-Commit: 9fa62d54d03911d7a4120354d3e206ca69af4840
1 file changed
tree: b01b898961ba9ddbe67a405a66dee2fa2ed7db87
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/