| Index: content/browser/tracing/trace_controller_impl.h
|
| diff --git a/content/browser/tracing/trace_controller_impl.h b/content/browser/tracing/trace_controller_impl.h
|
| index f24d283a125972a2b5be848f418a972a929e0d7b..08afa52b2d6ff1608bee44bf350e144c40640824 100644
|
| --- a/content/browser/tracing/trace_controller_impl.h
|
| +++ b/content/browser/tracing/trace_controller_impl.h
|
| @@ -30,7 +30,13 @@ class TraceControllerImpl : public TraceController {
|
| virtual bool BeginTracing(TraceSubscriber* subscriber,
|
| const std::string& category_patterns,
|
| base::debug::TraceLog::Options options) OVERRIDE;
|
| - virtual bool EndTracingAsync(TraceSubscriber* subscriber) OVERRIDE;
|
| + virtual bool EndTracingAsync(TraceSubscriber* subscriber) OVERRIDE;
|
| + virtual bool BeginContinuousSamplingTracing(
|
| + TraceSubscriber* subscriber) OVERRIDE;
|
| + virtual bool EndContinuousSamplingTracing(
|
| + TraceSubscriber* subscriber) OVERRIDE;
|
| + virtual bool ShowContinuousSamplingTracingAsync(
|
| + TraceSubscriber* subscriber) OVERRIDE;
|
| virtual bool GetTraceBufferPercentFullAsync(
|
| TraceSubscriber* subscriber) OVERRIDE;
|
| virtual bool SetWatchEvent(TraceSubscriber* subscriber,
|
| @@ -50,14 +56,38 @@ class TraceControllerImpl : public TraceController {
|
| TraceControllerImpl();
|
| virtual ~TraceControllerImpl();
|
|
|
| - bool is_tracing_enabled() const {
|
| - return can_end_tracing();
|
| + bool can_begin_tracing(TraceSubscriber* subscriber) const {
|
| + return !is_tracing_ &&
|
| + (subscriber_ == NULL || subscriber == subscriber_);
|
| + }
|
| +
|
| + bool can_end_tracing(TraceSubscriber* subscriber) const {
|
| + return is_tracing_ && pending_end_ack_count_ == 0 &&
|
| + subscriber == subscriber_;
|
| }
|
|
|
| - bool can_end_tracing() const {
|
| + bool is_tracing_enabled() const {
|
| return is_tracing_ && pending_end_ack_count_ == 0;
|
| }
|
|
|
| + bool can_begin_continuous_sampling_tracing(
|
| + TraceSubscriber* subscriber) const {
|
| + return !is_continuous_sampling_tracing_ &&
|
| + (continuous_sampling_subscriber_ == NULL ||
|
| + subscriber == continuous_sampling_subscriber_);
|
| + }
|
| +
|
| + bool can_end_continuous_sampling_tracing(TraceSubscriber* subscriber) const {
|
| + return is_continuous_sampling_tracing_ &&
|
| + pending_show_continuous_sampling_ack_count_ == 0 &&
|
| + subscriber == continuous_sampling_subscriber_;
|
| + }
|
| +
|
| + bool is_continuous_sampling_tracing_enabled() const {
|
| + return is_continuous_sampling_tracing_ &&
|
| + pending_show_continuous_sampling_ack_count_ == 0;
|
| + }
|
| +
|
| // Can get Buffer Percent Full
|
| bool can_get_buffer_percent_full() const {
|
| return is_tracing_ &&
|
| @@ -65,30 +95,32 @@ class TraceControllerImpl : public TraceController {
|
| pending_bpf_ack_count_ == 0;
|
| }
|
|
|
| - bool can_begin_tracing(TraceSubscriber* subscriber) const {
|
| - return !is_tracing_ &&
|
| - (subscriber_ == NULL || subscriber == subscriber_);
|
| - }
|
| -
|
| // Methods for use by TraceMessageFilter.
|
|
|
| void AddFilter(TraceMessageFilter* filter);
|
| void RemoveFilter(TraceMessageFilter* filter);
|
| void OnTracingBegan(TraceSubscriber* subscriber);
|
| void OnEndTracingAck(const std::vector<std::string>& known_category_groups);
|
| + void OnShowContinuousSamplingTracingAck();
|
| void OnTraceDataCollected(
|
| const scoped_refptr<base::RefCountedString>& events_str_ptr);
|
| + void OnContinuousSamplingTraceDataCollected(
|
| + const scoped_refptr<base::RefCountedString>& events_str_ptr);
|
| void OnTraceNotification(int notification);
|
| void OnTraceBufferPercentFullReply(float percent_full);
|
|
|
| FilterMap filters_;
|
| TraceSubscriber* subscriber_;
|
| + TraceSubscriber* continuous_sampling_subscriber_;
|
| // Pending acks for EndTracingAsync:
|
| int pending_end_ack_count_;
|
| + // Pending acks for ShowContinuousSamplingTracingAsync:
|
| + int pending_show_continuous_sampling_ack_count_;
|
| // Pending acks for GetTraceBufferPercentFullAsync:
|
| int pending_bpf_ack_count_;
|
| float maximum_bpf_;
|
| bool is_tracing_;
|
| + bool is_continuous_sampling_tracing_;
|
| bool is_get_category_groups_;
|
| std::set<std::string> known_category_groups_;
|
| std::string watch_category_;
|
|
|