blob: b3cb117e7f00af95cf3cfb389ddee728217994ce [file] [log] [blame]
// Copyright 2024 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_ASH_MAHI_MAHI_AVAILABILITY_H_
#define CHROME_BROWSER_ASH_MAHI_MAHI_AVAILABILITY_H_
#include <optional>
namespace ash::mahi_availability {
// Check whether Mahi is allowed. This function checks following restrictions:
// * age: if not demo mode, the account must not hit minor restrictions
// * country: the country code must be in the allow list.
// * If not in demo mode, guest session is not allowed.
//
// This check reads a bit loaded as an async operation:
// `CanAccessMantaFeaturesWithoutMinorRestrictions`. `std::nullopt` is returned
// if the bit is not ready yet.
std::optional<bool> CanUseMahiService();
// Check if the mahi feature is available to use. It can be unavailable if the
// mahi feature flag is disabled, or the age and country requirements are not
// met.
//
// This check reads a bit loaded as an async operation via `CanUseMahiService`.
// `std::nullopt` is returned if the bit is not ready yet.
std::optional<bool> IsMahiAvailable();
// Check if the Pompano feature is available to use.
// Pompano is an add-on feature of mahi. Currently we make it available only
// when mahi is available AND its own feature flag is enabled.
bool IsPompanoAvailable();
} // namespace ash::mahi_availability
#endif // CHROME_BROWSER_ASH_MAHI_MAHI_AVAILABILITY_H_