| Index: base/trace_event/trace_log.h
|
| diff --git a/base/trace_event/trace_log.h b/base/trace_event/trace_log.h
|
| index 468160dff07a05702e5a148b3acef08ea5ea2506..8cddf272b26926b57fe7db5e963b5cd5db7994ce 100644
|
| --- a/base/trace_event/trace_log.h
|
| +++ b/base/trace_event/trace_log.h
|
| @@ -60,7 +60,9 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider {
|
| // Category group enabled by SetEventCallbackEnabled().
|
| ENABLED_FOR_EVENT_CALLBACK = 1 << 2,
|
| // Category group enabled to export events to ETW.
|
| - ENABLED_FOR_ETW_EXPORT = 1 << 3
|
| + ENABLED_FOR_ETW_EXPORT = 1 << 3,
|
| + // Category group being filtered before logged.
|
| + ENABLED_FOR_FILTERING = 1 << 4
|
| };
|
|
|
| static TraceLog* GetInstance();
|
| @@ -286,6 +288,10 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider {
|
| const char* name,
|
| TraceEventHandle handle);
|
|
|
| + void EndFilteredEvent(const unsigned char* category_group_enabled,
|
| + const char* name,
|
| + TraceEventHandle handle);
|
| +
|
| // For every matching event, the callback will be called.
|
| typedef base::Callback<void()> WatchEventCallback;
|
| void SetWatchEvent(const std::string& category_name,
|
| @@ -306,6 +312,21 @@ class BASE_EXPORT TraceLog : public MemoryDumpProvider {
|
| // Allows deleting our singleton instance.
|
| static void DeleteForTesting();
|
|
|
| + class TraceEventFilter {
|
| + public:
|
| + TraceEventFilter() {}
|
| + virtual ~TraceEventFilter() {}
|
| + virtual bool FilterTraceEvent(const TraceEvent& trace_event) const = 0;
|
| + virtual void EndEvent(const char* category_group, const char* name) {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(TraceEventFilter);
|
| + };
|
| + typedef std::unique_ptr<TraceEventFilter> (
|
| + *TraceEventFilterConstructorForTesting)(void);
|
| + static void SetTraceEventFilterConstructorForTesting(
|
| + TraceEventFilterConstructorForTesting predicate);
|
| +
|
| // Allow tests to inspect TraceEvents.
|
| TraceEvent* GetEventByHandle(TraceEventHandle handle);
|
|
|
|
|