| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 //------------------------------------------------------------------------------ | 5 //------------------------------------------------------------------------------ |
| 6 // Description of the life cycle of a instance of MetricsService. | 6 // Description of the life cycle of a instance of MetricsService. |
| 7 // | 7 // |
| 8 // OVERVIEW | 8 // OVERVIEW |
| 9 // | 9 // |
| 10 // A MetricsService instance is typically created at application startup. It | 10 // A MetricsService instance is typically created at application startup. It |
| (...skipping 816 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 827 // Schedules a task on the file thread for execution of slower | 827 // Schedules a task on the file thread for execution of slower |
| 828 // initialization steps (such as plugin list generation) necessary | 828 // initialization steps (such as plugin list generation) necessary |
| 829 // for sending the initial log. This avoids blocking the main UI | 829 // for sending the initial log. This avoids blocking the main UI |
| 830 // thread. | 830 // thread. |
| 831 BrowserThread::PostDelayedTask( | 831 BrowserThread::PostDelayedTask( |
| 832 BrowserThread::FILE, | 832 BrowserThread::FILE, |
| 833 FROM_HERE, | 833 FROM_HERE, |
| 834 base::Bind(&MetricsService::InitTaskGetHardwareClass, | 834 base::Bind(&MetricsService::InitTaskGetHardwareClass, |
| 835 self_ptr_factory_.GetWeakPtr(), | 835 self_ptr_factory_.GetWeakPtr(), |
| 836 MessageLoop::current()->message_loop_proxy()), | 836 MessageLoop::current()->message_loop_proxy()), |
| 837 kInitializationDelaySeconds); | 837 base::TimeDelta::FromSeconds(kInitializationDelaySeconds)); |
| 838 } | 838 } |
| 839 } | 839 } |
| 840 | 840 |
| 841 void MetricsService::StopRecording() { | 841 void MetricsService::StopRecording() { |
| 842 if (!log_manager_.current_log()) | 842 if (!log_manager_.current_log()) |
| 843 return; | 843 return; |
| 844 | 844 |
| 845 // TODO(jar): Integrate bounds on log recording more consistently, so that we | 845 // TODO(jar): Integrate bounds on log recording more consistently, so that we |
| 846 // can stop recording logs that are too big much sooner. | 846 // can stop recording logs that are too big much sooner. |
| 847 if (log_manager_.current_log()->num_events() > kEventLimit) { | 847 if (log_manager_.current_log()->num_events() > kEventLimit) { |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 936 &MetricsService::OnHistogramSynchronizationDone, | 936 &MetricsService::OnHistogramSynchronizationDone, |
| 937 self_ptr_factory_.GetWeakPtr()); | 937 self_ptr_factory_.GetWeakPtr()); |
| 938 | 938 |
| 939 base::StatisticsRecorder::CollectHistogramStats("Browser"); | 939 base::StatisticsRecorder::CollectHistogramStats("Browser"); |
| 940 | 940 |
| 941 // Set up the callback to task to call after we receive histograms from all | 941 // Set up the callback to task to call after we receive histograms from all |
| 942 // renderer processes. Wait time specifies how long to wait before absolutely | 942 // renderer processes. Wait time specifies how long to wait before absolutely |
| 943 // calling us back on the task. | 943 // calling us back on the task. |
| 944 HistogramSynchronizer::FetchRendererHistogramsAsynchronously( | 944 HistogramSynchronizer::FetchRendererHistogramsAsynchronously( |
| 945 MessageLoop::current(), callback, | 945 MessageLoop::current(), callback, |
| 946 kMaxHistogramGatheringWaitDuration); | 946 base::TimeDelta::FromMilliseconds(kMaxHistogramGatheringWaitDuration)); |
| 947 } | 947 } |
| 948 | 948 |
| 949 void MetricsService::OnHistogramSynchronizationDone() { | 949 void MetricsService::OnHistogramSynchronizationDone() { |
| 950 DCHECK(IsSingleThreaded()); | 950 DCHECK(IsSingleThreaded()); |
| 951 // This function should only be called as the callback from an ansynchronous | 951 // This function should only be called as the callback from an ansynchronous |
| 952 // step. | 952 // step. |
| 953 DCHECK(waiting_for_asynchronus_reporting_step_); | 953 DCHECK(waiting_for_asynchronus_reporting_step_); |
| 954 | 954 |
| 955 waiting_for_asynchronus_reporting_step_ = false; | 955 waiting_for_asynchronus_reporting_step_ = false; |
| 956 OnFinalLogInfoCollectionDone(); | 956 OnFinalLogInfoCollectionDone(); |
| (...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1658 if (local_state) { | 1658 if (local_state) { |
| 1659 const PrefService::Preference* uma_pref = | 1659 const PrefService::Preference* uma_pref = |
| 1660 local_state->FindPreference(prefs::kMetricsReportingEnabled); | 1660 local_state->FindPreference(prefs::kMetricsReportingEnabled); |
| 1661 if (uma_pref) { | 1661 if (uma_pref) { |
| 1662 bool success = uma_pref->GetValue()->GetAsBoolean(&result); | 1662 bool success = uma_pref->GetValue()->GetAsBoolean(&result); |
| 1663 DCHECK(success); | 1663 DCHECK(success); |
| 1664 } | 1664 } |
| 1665 } | 1665 } |
| 1666 return result; | 1666 return result; |
| 1667 } | 1667 } |
| OLD | NEW |