OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
| 5 #include "content/browser/tracing/background_tracing_config_impl.h" |
| 6 |
| 7 #include <utility> |
| 8 |
5 #include "base/macros.h" | 9 #include "base/macros.h" |
6 #include "base/values.h" | 10 #include "base/values.h" |
7 #include "content/browser/tracing/background_tracing_config_impl.h" | |
8 #include "content/browser/tracing/background_tracing_rule.h" | 11 #include "content/browser/tracing/background_tracing_rule.h" |
9 | 12 |
10 namespace content { | 13 namespace content { |
11 | 14 |
12 namespace { | 15 namespace { |
13 | 16 |
14 const char kConfigsKey[] = "configs"; | 17 const char kConfigsKey[] = "configs"; |
15 | 18 |
16 const char kConfigModeKey[] = "mode"; | 19 const char kConfigModeKey[] = "mode"; |
17 const char kConfigModePreemptive[] = "PREEMPTIVE_TRACING_MODE"; | 20 const char kConfigModePreemptive[] = "PREEMPTIVE_TRACING_MODE"; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 case BackgroundTracingConfigImpl::REACTIVE: | 107 case BackgroundTracingConfigImpl::REACTIVE: |
105 dict->SetString(kConfigModeKey, kConfigModeReactive); | 108 dict->SetString(kConfigModeKey, kConfigModeReactive); |
106 break; | 109 break; |
107 } | 110 } |
108 | 111 |
109 scoped_ptr<base::ListValue> configs_list(new base::ListValue()); | 112 scoped_ptr<base::ListValue> configs_list(new base::ListValue()); |
110 for (const auto& it : rules_) { | 113 for (const auto& it : rules_) { |
111 scoped_ptr<base::DictionaryValue> config_dict(new base::DictionaryValue()); | 114 scoped_ptr<base::DictionaryValue> config_dict(new base::DictionaryValue()); |
112 DCHECK(it); | 115 DCHECK(it); |
113 it->IntoDict(config_dict.get()); | 116 it->IntoDict(config_dict.get()); |
114 configs_list->Append(config_dict.Pass()); | 117 configs_list->Append(std::move(config_dict)); |
115 } | 118 } |
116 | 119 |
117 dict->Set(kConfigsKey, configs_list.Pass()); | 120 dict->Set(kConfigsKey, std::move(configs_list)); |
118 | 121 |
119 if (!scenario_name_.empty()) | 122 if (!scenario_name_.empty()) |
120 dict->SetString(kConfigScenarioName, scenario_name_); | 123 dict->SetString(kConfigScenarioName, scenario_name_); |
121 if (!enable_blink_features_.empty()) | 124 if (!enable_blink_features_.empty()) |
122 dict->SetString(kConfigEnableBlinkFeatures, enable_blink_features_); | 125 dict->SetString(kConfigEnableBlinkFeatures, enable_blink_features_); |
123 if (!disable_blink_features_.empty()) | 126 if (!disable_blink_features_.empty()) |
124 dict->SetString(kConfigDisableBlinkFeatures, disable_blink_features_); | 127 dict->SetString(kConfigDisableBlinkFeatures, disable_blink_features_); |
125 } | 128 } |
126 | 129 |
127 void BackgroundTracingConfigImpl::AddPreemptiveRule( | 130 void BackgroundTracingConfigImpl::AddPreemptiveRule( |
128 const base::DictionaryValue* dict) { | 131 const base::DictionaryValue* dict) { |
129 scoped_ptr<BackgroundTracingRule> rule = | 132 scoped_ptr<BackgroundTracingRule> rule = |
130 BackgroundTracingRule::PreemptiveRuleFromDict(dict); | 133 BackgroundTracingRule::PreemptiveRuleFromDict(dict); |
131 if (rule) | 134 if (rule) |
132 rules_.push_back(rule.Pass()); | 135 rules_.push_back(std::move(rule)); |
133 } | 136 } |
134 | 137 |
135 void BackgroundTracingConfigImpl::AddReactiveRule( | 138 void BackgroundTracingConfigImpl::AddReactiveRule( |
136 const base::DictionaryValue* dict, | 139 const base::DictionaryValue* dict, |
137 BackgroundTracingConfigImpl::CategoryPreset category_preset) { | 140 BackgroundTracingConfigImpl::CategoryPreset category_preset) { |
138 scoped_ptr<BackgroundTracingRule> rule = | 141 scoped_ptr<BackgroundTracingRule> rule = |
139 BackgroundTracingRule::ReactiveRuleFromDict(dict, category_preset); | 142 BackgroundTracingRule::ReactiveRuleFromDict(dict, category_preset); |
140 if (rule) | 143 if (rule) |
141 rules_.push_back(rule.Pass()); | 144 rules_.push_back(std::move(rule)); |
142 } | 145 } |
143 | 146 |
144 scoped_ptr<BackgroundTracingConfigImpl> BackgroundTracingConfigImpl::FromDict( | 147 scoped_ptr<BackgroundTracingConfigImpl> BackgroundTracingConfigImpl::FromDict( |
145 const base::DictionaryValue* dict) { | 148 const base::DictionaryValue* dict) { |
146 DCHECK(dict); | 149 DCHECK(dict); |
147 | 150 |
148 std::string mode; | 151 std::string mode; |
149 if (!dict->GetString(kConfigModeKey, &mode)) | 152 if (!dict->GetString(kConfigModeKey, &mode)) |
150 return nullptr; | 153 return nullptr; |
151 | 154 |
152 scoped_ptr<BackgroundTracingConfigImpl> config; | 155 scoped_ptr<BackgroundTracingConfigImpl> config; |
153 | 156 |
154 if (mode == kConfigModePreemptive) { | 157 if (mode == kConfigModePreemptive) { |
155 config = PreemptiveFromDict(dict); | 158 config = PreemptiveFromDict(dict); |
156 } else if (mode == kConfigModeReactive) { | 159 } else if (mode == kConfigModeReactive) { |
157 config = ReactiveFromDict(dict); | 160 config = ReactiveFromDict(dict); |
158 } else { | 161 } else { |
159 return nullptr; | 162 return nullptr; |
160 } | 163 } |
161 | 164 |
162 if (config) { | 165 if (config) { |
163 dict->GetString(kConfigScenarioName, &config->scenario_name_); | 166 dict->GetString(kConfigScenarioName, &config->scenario_name_); |
164 dict->GetString(kConfigEnableBlinkFeatures, | 167 dict->GetString(kConfigEnableBlinkFeatures, |
165 &config->enable_blink_features_); | 168 &config->enable_blink_features_); |
166 dict->GetString(kConfigDisableBlinkFeatures, | 169 dict->GetString(kConfigDisableBlinkFeatures, |
167 &config->disable_blink_features_); | 170 &config->disable_blink_features_); |
168 } | 171 } |
169 | 172 |
170 return config.Pass(); | 173 return config; |
171 } | 174 } |
172 | 175 |
173 scoped_ptr<BackgroundTracingConfigImpl> | 176 scoped_ptr<BackgroundTracingConfigImpl> |
174 BackgroundTracingConfigImpl::PreemptiveFromDict( | 177 BackgroundTracingConfigImpl::PreemptiveFromDict( |
175 const base::DictionaryValue* dict) { | 178 const base::DictionaryValue* dict) { |
176 DCHECK(dict); | 179 DCHECK(dict); |
177 | 180 |
178 scoped_ptr<BackgroundTracingConfigImpl> config( | 181 scoped_ptr<BackgroundTracingConfigImpl> config( |
179 new BackgroundTracingConfigImpl(BackgroundTracingConfigImpl::PREEMPTIVE)); | 182 new BackgroundTracingConfigImpl(BackgroundTracingConfigImpl::PREEMPTIVE)); |
180 | 183 |
(...skipping 13 matching lines...) Expand all Loading... |
194 const base::DictionaryValue* config_dict = nullptr; | 197 const base::DictionaryValue* config_dict = nullptr; |
195 if (!it->GetAsDictionary(&config_dict)) | 198 if (!it->GetAsDictionary(&config_dict)) |
196 return nullptr; | 199 return nullptr; |
197 | 200 |
198 config->AddPreemptiveRule(config_dict); | 201 config->AddPreemptiveRule(config_dict); |
199 } | 202 } |
200 | 203 |
201 if (config->rules().empty()) | 204 if (config->rules().empty()) |
202 return nullptr; | 205 return nullptr; |
203 | 206 |
204 return config.Pass(); | 207 return config; |
205 } | 208 } |
206 | 209 |
207 scoped_ptr<BackgroundTracingConfigImpl> | 210 scoped_ptr<BackgroundTracingConfigImpl> |
208 BackgroundTracingConfigImpl::ReactiveFromDict( | 211 BackgroundTracingConfigImpl::ReactiveFromDict( |
209 const base::DictionaryValue* dict) { | 212 const base::DictionaryValue* dict) { |
210 DCHECK(dict); | 213 DCHECK(dict); |
211 | 214 |
212 scoped_ptr<BackgroundTracingConfigImpl> config( | 215 scoped_ptr<BackgroundTracingConfigImpl> config( |
213 new BackgroundTracingConfigImpl(BackgroundTracingConfigImpl::REACTIVE)); | 216 new BackgroundTracingConfigImpl(BackgroundTracingConfigImpl::REACTIVE)); |
214 | 217 |
(...skipping 13 matching lines...) Expand all Loading... |
228 BackgroundTracingConfigImpl::CategoryPreset new_category_preset; | 231 BackgroundTracingConfigImpl::CategoryPreset new_category_preset; |
229 if (!StringToCategoryPreset(category_preset_string, &new_category_preset)) | 232 if (!StringToCategoryPreset(category_preset_string, &new_category_preset)) |
230 return nullptr; | 233 return nullptr; |
231 | 234 |
232 config->AddReactiveRule(config_dict, new_category_preset); | 235 config->AddReactiveRule(config_dict, new_category_preset); |
233 } | 236 } |
234 | 237 |
235 if (config->rules().empty()) | 238 if (config->rules().empty()) |
236 return nullptr; | 239 return nullptr; |
237 | 240 |
238 return config.Pass(); | 241 return config; |
239 } | 242 } |
240 | 243 |
241 } // namspace content | 244 } // namspace content |
OLD | NEW |