summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroysteine <oysteine@chromium.org>2015-09-21 20:43:00 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-22 03:43:51 +0000
commit30cdec53a706fb23404bc7c2497d4636d70dbb4f (patch)
tree59f1a627d93f5e5dae8888597b27d5816bfb7b7b
parentc20c4d903f17db15d5c4de452556eb0e34f30208 (diff)
downloadchromium_src-30cdec53a706fb23404bc7c2497d4636d70dbb4f.zip
chromium_src-30cdec53a706fb23404bc7c2497d4636d70dbb4f.tar.gz
chromium_src-30cdec53a706fb23404bc7c2497d4636d70dbb4f.tar.bz2
Background tracing: Histogram triggers now trigger on existing data
R=shatch Review URL: https://codereview.chromium.org/1342273002 Cr-Commit-Position: refs/heads/master@{#350103}
-rw-r--r--components/tracing/child_trace_message_filter.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/components/tracing/child_trace_message_filter.cc b/components/tracing/child_trace_message_filter.cc
index 17a3358..62e13ae 100644
--- a/components/tracing/child_trace_message_filter.cc
+++ b/components/tracing/child_trace_message_filter.cc
@@ -273,6 +273,36 @@ void ChildTraceMessageFilter::OnSetUMACallback(
histogram_name,
base::Bind(&ChildTraceMessageFilter::OnHistogramChanged, this,
histogram_name, histogram_lower_value, histogram_upper_value));
+
+ base::HistogramBase* existing_histogram =
+ base::StatisticsRecorder::FindHistogram(histogram_name);
+ if (!existing_histogram)
+ return;
+
+ scoped_ptr<base::HistogramSamples> samples =
+ existing_histogram->SnapshotSamples();
+ if (!samples)
+ return;
+
+ scoped_ptr<base::SampleCountIterator> sample_iterator = samples->Iterator();
+ if (!sample_iterator)
+ return;
+
+ while (!sample_iterator->Done()) {
+ base::HistogramBase::Sample min;
+ base::HistogramBase::Sample max;
+ base::HistogramBase::Count count;
+ sample_iterator->Get(&min, &max, &count);
+ if (min >= histogram_lower_value && max <= histogram_upper_value &&
+ count > 0) {
+ ipc_task_runner_->PostTask(
+ FROM_HERE, base::Bind(&ChildTraceMessageFilter::SendTriggerMessage,
+ this, histogram_name));
+ break;
+ }
+
+ sample_iterator->Next();
+ }
}
void ChildTraceMessageFilter::OnClearUMACallback(