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 | 4 |
5 #include <stdint.h> | 5 #include <stdint.h> |
6 | 6 |
| 7 #include "base/trace_event/heap_profiler_allocation_context_tracker.h" |
7 #include "base/trace_event/trace_event.h" | 8 #include "base/trace_event/trace_event.h" |
8 #include "skia/ext/event_tracer_impl.h" | 9 #include "skia/ext/event_tracer_impl.h" |
9 #include "third_party/skia/include/utils/SkEventTracer.h" | 10 #include "third_party/skia/include/utils/SkEventTracer.h" |
10 | 11 |
11 namespace skia { | 12 namespace skia { |
12 | 13 |
13 class SkChromiumEventTracer: public SkEventTracer { | 14 class SkChromiumEventTracer: public SkEventTracer { |
14 const uint8_t* getCategoryGroupEnabled(const char* name) override; | 15 const uint8_t* getCategoryGroupEnabled(const char* name) override; |
15 const char* getCategoryGroupName(const uint8_t* categoryEnabledFlag) override; | 16 const char* getCategoryGroupName(const uint8_t* categoryEnabledFlag) override; |
16 SkEventTracer::Handle addTraceEvent(char phase, | 17 SkEventTracer::Handle addTraceEvent(char phase, |
17 const uint8_t* categoryEnabledFlag, | 18 const uint8_t* categoryEnabledFlag, |
18 const char* name, | 19 const char* name, |
19 uint64_t id, | 20 uint64_t id, |
20 int32_t numArgs, | 21 int32_t numArgs, |
21 const char** argNames, | 22 const char** argNames, |
22 const uint8_t* argTypes, | 23 const uint8_t* argTypes, |
23 const uint64_t* argValues, | 24 const uint64_t* argValues, |
24 uint8_t flags) override; | 25 uint8_t flags) override; |
25 void updateTraceEventDuration(const uint8_t* categoryEnabledFlag, | 26 void updateTraceEventDuration(const uint8_t* categoryEnabledFlag, |
26 const char* name, | 27 const char* name, |
27 SkEventTracer::Handle handle) override; | 28 SkEventTracer::Handle handle) override; |
| 29 void pushPseudoStackFrame(const char* stack_frame) override; |
| 30 void popPseudoStackFrame(const char* stack_frame) override; |
28 }; | 31 }; |
29 | 32 |
30 const uint8_t* | 33 const uint8_t* |
31 SkChromiumEventTracer::getCategoryGroupEnabled(const char* name) { | 34 SkChromiumEventTracer::getCategoryGroupEnabled(const char* name) { |
32 return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(name); | 35 return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(name); |
33 } | 36 } |
34 | 37 |
| 38 void SkChromiumEventTracer::pushPseudoStackFrame(const char* stack_frame) { |
| 39 base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread() |
| 40 ->PushPseudoStackFrame(stack_frame); |
| 41 } |
| 42 |
| 43 void SkChromiumEventTracer::popPseudoStackFrame(const char* stack_frame) { |
| 44 base::trace_event::AllocationContextTracker::GetInstanceForCurrentThread() |
| 45 ->PopPseudoStackFrame(stack_frame); |
| 46 } |
| 47 |
35 const char* SkChromiumEventTracer::getCategoryGroupName( | 48 const char* SkChromiumEventTracer::getCategoryGroupName( |
36 const uint8_t* categoryEnabledFlag) { | 49 const uint8_t* categoryEnabledFlag) { |
37 return base::trace_event::TraceLog::GetCategoryGroupName(categoryEnabledFlag); | 50 return base::trace_event::TraceLog::GetCategoryGroupName(categoryEnabledFlag); |
38 } | 51 } |
39 | 52 |
40 SkEventTracer::Handle | 53 SkEventTracer::Handle |
41 SkChromiumEventTracer::addTraceEvent(char phase, | 54 SkChromiumEventTracer::addTraceEvent(char phase, |
42 const uint8_t* categoryEnabledFlag, | 55 const uint8_t* categoryEnabledFlag, |
43 const char* name, | 56 const char* name, |
44 uint64_t id, | 57 uint64_t id, |
(...skipping 24 matching lines...) Expand all Loading... |
69 | 82 |
70 } // namespace skia | 83 } // namespace skia |
71 | 84 |
72 | 85 |
73 void InitSkiaEventTracer() { | 86 void InitSkiaEventTracer() { |
74 // Initialize the binding to Skia's tracing events. Skia will | 87 // Initialize the binding to Skia's tracing events. Skia will |
75 // take ownership of and clean up the memory allocated here. | 88 // take ownership of and clean up the memory allocated here. |
76 if (!SkEventTracer::GetInstance()) | 89 if (!SkEventTracer::GetInstance()) |
77 SkEventTracer::SetInstance(new skia::SkChromiumEventTracer()); | 90 SkEventTracer::SetInstance(new skia::SkChromiumEventTracer()); |
78 } | 91 } |
OLD | NEW |