[tracing] browser-process-side impl for inter-process memory dumps
commitcdb35ad47ad00fcf958ff4c9ac312021b0a7c0a5
authorprimiano <primiano@chromium.org>
Mon, 13 Apr 2015 19:49:00 +0000 (13 12:49 -0700)
committerCommit bot <commit-bot@chromium.org>
Mon, 13 Apr 2015 19:49:39 +0000 (13 19:49 +0000)
tree42a838e8510088bb527438bc0968e57f9499e6fe
parent28cb8d662635d3586dd4d682d1f6997374d8888b
[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}
content/browser/tracing/tracing_controller_impl.cc
content/browser/tracing/tracing_controller_impl.h