| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 #include <v8-tracing.h> |
| 4 | 5 |
| 5 #include "base/debug/trace_event.h" | 6 #include "base/debug/trace_event.h" |
| 6 #include "skia/ext/event_tracer_impl.h" | 7 #include "event_tracer_impl.h" |
| 7 #include "third_party/skia/include/utils/SkEventTracer.h" | |
| 8 | 8 |
| 9 namespace skia { | 9 namespace gin { |
| 10 | 10 |
| 11 class SkChromiumEventTracer: public SkEventTracer { | 11 class ChromiumEventTracer: public v8::EventTracer { |
| 12 const uint8_t* getCategoryGroupEnabled(const char* name) override; | 12 const uint8_t* getCategoryGroupEnabled(const char* name) override; |
| 13 const char* getCategoryGroupName(const uint8_t* categoryEnabledFlag) override; | 13 const char* getCategoryGroupName(const uint8_t* categoryEnabledFlag) override; |
| 14 SkEventTracer::Handle addTraceEvent(char phase, | 14 EventTracer::Handle addTraceEvent(char phase, |
| 15 const uint8_t* categoryEnabledFlag, | 15 const uint8_t* categoryEnabledFlag, |
| 16 const char* name, | 16 const char* name, |
| 17 uint64_t id, | 17 uint64_t id, |
| 18 int32_t numArgs, | 18 int32_t numArgs, |
| 19 const char** argNames, | 19 const char** argNames, |
| 20 const uint8_t* argTypes, | 20 const uint8_t* argTypes, |
| 21 const uint64_t* argValues, | 21 const uint64_t* argValues, |
| 22 uint8_t flags) override; | 22 uint8_t flags) override; |
| 23 void updateTraceEventDuration(const uint8_t* categoryEnabledFlag, | 23 void updateTraceEventDuration(const uint8_t* categoryEnabledFlag, |
| 24 const char* name, | 24 const char* name, |
| 25 SkEventTracer::Handle handle) override; | 25 EventTracer::Handle handle) override; |
| 26 }; | 26 }; |
| 27 | 27 |
| 28 const uint8_t* | 28 const uint8_t* |
| 29 SkChromiumEventTracer::getCategoryGroupEnabled(const char* name) { | 29 ChromiumEventTracer::getCategoryGroupEnabled(const char* name) { |
| 30 return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(name); | 30 return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(name); |
| 31 } | 31 } |
| 32 | 32 |
| 33 const char* SkChromiumEventTracer::getCategoryGroupName( | 33 const char* ChromiumEventTracer::getCategoryGroupName( |
| 34 const uint8_t* categoryEnabledFlag) { | 34 const uint8_t* categoryEnabledFlag) { |
| 35 return base::debug::TraceLog::GetCategoryGroupName( | 35 return base::debug::TraceLog::GetCategoryGroupName( |
| 36 categoryEnabledFlag); | 36 categoryEnabledFlag); |
| 37 } | 37 } |
| 38 | 38 |
| 39 SkEventTracer::Handle | 39 v8::EventTracer::Handle |
| 40 SkChromiumEventTracer::addTraceEvent(char phase, | 40 ChromiumEventTracer::addTraceEvent(char phase, |
| 41 const uint8_t* categoryEnabledFlag, | 41 const uint8_t* categoryEnabledFlag, |
| 42 const char* name, | 42 const char* name, |
| 43 uint64_t id, | 43 uint64_t id, |
| 44 int32_t numArgs, | 44 int32_t numArgs, |
| 45 const char** argNames, | 45 const char** argNames, |
| 46 const uint8_t* argTypes, | 46 const uint8_t* argTypes, |
| 47 const uint64_t* argValues, | 47 const uint64_t* argValues, |
| 48 uint8_t flags) { | 48 uint8_t flags) { |
| 49 base::debug::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT( | 49 base::debug::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT( |
| 50 phase, categoryEnabledFlag, name, id, numArgs, argNames, | 50 phase, categoryEnabledFlag, name, id, numArgs, argNames, |
| 51 argTypes, (const long long unsigned int*) argValues, NULL, flags); | 51 argTypes, (const long long unsigned int*) argValues, NULL, flags); |
| 52 SkEventTracer::Handle result; | 52 EventTracer::Handle result; |
| 53 memcpy(&result, &handle, sizeof(result)); | 53 memcpy(&result, &handle, sizeof(result)); |
| 54 return result; | 54 return result; |
| 55 } | 55 } |
| 56 | 56 |
| 57 void | 57 void |
| 58 SkChromiumEventTracer::updateTraceEventDuration( | 58 ChromiumEventTracer::updateTraceEventDuration( |
| 59 const uint8_t* categoryEnabledFlag, | 59 const uint8_t* categoryEnabledFlag, |
| 60 const char *name, | 60 const char *name, |
| 61 SkEventTracer::Handle handle) { | 61 EventTracer::Handle handle) { |
| 62 base::debug::TraceEventHandle traceEventHandle; | 62 base::debug::TraceEventHandle traceEventHandle; |
| 63 memcpy(&traceEventHandle, &handle, sizeof(handle)); | 63 memcpy(&traceEventHandle, &handle, sizeof(handle)); |
| 64 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( | 64 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION( |
| 65 categoryEnabledFlag, name, traceEventHandle); | 65 categoryEnabledFlag, name, traceEventHandle); |
| 66 } | 66 } |
| 67 | 67 |
| 68 } // namespace skia | 68 } // namespace gin |
| 69 | 69 |
| 70 | 70 |
| 71 void InitSkiaEventTracer() { | 71 void InitV8EventTracer() { |
| 72 // Initialize the binding to Skia's tracing events. Skia will | 72 // Initialize the binding to ia's tracing events. ia will |
| 73 // take ownership of and clean up the memory allocated here. | 73 // take ownership of and clean up the memory allocated here. |
| 74 SkEventTracer::SetInstance(new skia::SkChromiumEventTracer()); | 74 v8::EventTracer::SetInstance(new gin::ChromiumEventTracer()); |
| 75 } | 75 } |
| OLD | NEW |