#include "components/supervised_user/core/browser/family_link_user_log_record.h"
#include <optional>
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/prefs/pref_service.h"
#include "components/signin/public/identity_manager/identity_manager.h"
#include "components/supervised_user/core/browser/supervised_user_preferences.h"
#include "components/supervised_user/core/browser/supervised_user_url_filter.h"
#include "components/supervised_user/core/common/features.h"
#include "components/supervised_user/core/common/pref_names.h"
#include "extensions/buildflags/buildflags.h"
namespace supervised_user {
namespace {
bool AreParentalSupervisionCapabilitiesKnown(
const AccountCapabilities& capabilities) { … }
std::optional<FamilyLinkUserLogRecord::Segment> GetSupervisionStatus(
signin::IdentityManager* identity_manager) { … }
bool IsUnsupervisedStatus(
std::optional<FamilyLinkUserLogRecord::Segment> supervision_status) { … }
std::optional<WebFilterType> GetWebFilterType(
std::optional<FamilyLinkUserLogRecord::Segment> supervision_status,
SupervisedUserURLFilter* supervised_user_filter) { … }
std::optional<ToggleState> GetPermissionsToggleState(
std::optional<FamilyLinkUserLogRecord::Segment> supervision_status,
const PrefService& pref_service,
const HostContentSettingsMap& content_settings_map) { … }
#if BUILDFLAG(ENABLE_EXTENSIONS)
bool SupervisedUserCanSkipExtensionParentApprovals(
const PrefService& pref_service) { … }
#endif
std::optional<ToggleState> GetExtensionToggleState(
std::optional<FamilyLinkUserLogRecord::Segment> supervision_status,
const PrefService& pref_service) { … }
}
FamilyLinkUserLogRecord FamilyLinkUserLogRecord::Create(
signin::IdentityManager* identity_manager,
const PrefService& pref_service,
const HostContentSettingsMap& content_settings_map,
SupervisedUserURLFilter* supervised_user_filter) { … }
FamilyLinkUserLogRecord::FamilyLinkUserLogRecord(
std::optional<FamilyLinkUserLogRecord::Segment> supervision_status,
std::optional<WebFilterType> web_filter_type,
std::optional<ToggleState> permissions_toggle_state,
std::optional<ToggleState> extensions_toggle_state)
: … { … }
std::optional<FamilyLinkUserLogRecord::Segment>
FamilyLinkUserLogRecord::GetSupervisionStatusForPrimaryAccount() const { … }
std::optional<WebFilterType>
FamilyLinkUserLogRecord::GetWebFilterTypeForPrimaryAccount() const { … }
std::optional<ToggleState>
FamilyLinkUserLogRecord::GetPermissionsToggleStateForPrimaryAccount() const { … }
std::optional<ToggleState>
FamilyLinkUserLogRecord::GetExtensionsToggleStateForPrimaryAccount() const { … }
}