Track thread activities in order to diagnose hangs.

There are a large number of "unclean shutdowns" in Chrome
with little information available as to what the various
threads of Chrome were doing that prevented a proper
close.

The ActivityTracker class provides a low-overhead way
of keeping track of what each thread is doing in a
persistent manner that can be analyzed both in real-
time and post-mortem.

The ActivityAnalyzer class provides an interface into
the persisted data for analysis.  Using that data is
for a future CL.

Operation is controlled by an experiment.  Enable
manually with:

--enable-features=StabilityDebugging

BUG=620813

Committed: https://crrev.com/5d3470e5a33aaad936e171bee625b6b978ee3c34
Review-Url: https://codereview.chromium.org/1980743002
Cr-Original-Commit-Position: refs/heads/master@{#410470}
Cr-Commit-Position: refs/heads/master@{#410938}


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