| Index: content/browser/tracing/tracing_controller_impl.h | 
| diff --git a/content/browser/tracing/tracing_controller_impl.h b/content/browser/tracing/tracing_controller_impl.h | 
| index 0d2e4d81ddc448cdc8e2bfca9f2ab4e0b87c8805..5d1479a90294827bc3f37ee8df8ed5e294b1af61 100644 | 
| --- a/content/browser/tracing/tracing_controller_impl.h | 
| +++ b/content/browser/tracing/tracing_controller_impl.h | 
| @@ -11,6 +11,7 @@ | 
|  | 
| #include "base/lazy_instance.h" | 
| #include "base/trace_event/memory_dump_manager.h" | 
| +#include "base/trace_event/tracing_agent.h" | 
| #include "content/public/browser/tracing_controller.h" | 
|  | 
| namespace base { | 
| @@ -25,7 +26,8 @@ class TracingUI; | 
|  | 
| class TracingControllerImpl | 
| : public TracingController, | 
| -      public base::trace_event::MemoryDumpManagerDelegate { | 
| +      public base::trace_event::MemoryDumpManagerDelegate, | 
| +      public base::trace_event::TracingAgent { | 
| public: | 
| static TracingControllerImpl* GetInstance(); | 
|  | 
| @@ -55,6 +57,17 @@ class TracingControllerImpl | 
| void RegisterTracingUI(TracingUI* tracing_ui); | 
| void UnregisterTracingUI(TracingUI* tracing_ui); | 
|  | 
| +  // base::trace_event::TracingAgent implementation. | 
| +  std::string GetTracingAgentName() override; | 
| +  std::string GetTraceEventLabel() override; | 
| +  bool StartAgentTracing( | 
| +      const base::trace_event::TraceConfig& trace_config) override; | 
| +  void StopAgentTracing(const StopAgentTracingCallback& callback) override; | 
| +  bool SupportsExplicitClockSync() override; | 
| +  void RecordClockSyncMarker( | 
| +      int sync_id, | 
| +      const RecordClockSyncMarkerCallback& callback) override; | 
| + | 
| // base::trace_event::MemoryDumpManagerDelegate implementation. | 
| void RequestGlobalMemoryDump( | 
| const base::trace_event::MemoryDumpRequestArgs& args, | 
| @@ -122,12 +135,9 @@ class TracingControllerImpl | 
| TraceMessageFilter* trace_message_filter, | 
| const std::vector<std::string>& known_category_groups); | 
|  | 
| -#if defined(OS_CHROMEOS) || defined(OS_WIN) | 
| -  void OnEndSystemTracingAcked( | 
| -      const scoped_refptr<base::RefCountedString>& events_str_ptr); | 
| -#endif | 
| - | 
| -  void OnEndPowerTracingAcked( | 
| +  void OnEndAgentTracingAcked( | 
| +      const std::string& agent_name, | 
| +      const std::string& events_label, | 
| const scoped_refptr<base::RefCountedString>& events_str_ptr); | 
|  | 
| void OnCaptureMonitoringSnapshotAcked( | 
| @@ -151,7 +161,7 @@ class TracingControllerImpl | 
| int mode, | 
| const base::Closure& callback); | 
| void SetDisabledOnFileThread(const base::Closure& callback); | 
| -  void OnStartTracingDone( | 
| +  void OnStartAgentTracingDone( | 
| const base::trace_event::TraceConfig& trace_config, | 
| const StartTracingDoneCallback& callback); | 
| void OnStopTracingDone(); | 
| @@ -162,6 +172,9 @@ class TracingControllerImpl | 
|  | 
| void OnMonitoringStateChanged(bool is_monitoring); | 
|  | 
| +  // Issue clock sync markers to the tracing agents. | 
| +  void IssueClockSyncMarker(); | 
| + | 
| typedef std::set<scoped_refptr<TraceMessageFilter>> TraceMessageFilterSet; | 
| TraceMessageFilterSet trace_message_filters_; | 
|  | 
| @@ -186,12 +199,11 @@ class TracingControllerImpl | 
| uint64 pending_memory_dump_guid_; | 
| base::trace_event::MemoryDumpCallback pending_memory_dump_callback_; | 
|  | 
| -#if defined(OS_CHROMEOS) || defined(OS_WIN) | 
| -  bool is_system_tracing_; | 
| -#endif | 
| +  StartTracingDoneCallback start_tracing_done_callback_; | 
| +  std::vector<base::trace_event::TracingAgent*> additional_tracing_agents_; | 
| + | 
| bool is_tracing_; | 
| bool is_monitoring_; | 
| -  bool is_power_tracing_; | 
|  | 
| GetCategoriesDoneCallback pending_get_categories_done_callback_; | 
| GetTraceBufferUsageCallback pending_trace_buffer_usage_callback_; | 
|  |