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

Unified Diff: content/browser/tracing/trace_controller_impl.h

Issue 23556003: Implement about:tracing UI for the sampling profiler (Chromium part) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/tracing/tracing_messages.h ('k') | content/browser/tracing/trace_controller_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_;
« no previous file with comments | « components/tracing/tracing_messages.h ('k') | content/browser/tracing/trace_controller_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698