Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Unified Diff: content/common/child_process_messages.h

Issue 9702014: [UMA] Use proper C++ objects to serialize tracked_objects across process boundaries. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Write JSON unit test and update profiler.js Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/common/child_process_messages.h
diff --git a/content/common/child_process_messages.h b/content/common/child_process_messages.h
index ab56be07f6185676c166b12c4629e8b64ce146c2..bc39008a30892e0cf7a2fcff2034033a0a6de255 100644
--- a/content/common/child_process_messages.h
+++ b/content/common/child_process_messages.h
@@ -9,11 +9,51 @@
#include "base/tracked_objects.h"
#include "base/values.h"
#include "content/common/content_export.h"
+#include "content/public/common/process_type.h"
#include "googleurl/src/gurl.h"
#include "ipc/ipc_message_macros.h"
+IPC_ENUM_TRAITS(content::ProcessType)
IPC_ENUM_TRAITS(tracked_objects::ThreadData::Status)
+IPC_STRUCT_TRAITS_BEGIN(tracked_objects::SerializedLocation)
+ IPC_STRUCT_TRAITS_MEMBER(file_name)
+ IPC_STRUCT_TRAITS_MEMBER(function_name)
+ IPC_STRUCT_TRAITS_MEMBER(line_number)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(tracked_objects::SerializedBirthOnThread)
+ IPC_STRUCT_TRAITS_MEMBER(location)
+ IPC_STRUCT_TRAITS_MEMBER(thread_name)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(tracked_objects::SerializedDeathData)
+ IPC_STRUCT_TRAITS_MEMBER(count)
+ IPC_STRUCT_TRAITS_MEMBER(run_duration_sum)
+ IPC_STRUCT_TRAITS_MEMBER(run_duration_max)
+ IPC_STRUCT_TRAITS_MEMBER(run_duration_sample)
+ IPC_STRUCT_TRAITS_MEMBER(queue_duration_sum)
+ IPC_STRUCT_TRAITS_MEMBER(queue_duration_max)
+ IPC_STRUCT_TRAITS_MEMBER(queue_duration_sample)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(tracked_objects::SerializedSnapshot)
+ IPC_STRUCT_TRAITS_MEMBER(birth)
+ IPC_STRUCT_TRAITS_MEMBER(death_data)
+ IPC_STRUCT_TRAITS_MEMBER(death_thread_name)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(tracked_objects::SerializedParentChildPair)
+ IPC_STRUCT_TRAITS_MEMBER(parent)
+ IPC_STRUCT_TRAITS_MEMBER(child)
+IPC_STRUCT_TRAITS_END()
+
+IPC_STRUCT_TRAITS_BEGIN(tracked_objects::SerializedProcessData)
+ IPC_STRUCT_TRAITS_MEMBER(snapshots)
+ IPC_STRUCT_TRAITS_MEMBER(descendants)
+ IPC_STRUCT_TRAITS_MEMBER(process_id)
+IPC_STRUCT_TRAITS_END()
+
#undef IPC_MESSAGE_EXPORT
#define IPC_MESSAGE_EXPORT CONTENT_EXPORT
@@ -49,8 +89,8 @@ IPC_MESSAGE_CONTROL1(ChildProcessMsg_SetProfilerStatus,
// Send to all the child processes to send back profiler data (ThreadData in
// tracked_objects).
IPC_MESSAGE_CONTROL2(ChildProcessMsg_GetChildProfilerData,
- int, /* sequence number. */
- std::string /* pickled Value of process type. */)
+ int, /* sequence number */
jam 2012/03/18 19:31:54 there's no need to tell the child process what typ
Ilya Sherman 2012/03/19 22:01:24 Done.
+ content::ProcessType /* child process type */)
// Sent to child processes to dump their handle table.
IPC_MESSAGE_CONTROL0(ChildProcessMsg_DumpHandles)
@@ -79,9 +119,10 @@ IPC_MESSAGE_CONTROL1(ChildProcessHostMsg_TraceBufferPercentFullReply,
float /*trace buffer percent full*/)
// Send back profiler data (ThreadData in tracked_objects).
-IPC_MESSAGE_CONTROL2(ChildProcessHostMsg_ChildProfilerData,
- int, /* sequence number. */
- DictionaryValue /* profiler data. */)
+IPC_MESSAGE_CONTROL3(ChildProcessHostMsg_ChildProfilerData,
+ int, /* sequence number */
+ tracked_objects::SerializedProcessData, /* profiler data */
+ content::ProcessType /* child process type */)
// Reply to ChildProcessMsg_DumpHandles when handle table dump is complete.
IPC_MESSAGE_CONTROL0(ChildProcessHostMsg_DumpHandlesDone)

Powered by Google App Engine
This is Rietveld 408576698