1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_PERFORMANCE_CONTROLS_PERFORMANCE_CONTROLS_METRICS_H_
#define CHROME_BROWSER_UI_PERFORMANCE_CONTROLS_PERFORMANCE_CONTROLS_METRICS_H_
#include "base/time/time.h"
#include "base/timer/timer.h"
#include "chrome/browser/performance_manager/public/user_tuning/performance_detection_manager.h"
#include "components/metrics/daily_event.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
// Enums for histograms:
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class BatterySaverBubbleActionType {
kTurnOffNow = 0,
kDismiss = 1,
kMaxValue = kDismiss
};
enum class InterventionMessageTriggerResult {
kShown = 0,
kRateLimited = 1,
kMixedProfile = 2,
kMaxValue = kMixedProfile
};
enum class InterventionBubbleActionType {
kUnknown = 0,
kIgnore = 1,
kAccept = 2,
kDismiss = 3,
kClose = 4,
kMaxValue = kClose
};
enum class CpuInterventionHealthChange {
kMinValue = 0,
kHealthyToHealthy = kMinValue,
kHealthyToDegraded = 1,
kHealthyToUnhealthy = 2,
kDegradedToHealthy = 3,
kDegradedToDegraded = 4,
kDegradedToUnhealthy = 5,
kUnhealthyToHealthy = 6,
kUnhealthyToDegraded = 7,
kUnhealthyToUnhealthy = 8,
kMaxValue = kUnhealthyToUnhealthy
};
enum class MemorySaverBubbleActionType {
kOpenSettings = 0,
kDismiss = 1,
kAddException = 2,
kMaxValue = kAddException
};
enum class MemorySaverChipState {
kCollapsed = 0,
kExpandedEducation = 1,
kExpandedWithSavings = 2,
kMaxValue = kExpandedWithSavings
};
// End of enums for histograms.
class PerformanceInterventionMetricsReporter {
public:
explicit PerformanceInterventionMetricsReporter(PrefService* pref_service);
~PerformanceInterventionMetricsReporter();
static void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
private:
std::unique_ptr<metrics::DailyEvent> daily_event_;
// The timer used to periodically check if the daily event should be
// triggered.
base::RepeatingTimer daily_event_timer_;
};
void RecordBatterySaverBubbleAction(BatterySaverBubbleActionType type);
void RecordBatterySaverIPHOpenSettings(bool success);
void RecordMemorySaverBubbleAction(MemorySaverBubbleActionType type);
void RecordMemorySaverIPHEnableMode(bool success);
void RecordMemorySaverChipState(MemorySaverChipState type);
void RecordInterventionMessageCount(
performance_manager::user_tuning::PerformanceDetectionManager::ResourceType
resource_type,
PrefService* pref_service);
void RecordInterventionRateLimitedCount(
performance_manager::user_tuning::PerformanceDetectionManager::ResourceType
resource_type,
PrefService* pref_service);
void RecordInterventionTriggerResult(
performance_manager::user_tuning::PerformanceDetectionManager::ResourceType
resource_type,
InterventionMessageTriggerResult reason);
void RecordInterventionToolbarButtonClicked();
void RecordInterventionBubbleClosedReason(
performance_manager::user_tuning::PerformanceDetectionManager::ResourceType
resource_type,
InterventionBubbleActionType type);
void RecordCpuHealthStatusAfterDiscard(
base::TimeDelta time_after_discard,
performance_manager::user_tuning::PerformanceDetectionManager::HealthLevel
health_level);
void RecordCpuUsageBeforeDiscard(int cpu_usage);
void RecordSuggestedTabShownCount(int count);
void RecordTabRemovedFromTabList(int count_after_removal);
void RecordNumberOfDiscardedTabs(int count);
void RecordCpuHealthStatusChange(
base::TimeDelta time_after_discard,
performance_manager::user_tuning::PerformanceDetectionManager::HealthLevel
before_discard,
performance_manager::user_tuning::PerformanceDetectionManager::HealthLevel
after_discard);
#endif // CHROME_BROWSER_UI_PERFORMANCE_CONTROLS_PERFORMANCE_CONTROLS_METRICS_H_
|