Add pipe implementation for OOP memory logging

Desktop / Chromium - brettw [chromium.org] - 15 June 2017 22:30 EDT

These pipes are not currently hooked up.

The sender pipe just connects to a known Windows named pipe and has a send capability. The receiver has a server that waits on Windows I/O completion ports for connections, then associates those connections with a receiver pipe.

We will investigate converting this to a Mojo EDK pipe in a second phase.

The pipes will need very different implementations per-platform, but we won't need to switch them. As a result, I put the Windows implementation in _win.* files, but didn't do any virtual base classes or anything and just named the classes without the Win suffix. In my previous implementation I did some more separation that I didn't find gave any more flexibility.

BUG=733336

Review-Url: https://codereview.chromium.org/2940003002 Cr-Commit-Position: refs/heads/master@{#479927}

32f79a0 Add pipe implementation for OOP memory logging
chrome/common/BUILD.gn | 1 +
chrome/common/profiling/BUILD.gn | 27 +++++
chrome/common/profiling/memlog_sender_pipe.h | 14 +++
chrome/common/profiling/memlog_sender_pipe_win.cc | 59 ++++++++++
chrome/common/profiling/memlog_sender_pipe_win.h | 34 ++++++
chrome/common/profiling/memlog_stream.cc | 13 +++
chrome/common/profiling/memlog_stream.h | 20 ++++
chrome/profiling/BUILD.gn | 5 +
.../profiling/memlog_receiver_pipe_server_win.cc | 84 +++++++++++++++
chrome/profiling/memlog_receiver_pipe_server_win.h | 67 ++++++++++++
chrome/profiling/memlog_receiver_pipe_win.cc | 119 +++++++++++++++++++++
chrome/profiling/memlog_receiver_pipe_win.h | 90 ++++++++++++++++
chrome/profiling/memlog_stream_receiver.h | 32 ++++++
13 files changed, 565 insertions(+)

Upstream: git.chromium.org


  • Share