This directory contains process-independent code for recording metrics bucketed
by the number of live tabs.

We consider a tab to be alive (i.e. a live tab) if it is a UI tab (e.g. in a
tabstrip, as opposed to a prerenderer), and it has not been discarded and has
not crashed. Tabs can be discarded on desktop by TabManager to conserve
resources, and tabs crash when the corresponding renderer process is killed,
e.g. due to limited resources (OOM).

Clients of this component must be able to count live tabs. The interface this
component exposes provides a way to help create metrics bucketed by live tab
count in a consistent manner, but this is dependent on the client knowing the
count. The code in this directory is meant to be shared between processes, and
so we do not count live tabs here. The live tab count is a browser concept, and
it can be computed there. To record metrics bucketed by live tab counts in
processes other than the browser, the live tab count would need to be plumbed
out of the browser. In some cases this may be more efficient than plumbing
metrics data out of the process to the browser, which is an alternative.

This component should not have any dependencies other than //base as it
should be able to be used from any other place.
