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 21d6125b788d6f955b14abdd767a639fb0de19a8..5f1e8df0766e2ff692d4782540ea077c176cda0a 100644 |
--- a/content/browser/tracing/background_tracing_manager_impl.cc |
+++ b/content/browser/tracing/background_tracing_manager_impl.cc |
@@ -9,6 +9,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" |
@@ -314,6 +315,13 @@ void BackgroundTracingManagerImpl::OnRuleTriggered( |
StartedFinalizingCallback callback) { |
CHECK(config_); |
+ double trigger_chance = triggered_rule->trigger_chance(); |
+ if (trigger_chance < 1.0 && base::RandDouble() > trigger_chance) { |
+ if (!callback.is_null()) |
+ callback.Run(false); |
+ return; |
+ } |
+ |
int trace_timeout = triggered_rule->GetTraceTimeout(); |
if (config_->tracing_mode() == BackgroundTracingConfigImpl::REACTIVE) { |