1*6777b538SAndroid Build Coastguard Worker // Copyright 2014 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "components/metrics/metrics_provider.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include "base/notreached.h" 8*6777b538SAndroid Build Coastguard Worker #include "third_party/metrics_proto/chrome_user_metrics_extension.pb.h" 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker namespace metrics { 11*6777b538SAndroid Build Coastguard Worker MetricsProvider()12*6777b538SAndroid Build Coastguard WorkerMetricsProvider::MetricsProvider() { 13*6777b538SAndroid Build Coastguard Worker } 14*6777b538SAndroid Build Coastguard Worker ~MetricsProvider()15*6777b538SAndroid Build Coastguard WorkerMetricsProvider::~MetricsProvider() { 16*6777b538SAndroid Build Coastguard Worker } 17*6777b538SAndroid Build Coastguard Worker Init()18*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::Init() { 19*6777b538SAndroid Build Coastguard Worker } 20*6777b538SAndroid Build Coastguard Worker AsyncInit(base::OnceClosure done_callback)21*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::AsyncInit(base::OnceClosure done_callback) { 22*6777b538SAndroid Build Coastguard Worker std::move(done_callback).Run(); 23*6777b538SAndroid Build Coastguard Worker } 24*6777b538SAndroid Build Coastguard Worker ProvideHistograms()25*6777b538SAndroid Build Coastguard Workerbool MetricsProvider::ProvideHistograms() { 26*6777b538SAndroid Build Coastguard Worker return true; 27*6777b538SAndroid Build Coastguard Worker } 28*6777b538SAndroid Build Coastguard Worker OnDidCreateMetricsLog()29*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::OnDidCreateMetricsLog() { 30*6777b538SAndroid Build Coastguard Worker emitted_ = ProvideHistograms(); 31*6777b538SAndroid Build Coastguard Worker } 32*6777b538SAndroid Build Coastguard Worker OnRecordingEnabled()33*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::OnRecordingEnabled() { 34*6777b538SAndroid Build Coastguard Worker } 35*6777b538SAndroid Build Coastguard Worker OnRecordingDisabled()36*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::OnRecordingDisabled() { 37*6777b538SAndroid Build Coastguard Worker } 38*6777b538SAndroid Build Coastguard Worker OnClientStateCleared()39*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::OnClientStateCleared() {} 40*6777b538SAndroid Build Coastguard Worker OnAppEnterBackground()41*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::OnAppEnterBackground() { 42*6777b538SAndroid Build Coastguard Worker } 43*6777b538SAndroid Build Coastguard Worker OnPageLoadStarted()44*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::OnPageLoadStarted() {} 45*6777b538SAndroid Build Coastguard Worker HasIndependentMetrics()46*6777b538SAndroid Build Coastguard Workerbool MetricsProvider::HasIndependentMetrics() { 47*6777b538SAndroid Build Coastguard Worker return false; 48*6777b538SAndroid Build Coastguard Worker } 49*6777b538SAndroid Build Coastguard Worker ProvideIndependentMetrics(base::OnceClosure serialize_log_callback,base::OnceCallback<void (bool)> done_callback,ChromeUserMetricsExtension * uma_proto,base::HistogramSnapshotManager * snapshot_manager)50*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::ProvideIndependentMetrics( 51*6777b538SAndroid Build Coastguard Worker base::OnceClosure serialize_log_callback, 52*6777b538SAndroid Build Coastguard Worker base::OnceCallback<void(bool)> done_callback, 53*6777b538SAndroid Build Coastguard Worker ChromeUserMetricsExtension* uma_proto, 54*6777b538SAndroid Build Coastguard Worker base::HistogramSnapshotManager* snapshot_manager) { 55*6777b538SAndroid Build Coastguard Worker // Either the method HasIndependentMetrics() has been overridden and this 56*6777b538SAndroid Build Coastguard Worker // method has not, or this method being called without regard to Has(). 57*6777b538SAndroid Build Coastguard Worker // Both are wrong. 58*6777b538SAndroid Build Coastguard Worker NOTREACHED(); 59*6777b538SAndroid Build Coastguard Worker } 60*6777b538SAndroid Build Coastguard Worker ProvideSystemProfileMetrics(SystemProfileProto * system_profile_proto)61*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::ProvideSystemProfileMetrics( 62*6777b538SAndroid Build Coastguard Worker SystemProfileProto* system_profile_proto) {} 63*6777b538SAndroid Build Coastguard Worker ProvideSystemProfileMetricsWithLogCreationTime(base::TimeTicks log_creation_time,SystemProfileProto * system_profile_proto)64*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::ProvideSystemProfileMetricsWithLogCreationTime( 65*6777b538SAndroid Build Coastguard Worker base::TimeTicks log_creation_time, 66*6777b538SAndroid Build Coastguard Worker SystemProfileProto* system_profile_proto) { 67*6777b538SAndroid Build Coastguard Worker ProvideSystemProfileMetrics(system_profile_proto); 68*6777b538SAndroid Build Coastguard Worker } 69*6777b538SAndroid Build Coastguard Worker HasPreviousSessionData()70*6777b538SAndroid Build Coastguard Workerbool MetricsProvider::HasPreviousSessionData() { 71*6777b538SAndroid Build Coastguard Worker return false; 72*6777b538SAndroid Build Coastguard Worker } 73*6777b538SAndroid Build Coastguard Worker ProvidePreviousSessionData(ChromeUserMetricsExtension * uma_proto)74*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::ProvidePreviousSessionData( 75*6777b538SAndroid Build Coastguard Worker ChromeUserMetricsExtension* uma_proto) { 76*6777b538SAndroid Build Coastguard Worker ProvideStabilityMetrics(uma_proto->mutable_system_profile()); 77*6777b538SAndroid Build Coastguard Worker } 78*6777b538SAndroid Build Coastguard Worker ProvideCurrentSessionData(ChromeUserMetricsExtension * uma_proto)79*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::ProvideCurrentSessionData( 80*6777b538SAndroid Build Coastguard Worker ChromeUserMetricsExtension* uma_proto) { 81*6777b538SAndroid Build Coastguard Worker ProvideStabilityMetrics(uma_proto->mutable_system_profile()); 82*6777b538SAndroid Build Coastguard Worker 83*6777b538SAndroid Build Coastguard Worker if (!emitted_) { 84*6777b538SAndroid Build Coastguard Worker ProvideHistograms(); 85*6777b538SAndroid Build Coastguard Worker } 86*6777b538SAndroid Build Coastguard Worker } 87*6777b538SAndroid Build Coastguard Worker ProvideCurrentSessionUKMData()88*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::ProvideCurrentSessionUKMData() {} 89*6777b538SAndroid Build Coastguard Worker ProvideStabilityMetrics(SystemProfileProto * system_profile_proto)90*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::ProvideStabilityMetrics( 91*6777b538SAndroid Build Coastguard Worker SystemProfileProto* system_profile_proto) { 92*6777b538SAndroid Build Coastguard Worker } 93*6777b538SAndroid Build Coastguard Worker ClearSavedStabilityMetrics()94*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::ClearSavedStabilityMetrics() { 95*6777b538SAndroid Build Coastguard Worker } 96*6777b538SAndroid Build Coastguard Worker RecordHistogramSnapshots(base::HistogramSnapshotManager * snapshot_manager)97*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::RecordHistogramSnapshots( 98*6777b538SAndroid Build Coastguard Worker base::HistogramSnapshotManager* snapshot_manager) { 99*6777b538SAndroid Build Coastguard Worker } 100*6777b538SAndroid Build Coastguard Worker RecordInitialHistogramSnapshots(base::HistogramSnapshotManager * snapshot_manager)101*6777b538SAndroid Build Coastguard Workervoid MetricsProvider::RecordInitialHistogramSnapshots( 102*6777b538SAndroid Build Coastguard Worker base::HistogramSnapshotManager* snapshot_manager) { 103*6777b538SAndroid Build Coastguard Worker } 104*6777b538SAndroid Build Coastguard Worker 105*6777b538SAndroid Build Coastguard Worker } // namespace metrics 106