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

Side by Side Diff: content/public/browser/tracing_controller.h

Issue 1678503002: Tracing: Removed monitoring mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 unified diff | Download patch
« no previous file with comments | « content/browser/tracing/tracing_ui.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef CONTENT_PUBLIC_BROWSER_TRACING_CONTROLLER_H_ 5 #ifndef CONTENT_PUBLIC_BROWSER_TRACING_CONTROLLER_H_
6 #define CONTENT_PUBLIC_BROWSER_TRACING_CONTROLLER_H_ 6 #define CONTENT_PUBLIC_BROWSER_TRACING_CONTROLLER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <set> 10 #include <set>
(...skipping 12 matching lines...) Expand all
23 23
24 // TracingController is used on the browser processes to enable/disable 24 // TracingController is used on the browser processes to enable/disable
25 // tracing status and collect trace data. Only the browser UI thread is allowed 25 // tracing status and collect trace data. Only the browser UI thread is allowed
26 // to interact with the TracingController object. All callbacks are called on 26 // to interact with the TracingController object. All callbacks are called on
27 // the UI thread. 27 // the UI thread.
28 class TracingController { 28 class TracingController {
29 public: 29 public:
30 30
31 CONTENT_EXPORT static TracingController* GetInstance(); 31 CONTENT_EXPORT static TracingController* GetInstance();
32 32
33 // An interface for trace data consumer. An implemnentation of this interface 33 // An interface for trace data consumer. An implementation of this interface
34 // is passed to either DisableTracing() or CaptureMonitoringSnapshot() and 34 // is passed to DisableTracing() and receives the trace data
35 // receives the trace data followed by a notification that all child processes 35 // followed by a notification that all child processes
36 // have completed tracing and the data collection is over. 36 // have completed tracing and the data collection is over.
37 // All methods are called on the UI thread. 37 // All methods are called on the UI thread.
38 // Close method will be called exactly once and no methods will be 38 // Close method will be called exactly once and no methods will be
39 // called after that. 39 // called after that.
40 class CONTENT_EXPORT TraceDataSink 40 class CONTENT_EXPORT TraceDataSink
41 : public base::RefCountedThreadSafe<TraceDataSink> { 41 : public base::RefCountedThreadSafe<TraceDataSink> {
42 public: 42 public:
43 TraceDataSink(); 43 TraceDataSink();
44 44
45 virtual void AddTraceChunk(const std::string& chunk) {} 45 virtual void AddTraceChunk(const std::string& chunk) {}
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 virtual void ReceiveTraceChunk(const std::string& chunk) {} 83 virtual void ReceiveTraceChunk(const std::string& chunk) {}
84 virtual void ReceiveTraceFinalContents( 84 virtual void ReceiveTraceFinalContents(
85 scoped_ptr<const base::DictionaryValue> metadata, 85 scoped_ptr<const base::DictionaryValue> metadata,
86 const std::string& contents) {} 86 const std::string& contents) {}
87 87
88 protected: 88 protected:
89 friend class base::RefCountedThreadSafe<TraceDataEndpoint>; 89 friend class base::RefCountedThreadSafe<TraceDataEndpoint>;
90 virtual ~TraceDataEndpoint() {} 90 virtual ~TraceDataEndpoint() {}
91 }; 91 };
92 92
93 // Create a trace sink that may be supplied to StopTracing or 93 // Create a trace sink that may be supplied to StopTracing
94 // CaptureMonitoringSnapshot to capture the trace data as a string. 94 // to capture the trace data as a string.
95 CONTENT_EXPORT static scoped_refptr<TraceDataSink> CreateStringSink( 95 CONTENT_EXPORT static scoped_refptr<TraceDataSink> CreateStringSink(
96 const base::Callback<void(scoped_ptr<const base::DictionaryValue>, 96 const base::Callback<void(scoped_ptr<const base::DictionaryValue>,
97 base::RefCountedString*)>& callback); 97 base::RefCountedString*)>& callback);
98 98
99 CONTENT_EXPORT static scoped_refptr<TraceDataSink> CreateCompressedStringSink( 99 CONTENT_EXPORT static scoped_refptr<TraceDataSink> CreateCompressedStringSink(
100 scoped_refptr<TraceDataEndpoint> endpoint); 100 scoped_refptr<TraceDataEndpoint> endpoint);
101 101
102 // Create a trace sink that may be supplied to StopTracing or 102 // Create a trace sink that may be supplied to StopTracing
103 // CaptureMonitoringSnapshot to dump the trace data to a file. 103 // to dump the trace data to a file.
104 CONTENT_EXPORT static scoped_refptr<TraceDataSink> CreateFileSink( 104 CONTENT_EXPORT static scoped_refptr<TraceDataSink> CreateFileSink(
105 const base::FilePath& file_path, 105 const base::FilePath& file_path,
106 const base::Closure& callback); 106 const base::Closure& callback);
107 107
108 // Create an endpoint that may be supplied to any TraceDataSink to 108 // Create an endpoint that may be supplied to any TraceDataSink to
109 // dump the trace data to a callback. 109 // dump the trace data to a callback.
110 CONTENT_EXPORT static scoped_refptr<TraceDataEndpoint> CreateCallbackEndpoint( 110 CONTENT_EXPORT static scoped_refptr<TraceDataEndpoint> CreateCallbackEndpoint(
111 const base::Callback<void(scoped_ptr<const base::DictionaryValue>, 111 const base::Callback<void(scoped_ptr<const base::DictionaryValue>,
112 base::RefCountedString*)>& callback); 112 base::RefCountedString*)>& callback);
113 113
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 // TracingFileResultCallback will be called back with a file that contains 163 // TracingFileResultCallback will be called back with a file that contains
164 // the traced data. 164 // the traced data.
165 // 165 //
166 // If |trace_data_sink| is not null, it will receive chunks of trace data 166 // If |trace_data_sink| is not null, it will receive chunks of trace data
167 // as a comma-separated sequences of JSON-stringified events, followed by 167 // as a comma-separated sequences of JSON-stringified events, followed by
168 // a notification that the trace collection is finished. 168 // a notification that the trace collection is finished.
169 // 169 //
170 virtual bool StopTracing( 170 virtual bool StopTracing(
171 const scoped_refptr<TraceDataSink>& trace_data_sink) = 0; 171 const scoped_refptr<TraceDataSink>& trace_data_sink) = 0;
172 172
173 // Start monitoring on all processes.
174 //
175 // Monitoring begins immediately locally, and asynchronously on child
176 // processes as soon as they receive the StartMonitoring request.
177 //
178 // Once all child processes have acked to the StartMonitoring request,
179 // StartMonitoringDoneCallback will be called back.
180 //
181 // |category_filter| is a filter to control what category groups should be
182 // traced.
183 //
184 // |trace_config| controls what kind of tracing is enabled.
185 typedef base::Callback<void()> StartMonitoringDoneCallback;
186 virtual bool StartMonitoring(
187 const base::trace_event::TraceConfig& trace_config,
188 const StartMonitoringDoneCallback& callback) = 0;
189
190 // Stop monitoring on all processes.
191 //
192 // Once all child processes have acked to the StopMonitoring request,
193 // StopMonitoringDoneCallback is called back.
194 typedef base::Callback<void()> StopMonitoringDoneCallback;
195 virtual bool StopMonitoring(
196 const StopMonitoringDoneCallback& callback) = 0;
197
198 // Get the current monitoring configuration.
199 virtual void GetMonitoringStatus(
200 bool* out_enabled,
201 base::trace_event::TraceConfig* out_trace_config) = 0;
202
203 // Get the current monitoring traced data.
204 //
205 // Child processes typically are caching trace data and only rarely flush
206 // and send trace data back to the browser process. That is because it may be
207 // an expensive operation to send the trace data over IPC, and we would like
208 // to avoid much runtime overhead of tracing. So, to end tracing, we must
209 // asynchronously ask all child processes to flush any pending trace data.
210 //
211 // Once all child processes have acked to the CaptureMonitoringSnapshot
212 // request, TracingFileResultCallback will be called back with a file that
213 // contains the traced data.
214 //
215 // If |trace_data_sink| is not null, it will receive chunks of trace data
216 // as a comma-separated sequences of JSON-stringified events, followed by
217 // a notification that the trace collection is finished.
218 virtual bool CaptureMonitoringSnapshot(
219 const scoped_refptr<TraceDataSink>& trace_data_sink) = 0;
220
221 // Get the maximum across processes of trace buffer percent full state. 173 // Get the maximum across processes of trace buffer percent full state.
222 // When the TraceBufferUsage value is determined, the callback is 174 // When the TraceBufferUsage value is determined, the callback is
223 // called. 175 // called.
224 typedef base::Callback<void(float, size_t)> GetTraceBufferUsageCallback; 176 typedef base::Callback<void(float, size_t)> GetTraceBufferUsageCallback;
225 virtual bool GetTraceBufferUsage( 177 virtual bool GetTraceBufferUsage(
226 const GetTraceBufferUsageCallback& callback) = 0; 178 const GetTraceBufferUsageCallback& callback) = 0;
227 179
228 // |callback| will will be called every time the given event occurs on any 180 // |callback| will will be called every time the given event occurs on any
229 // process. 181 // process.
230 typedef base::Callback<void()> WatchEventCallback; 182 typedef base::Callback<void()> WatchEventCallback;
231 virtual bool SetWatchEvent(const std::string& category_name, 183 virtual bool SetWatchEvent(const std::string& category_name,
232 const std::string& event_name, 184 const std::string& event_name,
233 const WatchEventCallback& callback) = 0; 185 const WatchEventCallback& callback) = 0;
234 186
235 // Cancel the watch event. If tracing is enabled, this may race with the 187 // Cancel the watch event. If tracing is enabled, this may race with the
236 // watch event callback. 188 // watch event callback.
237 virtual bool CancelWatchEvent() = 0; 189 virtual bool CancelWatchEvent() = 0;
238 190
239 // Check if the tracing system is tracing 191 // Check if the tracing system is tracing
240 virtual bool IsTracing() const = 0; 192 virtual bool IsTracing() const = 0;
241 193
242 protected: 194 protected:
243 virtual ~TracingController() {} 195 virtual ~TracingController() {}
244 }; 196 };
245 197
246 } // namespace content 198 } // namespace content
247 199
248 #endif // CONTENT_PUBLIC_BROWSER_TRACING_CONTROLLER_H_ 200 #endif // CONTENT_PUBLIC_BROWSER_TRACING_CONTROLLER_H_
OLDNEW
« no previous file with comments | « content/browser/tracing/tracing_ui.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698