blob: ee2e83d41434dd69cfe7d5b552634be729802acd [file] [log] [blame]
// Copyright 2022 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/metrics/family_link_user_metrics_provider.h"
#include "base/metrics/histogram_functions.h"
#include "components/session_manager/core/session_manager.h"
namespace {
constexpr char kFamilyLinkUserLogSegmentHistogramName[] =
"FamilyLinkUser.LogSegment";
} // namespace
FamilyLinkUserMetricsProvider::FamilyLinkUserMetricsProvider() {
session_manager::SessionManager* session_manager =
session_manager::SessionManager::Get();
// The |session_manager| is nullptr only for unit tests.
if (session_manager)
session_manager->AddObserver(this);
}
FamilyLinkUserMetricsProvider::~FamilyLinkUserMetricsProvider() {
session_manager::SessionManager* session_manager =
session_manager::SessionManager::Get();
// The |session_manager| is nullptr only for unit tests.
if (session_manager)
session_manager->RemoveObserver(this);
}
void FamilyLinkUserMetricsProvider::ProvideCurrentSessionData(
metrics::ChromeUserMetricsExtension* uma_proto_unused) {
// This function is called at unpredictable intervals throughout the Chrome
// session, so guarantee it will never crash.
if (!log_segment_)
return;
base::UmaHistogramEnumeration(kFamilyLinkUserLogSegmentHistogramName,
log_segment_.value());
}
void FamilyLinkUserMetricsProvider::OnUserSessionStarted(bool is_primary_user) {
// TODO(crbug.com/1251622): Implement user session segmentation based on
// Capabilities API.
}
void FamilyLinkUserMetricsProvider::SetLogSegment(LogSegment log_segment) {
log_segment_ = log_segment;
}