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

Unified Diff: third_party/WebKit/Source/platform/TraceEvent.h

Issue 1359973003: Support tracing flow events v2 in Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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
« no previous file with comments | « third_party/WebKit/Source/platform/EventTracer.cpp ('k') | third_party/WebKit/public/platform/Platform.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/platform/TraceEvent.h
diff --git a/third_party/WebKit/Source/platform/TraceEvent.h b/third_party/WebKit/Source/platform/TraceEvent.h
index 508d32791143f39156fea7730494a5ad69567b72..757949a7cc99e6be3c09454090f14cafcbeedf4f 100644
--- a/third_party/WebKit/Source/platform/TraceEvent.h
+++ b/third_party/WebKit/Source/platform/TraceEvent.h
@@ -173,13 +173,29 @@
INTERNALTRACEEVENTUID(categoryGroupEnabled), name, h); \
}
+#define INTERNAL_TRACE_EVENT_ADD_SCOPED_WITH_FLOW(category, name, bindId, flowFlags, ...) \
+ INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
+ blink::TraceEvent::ScopedTracer INTERNALTRACEEVENTUID(scopedTracer); \
+ if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
+ unsigned traceEventFlags = flowFlags; \
+ blink::TraceEvent::TraceID traceEventBindId(bindId, &traceEventFlags); \
+ blink::TraceEvent::TraceEventHandle h = \
+ blink::TraceEvent::addTraceEvent( \
+ TRACE_EVENT_PHASE_COMPLETE, \
+ INTERNALTRACEEVENTUID(categoryGroupEnabled), \
+ name, blink::TraceEvent::noEventId, traceEventBindId.data(), \
+ systemTraceTime(), traceEventFlags, ##__VA_ARGS__); \
+ INTERNALTRACEEVENTUID(scopedTracer).initialize( \
+ INTERNALTRACEEVENTUID(categoryGroupEnabled), name, h); \
+ }
+
// Implementation detail: internal macro to create static category and add
// event if the category is enabled.
#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(phase, category, name, id, flags, ...) \
do { \
INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
- unsigned char traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \
+ unsigned traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \
blink::TraceEvent::TraceID traceEventTraceID( \
id, &traceEventFlags); \
blink::TraceEvent::addTraceEvent( \
@@ -195,12 +211,13 @@
do { \
INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
- unsigned char traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \
+ unsigned traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \
blink::TraceEvent::TraceID traceEventTraceID( \
id, &traceEventFlags); \
blink::TraceEvent::addTraceEvent( \
phase, INTERNALTRACEEVENTUID(categoryGroupEnabled), \
- name, traceEventTraceID.data(), timestamp, traceEventFlags, ##__VA_ARGS__); \
+ name, traceEventTraceID.data(), blink::TraceEvent::noBindId, \
+ timestamp, traceEventFlags, ##__VA_ARGS__); \
} \
} while (0)
@@ -212,7 +229,8 @@
if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_RECORDING_MODE()) { \
blink::TraceEvent::addTraceEvent( \
phase, INTERNALTRACEEVENTUID(categoryGroupEnabled), name, \
- blink::TraceEvent::noEventId, timestamp, flags, ##__VA_ARGS__); \
+ blink::TraceEvent::noEventId, blink::TraceEvent::noBindId, \
+ timestamp, flags, ##__VA_ARGS__); \
} \
} while (0)
@@ -234,6 +252,7 @@ namespace TraceEvent {
// used.
const int zeroNumArgs = 0;
const unsigned long long noEventId = 0;
+const unsigned long long noBindId = 0;
// TraceID encapsulates an ID that can either be an integer or pointer. Pointers
// are mangled with the Process ID so that they are unlikely to collide when the
@@ -250,30 +269,30 @@ public:
typedef MangleBehavior<false> DontMangle;
typedef MangleBehavior<true> ForceMangle;
- TraceID(const void* id, unsigned char* flags) :
+ TraceID(const void* id, unsigned* flags) :
m_data(static_cast<unsigned long long>(reinterpret_cast<unsigned long>(id)))
{
*flags |= TRACE_EVENT_FLAG_MANGLE_ID;
}
- TraceID(ForceMangle id, unsigned char* flags) : m_data(id.data())
+ TraceID(ForceMangle id, unsigned* flags) : m_data(id.data())
{
*flags |= TRACE_EVENT_FLAG_MANGLE_ID;
}
- TraceID(DontMangle id, unsigned char*) : m_data(id.data()) { }
- TraceID(unsigned long long id, unsigned char*) : m_data(id) { }
- TraceID(unsigned long id, unsigned char*) : m_data(id) { }
- TraceID(unsigned id, unsigned char*) : m_data(id) { }
- TraceID(unsigned short id, unsigned char*) : m_data(id) { }
- TraceID(unsigned char id, unsigned char*) : m_data(id) { }
- TraceID(long long id, unsigned char*) :
+ TraceID(DontMangle id, unsigned*) : m_data(id.data()) { }
+ TraceID(unsigned long long id, unsigned*) : m_data(id) { }
+ TraceID(unsigned long id, unsigned*) : m_data(id) { }
+ TraceID(unsigned id, unsigned*) : m_data(id) { }
+ TraceID(unsigned short id, unsigned*) : m_data(id) { }
+ TraceID(unsigned char id, unsigned*) : m_data(id) { }
+ TraceID(long long id, unsigned*) :
m_data(static_cast<unsigned long long>(id)) { }
- TraceID(long id, unsigned char*) :
+ TraceID(long id, unsigned*) :
m_data(static_cast<unsigned long long>(id)) { }
- TraceID(int id, unsigned char*) :
+ TraceID(int id, unsigned*) :
m_data(static_cast<unsigned long long>(id)) { }
- TraceID(short id, unsigned char*) :
+ TraceID(short id, unsigned*) :
m_data(static_cast<unsigned long long>(id)) { }
- TraceID(signed char id, unsigned char*) :
+ TraceID(signed char id, unsigned*) :
m_data(static_cast<unsigned long long>(id)) { }
unsigned long long data() const { return m_data; }
@@ -392,23 +411,25 @@ static inline TraceEventHandle addTraceEvent(
const unsigned char* categoryEnabled,
const char* name,
unsigned long long id,
+ unsigned long long bindId,
double timestamp,
- unsigned char flags)
+ unsigned flags)
{
return TRACE_EVENT_API_ADD_TRACE_EVENT(
- phase, categoryEnabled, name, id, timestamp,
+ phase, categoryEnabled, name, id, bindId, timestamp,
zeroNumArgs, 0, 0, 0,
flags);
}
-template<typename ARG1_TYPE>
+template <typename ARG1_TYPE>
static inline TraceEventHandle addTraceEvent(
char phase,
const unsigned char* categoryEnabled,
const char* name,
unsigned long long id,
+ unsigned long long bindId,
double timestamp,
- unsigned char flags,
+ unsigned flags,
const char* arg1Name,
const ARG1_TYPE& arg1Val)
{
@@ -418,14 +439,14 @@ static inline TraceEventHandle addTraceEvent(
setTraceValue(arg1Val, &argTypes[0], &argValues[0]);
if (isConvertableToTraceFormat(arg1Val)) {
return TRACE_EVENT_API_ADD_TRACE_EVENT(
- phase, categoryEnabled, name, id, timestamp,
+ phase, categoryEnabled, name, id, bindId, timestamp,
numArgs, &arg1Name, argTypes, argValues,
moveFromIfConvertableToTraceFormat(arg1Val),
nullptr,
flags);
}
return TRACE_EVENT_API_ADD_TRACE_EVENT(
- phase, categoryEnabled, name, id, timestamp,
+ phase, categoryEnabled, name, id, bindId, timestamp,
numArgs, &arg1Name, argTypes, argValues,
flags);
}
@@ -436,8 +457,9 @@ static inline TraceEventHandle addTraceEvent(
const unsigned char* categoryEnabled,
const char* name,
unsigned long long id,
+ unsigned long long bindId,
double timestamp,
- unsigned char flags,
+ unsigned flags,
const char* arg1Name,
const ARG1_TYPE& arg1Val,
const char* arg2Name,
@@ -451,14 +473,14 @@ static inline TraceEventHandle addTraceEvent(
setTraceValue(arg2Val, &argTypes[1], &argValues[1]);
if (isConvertableToTraceFormat(arg1Val) || isConvertableToTraceFormat(arg2Val)) {
return TRACE_EVENT_API_ADD_TRACE_EVENT(
- phase, categoryEnabled, name, id, timestamp,
+ phase, categoryEnabled, name, id, bindId, timestamp,
numArgs, argNames, argTypes, argValues,
moveFromIfConvertableToTraceFormat(arg1Val),
moveFromIfConvertableToTraceFormat(arg2Val),
flags);
}
return TRACE_EVENT_API_ADD_TRACE_EVENT(
- phase, categoryEnabled, name, id, timestamp,
+ phase, categoryEnabled, name, id, bindId, timestamp,
numArgs, argNames, argTypes, argValues,
flags);
}
@@ -468,9 +490,10 @@ static inline TraceEventHandle addTraceEvent(
const unsigned char* categoryEnabled,
const char* name,
unsigned long long id,
- unsigned char flags)
+ unsigned flags)
{
- return addTraceEvent(phase, categoryEnabled, name, id, systemTraceTime(), flags);
+ return addTraceEvent(phase, categoryEnabled, name, id, blink::TraceEvent::noBindId,
+ systemTraceTime(), flags);
}
template<typename ARG1_TYPE>
@@ -479,11 +502,12 @@ static inline TraceEventHandle addTraceEvent(
const unsigned char* categoryEnabled,
const char* name,
unsigned long long id,
- unsigned char flags,
+ unsigned flags,
const char* arg1Name,
const ARG1_TYPE& arg1Val)
{
- return addTraceEvent(phase, categoryEnabled, name, id, systemTraceTime(), flags, arg1Name, arg1Val);
+ return addTraceEvent(phase, categoryEnabled, name, id, blink::TraceEvent::noBindId,
+ systemTraceTime(), flags, arg1Name, arg1Val);
}
@@ -493,13 +517,14 @@ static inline TraceEventHandle addTraceEvent(
const unsigned char* categoryEnabled,
const char* name,
unsigned long long id,
- unsigned char flags,
+ unsigned flags,
const char* arg1Name,
const ARG1_TYPE& arg1Val,
const char* arg2Name,
const ARG2_TYPE& arg2Val)
{
- return addTraceEvent(phase, categoryEnabled, name, id, systemTraceTime(), flags, arg1Name, arg1Val, arg2Name, arg2Val);
+ return addTraceEvent(phase, categoryEnabled, name, id, blink::TraceEvent::noBindId,
+ systemTraceTime(), flags, arg1Name, arg1Val, arg2Name, arg2Val);
}
// Used by TRACE_EVENTx macro. Do not use directly.
« no previous file with comments | « third_party/WebKit/Source/platform/EventTracer.cpp ('k') | third_party/WebKit/public/platform/Platform.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698