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
diff --git a/ipc/ipc_message_start.h b/ipc/ipc_message_start.h
index 1bdca18..718bfa7 100644
--- a/ipc/ipc_message_start.h
+++ b/ipc/ipc_message_start.h
@@ -125,6 +125,7 @@
SafeJsonParserMsgStart,
AttachmentBrokerMsgStart,
RenderProcessMsgStart,
+ PageLoadMetricsMsgStart,
LastIPCMsgStart // Must come last.
};