Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/metrics/chrome_metrics_service_client.h" | 5 #include "chrome/browser/metrics/chrome_metrics_service_client.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 33 #include "chrome/browser/metrics/subprocess_metrics_provider.h" | 33 #include "chrome/browser/metrics/subprocess_metrics_provider.h" |
| 34 #include "chrome/browser/metrics/time_ticks_experiment_win.h" | 34 #include "chrome/browser/metrics/time_ticks_experiment_win.h" |
| 35 #include "chrome/browser/sync/chrome_sync_client.h" | 35 #include "chrome/browser/sync/chrome_sync_client.h" |
| 36 #include "chrome/browser/ui/browser_otr_state.h" | 36 #include "chrome/browser/ui/browser_otr_state.h" |
| 37 #include "chrome/common/channel_info.h" | 37 #include "chrome/common/channel_info.h" |
| 38 #include "chrome/common/chrome_paths.h" | 38 #include "chrome/common/chrome_paths.h" |
| 39 #include "chrome/common/chrome_paths_internal.h" | 39 #include "chrome/common/chrome_paths_internal.h" |
| 40 #include "chrome/common/chrome_switches.h" | 40 #include "chrome/common/chrome_switches.h" |
| 41 #include "chrome/common/crash_keys.h" | 41 #include "chrome/common/crash_keys.h" |
| 42 #include "chrome/common/features.h" | 42 #include "chrome/common/features.h" |
| 43 #include "chrome/common/pref_names.h" | |
| 43 #include "chrome/installer/util/util_constants.h" | 44 #include "chrome/installer/util/util_constants.h" |
| 44 #include "components/metrics/call_stack_profile_metrics_provider.h" | 45 #include "components/metrics/call_stack_profile_metrics_provider.h" |
| 45 #include "components/metrics/drive_metrics_provider.h" | 46 #include "components/metrics/drive_metrics_provider.h" |
| 46 #include "components/metrics/file_metrics_provider.h" | 47 #include "components/metrics/file_metrics_provider.h" |
| 47 #include "components/metrics/gpu/gpu_metrics_provider.h" | 48 #include "components/metrics/gpu/gpu_metrics_provider.h" |
| 48 #include "components/metrics/metrics_pref_names.h" | 49 #include "components/metrics/metrics_pref_names.h" |
| 49 #include "components/metrics/metrics_reporting_default_state.h" | 50 #include "components/metrics/metrics_reporting_default_state.h" |
| 50 #include "components/metrics/metrics_service.h" | 51 #include "components/metrics/metrics_service.h" |
| 51 #include "components/metrics/metrics_service_client.h" | 52 #include "components/metrics/metrics_service_client.h" |
| 52 #include "components/metrics/metrics_state_manager.h" | 53 #include "components/metrics/metrics_state_manager.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 108 namespace { | 109 namespace { |
| 109 | 110 |
| 110 // This specifies the amount of time to wait for all renderers to send their | 111 // This specifies the amount of time to wait for all renderers to send their |
| 111 // data. | 112 // data. |
| 112 const int kMaxHistogramGatheringWaitDuration = 60000; // 60 seconds. | 113 const int kMaxHistogramGatheringWaitDuration = 60000; // 60 seconds. |
| 113 | 114 |
| 114 // Needs to be kept in sync with the writer in | 115 // Needs to be kept in sync with the writer in |
| 115 // third_party/crashpad/crashpad/handler/handler_main.cc. | 116 // third_party/crashpad/crashpad/handler/handler_main.cc. |
| 116 const char kCrashpadHistogramAllocatorName[] = "CrashpadMetrics"; | 117 const char kCrashpadHistogramAllocatorName[] = "CrashpadMetrics"; |
| 117 | 118 |
| 118 // Checks whether it is the first time that cellular uploads logic should be | |
| 119 // enabled based on whether the the preference for that logic is initialized. | |
| 120 // This should happen only once as the used preference will be initialized | |
| 121 // afterwards in |UmaSessionStats.java|. | |
| 122 bool ShouldClearSavedMetrics() { | |
| 123 #if BUILDFLAG(ANDROID_JAVA_UI) | |
| 124 PrefService* local_state = g_browser_process->local_state(); | |
| 125 return !local_state->HasPrefPath(metrics::prefs::kMetricsReportingEnabled) && | |
| 126 metrics::IsCellularLogicEnabled(); | |
| 127 #else | |
| 128 return false; | |
| 129 #endif | |
| 130 } | |
| 131 | |
| 132 void RegisterFileMetricsPreferences(PrefRegistrySimple* registry) { | 119 void RegisterFileMetricsPreferences(PrefRegistrySimple* registry) { |
| 133 metrics::FileMetricsProvider::RegisterPrefs( | 120 metrics::FileMetricsProvider::RegisterPrefs( |
| 134 registry, ChromeMetricsServiceClient::kBrowserMetricsName); | 121 registry, ChromeMetricsServiceClient::kBrowserMetricsName); |
| 135 | 122 |
| 136 metrics::FileMetricsProvider::RegisterPrefs(registry, | 123 metrics::FileMetricsProvider::RegisterPrefs(registry, |
| 137 kCrashpadHistogramAllocatorName); | 124 kCrashpadHistogramAllocatorName); |
| 138 | 125 |
| 139 #if defined(OS_WIN) | 126 #if defined(OS_WIN) |
| 140 metrics::FileMetricsProvider::RegisterPrefs( | 127 metrics::FileMetricsProvider::RegisterPrefs( |
| 141 registry, installer::kSetupHistogramAllocatorName); | 128 registry, installer::kSetupHistogramAllocatorName); |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 409 return IsMetricsReportingPolicyManaged(); | 396 return IsMetricsReportingPolicyManaged(); |
| 410 } | 397 } |
| 411 | 398 |
| 412 metrics::EnableMetricsDefault | 399 metrics::EnableMetricsDefault |
| 413 ChromeMetricsServiceClient::GetMetricsReportingDefaultState() { | 400 ChromeMetricsServiceClient::GetMetricsReportingDefaultState() { |
| 414 return metrics::GetMetricsReportingDefaultState( | 401 return metrics::GetMetricsReportingDefaultState( |
| 415 g_browser_process->local_state()); | 402 g_browser_process->local_state()); |
| 416 } | 403 } |
| 417 | 404 |
| 418 void ChromeMetricsServiceClient::Initialize() { | 405 void ChromeMetricsServiceClient::Initialize() { |
| 419 // Clear metrics reports if it is the first time cellular upload logic should | 406 // Clear deprecated metrics preference for Android. |
| 420 // apply to avoid sudden bulk uploads. It needs to be done before initializing | 407 PrefService* local_state = g_browser_process->local_state(); |
| 421 // metrics service so that metrics log manager is initialized correctly. | 408 #if BUILDFLAG(ANDROID_JAVA_UI) |
|
Alexei Svitkine (slow)
2016/09/19 19:38:02
Add a comment about this explaining what this with
gayane -on leave until 09-2017
2016/09/19 20:05:58
Done.
| |
| 422 if (ShouldClearSavedMetrics()) { | 409 local_state->ClearPref(prefs::kCrashReportingEnabled); |
| 423 PrefService* local_state = g_browser_process->local_state(); | 410 #endif |
| 424 local_state->ClearPref(metrics::prefs::kMetricsInitialLogs); | |
| 425 local_state->ClearPref(metrics::prefs::kMetricsOngoingLogs); | |
| 426 } | |
| 427 | 411 |
| 428 metrics_service_.reset(new metrics::MetricsService( | 412 metrics_service_.reset( |
| 429 metrics_state_manager_, this, g_browser_process->local_state())); | 413 new metrics::MetricsService(metrics_state_manager_, this, local_state)); |
| 430 | 414 |
| 431 // Gets access to persistent metrics shared by sub-processes. | 415 // Gets access to persistent metrics shared by sub-processes. |
| 432 metrics_service_->RegisterMetricsProvider( | 416 metrics_service_->RegisterMetricsProvider( |
| 433 std::unique_ptr<metrics::MetricsProvider>( | 417 std::unique_ptr<metrics::MetricsProvider>( |
| 434 new SubprocessMetricsProvider())); | 418 new SubprocessMetricsProvider())); |
| 435 | 419 |
| 436 // Register metrics providers. | 420 // Register metrics providers. |
| 437 #if defined(ENABLE_EXTENSIONS) | 421 #if defined(ENABLE_EXTENSIONS) |
| 438 metrics_service_->RegisterMetricsProvider( | 422 metrics_service_->RegisterMetricsProvider( |
| 439 std::unique_ptr<metrics::MetricsProvider>( | 423 std::unique_ptr<metrics::MetricsProvider>( |
| 440 new ExtensionsMetricsProvider(metrics_state_manager_))); | 424 new ExtensionsMetricsProvider(metrics_state_manager_))); |
| 441 #endif | 425 #endif |
| 442 metrics_service_->RegisterMetricsProvider( | 426 metrics_service_->RegisterMetricsProvider( |
| 443 std::unique_ptr<metrics::MetricsProvider>( | 427 std::unique_ptr<metrics::MetricsProvider>( |
| 444 new metrics::NetworkMetricsProvider( | 428 new metrics::NetworkMetricsProvider( |
| 445 content::BrowserThread::GetBlockingPool()))); | 429 content::BrowserThread::GetBlockingPool()))); |
| 446 | 430 |
| 447 // Currently, we configure OmniboxMetricsProvider to not log events to UMA | 431 // Currently, we configure OmniboxMetricsProvider to not log events to UMA |
| 448 // if there is a single incognito session visible. In the future, it may | 432 // if there is a single incognito session visible. In the future, it may |
| 449 // be worth revisiting this to still log events from non-incognito sessions. | 433 // be worth revisiting this to still log events from non-incognito sessions. |
| 450 metrics_service_->RegisterMetricsProvider( | 434 metrics_service_->RegisterMetricsProvider( |
| 451 std::unique_ptr<metrics::MetricsProvider>(new OmniboxMetricsProvider( | 435 std::unique_ptr<metrics::MetricsProvider>(new OmniboxMetricsProvider( |
| 452 base::Bind(&chrome::IsIncognitoSessionActive)))); | 436 base::Bind(&chrome::IsIncognitoSessionActive)))); |
| 453 metrics_service_->RegisterMetricsProvider( | 437 metrics_service_->RegisterMetricsProvider( |
| 454 std::unique_ptr<metrics::MetricsProvider>( | 438 std::unique_ptr<metrics::MetricsProvider>( |
| 455 new ChromeStabilityMetricsProvider( | 439 new ChromeStabilityMetricsProvider(local_state))); |
| 456 g_browser_process->local_state()))); | |
| 457 metrics_service_->RegisterMetricsProvider( | 440 metrics_service_->RegisterMetricsProvider( |
| 458 std::unique_ptr<metrics::MetricsProvider>( | 441 std::unique_ptr<metrics::MetricsProvider>( |
| 459 new metrics::GPUMetricsProvider)); | 442 new metrics::GPUMetricsProvider)); |
| 460 metrics_service_->RegisterMetricsProvider( | 443 metrics_service_->RegisterMetricsProvider( |
| 461 std::unique_ptr<metrics::MetricsProvider>( | 444 std::unique_ptr<metrics::MetricsProvider>( |
| 462 new metrics::ScreenInfoMetricsProvider)); | 445 new metrics::ScreenInfoMetricsProvider)); |
| 463 | 446 |
| 464 metrics_service_->RegisterMetricsProvider(CreateFileMetricsProvider( | 447 metrics_service_->RegisterMetricsProvider(CreateFileMetricsProvider( |
| 465 ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled())); | 448 ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled())); |
| 466 | 449 |
| 467 drive_metrics_provider_ = new metrics::DriveMetricsProvider( | 450 drive_metrics_provider_ = new metrics::DriveMetricsProvider( |
| 468 content::BrowserThread::GetTaskRunnerForThread( | 451 content::BrowserThread::GetTaskRunnerForThread( |
| 469 content::BrowserThread::FILE), | 452 content::BrowserThread::FILE), |
| 470 chrome::FILE_LOCAL_STATE); | 453 chrome::FILE_LOCAL_STATE); |
| 471 metrics_service_->RegisterMetricsProvider( | 454 metrics_service_->RegisterMetricsProvider( |
| 472 std::unique_ptr<metrics::MetricsProvider>(drive_metrics_provider_)); | 455 std::unique_ptr<metrics::MetricsProvider>(drive_metrics_provider_)); |
| 473 | 456 |
| 474 profiler_metrics_provider_ = new metrics::ProfilerMetricsProvider( | 457 profiler_metrics_provider_ = new metrics::ProfilerMetricsProvider(); |
| 475 base::Bind(&metrics::IsCellularLogicEnabled)); | |
| 476 metrics_service_->RegisterMetricsProvider( | 458 metrics_service_->RegisterMetricsProvider( |
| 477 std::unique_ptr<metrics::MetricsProvider>(profiler_metrics_provider_)); | 459 std::unique_ptr<metrics::MetricsProvider>(profiler_metrics_provider_)); |
| 478 | 460 |
| 479 metrics_service_->RegisterMetricsProvider( | 461 metrics_service_->RegisterMetricsProvider( |
| 480 std::unique_ptr<metrics::MetricsProvider>( | 462 std::unique_ptr<metrics::MetricsProvider>( |
| 481 new metrics::CallStackProfileMetricsProvider)); | 463 new metrics::CallStackProfileMetricsProvider)); |
| 482 | 464 |
| 483 metrics_service_->RegisterMetricsProvider( | 465 metrics_service_->RegisterMetricsProvider( |
| 484 std::unique_ptr<metrics::MetricsProvider>( | 466 std::unique_ptr<metrics::MetricsProvider>( |
| 485 new metrics::SamplingMetricsProvider)); | 467 new metrics::SamplingMetricsProvider)); |
| 486 | 468 |
| 487 #if BUILDFLAG(ANDROID_JAVA_UI) | 469 #if BUILDFLAG(ANDROID_JAVA_UI) |
| 488 metrics_service_->RegisterMetricsProvider( | 470 metrics_service_->RegisterMetricsProvider( |
| 489 std::unique_ptr<metrics::MetricsProvider>( | 471 std::unique_ptr<metrics::MetricsProvider>( |
| 490 new AndroidMetricsProvider(g_browser_process->local_state()))); | 472 new AndroidMetricsProvider(local_state))); |
| 491 metrics_service_->RegisterMetricsProvider( | 473 metrics_service_->RegisterMetricsProvider( |
| 492 std::unique_ptr<metrics::MetricsProvider>(new PageLoadMetricsProvider())); | 474 std::unique_ptr<metrics::MetricsProvider>(new PageLoadMetricsProvider())); |
| 493 #endif // BUILDFLAG(ANDROID_JAVA_UI) | 475 #endif // BUILDFLAG(ANDROID_JAVA_UI) |
| 494 | 476 |
| 495 #if defined(OS_WIN) | 477 #if defined(OS_WIN) |
| 496 google_update_metrics_provider_ = new GoogleUpdateMetricsProviderWin; | 478 google_update_metrics_provider_ = new GoogleUpdateMetricsProviderWin; |
| 497 metrics_service_->RegisterMetricsProvider( | 479 metrics_service_->RegisterMetricsProvider( |
| 498 std::unique_ptr<metrics::MetricsProvider>( | 480 std::unique_ptr<metrics::MetricsProvider>( |
| 499 google_update_metrics_provider_)); | 481 google_update_metrics_provider_)); |
| 500 | 482 |
| 501 metrics_service_->RegisterMetricsProvider( | 483 metrics_service_->RegisterMetricsProvider( |
| 502 std::unique_ptr<metrics::MetricsProvider>( | 484 std::unique_ptr<metrics::MetricsProvider>( |
| 503 new browser_watcher::WatcherMetricsProviderWin( | 485 new browser_watcher::WatcherMetricsProviderWin( |
| 504 chrome::GetBrowserExitCodesRegistryPath(), | 486 chrome::GetBrowserExitCodesRegistryPath(), |
| 505 content::BrowserThread::GetBlockingPool()))); | 487 content::BrowserThread::GetBlockingPool()))); |
| 506 | 488 |
| 507 antivirus_metrics_provider_ = new AntiVirusMetricsProvider( | 489 antivirus_metrics_provider_ = new AntiVirusMetricsProvider( |
| 508 content::BrowserThread::GetBlockingPool() | 490 content::BrowserThread::GetBlockingPool() |
| 509 ->GetTaskRunnerWithShutdownBehavior( | 491 ->GetTaskRunnerWithShutdownBehavior( |
| 510 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN)); | 492 base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN)); |
| 511 | 493 |
| 512 metrics_service_->RegisterMetricsProvider( | 494 metrics_service_->RegisterMetricsProvider( |
| 513 std::unique_ptr<metrics::MetricsProvider>(antivirus_metrics_provider_)); | 495 std::unique_ptr<metrics::MetricsProvider>(antivirus_metrics_provider_)); |
| 514 #endif // defined(OS_WIN) | 496 #endif // defined(OS_WIN) |
| 515 | 497 |
| 516 #if defined(ENABLE_PLUGINS) | 498 #if defined(ENABLE_PLUGINS) |
| 517 plugin_metrics_provider_ = | 499 plugin_metrics_provider_ = new PluginMetricsProvider(local_state); |
| 518 new PluginMetricsProvider(g_browser_process->local_state()); | |
| 519 metrics_service_->RegisterMetricsProvider( | 500 metrics_service_->RegisterMetricsProvider( |
| 520 std::unique_ptr<metrics::MetricsProvider>(plugin_metrics_provider_)); | 501 std::unique_ptr<metrics::MetricsProvider>(plugin_metrics_provider_)); |
| 521 #endif // defined(ENABLE_PLUGINS) | 502 #endif // defined(ENABLE_PLUGINS) |
| 522 | 503 |
| 523 #if defined(OS_CHROMEOS) | 504 #if defined(OS_CHROMEOS) |
| 524 ChromeOSMetricsProvider* chromeos_metrics_provider = | 505 ChromeOSMetricsProvider* chromeos_metrics_provider = |
| 525 new ChromeOSMetricsProvider; | 506 new ChromeOSMetricsProvider; |
| 526 chromeos_metrics_provider_ = chromeos_metrics_provider; | 507 chromeos_metrics_provider_ = chromeos_metrics_provider; |
| 527 metrics_service_->RegisterMetricsProvider( | 508 metrics_service_->RegisterMetricsProvider( |
| 528 std::unique_ptr<metrics::MetricsProvider>(chromeos_metrics_provider)); | 509 std::unique_ptr<metrics::MetricsProvider>(chromeos_metrics_provider)); |
| 529 | 510 |
| 530 SigninStatusMetricsProviderChromeOS* signin_metrics_provider_cros = | 511 SigninStatusMetricsProviderChromeOS* signin_metrics_provider_cros = |
| 531 new SigninStatusMetricsProviderChromeOS; | 512 new SigninStatusMetricsProviderChromeOS; |
| 532 metrics_service_->RegisterMetricsProvider( | 513 metrics_service_->RegisterMetricsProvider( |
| 533 std::unique_ptr<metrics::MetricsProvider>(signin_metrics_provider_cros)); | 514 std::unique_ptr<metrics::MetricsProvider>(signin_metrics_provider_cros)); |
| 534 | 515 |
| 535 // Record default UMA state as opt-out for all Chrome OS users, if not | 516 // Record default UMA state as opt-out for all Chrome OS users, if not |
| 536 // recorded yet. | 517 // recorded yet. |
| 537 PrefService* local_state = g_browser_process->local_state(); | |
| 538 if (metrics::GetMetricsReportingDefaultState(local_state) == | 518 if (metrics::GetMetricsReportingDefaultState(local_state) == |
| 539 metrics::EnableMetricsDefault::DEFAULT_UNKNOWN) { | 519 metrics::EnableMetricsDefault::DEFAULT_UNKNOWN) { |
| 540 metrics::RecordMetricsReportingDefaultState( | 520 metrics::RecordMetricsReportingDefaultState( |
| 541 local_state, metrics::EnableMetricsDefault::OPT_OUT); | 521 local_state, metrics::EnableMetricsDefault::OPT_OUT); |
| 542 } | 522 } |
| 543 #endif // defined(OS_CHROMEOS) | 523 #endif // defined(OS_CHROMEOS) |
| 544 | 524 |
| 545 #if !defined(OS_CHROMEOS) | 525 #if !defined(OS_CHROMEOS) |
| 546 metrics_service_->RegisterMetricsProvider( | 526 metrics_service_->RegisterMetricsProvider( |
| 547 std::unique_ptr<metrics::MetricsProvider>( | 527 std::unique_ptr<metrics::MetricsProvider>( |
| 548 SigninStatusMetricsProvider::CreateInstance(base::WrapUnique( | 528 SigninStatusMetricsProvider::CreateInstance(base::WrapUnique( |
| 549 new ChromeSigninStatusMetricsProviderDelegate)))); | 529 new ChromeSigninStatusMetricsProviderDelegate)))); |
| 550 #endif // !defined(OS_CHROMEOS) | 530 #endif // !defined(OS_CHROMEOS) |
| 551 | 531 |
| 552 metrics_service_->RegisterMetricsProvider( | 532 metrics_service_->RegisterMetricsProvider( |
| 553 std::unique_ptr<metrics::MetricsProvider>( | 533 std::unique_ptr<metrics::MetricsProvider>( |
| 554 new sync_driver::DeviceCountMetricsProvider(base::Bind( | 534 new sync_driver::DeviceCountMetricsProvider(base::Bind( |
| 555 &browser_sync::ChromeSyncClient::GetDeviceInfoTrackers)))); | 535 &browser_sync::ChromeSyncClient::GetDeviceInfoTrackers)))); |
| 556 | 536 |
| 557 metrics_service_->RegisterMetricsProvider( | 537 metrics_service_->RegisterMetricsProvider( |
| 558 std::unique_ptr<metrics::MetricsProvider>( | 538 std::unique_ptr<metrics::MetricsProvider>( |
| 559 new HttpsEngagementMetricsProvider())); | 539 new HttpsEngagementMetricsProvider())); |
| 560 | |
| 561 // Clear stability metrics if it is the first time cellular upload logic | |
| 562 // should apply to avoid sudden bulk uploads. It needs to be done after all | |
| 563 // providers are registered. | |
| 564 if (ShouldClearSavedMetrics()) | |
| 565 metrics_service_->ClearSavedStabilityMetrics(); | |
| 566 } | 540 } |
| 567 | 541 |
| 568 void ChromeMetricsServiceClient::OnInitTaskGotHardwareClass() { | 542 void ChromeMetricsServiceClient::OnInitTaskGotHardwareClass() { |
| 569 const base::Closure got_bluetooth_adapter_callback = | 543 const base::Closure got_bluetooth_adapter_callback = |
| 570 base::Bind(&ChromeMetricsServiceClient::OnInitTaskGotBluetoothAdapter, | 544 base::Bind(&ChromeMetricsServiceClient::OnInitTaskGotBluetoothAdapter, |
| 571 weak_ptr_factory_.GetWeakPtr()); | 545 weak_ptr_factory_.GetWeakPtr()); |
| 572 #if defined(OS_CHROMEOS) | 546 #if defined(OS_CHROMEOS) |
| 573 chromeos_metrics_provider_->InitTaskGetBluetoothAdapter( | 547 chromeos_metrics_provider_->InitTaskGetBluetoothAdapter( |
| 574 got_bluetooth_adapter_callback); | 548 got_bluetooth_adapter_callback); |
| 575 #else | 549 #else |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 814 } | 788 } |
| 815 } | 789 } |
| 816 | 790 |
| 817 void ChromeMetricsServiceClient::OnURLOpenedFromOmnibox(OmniboxLog* log) { | 791 void ChromeMetricsServiceClient::OnURLOpenedFromOmnibox(OmniboxLog* log) { |
| 818 metrics_service_->OnApplicationNotIdle(); | 792 metrics_service_->OnApplicationNotIdle(); |
| 819 } | 793 } |
| 820 | 794 |
| 821 bool ChromeMetricsServiceClient::IsUMACellularUploadLogicEnabled() { | 795 bool ChromeMetricsServiceClient::IsUMACellularUploadLogicEnabled() { |
| 822 return metrics::IsCellularLogicEnabled(); | 796 return metrics::IsCellularLogicEnabled(); |
| 823 } | 797 } |
| OLD | NEW |