[tracing] browser-process-side impl for inter-process memory dumps
This CL introduces the implementation for handling the inter-process
memory dumps on the browser-process side.
The browser process' MemoryDumpManager is in charge to coordinate
the global dumps across all processes. Concretely this happens in
the TracingControllerImpl (which already does some similar
coordinations for other inter-process tracing tasks).
In practice the coordiantion consists of:
1. Firing off one LocalMemoryDump request IPC per child process, or
NACK-ing the request if another global dump is in progress.
2. Wait for child processes' ACK/NACKs
3a. Invoking the global memory dump callback when all the responses
are received (if the dump was initiated by the browser process).
3b. Send a GlobalMemoryDump response IPC to the child process that
initiated the global dump (if initiated by child-process).
Plus all the necessary bookkeeping data structures.
More context and design doc are available in the attached BUG.
BUG=462930
Review URL: https://codereview.chromium.org/
1039963004
Cr-Commit-Position: refs/heads/master@{#324902}