1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_PUBLIC_BROWSER_TRACE_SUBSCRIBER_H_ 6 #define CONTENT_PUBLIC_BROWSER_TRACE_SUBSCRIBER_H_ 7 8 #include <set> 9 10 #include "base/memory/ref_counted_memory.h" 11 12 namespace content { 13 14 // Objects interested in receiving trace data derive from TraceSubscriber. All 15 // callbacks occur on the UI thread. 16 // See also: trace_message_filter.h 17 // See also: child_trace_message_filter.h 18 class TraceSubscriber { 19 public: 20 // Called once after TraceController::EndTracingAsync. 21 virtual void OnEndTracingComplete() = 0; 22 23 // Called 0 or more times between TraceController::BeginTracing and 24 // OnEndTracingComplete. Use base::debug::TraceResultBuffer to convert one or 25 // more trace fragments to JSON. 26 virtual void OnTraceDataCollected( 27 const scoped_refptr<base::RefCountedString>& trace_fragment) = 0; 28 29 // Called once after TraceController::GetKnownCategoryGroupsAsync. 30 virtual void OnKnownCategoriesCollected( 31 const std::set<std::string>& known_categories) {} 32 33 virtual void OnTraceBufferPercentFullReply(float percent_full) {} 34 35 virtual void OnEventWatchNotification() {} 36 37 protected: 38 virtual ~TraceSubscriber() {} 39 }; 40 41 } // namespace content 42 43 #endif // CONTENT_PUBLIC_BROWSER_TRACE_SUBSCRIBER_H_ 44