diff options
author | oysteine <oysteine@chromium.org> | 2015-09-21 20:43:00 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-22 03:43:51 +0000 |
commit | 30cdec53a706fb23404bc7c2497d4636d70dbb4f (patch) | |
tree | 59f1a627d93f5e5dae8888597b27d5816bfb7b7b | |
parent | c20c4d903f17db15d5c4de452556eb0e34f30208 (diff) | |
download | chromium_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.cc | 30 |
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( |