| 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 |