| 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 81ce092a68d85ba8130b72e0825d335ffb4891e1..0c7b8ea7cae9a31c6ddf76985f089b68bee01eaa 100644
|
| --- a/content/browser/tracing/tracing_controller_impl.h
|
| +++ b/content/browser/tracing/tracing_controller_impl.h
|
| @@ -47,6 +47,7 @@
|
|
|
| class TracingControllerImpl
|
| : public TracingController,
|
| + public base::trace_event::MemoryDumpManagerDelegate,
|
| public base::trace_event::TracingAgent {
|
| public:
|
| // Create an endpoint that may be supplied to any TraceDataSink to
|
| @@ -87,6 +88,12 @@
|
| const std::string& sync_id,
|
| const RecordClockSyncMarkerCallback& callback) override;
|
|
|
| + // base::trace_event::MemoryDumpManagerDelegate implementation.
|
| + void RequestGlobalMemoryDump(
|
| + const base::trace_event::MemoryDumpRequestArgs& args,
|
| + const base::trace_event::MemoryDumpCallback& callback) override;
|
| + uint64_t GetTracingProcessId() const override;
|
| +
|
| class TraceMessageFilterObserver {
|
| public:
|
| virtual void OnTraceMessageFilterAdded(TraceMessageFilter* filter) = 0;
|
| @@ -99,6 +106,16 @@
|
| friend struct base::DefaultLazyInstanceTraits<TracingControllerImpl>;
|
| friend class TraceMessageFilter;
|
|
|
| + // The arguments and callback for an queued global memory dump request.
|
| + struct QueuedMemoryDumpRequest {
|
| + QueuedMemoryDumpRequest(
|
| + const base::trace_event::MemoryDumpRequestArgs& args,
|
| + const base::trace_event::MemoryDumpCallback& callback);
|
| + ~QueuedMemoryDumpRequest();
|
| + const base::trace_event::MemoryDumpRequestArgs args;
|
| + const base::trace_event::MemoryDumpCallback callback;
|
| + };
|
| +
|
| TracingControllerImpl();
|
| ~TracingControllerImpl() override;
|
|
|
| @@ -121,6 +138,8 @@
|
| bool can_get_trace_buffer_usage() const {
|
| return pending_trace_buffer_usage_callback_.is_null();
|
| }
|
| +
|
| + void PerformNextQueuedGlobalMemoryDump();
|
|
|
| // Methods for use by TraceMessageFilter.
|
| void AddTraceMessageFilter(TraceMessageFilter* trace_message_filter);
|
| @@ -151,6 +170,14 @@
|
|
|
| void OnTraceLogStatusReply(TraceMessageFilter* trace_message_filter,
|
| const base::trace_event::TraceLogStatus& status);
|
| + void OnProcessMemoryDumpResponse(TraceMessageFilter* trace_message_filter,
|
| + uint64_t dump_guid,
|
| + bool success);
|
| +
|
| + // Callback of MemoryDumpManager::CreateProcessDump().
|
| + void OnBrowserProcessMemoryDumpDone(uint64_t dump_guid, bool success);
|
| +
|
| + void FinalizeGlobalMemoryDumpIfAllProcessesReplied();
|
|
|
| void SetEnabledOnFileThread(
|
| const base::trace_event::TraceConfig& trace_config,
|
| @@ -191,6 +218,12 @@
|
| float maximum_trace_buffer_usage_;
|
| size_t approximate_event_count_;
|
|
|
| + // Pending acks for memory RequestGlobalDumpPoint.
|
| + int pending_memory_dump_ack_count_;
|
| + int failed_memory_dump_count_;
|
| + TraceMessageFilterSet pending_memory_dump_filters_;
|
| + std::list<QueuedMemoryDumpRequest> queued_memory_dump_requests_;
|
| +
|
| std::vector<base::trace_event::TracingAgent*> additional_tracing_agents_;
|
| int pending_clock_sync_ack_count_;
|
| base::OneShotTimer clock_sync_timer_;
|
|
|