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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <utility> |
6 | 7 |
7 #include "base/bind.h" | 8 #include "base/bind.h" |
8 #include "base/command_line.h" | 9 #include "base/command_line.h" |
9 #include "base/macros.h" | 10 #include "base/macros.h" |
10 #include "base/metrics/histogram_macros.h" | 11 #include "base/metrics/histogram_macros.h" |
11 #include "base/strings/pattern.h" | 12 #include "base/strings/pattern.h" |
12 #include "base/trace_event/trace_event.h" | 13 #include "base/trace_event/trace_event.h" |
13 #include "content/browser/tracing/background_tracing_manager_impl.h" | 14 #include "content/browser/tracing/background_tracing_manager_impl.h" |
14 #include "content/browser/tracing/background_tracing_rule.h" | 15 #include "content/browser/tracing/background_tracing_rule.h" |
15 #include "content/public/common/content_switches.h" | 16 #include "content/public/common/content_switches.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 base::DictionaryValue dict; | 101 base::DictionaryValue dict; |
101 | 102 |
102 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 103 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
103 dict.SetString("category", "BENCHMARK"); | 104 dict.SetString("category", "BENCHMARK"); |
104 | 105 |
105 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 106 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
106 { | 107 { |
107 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 108 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
108 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); | 109 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); |
109 rules_dict->SetString("trigger_name", "preemptive_test"); | 110 rules_dict->SetString("trigger_name", "preemptive_test"); |
110 rules_list->Append(rules_dict.Pass()); | 111 rules_list->Append(std::move(rules_dict)); |
111 } | 112 } |
112 dict.Set("configs", rules_list.Pass()); | 113 dict.Set("configs", std::move(rules_list)); |
113 | 114 |
114 scoped_ptr<BackgroundTracingConfig> config( | 115 scoped_ptr<BackgroundTracingConfig> config( |
115 BackgroundTracingConfigImpl::FromDict(&dict)); | 116 BackgroundTracingConfigImpl::FromDict(&dict)); |
116 | 117 |
117 EXPECT_TRUE(config); | 118 EXPECT_TRUE(config); |
118 return config.Pass(); | 119 return config; |
119 } | 120 } |
120 | 121 |
121 scoped_ptr<BackgroundTracingConfig> CreateReactiveConfig() { | 122 scoped_ptr<BackgroundTracingConfig> CreateReactiveConfig() { |
122 base::DictionaryValue dict; | 123 base::DictionaryValue dict; |
123 | 124 |
124 dict.SetString("mode", "REACTIVE_TRACING_MODE"); | 125 dict.SetString("mode", "REACTIVE_TRACING_MODE"); |
125 | 126 |
126 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 127 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
127 { | 128 { |
128 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 129 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
129 rules_dict->SetString("rule", "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); | 130 rules_dict->SetString("rule", "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); |
130 rules_dict->SetString("trigger_name", "reactive_test"); | 131 rules_dict->SetString("trigger_name", "reactive_test"); |
131 rules_dict->SetString("category", "BENCHMARK"); | 132 rules_dict->SetString("category", "BENCHMARK"); |
132 rules_list->Append(rules_dict.Pass()); | 133 rules_list->Append(std::move(rules_dict)); |
133 } | 134 } |
134 dict.Set("configs", rules_list.Pass()); | 135 dict.Set("configs", std::move(rules_list)); |
135 | 136 |
136 scoped_ptr<BackgroundTracingConfig> config( | 137 scoped_ptr<BackgroundTracingConfig> config( |
137 BackgroundTracingConfigImpl::FromDict(&dict)); | 138 BackgroundTracingConfigImpl::FromDict(&dict)); |
138 | 139 |
139 EXPECT_TRUE(config); | 140 EXPECT_TRUE(config); |
140 return config.Pass(); | 141 return config; |
141 } | 142 } |
142 | 143 |
143 void SetupBackgroundTracingManager() { | 144 void SetupBackgroundTracingManager() { |
144 content::BackgroundTracingManager::GetInstance() | 145 content::BackgroundTracingManager::GetInstance() |
145 ->InvalidateTriggerHandlesForTesting(); | 146 ->InvalidateTriggerHandlesForTesting(); |
146 } | 147 } |
147 | 148 |
148 void DisableScenarioWhenIdle() { | 149 void DisableScenarioWhenIdle() { |
149 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 150 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
150 NULL, BackgroundTracingManager::ReceiveCallback(), | 151 NULL, BackgroundTracingManager::ReceiveCallback(), |
(...skipping 10 matching lines...) Expand all Loading... |
161 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 162 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
162 run_loop.QuitClosure()); | 163 run_loop.QuitClosure()); |
163 | 164 |
164 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); | 165 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); |
165 | 166 |
166 BackgroundTracingManager::TriggerHandle handle = | 167 BackgroundTracingManager::TriggerHandle handle = |
167 BackgroundTracingManager:: | 168 BackgroundTracingManager:: |
168 GetInstance()->RegisterTriggerType("preemptive_test"); | 169 GetInstance()->RegisterTriggerType("preemptive_test"); |
169 | 170 |
170 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 171 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
171 config.Pass(), upload_config_wrapper.get_receive_callback(), | 172 std::move(config), upload_config_wrapper.get_receive_callback(), |
172 BackgroundTracingManager::NO_DATA_FILTERING); | 173 BackgroundTracingManager::NO_DATA_FILTERING); |
173 | 174 |
174 BackgroundTracingManager::GetInstance()->WhenIdle( | 175 BackgroundTracingManager::GetInstance()->WhenIdle( |
175 base::Bind(&DisableScenarioWhenIdle)); | 176 base::Bind(&DisableScenarioWhenIdle)); |
176 | 177 |
177 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 178 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
178 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 179 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
179 | 180 |
180 run_loop.Run(); | 181 run_loop.Run(); |
181 | 182 |
(...skipping 11 matching lines...) Expand all Loading... |
193 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 194 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
194 run_loop.QuitClosure()); | 195 run_loop.QuitClosure()); |
195 | 196 |
196 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); | 197 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); |
197 | 198 |
198 content::BackgroundTracingManager::TriggerHandle handle = | 199 content::BackgroundTracingManager::TriggerHandle handle = |
199 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 200 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
200 "preemptive_test"); | 201 "preemptive_test"); |
201 | 202 |
202 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 203 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
203 config.Pass(), upload_config_wrapper.get_receive_callback(), | 204 std::move(config), upload_config_wrapper.get_receive_callback(), |
204 BackgroundTracingManager::NO_DATA_FILTERING); | 205 BackgroundTracingManager::NO_DATA_FILTERING); |
205 | 206 |
206 BackgroundTracingManager::GetInstance()->WhenIdle( | 207 BackgroundTracingManager::GetInstance()->WhenIdle( |
207 base::Bind(&DisableScenarioWhenIdle)); | 208 base::Bind(&DisableScenarioWhenIdle)); |
208 | 209 |
209 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 210 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
210 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 211 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
211 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 212 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
212 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false)); | 213 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false)); |
213 | 214 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); | 249 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); |
249 | 250 |
250 content::BackgroundTracingManager::TriggerHandle handle = | 251 content::BackgroundTracingManager::TriggerHandle handle = |
251 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 252 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
252 "preemptive_test"); | 253 "preemptive_test"); |
253 | 254 |
254 base::RunLoop wait_for_activated; | 255 base::RunLoop wait_for_activated; |
255 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting( | 256 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting( |
256 wait_for_activated.QuitClosure()); | 257 wait_for_activated.QuitClosure()); |
257 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( | 258 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( |
258 config.Pass(), upload_config_wrapper.get_receive_callback(), | 259 std::move(config), upload_config_wrapper.get_receive_callback(), |
259 BackgroundTracingManager::ANONYMIZE_DATA)); | 260 BackgroundTracingManager::ANONYMIZE_DATA)); |
260 | 261 |
261 wait_for_activated.Run(); | 262 wait_for_activated.Run(); |
262 | 263 |
263 TRACE_EVENT1("benchmark", "whitelisted", "find_this", 1); | 264 TRACE_EVENT1("benchmark", "whitelisted", "find_this", 1); |
264 TRACE_EVENT1("benchmark", "not_whitelisted", "this_not_found", 1); | 265 TRACE_EVENT1("benchmark", "not_whitelisted", "this_not_found", 1); |
265 | 266 |
266 BackgroundTracingManager::GetInstance()->WhenIdle( | 267 BackgroundTracingManager::GetInstance()->WhenIdle( |
267 base::Bind(&DisableScenarioWhenIdle)); | 268 base::Bind(&DisableScenarioWhenIdle)); |
268 | 269 |
(...skipping 23 matching lines...) Expand all Loading... |
292 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); | 293 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); |
293 | 294 |
294 content::BackgroundTracingManager::TriggerHandle handle = | 295 content::BackgroundTracingManager::TriggerHandle handle = |
295 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 296 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
296 "preemptive_test"); | 297 "preemptive_test"); |
297 | 298 |
298 base::RunLoop wait_for_activated; | 299 base::RunLoop wait_for_activated; |
299 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting( | 300 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting( |
300 wait_for_activated.QuitClosure()); | 301 wait_for_activated.QuitClosure()); |
301 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( | 302 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( |
302 config.Pass(), upload_config_wrapper.get_receive_callback(), | 303 std::move(config), upload_config_wrapper.get_receive_callback(), |
303 BackgroundTracingManager::ANONYMIZE_DATA)); | 304 BackgroundTracingManager::ANONYMIZE_DATA)); |
304 | 305 |
305 wait_for_activated.Run(); | 306 wait_for_activated.Run(); |
306 | 307 |
307 BackgroundTracingManager::GetInstance()->WhenIdle( | 308 BackgroundTracingManager::GetInstance()->WhenIdle( |
308 base::Bind(&DisableScenarioWhenIdle)); | 309 base::Bind(&DisableScenarioWhenIdle)); |
309 | 310 |
310 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 311 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
311 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 312 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
312 | 313 |
(...skipping 23 matching lines...) Expand all Loading... |
336 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); | 337 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); |
337 | 338 |
338 content::BackgroundTracingManager::TriggerHandle handle = | 339 content::BackgroundTracingManager::TriggerHandle handle = |
339 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 340 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
340 "preemptive_test"); | 341 "preemptive_test"); |
341 | 342 |
342 base::RunLoop wait_for_activated; | 343 base::RunLoop wait_for_activated; |
343 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting( | 344 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting( |
344 wait_for_activated.QuitClosure()); | 345 wait_for_activated.QuitClosure()); |
345 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( | 346 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( |
346 config.Pass(), upload_config_wrapper.get_receive_callback(), | 347 std::move(config), upload_config_wrapper.get_receive_callback(), |
347 BackgroundTracingManager::ANONYMIZE_DATA)); | 348 BackgroundTracingManager::ANONYMIZE_DATA)); |
348 | 349 |
349 wait_for_activated.Run(); | 350 wait_for_activated.Run(); |
350 | 351 |
351 NavigateToURL(shell(), GetTestUrl("", "about:blank")); | 352 NavigateToURL(shell(), GetTestUrl("", "about:blank")); |
352 | 353 |
353 BackgroundTracingManager::GetInstance()->WhenIdle( | 354 BackgroundTracingManager::GetInstance()->WhenIdle( |
354 base::Bind(&DisableScenarioWhenIdle)); | 355 base::Bind(&DisableScenarioWhenIdle)); |
355 | 356 |
356 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 357 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
(...skipping 19 matching lines...) Expand all Loading... |
376 | 377 |
377 base::DictionaryValue dict; | 378 base::DictionaryValue dict; |
378 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 379 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
379 dict.SetString("category", "BENCHMARK"); | 380 dict.SetString("category", "BENCHMARK"); |
380 | 381 |
381 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 382 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
382 { | 383 { |
383 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 384 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
384 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); | 385 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); |
385 rules_dict->SetString("trigger_name", "test1"); | 386 rules_dict->SetString("trigger_name", "test1"); |
386 rules_list->Append(rules_dict.Pass()); | 387 rules_list->Append(std::move(rules_dict)); |
387 } | 388 } |
388 { | 389 { |
389 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 390 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
390 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); | 391 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); |
391 rules_dict->SetString("trigger_name", "test2"); | 392 rules_dict->SetString("trigger_name", "test2"); |
392 rules_list->Append(rules_dict.Pass()); | 393 rules_list->Append(std::move(rules_dict)); |
393 } | 394 } |
394 | 395 |
395 dict.Set("configs", rules_list.Pass()); | 396 dict.Set("configs", std::move(rules_list)); |
396 | 397 |
397 scoped_ptr<BackgroundTracingConfig> config( | 398 scoped_ptr<BackgroundTracingConfig> config( |
398 BackgroundTracingConfigImpl::FromDict(&dict)); | 399 BackgroundTracingConfigImpl::FromDict(&dict)); |
399 EXPECT_TRUE(config); | 400 EXPECT_TRUE(config); |
400 | 401 |
401 BackgroundTracingManager::TriggerHandle handle1 = | 402 BackgroundTracingManager::TriggerHandle handle1 = |
402 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test1"); | 403 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test1"); |
403 BackgroundTracingManager::TriggerHandle handle2 = | 404 BackgroundTracingManager::TriggerHandle handle2 = |
404 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test2"); | 405 BackgroundTracingManager::GetInstance()->RegisterTriggerType("test2"); |
405 | 406 |
406 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 407 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
407 config.Pass(), upload_config_wrapper.get_receive_callback(), | 408 std::move(config), upload_config_wrapper.get_receive_callback(), |
408 BackgroundTracingManager::NO_DATA_FILTERING); | 409 BackgroundTracingManager::NO_DATA_FILTERING); |
409 | 410 |
410 BackgroundTracingManager::GetInstance()->WhenIdle( | 411 BackgroundTracingManager::GetInstance()->WhenIdle( |
411 base::Bind(&DisableScenarioWhenIdle)); | 412 base::Bind(&DisableScenarioWhenIdle)); |
412 | 413 |
413 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 414 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
414 handle1, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 415 handle1, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
415 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 416 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
416 handle2, | 417 handle2, |
417 base::Bind(&StartedFinalizingCallback, base::Closure(), false)); | 418 base::Bind(&StartedFinalizingCallback, base::Closure(), false)); |
(...skipping 17 matching lines...) Expand all Loading... |
435 | 436 |
436 base::DictionaryValue dict; | 437 base::DictionaryValue dict; |
437 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 438 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
438 dict.SetString("category", "BENCHMARK"); | 439 dict.SetString("category", "BENCHMARK"); |
439 | 440 |
440 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 441 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
441 { | 442 { |
442 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 443 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
443 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); | 444 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); |
444 rules_dict->SetString("trigger_name", "test2"); | 445 rules_dict->SetString("trigger_name", "test2"); |
445 rules_list->Append(rules_dict.Pass()); | 446 rules_list->Append(std::move(rules_dict)); |
446 } | 447 } |
447 | 448 |
448 dict.Set("configs", rules_list.Pass()); | 449 dict.Set("configs", std::move(rules_list)); |
449 dict.SetString("enable_blink_features", "FasterWeb1,FasterWeb2"); | 450 dict.SetString("enable_blink_features", "FasterWeb1,FasterWeb2"); |
450 dict.SetString("disable_blink_features", "SlowerWeb1,SlowerWeb2"); | 451 dict.SetString("disable_blink_features", "SlowerWeb1,SlowerWeb2"); |
451 scoped_ptr<BackgroundTracingConfig> config( | 452 scoped_ptr<BackgroundTracingConfig> config( |
452 BackgroundTracingConfigImpl::FromDict(&dict)); | 453 BackgroundTracingConfigImpl::FromDict(&dict)); |
453 EXPECT_TRUE(config); | 454 EXPECT_TRUE(config); |
454 | 455 |
455 bool scenario_activated = | 456 bool scenario_activated = |
456 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 457 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
457 config.Pass(), upload_config_wrapper.get_receive_callback(), | 458 std::move(config), upload_config_wrapper.get_receive_callback(), |
458 BackgroundTracingManager::NO_DATA_FILTERING); | 459 BackgroundTracingManager::NO_DATA_FILTERING); |
459 | 460 |
460 EXPECT_TRUE(scenario_activated); | 461 EXPECT_TRUE(scenario_activated); |
461 | 462 |
462 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); | 463 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
463 EXPECT_TRUE(command_line); | 464 EXPECT_TRUE(command_line); |
464 | 465 |
465 EXPECT_EQ(command_line->GetSwitchValueASCII(switches::kEnableBlinkFeatures), | 466 EXPECT_EQ(command_line->GetSwitchValueASCII(switches::kEnableBlinkFeatures), |
466 "FasterWeb1,FasterWeb2"); | 467 "FasterWeb1,FasterWeb2"); |
467 EXPECT_EQ( | 468 EXPECT_EQ( |
(...skipping 14 matching lines...) Expand all Loading... |
482 | 483 |
483 base::DictionaryValue dict; | 484 base::DictionaryValue dict; |
484 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 485 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
485 dict.SetString("category", "BENCHMARK"); | 486 dict.SetString("category", "BENCHMARK"); |
486 | 487 |
487 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 488 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
488 { | 489 { |
489 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 490 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
490 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); | 491 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); |
491 rules_dict->SetString("trigger_name", "test2"); | 492 rules_dict->SetString("trigger_name", "test2"); |
492 rules_list->Append(rules_dict.Pass()); | 493 rules_list->Append(std::move(rules_dict)); |
493 } | 494 } |
494 | 495 |
495 dict.Set("configs", rules_list.Pass()); | 496 dict.Set("configs", std::move(rules_list)); |
496 dict.SetString("enable_blink_features", "FasterWeb1,FasterWeb2"); | 497 dict.SetString("enable_blink_features", "FasterWeb1,FasterWeb2"); |
497 dict.SetString("disable_blink_features", "SlowerWeb1,SlowerWeb2"); | 498 dict.SetString("disable_blink_features", "SlowerWeb1,SlowerWeb2"); |
498 scoped_ptr<BackgroundTracingConfig> config( | 499 scoped_ptr<BackgroundTracingConfig> config( |
499 BackgroundTracingConfigImpl::FromDict(&dict)); | 500 BackgroundTracingConfigImpl::FromDict(&dict)); |
500 EXPECT_TRUE(config); | 501 EXPECT_TRUE(config); |
501 | 502 |
502 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 503 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
503 switches::kEnableBlinkFeatures, "FooFeature"); | 504 switches::kEnableBlinkFeatures, "FooFeature"); |
504 | 505 |
505 bool scenario_activated = | 506 bool scenario_activated = |
506 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 507 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
507 config.Pass(), upload_config_wrapper.get_receive_callback(), | 508 std::move(config), upload_config_wrapper.get_receive_callback(), |
508 BackgroundTracingManager::NO_DATA_FILTERING); | 509 BackgroundTracingManager::NO_DATA_FILTERING); |
509 | 510 |
510 EXPECT_FALSE(scenario_activated); | 511 EXPECT_FALSE(scenario_activated); |
511 } | 512 } |
512 | 513 |
513 // This tests that delayed histogram triggers triggers work as expected | 514 // This tests that delayed histogram triggers triggers work as expected |
514 // with preemptive scenarios. | 515 // with preemptive scenarios. |
515 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, | 516 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
516 CallPreemptiveTriggerWithDelay) { | 517 CallPreemptiveTriggerWithDelay) { |
517 { | 518 { |
518 SetupBackgroundTracingManager(); | 519 SetupBackgroundTracingManager(); |
519 | 520 |
520 base::RunLoop run_loop; | 521 base::RunLoop run_loop; |
521 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 522 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
522 run_loop.QuitClosure()); | 523 run_loop.QuitClosure()); |
523 | 524 |
524 base::DictionaryValue dict; | 525 base::DictionaryValue dict; |
525 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 526 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
526 dict.SetString("category", "BENCHMARK"); | 527 dict.SetString("category", "BENCHMARK"); |
527 | 528 |
528 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 529 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
529 { | 530 { |
530 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 531 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
531 rules_dict->SetString( | 532 rules_dict->SetString( |
532 "rule", "MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE"); | 533 "rule", "MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE"); |
533 rules_dict->SetString("histogram_name", "fake"); | 534 rules_dict->SetString("histogram_name", "fake"); |
534 rules_dict->SetInteger("histogram_value", 1); | 535 rules_dict->SetInteger("histogram_value", 1); |
535 rules_dict->SetInteger("trigger_delay", 10); | 536 rules_dict->SetInteger("trigger_delay", 10); |
536 rules_list->Append(rules_dict.Pass()); | 537 rules_list->Append(std::move(rules_dict)); |
537 } | 538 } |
538 | 539 |
539 dict.Set("configs", rules_list.Pass()); | 540 dict.Set("configs", std::move(rules_list)); |
540 | 541 |
541 scoped_ptr<BackgroundTracingConfig> config( | 542 scoped_ptr<BackgroundTracingConfig> config( |
542 BackgroundTracingConfigImpl::FromDict(&dict)); | 543 BackgroundTracingConfigImpl::FromDict(&dict)); |
543 EXPECT_TRUE(config); | 544 EXPECT_TRUE(config); |
544 | 545 |
545 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 546 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
546 config.Pass(), upload_config_wrapper.get_receive_callback(), | 547 std::move(config), upload_config_wrapper.get_receive_callback(), |
547 BackgroundTracingManager::NO_DATA_FILTERING); | 548 BackgroundTracingManager::NO_DATA_FILTERING); |
548 | 549 |
549 BackgroundTracingManager::GetInstance()->WhenIdle( | 550 BackgroundTracingManager::GetInstance()->WhenIdle( |
550 base::Bind(&DisableScenarioWhenIdle)); | 551 base::Bind(&DisableScenarioWhenIdle)); |
551 | 552 |
552 base::RunLoop rule_triggered_runloop; | 553 base::RunLoop rule_triggered_runloop; |
553 BackgroundTracingManagerImpl::GetInstance() | 554 BackgroundTracingManagerImpl::GetInstance() |
554 ->SetRuleTriggeredCallbackForTesting( | 555 ->SetRuleTriggeredCallbackForTesting( |
555 rule_triggered_runloop.QuitClosure()); | 556 rule_triggered_runloop.QuitClosure()); |
556 | 557 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
612 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 613 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
613 (base::Closure())); | 614 (base::Closure())); |
614 | 615 |
615 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); | 616 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); |
616 | 617 |
617 content::BackgroundTracingManager::TriggerHandle handle = | 618 content::BackgroundTracingManager::TriggerHandle handle = |
618 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 619 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
619 "does_not_exist"); | 620 "does_not_exist"); |
620 | 621 |
621 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 622 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
622 config.Pass(), upload_config_wrapper.get_receive_callback(), | 623 std::move(config), upload_config_wrapper.get_receive_callback(), |
623 BackgroundTracingManager::NO_DATA_FILTERING); | 624 BackgroundTracingManager::NO_DATA_FILTERING); |
624 | 625 |
625 BackgroundTracingManager::GetInstance()->WhenIdle( | 626 BackgroundTracingManager::GetInstance()->WhenIdle( |
626 base::Bind(&DisableScenarioWhenIdle)); | 627 base::Bind(&DisableScenarioWhenIdle)); |
627 | 628 |
628 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 629 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
629 handle, | 630 handle, |
630 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); | 631 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); |
631 | 632 |
632 run_loop.Run(); | 633 run_loop.Run(); |
(...skipping 15 matching lines...) Expand all Loading... |
648 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); | 649 scoped_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); |
649 | 650 |
650 content::BackgroundTracingManager::TriggerHandle handle = | 651 content::BackgroundTracingManager::TriggerHandle handle = |
651 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 652 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
652 "preemptive_test"); | 653 "preemptive_test"); |
653 | 654 |
654 content::BackgroundTracingManager::GetInstance() | 655 content::BackgroundTracingManager::GetInstance() |
655 ->InvalidateTriggerHandlesForTesting(); | 656 ->InvalidateTriggerHandlesForTesting(); |
656 | 657 |
657 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 658 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
658 config.Pass(), upload_config_wrapper.get_receive_callback(), | 659 std::move(config), upload_config_wrapper.get_receive_callback(), |
659 BackgroundTracingManager::NO_DATA_FILTERING); | 660 BackgroundTracingManager::NO_DATA_FILTERING); |
660 | 661 |
661 BackgroundTracingManager::GetInstance()->WhenIdle( | 662 BackgroundTracingManager::GetInstance()->WhenIdle( |
662 base::Bind(&DisableScenarioWhenIdle)); | 663 base::Bind(&DisableScenarioWhenIdle)); |
663 | 664 |
664 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 665 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
665 handle, | 666 handle, |
666 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); | 667 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); |
667 | 668 |
668 run_loop.Run(); | 669 run_loop.Run(); |
(...skipping 16 matching lines...) Expand all Loading... |
685 | 686 |
686 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 687 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
687 dict.SetString("category", "BENCHMARK"); | 688 dict.SetString("category", "BENCHMARK"); |
688 | 689 |
689 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 690 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
690 { | 691 { |
691 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 692 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
692 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); | 693 rules_dict->SetString("rule", "MONITOR_AND_DUMP_WHEN_TRIGGER_NAMED"); |
693 rules_dict->SetString("trigger_name", "preemptive_test"); | 694 rules_dict->SetString("trigger_name", "preemptive_test"); |
694 rules_dict->SetDouble("trigger_chance", 0.0); | 695 rules_dict->SetDouble("trigger_chance", 0.0); |
695 rules_list->Append(rules_dict.Pass()); | 696 rules_list->Append(std::move(rules_dict)); |
696 } | 697 } |
697 dict.Set("configs", rules_list.Pass()); | 698 dict.Set("configs", std::move(rules_list)); |
698 | 699 |
699 scoped_ptr<BackgroundTracingConfig> config( | 700 scoped_ptr<BackgroundTracingConfig> config( |
700 BackgroundTracingConfigImpl::FromDict(&dict)); | 701 BackgroundTracingConfigImpl::FromDict(&dict)); |
701 | 702 |
702 EXPECT_TRUE(config); | 703 EXPECT_TRUE(config); |
703 | 704 |
704 content::BackgroundTracingManager::TriggerHandle handle = | 705 content::BackgroundTracingManager::TriggerHandle handle = |
705 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 706 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
706 "preemptive_test"); | 707 "preemptive_test"); |
707 | 708 |
708 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 709 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
709 config.Pass(), upload_config_wrapper.get_receive_callback(), | 710 std::move(config), upload_config_wrapper.get_receive_callback(), |
710 BackgroundTracingManager::NO_DATA_FILTERING); | 711 BackgroundTracingManager::NO_DATA_FILTERING); |
711 | 712 |
712 BackgroundTracingManager::GetInstance()->WhenIdle( | 713 BackgroundTracingManager::GetInstance()->WhenIdle( |
713 base::Bind(&DisableScenarioWhenIdle)); | 714 base::Bind(&DisableScenarioWhenIdle)); |
714 | 715 |
715 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 716 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
716 handle, | 717 handle, |
717 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); | 718 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); |
718 | 719 |
719 run_loop.Run(); | 720 run_loop.Run(); |
(...skipping 18 matching lines...) Expand all Loading... |
738 | 739 |
739 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 740 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
740 { | 741 { |
741 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 742 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
742 rules_dict->SetString("rule", | 743 rules_dict->SetString("rule", |
743 "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); | 744 "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); |
744 rules_dict->SetString("trigger_name", "reactive_test1"); | 745 rules_dict->SetString("trigger_name", "reactive_test1"); |
745 rules_dict->SetString("category", "BENCHMARK"); | 746 rules_dict->SetString("category", "BENCHMARK"); |
746 rules_dict->SetDouble("trigger_chance", 0.0); | 747 rules_dict->SetDouble("trigger_chance", 0.0); |
747 | 748 |
748 rules_list->Append(rules_dict.Pass()); | 749 rules_list->Append(std::move(rules_dict)); |
749 } | 750 } |
750 dict.Set("configs", rules_list.Pass()); | 751 dict.Set("configs", std::move(rules_list)); |
751 | 752 |
752 scoped_ptr<BackgroundTracingConfig> config( | 753 scoped_ptr<BackgroundTracingConfig> config( |
753 BackgroundTracingConfigImpl::FromDict(&dict)); | 754 BackgroundTracingConfigImpl::FromDict(&dict)); |
754 | 755 |
755 EXPECT_TRUE(config); | 756 EXPECT_TRUE(config); |
756 | 757 |
757 content::BackgroundTracingManager::TriggerHandle handle = | 758 content::BackgroundTracingManager::TriggerHandle handle = |
758 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 759 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
759 "preemptive_test"); | 760 "preemptive_test"); |
760 | 761 |
761 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 762 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
762 config.Pass(), upload_config_wrapper.get_receive_callback(), | 763 std::move(config), upload_config_wrapper.get_receive_callback(), |
763 BackgroundTracingManager::NO_DATA_FILTERING); | 764 BackgroundTracingManager::NO_DATA_FILTERING); |
764 | 765 |
765 BackgroundTracingManager::GetInstance()->WhenIdle( | 766 BackgroundTracingManager::GetInstance()->WhenIdle( |
766 base::Bind(&DisableScenarioWhenIdle)); | 767 base::Bind(&DisableScenarioWhenIdle)); |
767 | 768 |
768 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 769 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
769 handle, | 770 handle, |
770 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); | 771 base::Bind(&StartedFinalizingCallback, run_loop.QuitClosure(), false)); |
771 | 772 |
772 run_loop.Run(); | 773 run_loop.Run(); |
(...skipping 17 matching lines...) Expand all Loading... |
790 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 791 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
791 dict.SetString("category", "BENCHMARK"); | 792 dict.SetString("category", "BENCHMARK"); |
792 | 793 |
793 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 794 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
794 { | 795 { |
795 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 796 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
796 rules_dict->SetString( | 797 rules_dict->SetString( |
797 "rule", "MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE"); | 798 "rule", "MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE"); |
798 rules_dict->SetString("histogram_name", "fake"); | 799 rules_dict->SetString("histogram_name", "fake"); |
799 rules_dict->SetInteger("histogram_value", 1); | 800 rules_dict->SetInteger("histogram_value", 1); |
800 rules_list->Append(rules_dict.Pass()); | 801 rules_list->Append(std::move(rules_dict)); |
801 } | 802 } |
802 | 803 |
803 dict.Set("configs", rules_list.Pass()); | 804 dict.Set("configs", std::move(rules_list)); |
804 | 805 |
805 scoped_ptr<BackgroundTracingConfig> config( | 806 scoped_ptr<BackgroundTracingConfig> config( |
806 BackgroundTracingConfigImpl::FromDict(&dict)); | 807 BackgroundTracingConfigImpl::FromDict(&dict)); |
807 EXPECT_TRUE(config); | 808 EXPECT_TRUE(config); |
808 | 809 |
809 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 810 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
810 config.Pass(), upload_config_wrapper.get_receive_callback(), | 811 std::move(config), upload_config_wrapper.get_receive_callback(), |
811 BackgroundTracingManager::NO_DATA_FILTERING); | 812 BackgroundTracingManager::NO_DATA_FILTERING); |
812 | 813 |
813 // Our reference value is "1", so a value of "2" should trigger a trace. | 814 // Our reference value is "1", so a value of "2" should trigger a trace. |
814 LOCAL_HISTOGRAM_COUNTS("fake", 2); | 815 LOCAL_HISTOGRAM_COUNTS("fake", 2); |
815 | 816 |
816 run_loop.Run(); | 817 run_loop.Run(); |
817 | 818 |
818 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); | 819 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); |
819 } | 820 } |
820 } | 821 } |
(...skipping 13 matching lines...) Expand all Loading... |
834 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 835 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
835 dict.SetString("category", "BENCHMARK"); | 836 dict.SetString("category", "BENCHMARK"); |
836 | 837 |
837 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 838 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
838 { | 839 { |
839 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 840 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
840 rules_dict->SetString( | 841 rules_dict->SetString( |
841 "rule", "MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE"); | 842 "rule", "MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE"); |
842 rules_dict->SetString("histogram_name", "fake"); | 843 rules_dict->SetString("histogram_name", "fake"); |
843 rules_dict->SetInteger("histogram_value", 1); | 844 rules_dict->SetInteger("histogram_value", 1); |
844 rules_list->Append(rules_dict.Pass()); | 845 rules_list->Append(std::move(rules_dict)); |
845 } | 846 } |
846 | 847 |
847 dict.Set("configs", rules_list.Pass()); | 848 dict.Set("configs", std::move(rules_list)); |
848 | 849 |
849 scoped_ptr<BackgroundTracingConfig> config( | 850 scoped_ptr<BackgroundTracingConfig> config( |
850 BackgroundTracingConfigImpl::FromDict(&dict)); | 851 BackgroundTracingConfigImpl::FromDict(&dict)); |
851 EXPECT_TRUE(config); | 852 EXPECT_TRUE(config); |
852 | 853 |
853 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 854 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
854 config.Pass(), upload_config_wrapper.get_receive_callback(), | 855 std::move(config), upload_config_wrapper.get_receive_callback(), |
855 BackgroundTracingManager::NO_DATA_FILTERING); | 856 BackgroundTracingManager::NO_DATA_FILTERING); |
856 | 857 |
857 // This should fail to trigger a trace since the sample value < the | 858 // This should fail to trigger a trace since the sample value < the |
858 // the reference value above. | 859 // the reference value above. |
859 LOCAL_HISTOGRAM_COUNTS("fake", 0); | 860 LOCAL_HISTOGRAM_COUNTS("fake", 0); |
860 | 861 |
861 run_loop.RunUntilIdle(); | 862 run_loop.RunUntilIdle(); |
862 | 863 |
863 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); | 864 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); |
864 } | 865 } |
(...skipping 15 matching lines...) Expand all Loading... |
880 dict.SetString("category", "BENCHMARK"); | 881 dict.SetString("category", "BENCHMARK"); |
881 | 882 |
882 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 883 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
883 { | 884 { |
884 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 885 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
885 rules_dict->SetString( | 886 rules_dict->SetString( |
886 "rule", "MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE"); | 887 "rule", "MONITOR_AND_DUMP_WHEN_SPECIFIC_HISTOGRAM_AND_VALUE"); |
887 rules_dict->SetString("histogram_name", "fake"); | 888 rules_dict->SetString("histogram_name", "fake"); |
888 rules_dict->SetInteger("histogram_lower_value", 1); | 889 rules_dict->SetInteger("histogram_lower_value", 1); |
889 rules_dict->SetInteger("histogram_upper_value", 3); | 890 rules_dict->SetInteger("histogram_upper_value", 3); |
890 rules_list->Append(rules_dict.Pass()); | 891 rules_list->Append(std::move(rules_dict)); |
891 } | 892 } |
892 | 893 |
893 dict.Set("configs", rules_list.Pass()); | 894 dict.Set("configs", std::move(rules_list)); |
894 | 895 |
895 scoped_ptr<BackgroundTracingConfig> config( | 896 scoped_ptr<BackgroundTracingConfig> config( |
896 BackgroundTracingConfigImpl::FromDict(&dict)); | 897 BackgroundTracingConfigImpl::FromDict(&dict)); |
897 EXPECT_TRUE(config); | 898 EXPECT_TRUE(config); |
898 | 899 |
899 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 900 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
900 config.Pass(), upload_config_wrapper.get_receive_callback(), | 901 std::move(config), upload_config_wrapper.get_receive_callback(), |
901 BackgroundTracingManager::NO_DATA_FILTERING); | 902 BackgroundTracingManager::NO_DATA_FILTERING); |
902 | 903 |
903 // This should fail to trigger a trace since the sample value > the | 904 // This should fail to trigger a trace since the sample value > the |
904 // the upper reference value above. | 905 // the upper reference value above. |
905 LOCAL_HISTOGRAM_COUNTS("fake", 0); | 906 LOCAL_HISTOGRAM_COUNTS("fake", 0); |
906 | 907 |
907 run_loop.RunUntilIdle(); | 908 run_loop.RunUntilIdle(); |
908 | 909 |
909 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); | 910 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 0); |
910 } | 911 } |
911 } | 912 } |
912 | 913 |
913 // This tests that invalid preemptive mode configs will fail. | 914 // This tests that invalid preemptive mode configs will fail. |
914 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, | 915 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
915 SetActiveScenarioFailsWithInvalidPreemptiveConfig) { | 916 SetActiveScenarioFailsWithInvalidPreemptiveConfig) { |
916 { | 917 { |
917 SetupBackgroundTracingManager(); | 918 SetupBackgroundTracingManager(); |
918 | 919 |
919 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 920 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
920 (base::Closure())); | 921 (base::Closure())); |
921 | 922 |
922 base::DictionaryValue dict; | 923 base::DictionaryValue dict; |
923 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); | 924 dict.SetString("mode", "PREEMPTIVE_TRACING_MODE"); |
924 dict.SetString("category", "BENCHMARK"); | 925 dict.SetString("category", "BENCHMARK"); |
925 | 926 |
926 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 927 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
927 { | 928 { |
928 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 929 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
929 rules_dict->SetString("rule", "INVALID_RULE"); | 930 rules_dict->SetString("rule", "INVALID_RULE"); |
930 rules_list->Append(rules_dict.Pass()); | 931 rules_list->Append(std::move(rules_dict)); |
931 } | 932 } |
932 | 933 |
933 dict.Set("configs", rules_list.Pass()); | 934 dict.Set("configs", std::move(rules_list)); |
934 | 935 |
935 scoped_ptr<BackgroundTracingConfig> config( | 936 scoped_ptr<BackgroundTracingConfig> config( |
936 BackgroundTracingConfigImpl::FromDict(&dict)); | 937 BackgroundTracingConfigImpl::FromDict(&dict)); |
937 // An invalid config should always return a nullptr here. | 938 // An invalid config should always return a nullptr here. |
938 EXPECT_FALSE(config); | 939 EXPECT_FALSE(config); |
939 } | 940 } |
940 } | 941 } |
941 | 942 |
942 // This tests that reactive mode records and terminates with timeout. | 943 // This tests that reactive mode records and terminates with timeout. |
943 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, | 944 IN_PROC_BROWSER_TEST_F(BackgroundTracingManagerBrowserTest, |
944 ReactiveTimeoutTermination) { | 945 ReactiveTimeoutTermination) { |
945 { | 946 { |
946 SetupBackgroundTracingManager(); | 947 SetupBackgroundTracingManager(); |
947 | 948 |
948 base::RunLoop run_loop; | 949 base::RunLoop run_loop; |
949 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 950 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
950 run_loop.QuitClosure()); | 951 run_loop.QuitClosure()); |
951 | 952 |
952 scoped_ptr<BackgroundTracingConfig> config = CreateReactiveConfig(); | 953 scoped_ptr<BackgroundTracingConfig> config = CreateReactiveConfig(); |
953 | 954 |
954 BackgroundTracingManager::TriggerHandle handle = | 955 BackgroundTracingManager::TriggerHandle handle = |
955 BackgroundTracingManager:: | 956 BackgroundTracingManager:: |
956 GetInstance()->RegisterTriggerType("reactive_test"); | 957 GetInstance()->RegisterTriggerType("reactive_test"); |
957 | 958 |
958 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 959 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
959 config.Pass(), upload_config_wrapper.get_receive_callback(), | 960 std::move(config), upload_config_wrapper.get_receive_callback(), |
960 BackgroundTracingManager::NO_DATA_FILTERING); | 961 BackgroundTracingManager::NO_DATA_FILTERING); |
961 | 962 |
962 BackgroundTracingManager::GetInstance()->WhenIdle( | 963 BackgroundTracingManager::GetInstance()->WhenIdle( |
963 base::Bind(&DisableScenarioWhenIdle)); | 964 base::Bind(&DisableScenarioWhenIdle)); |
964 | 965 |
965 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 966 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
966 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 967 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
967 | 968 |
968 BackgroundTracingManager::GetInstance()->FireTimerForTesting(); | 969 BackgroundTracingManager::GetInstance()->FireTimerForTesting(); |
969 | 970 |
(...skipping 13 matching lines...) Expand all Loading... |
983 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 984 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
984 run_loop.QuitClosure()); | 985 run_loop.QuitClosure()); |
985 | 986 |
986 scoped_ptr<BackgroundTracingConfig> config = CreateReactiveConfig(); | 987 scoped_ptr<BackgroundTracingConfig> config = CreateReactiveConfig(); |
987 | 988 |
988 BackgroundTracingManager::TriggerHandle handle = | 989 BackgroundTracingManager::TriggerHandle handle = |
989 BackgroundTracingManager:: | 990 BackgroundTracingManager:: |
990 GetInstance()->RegisterTriggerType("reactive_test"); | 991 GetInstance()->RegisterTriggerType("reactive_test"); |
991 | 992 |
992 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 993 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
993 config.Pass(), upload_config_wrapper.get_receive_callback(), | 994 std::move(config), upload_config_wrapper.get_receive_callback(), |
994 BackgroundTracingManager::NO_DATA_FILTERING); | 995 BackgroundTracingManager::NO_DATA_FILTERING); |
995 | 996 |
996 BackgroundTracingManager::GetInstance()->WhenIdle( | 997 BackgroundTracingManager::GetInstance()->WhenIdle( |
997 base::Bind(&DisableScenarioWhenIdle)); | 998 base::Bind(&DisableScenarioWhenIdle)); |
998 | 999 |
999 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 1000 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
1000 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 1001 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
1001 // second trigger to terminate. | 1002 // second trigger to terminate. |
1002 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 1003 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
1003 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 1004 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
(...skipping 17 matching lines...) Expand all Loading... |
1021 base::DictionaryValue dict; | 1022 base::DictionaryValue dict; |
1022 dict.SetString("mode", "REACTIVE_TRACING_MODE"); | 1023 dict.SetString("mode", "REACTIVE_TRACING_MODE"); |
1023 | 1024 |
1024 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); | 1025 scoped_ptr<base::ListValue> rules_list(new base::ListValue()); |
1025 { | 1026 { |
1026 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 1027 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
1027 rules_dict->SetString("rule", | 1028 rules_dict->SetString("rule", |
1028 "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); | 1029 "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); |
1029 rules_dict->SetString("trigger_name", "reactive_test1"); | 1030 rules_dict->SetString("trigger_name", "reactive_test1"); |
1030 rules_dict->SetString("category", "BENCHMARK"); | 1031 rules_dict->SetString("category", "BENCHMARK"); |
1031 rules_list->Append(rules_dict.Pass()); | 1032 rules_list->Append(std::move(rules_dict)); |
1032 } | 1033 } |
1033 { | 1034 { |
1034 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); | 1035 scoped_ptr<base::DictionaryValue> rules_dict(new base::DictionaryValue()); |
1035 rules_dict->SetString("rule", | 1036 rules_dict->SetString("rule", |
1036 "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); | 1037 "TRACE_ON_NAVIGATION_UNTIL_TRIGGER_OR_FULL"); |
1037 rules_dict->SetString("trigger_name", "reactive_test2"); | 1038 rules_dict->SetString("trigger_name", "reactive_test2"); |
1038 rules_dict->SetString("category", "BENCHMARK"); | 1039 rules_dict->SetString("category", "BENCHMARK"); |
1039 rules_list->Append(rules_dict.Pass()); | 1040 rules_list->Append(std::move(rules_dict)); |
1040 } | 1041 } |
1041 dict.Set("configs", rules_list.Pass()); | 1042 dict.Set("configs", std::move(rules_list)); |
1042 | 1043 |
1043 scoped_ptr<BackgroundTracingConfig> config( | 1044 scoped_ptr<BackgroundTracingConfig> config( |
1044 BackgroundTracingConfigImpl::FromDict(&dict)); | 1045 BackgroundTracingConfigImpl::FromDict(&dict)); |
1045 | 1046 |
1046 BackgroundTracingManager::TriggerHandle handle1 = | 1047 BackgroundTracingManager::TriggerHandle handle1 = |
1047 BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 1048 BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
1048 "reactive_test1"); | 1049 "reactive_test1"); |
1049 BackgroundTracingManager::TriggerHandle handle2 = | 1050 BackgroundTracingManager::TriggerHandle handle2 = |
1050 BackgroundTracingManager::GetInstance()->RegisterTriggerType( | 1051 BackgroundTracingManager::GetInstance()->RegisterTriggerType( |
1051 "reactive_test2"); | 1052 "reactive_test2"); |
1052 | 1053 |
1053 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 1054 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
1054 config.Pass(), upload_config_wrapper.get_receive_callback(), | 1055 std::move(config), upload_config_wrapper.get_receive_callback(), |
1055 BackgroundTracingManager::NO_DATA_FILTERING); | 1056 BackgroundTracingManager::NO_DATA_FILTERING); |
1056 | 1057 |
1057 BackgroundTracingManager::GetInstance()->WhenIdle( | 1058 BackgroundTracingManager::GetInstance()->WhenIdle( |
1058 base::Bind(&DisableScenarioWhenIdle)); | 1059 base::Bind(&DisableScenarioWhenIdle)); |
1059 | 1060 |
1060 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 1061 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
1061 handle1, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 1062 handle1, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
1062 | 1063 |
1063 // This is expected to fail since we triggered with handle1. | 1064 // This is expected to fail since we triggered with handle1. |
1064 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 1065 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
(...skipping 20 matching lines...) Expand all Loading... |
1085 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( | 1086 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( |
1086 run_loop.QuitClosure()); | 1087 run_loop.QuitClosure()); |
1087 | 1088 |
1088 scoped_ptr<BackgroundTracingConfig> config = CreateReactiveConfig(); | 1089 scoped_ptr<BackgroundTracingConfig> config = CreateReactiveConfig(); |
1089 | 1090 |
1090 BackgroundTracingManager::TriggerHandle handle = | 1091 BackgroundTracingManager::TriggerHandle handle = |
1091 BackgroundTracingManager:: | 1092 BackgroundTracingManager:: |
1092 GetInstance()->RegisterTriggerType("reactive_test"); | 1093 GetInstance()->RegisterTriggerType("reactive_test"); |
1093 | 1094 |
1094 BackgroundTracingManager::GetInstance()->SetActiveScenario( | 1095 BackgroundTracingManager::GetInstance()->SetActiveScenario( |
1095 config.Pass(), upload_config_wrapper.get_receive_callback(), | 1096 std::move(config), upload_config_wrapper.get_receive_callback(), |
1096 BackgroundTracingManager::NO_DATA_FILTERING); | 1097 BackgroundTracingManager::NO_DATA_FILTERING); |
1097 | 1098 |
1098 BackgroundTracingManager::GetInstance()->WhenIdle( | 1099 BackgroundTracingManager::GetInstance()->WhenIdle( |
1099 base::Bind(&DisableScenarioWhenIdle)); | 1100 base::Bind(&DisableScenarioWhenIdle)); |
1100 | 1101 |
1101 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 1102 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
1102 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 1103 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
1103 // second trigger to terminate. | 1104 // second trigger to terminate. |
1104 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 1105 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
1105 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); | 1106 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), true)); |
1106 // third trigger to trigger again, fails as it is still gathering. | 1107 // third trigger to trigger again, fails as it is still gathering. |
1107 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( | 1108 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( |
1108 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false)); | 1109 handle, base::Bind(&StartedFinalizingCallback, base::Closure(), false)); |
1109 | 1110 |
1110 run_loop.Run(); | 1111 run_loop.Run(); |
1111 | 1112 |
1112 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); | 1113 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); |
1113 } | 1114 } |
1114 } | 1115 } |
1115 | 1116 |
1116 } // namespace content | 1117 } // namespace content |
OLD | NEW |