1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Multiply-included message header, no traditional include guard.
9 #include "base/basictypes.h"
10 #include "base/sync_socket.h"
11 #include "base/trace_event/memory_dump_request_args.h"
12 #include "base/trace_event/trace_event_impl.h"
13 #include "ipc/ipc_channel_handle.h"
14 #include "ipc/ipc_message_macros.h"
15 #include "ipc/ipc_message_utils.h"
16 #include "ipc/ipc_platform_file.h"
18 #define IPC_MESSAGE_START TracingMsgStart
20 IPC_STRUCT_TRAITS_BEGIN(base::trace_event::TraceLogStatus
)
21 IPC_STRUCT_TRAITS_MEMBER(event_capacity
)
22 IPC_STRUCT_TRAITS_MEMBER(event_count
)
23 IPC_STRUCT_TRAITS_END()
25 IPC_STRUCT_TRAITS_BEGIN(base::trace_event::MemoryDumpRequestArgs
)
26 IPC_STRUCT_TRAITS_MEMBER(dump_guid
)
27 IPC_STRUCT_TRAITS_MEMBER(dump_type
)
28 IPC_STRUCT_TRAITS_END()
30 IPC_ENUM_TRAITS_MAX_VALUE(
31 base::trace_event::MemoryDumpType
,
32 static_cast<int>(base::trace_event::MemoryDumpType::LAST
))
34 // Sent to all child processes to enable trace event recording.
35 IPC_MESSAGE_CONTROL3(TracingMsg_BeginTracing
,
36 std::string
/* trace_config_str */,
37 base::TraceTicks
/* browser_time */,
38 uint64
/* Tracing process id (hash of child id) */)
40 // Sent to all child processes to disable trace event recording.
41 IPC_MESSAGE_CONTROL0(TracingMsg_EndTracing
)
43 // Sent to all child processes to cancel trace event recording.
44 IPC_MESSAGE_CONTROL0(TracingMsg_CancelTracing
)
46 // Sent to all child processes to start monitoring.
47 IPC_MESSAGE_CONTROL2(TracingMsg_EnableMonitoring
,
48 std::string
/* trace_config_str */,
49 base::TraceTicks
/* browser_time */)
51 // Sent to all child processes to stop monitoring.
52 IPC_MESSAGE_CONTROL0(TracingMsg_DisableMonitoring
)
54 // Sent to all child processes to capture the current monitorint snapshot.
55 IPC_MESSAGE_CONTROL0(TracingMsg_CaptureMonitoringSnapshot
)
57 // Sent to all child processes to get trace buffer fullness.
58 IPC_MESSAGE_CONTROL0(TracingMsg_GetTraceLogStatus
)
60 // Sent to all child processes to set watch event.
61 IPC_MESSAGE_CONTROL2(TracingMsg_SetWatchEvent
,
62 std::string
/* category_name */,
63 std::string
/* event_name */)
65 // Sent to all child processes to clear watch event.
66 IPC_MESSAGE_CONTROL0(TracingMsg_CancelWatchEvent
)
68 // Sent to all child processes to request a local (current process) memory dump.
69 IPC_MESSAGE_CONTROL1(TracingMsg_ProcessMemoryDumpRequest
,
70 base::trace_event::MemoryDumpRequestArgs
)
72 // Reply to TracingHostMsg_GlobalMemoryDumpRequest, sent by the browser process.
73 // This is to get the result of a global dump initiated by a child process.
74 IPC_MESSAGE_CONTROL2(TracingMsg_GlobalMemoryDumpResponse
,
75 uint64
/* dump_guid */,
78 // Sent everytime when a watch event is matched.
79 IPC_MESSAGE_CONTROL0(TracingHostMsg_WatchEventMatched
)
81 // Notify the browser that this child process supports tracing.
82 IPC_MESSAGE_CONTROL0(TracingHostMsg_ChildSupportsTracing
)
84 // Reply from child processes acking TracingMsg_EndTracing.
85 IPC_MESSAGE_CONTROL1(TracingHostMsg_EndTracingAck
,
86 std::vector
<std::string
> /* known_categories */)
88 // Reply from child processes acking TracingMsg_CaptureMonitoringSnapshot.
89 IPC_MESSAGE_CONTROL0(TracingHostMsg_CaptureMonitoringSnapshotAck
)
91 // Child processes send back trace data in JSON chunks.
92 IPC_MESSAGE_CONTROL1(TracingHostMsg_TraceDataCollected
,
93 std::string
/*json trace data*/)
95 // Child processes send back trace data of the current monitoring
97 IPC_MESSAGE_CONTROL1(TracingHostMsg_MonitoringTraceDataCollected
,
98 std::string
/*json trace data*/)
100 // Reply to TracingMsg_GetTraceLogStatus.
101 IPC_MESSAGE_CONTROL1(
102 TracingHostMsg_TraceLogStatusReply
,
103 base::trace_event::TraceLogStatus
/*status of the trace log*/)
105 // Sent to the browser to initiate a global memory dump from a child process.
106 IPC_MESSAGE_CONTROL1(TracingHostMsg_GlobalMemoryDumpRequest
,
107 base::trace_event::MemoryDumpRequestArgs
)
109 // Reply to TracingMsg_ProcessMemoryDumpRequest.
110 IPC_MESSAGE_CONTROL2(TracingHostMsg_ProcessMemoryDumpResponse
,
111 uint64
/* dump_guid */,