Index: content/browser/tracing/background_tracing_manager_impl.cc |
diff --git a/content/browser/tracing/background_tracing_manager_impl.cc b/content/browser/tracing/background_tracing_manager_impl.cc |
index 70215ba36275cd92babc9fbfb646ad4638fad115..a22cd60e03968b7816b84085b620162c18086311 100644 |
--- a/content/browser/tracing/background_tracing_manager_impl.cc |
+++ b/content/browser/tracing/background_tracing_manager_impl.cc |
@@ -8,6 +8,7 @@ |
#include "base/json/json_writer.h" |
#include "base/macros.h" |
#include "base/metrics/histogram_macros.h" |
+#include "base/rand_util.h" |
#include "base/sys_info.h" |
#include "base/time/time.h" |
#include "content/browser/tracing/background_tracing_rule.h" |
@@ -281,6 +282,13 @@ void BackgroundTracingManagerImpl::OnRuleTriggered( |
StartedFinalizingCallback callback) { |
CHECK(config_); |
+ float trigger_chance = triggered_rule->trigger_chance(); |
+ if (trigger_chance < 1.0f && base::RandDouble() > trigger_chance) { |
+ if (!callback.is_null()) |
+ callback.Run(false); |
+ return; |
+ } |
+ |
int trace_timeout = triggered_rule->GetTraceTimeout(); |
if (config_->tracing_mode() == BackgroundTracingConfigImpl::REACTIVE) { |