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

Unified Diff: content/browser/tracing/background_tracing_rule.cc

Issue 1427873003: Background tracing: Added trace_chance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review fixes Created 5 years, 2 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
Index: content/browser/tracing/background_tracing_rule.cc
diff --git a/content/browser/tracing/background_tracing_rule.cc b/content/browser/tracing/background_tracing_rule.cc
index cd78b1b10940a7d4c1b4cd3d83528335fef51e37..f09608ab0b772cbe4e955eb0618e96192a33c1bd 100644
--- a/content/browser/tracing/background_tracing_rule.cc
+++ b/content/browser/tracing/background_tracing_rule.cc
@@ -22,6 +22,7 @@ const char kConfigRuleKey[] = "rule";
const char kConfigCategoryKey[] = "category";
const char kConfigRuleTriggerNameKey[] = "trigger_name";
const char kConfigRuleTriggerDelay[] = "trigger_delay";
+const char kConfigRuleTriggerChance[] = "trigger_chance";
const char kConfigRuleHistogramNameKey[] = "histogram_name";
const char kConfigRuleHistogramValueOldKey[] = "histogram_value";
@@ -55,7 +56,7 @@ const int kReactiveTraceRandomStartTimeMax = 120;
namespace content {
-BackgroundTracingRule::BackgroundTracingRule() {}
+BackgroundTracingRule::BackgroundTracingRule() : trigger_chance_(1.0) {}
BackgroundTracingRule::~BackgroundTracingRule() {}
@@ -73,6 +74,16 @@ int BackgroundTracingRule::GetTraceTimeout() const {
return -1;
}
+void BackgroundTracingRule::IntoDict(base::DictionaryValue* dict) const {
+ DCHECK(dict);
+ if (trigger_chance_ < 1.0)
+ dict->SetDouble(kConfigRuleTriggerChance, trigger_chance_);
+}
+
+void BackgroundTracingRule::Setup(const base::DictionaryValue* dict) {
+ dict->GetDouble(kConfigRuleTriggerChance, &trigger_chance_);
+}
+
namespace {
class NamedTriggerRule : public BackgroundTracingRule {
@@ -93,6 +104,7 @@ class NamedTriggerRule : public BackgroundTracingRule {
void IntoDict(base::DictionaryValue* dict) const override {
DCHECK(dict);
+ BackgroundTracingRule::IntoDict(dict);
dict->SetString(kConfigRuleKey, kPreemptiveConfigRuleMonitorNamed);
dict->SetString(kConfigRuleTriggerNameKey, named_event_.c_str());
}
@@ -173,6 +185,7 @@ class HistogramRule : public BackgroundTracingRule,
void IntoDict(base::DictionaryValue* dict) const override {
DCHECK(dict);
+ BackgroundTracingRule::IntoDict(dict);
dict->SetString(kConfigRuleKey, kPreemptiveConfigRuleMonitorHistogram);
dict->SetString(kConfigRuleHistogramNameKey, histogram_name_.c_str());
dict->SetInteger(kConfigRuleHistogramValue1Key, histogram_lower_value_);
@@ -265,6 +278,7 @@ class ReactiveTraceForNSOrTriggerOrFullRule : public BackgroundTracingRule {
// BackgroundTracingRule implementation
void IntoDict(base::DictionaryValue* dict) const override {
DCHECK(dict);
+ BackgroundTracingRule::IntoDict(dict);
dict->SetString(
kConfigCategoryKey,
BackgroundTracingConfigImpl::CategoryPresetToString(category_preset_));
@@ -326,6 +340,7 @@ class ReactiveTraceAtRandomIntervalsRule : public BackgroundTracingRule {
void IntoDict(base::DictionaryValue* dict) const override {
DCHECK(dict);
+ BackgroundTracingRule::IntoDict(dict);
dict->SetString(
kConfigCategoryKey,
BackgroundTracingConfigImpl::CategoryPresetToString(category_preset_));
@@ -404,13 +419,16 @@ scoped_ptr<BackgroundTracingRule> BackgroundTracingRule::PreemptiveRuleFromDict(
if (!dict->GetString(kConfigRuleKey, &type))
return nullptr;
+ scoped_ptr<BackgroundTracingRule> tracing_rule;
if (type == kPreemptiveConfigRuleMonitorNamed)
- return NamedTriggerRule::Create(dict);
+ tracing_rule = NamedTriggerRule::Create(dict);
+ else if (type == kPreemptiveConfigRuleMonitorHistogram)
+ tracing_rule = HistogramRule::Create(dict);
- if (type == kPreemptiveConfigRuleMonitorHistogram)
- return HistogramRule::Create(dict);
+ if (tracing_rule)
+ tracing_rule->Setup(dict);
- return nullptr;
+ return tracing_rule;
}
scoped_ptr<BackgroundTracingRule> BackgroundTracingRule::ReactiveRuleFromDict(
@@ -422,13 +440,20 @@ scoped_ptr<BackgroundTracingRule> BackgroundTracingRule::ReactiveRuleFromDict(
if (!dict->GetString(kConfigRuleKey, &type))
return nullptr;
- if (type == kReactiveConfigRuleTraceOnNavigationUntilTriggerOrFull)
- return ReactiveTraceForNSOrTriggerOrFullRule::Create(dict, category_preset);
+ scoped_ptr<BackgroundTracingRule> tracing_rule;
+
+ if (type == kReactiveConfigRuleTraceOnNavigationUntilTriggerOrFull) {
+ tracing_rule =
+ ReactiveTraceForNSOrTriggerOrFullRule::Create(dict, category_preset);
+ } else if (type == kReactiveConfigRuleTraceAtRandomIntervals) {
+ tracing_rule =
+ ReactiveTraceAtRandomIntervalsRule::Create(dict, category_preset);
+ }
- if (type == kReactiveConfigRuleTraceAtRandomIntervals)
- return ReactiveTraceAtRandomIntervalsRule::Create(dict, category_preset);
+ if (tracing_rule)
+ tracing_rule->Setup(dict);
- return nullptr;
+ return tracing_rule;
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698