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

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

Issue 2785663002: Revert of Add EnabledStateObserver to BackgroundTracingManager (Closed)
Patch Set: Created 3 years, 8 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 #include <utility>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/metrics/histogram_macros.h" 11 #include "base/metrics/histogram_macros.h"
12 #include "base/strings/pattern.h" 12 #include "base/strings/pattern.h"
13 #include "base/trace_event/trace_event.h" 13 #include "base/trace_event/trace_event.h"
14 #include "content/browser/tracing/background_tracing_manager_impl.h" 14 #include "content/browser/tracing/background_tracing_manager_impl.h"
15 #include "content/browser/tracing/background_tracing_rule.h" 15 #include "content/browser/tracing/background_tracing_rule.h"
16 #include "content/public/common/content_switches.h" 16 #include "content/public/common/content_switches.h"
17 #include "content/public/test/content_browser_test.h" 17 #include "content/public/test/content_browser_test.h"
18 #include "content/public/test/content_browser_test_utils.h" 18 #include "content/public/test/content_browser_test_utils.h"
19 #include "content/public/test/test_utils.h" 19 #include "content/public/test/test_utils.h"
20 #include "third_party/zlib/zlib.h" 20 #include "third_party/zlib/zlib.h"
21 21
22 namespace content { 22 namespace content {
23 namespace {
24
25 class TestBackgroundTracingObserver
26 : public BackgroundTracingManagerImpl::EnabledStateObserver {
27 public:
28 explicit TestBackgroundTracingObserver(
29 base::Closure tracing_enabled_callback);
30 ~TestBackgroundTracingObserver() override;
31
32 void OnScenarioActivated(const BackgroundTracingConfigImpl& config) override;
33 void OnTracingEnabled(
34 BackgroundTracingConfigImpl::CategoryPreset preset) override;
35
36 private:
37 bool was_scenario_activated_;
38 base::Closure tracing_enabled_callback_;
39 };
40
41 TestBackgroundTracingObserver::TestBackgroundTracingObserver(
42 base::Closure tracing_enabled_callback)
43 : was_scenario_activated_(false),
44 tracing_enabled_callback_(tracing_enabled_callback) {
45 BackgroundTracingManagerImpl::GetInstance()->AddEnabledStateObserver(this);
46 }
47
48 TestBackgroundTracingObserver::~TestBackgroundTracingObserver() {
49 static_cast<BackgroundTracingManagerImpl*>(
50 BackgroundTracingManager::GetInstance())
51 ->RemoveEnabledStateObserver(this);
52 EXPECT_TRUE(was_scenario_activated_);
53 }
54
55 void TestBackgroundTracingObserver::OnScenarioActivated(
56 const BackgroundTracingConfigImpl& config) {
57 was_scenario_activated_ = true;
58 }
59
60 void TestBackgroundTracingObserver::OnTracingEnabled(
61 BackgroundTracingConfigImpl::CategoryPreset preset) {
62 tracing_enabled_callback_.Run();
63 }
64
65 } // namespace
66 23
67 class BackgroundTracingManagerBrowserTest : public ContentBrowserTest { 24 class BackgroundTracingManagerBrowserTest : public ContentBrowserTest {
68 public: 25 public:
69 BackgroundTracingManagerBrowserTest() {} 26 BackgroundTracingManagerBrowserTest() {}
70 27
71 private: 28 private:
72 DISALLOW_COPY_AND_ASSIGN(BackgroundTracingManagerBrowserTest); 29 DISALLOW_COPY_AND_ASSIGN(BackgroundTracingManagerBrowserTest);
73 }; 30 };
74 31
75 class BackgroundTracingManagerUploadConfigWrapper { 32 class BackgroundTracingManagerUploadConfigWrapper {
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( 272 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
316 wait_for_upload.QuitClosure()); 273 wait_for_upload.QuitClosure());
317 274
318 std::unique_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); 275 std::unique_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig();
319 276
320 content::BackgroundTracingManager::TriggerHandle handle = 277 content::BackgroundTracingManager::TriggerHandle handle =
321 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( 278 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
322 "preemptive_test"); 279 "preemptive_test");
323 280
324 base::RunLoop wait_for_activated; 281 base::RunLoop wait_for_activated;
325 TestBackgroundTracingObserver observer(wait_for_activated.QuitClosure()); 282 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting(
283 wait_for_activated.QuitClosure());
326 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( 284 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario(
327 std::move(config), upload_config_wrapper.get_receive_callback(), 285 std::move(config), upload_config_wrapper.get_receive_callback(),
328 BackgroundTracingManager::ANONYMIZE_DATA)); 286 BackgroundTracingManager::ANONYMIZE_DATA));
329 287
330 wait_for_activated.Run(); 288 wait_for_activated.Run();
331 289
332 TRACE_EVENT1("benchmark", "whitelisted", "find_this", 1); 290 TRACE_EVENT1("benchmark", "whitelisted", "find_this", 1);
333 TRACE_EVENT1("benchmark", "not_whitelisted", "this_not_found", 1); 291 TRACE_EVENT1("benchmark", "not_whitelisted", "this_not_found", 1);
334 292
335 BackgroundTracingManager::GetInstance()->WhenIdle( 293 BackgroundTracingManager::GetInstance()->WhenIdle(
(...skipping 29 matching lines...) Expand all
365 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( 323 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
366 wait_for_upload.QuitClosure()); 324 wait_for_upload.QuitClosure());
367 325
368 std::unique_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); 326 std::unique_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig();
369 327
370 content::BackgroundTracingManager::TriggerHandle handle = 328 content::BackgroundTracingManager::TriggerHandle handle =
371 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( 329 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
372 "preemptive_test"); 330 "preemptive_test");
373 331
374 base::RunLoop wait_for_activated; 332 base::RunLoop wait_for_activated;
375 TestBackgroundTracingObserver observer(wait_for_activated.QuitClosure()); 333 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting(
334 wait_for_activated.QuitClosure());
376 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( 335 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario(
377 std::move(config), upload_config_wrapper.get_receive_callback(), 336 std::move(config), upload_config_wrapper.get_receive_callback(),
378 BackgroundTracingManager::ANONYMIZE_DATA)); 337 BackgroundTracingManager::ANONYMIZE_DATA));
379 338
380 wait_for_activated.Run(); 339 wait_for_activated.Run();
381 340
382 BackgroundTracingManager::GetInstance()->WhenIdle( 341 BackgroundTracingManager::GetInstance()->WhenIdle(
383 base::Bind(&DisableScenarioWhenIdle)); 342 base::Bind(&DisableScenarioWhenIdle));
384 343
385 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 344 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
(...skipping 24 matching lines...) Expand all
410 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper( 369 BackgroundTracingManagerUploadConfigWrapper upload_config_wrapper(
411 wait_for_upload.QuitClosure()); 370 wait_for_upload.QuitClosure());
412 371
413 std::unique_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig(); 372 std::unique_ptr<BackgroundTracingConfig> config = CreatePreemptiveConfig();
414 373
415 content::BackgroundTracingManager::TriggerHandle handle = 374 content::BackgroundTracingManager::TriggerHandle handle =
416 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType( 375 content::BackgroundTracingManager::GetInstance()->RegisterTriggerType(
417 "preemptive_test"); 376 "preemptive_test");
418 377
419 base::RunLoop wait_for_activated; 378 base::RunLoop wait_for_activated;
420 TestBackgroundTracingObserver observer(wait_for_activated.QuitClosure()); 379 BackgroundTracingManager::GetInstance()->SetTracingEnabledCallbackForTesting(
380 wait_for_activated.QuitClosure());
421 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( 381 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario(
422 std::move(config), upload_config_wrapper.get_receive_callback(), 382 std::move(config), upload_config_wrapper.get_receive_callback(),
423 BackgroundTracingManager::ANONYMIZE_DATA)); 383 BackgroundTracingManager::ANONYMIZE_DATA));
424 384
425 wait_for_activated.Run(); 385 wait_for_activated.Run();
426 386
427 NavigateToURL(shell(), GetTestUrl("", "about:blank")); 387 NavigateToURL(shell(), GetTestUrl("", "about:blank"));
428 388
429 BackgroundTracingManager::GetInstance()->WhenIdle( 389 BackgroundTracingManager::GetInstance()->WhenIdle(
430 base::Bind(&DisableScenarioWhenIdle)); 390 base::Bind(&DisableScenarioWhenIdle));
(...skipping 1012 matching lines...) Expand 10 before | Expand all | Expand 10 after
1443 } 1403 }
1444 dict.Set("configs", std::move(rules_list)); 1404 dict.Set("configs", std::move(rules_list));
1445 1405
1446 std::unique_ptr<BackgroundTracingConfig> config( 1406 std::unique_ptr<BackgroundTracingConfig> config(
1447 BackgroundTracingConfigImpl::FromDict(&dict)); 1407 BackgroundTracingConfigImpl::FromDict(&dict));
1448 1408
1449 BackgroundTracingManager::TriggerHandle trigger_handle = 1409 BackgroundTracingManager::TriggerHandle trigger_handle =
1450 BackgroundTracingManager::GetInstance()->RegisterTriggerType( 1410 BackgroundTracingManager::GetInstance()->RegisterTriggerType(
1451 "reactive_test"); 1411 "reactive_test");
1452 1412
1453 base::RunLoop wait_for_tracing_enabled;
1454 TestBackgroundTracingObserver observer(
1455 wait_for_tracing_enabled.QuitClosure());
1456 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario( 1413 EXPECT_TRUE(BackgroundTracingManager::GetInstance()->SetActiveScenario(
1457 std::move(config), upload_config_wrapper.get_receive_callback(), 1414 std::move(config), upload_config_wrapper.get_receive_callback(),
1458 BackgroundTracingManager::NO_DATA_FILTERING)); 1415 BackgroundTracingManager::NO_DATA_FILTERING));
1459 1416
1460 BackgroundTracingManager::GetInstance()->WhenIdle( 1417 BackgroundTracingManager::GetInstance()->WhenIdle(
1461 base::Bind(&DisableScenarioWhenIdle)); 1418 base::Bind(&DisableScenarioWhenIdle));
1462 1419
1420 base::RunLoop wait_for_tracing_enabled;
1421 static_cast<BackgroundTracingManagerImpl*>(
1422 BackgroundTracingManager::GetInstance())
1423 ->SetTracingEnabledCallbackForTesting(
1424 wait_for_tracing_enabled.QuitClosure());
1425
1463 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 1426 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
1464 trigger_handle, 1427 trigger_handle,
1465 base::Bind(&StartedFinalizingCallback, base::Closure(), true)); 1428 base::Bind(&StartedFinalizingCallback, base::Closure(), true));
1466 1429
1467 wait_for_tracing_enabled.Run(); 1430 wait_for_tracing_enabled.Run();
1468 1431
1469 // This is expected to fail since we already triggered. 1432 // This is expected to fail since we already triggered.
1470 BackgroundTracingManager::GetInstance()->TriggerNamedEvent( 1433 BackgroundTracingManager::GetInstance()->TriggerNamedEvent(
1471 trigger_handle, 1434 trigger_handle,
1472 base::Bind(&StartedFinalizingCallback, base::Closure(), false)); 1435 base::Bind(&StartedFinalizingCallback, base::Closure(), false));
1473 1436
1474 // Since we specified a delay in the scenario, we should still be tracing 1437 // Since we specified a delay in the scenario, we should still be tracing
1475 // at this point. 1438 // at this point.
1476 EXPECT_TRUE( 1439 EXPECT_TRUE(
1477 BackgroundTracingManagerImpl::GetInstance()->IsTracingForTesting()); 1440 BackgroundTracingManagerImpl::GetInstance()->IsTracingForTesting());
1478 1441
1479 BackgroundTracingManager::GetInstance()->FireTimerForTesting(); 1442 BackgroundTracingManager::GetInstance()->FireTimerForTesting();
1480 1443
1481 EXPECT_FALSE( 1444 EXPECT_FALSE(
1482 BackgroundTracingManagerImpl::GetInstance()->IsTracingForTesting()); 1445 BackgroundTracingManagerImpl::GetInstance()->IsTracingForTesting());
1483 1446
1484 run_loop.Run(); 1447 run_loop.Run();
1485 1448
1486 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1); 1449 EXPECT_TRUE(upload_config_wrapper.get_receive_count() == 1);
1487 } 1450 }
1488 } 1451 }
1489 1452
1490 } // namespace content 1453 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698