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

Side by Side Diff: content/browser/tracing/background_tracing_manager_browsertest.cc

Issue 1545243002: Convert Pass()→std::move() in //content/browser (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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 unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « content/browser/tracing/background_tracing_config_impl.cc ('k') | content/browser/tracing/background_tracing_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698