blob: 81754794101e7c34880bc6c9344fc10d4161391f [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_CONSTANTS_CHROMEOS_FEATURES_H_
#define CHROMEOS_CONSTANTS_CHROMEOS_FEATURES_H_
#include "base/auto_reset.h"
#include "base/component_export.h"
#include "base/feature_list.h"
#include "build/buildflag.h"
// This file is only for the feature flags that are shared between ash-chrome
// and lacros-chrome that are not common. For ash features, please add them
// in //ash/constants/ash_features.h.
namespace chromeos {
namespace features {
// All features in alphabetical order. The features should be documented
// alongside the definition of their values in the .cc file. If a feature is
// being rolled out via Finch, add a comment in the .cc file.
#if BUILDFLAG(IS_CHROMEOS_ASH)
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kAppInstallServiceUri);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kApnPolicies);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kBluetoothPhoneFilter);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kCaptivePortalPopupWindow);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kClipboardHistoryRefresh);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kCloudGamingDevice);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kAlmanacLauncherPayload);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kBlinkExtension);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kBlinkExtensionDiagnostics);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kBlinkExtensionKiosk);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kContainerAppPreinstall);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kCrosAppsBackgroundEventHandling);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kCrosComponents);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kCrosMall);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kCrosShortstand);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kCrosOmniboxInstallDialog);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kCrosWebAppInstallDialog);
#if BUILDFLAG(IS_CHROMEOS_ASH)
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kCrosWebAppShortcutUiUpdate);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kDeskProfiles);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kDataControlsFileAccessDefaultDeny);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kDataMigration);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kDisableIdleSocketsCloseOnMemoryPressure);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kDisableOfficeEditingComponentApp);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kDisableQuickAnswersV2Translation);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kEnablePkcs12ToChapsDualWrite);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kEssentialSearch);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kExperimentalWebAppStoragePartitionIsolation);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kJelly);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kJellyroll);
#if BUILDFLAG(IS_CHROMEOS_ASH)
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kKioskHeartbeatsViaERP);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kMahi);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kMahiDebugging);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kOrca);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kOrcaDogfood);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kOrcaUseL10nStrings);
#if !BUILDFLAG(IS_CHROMEOS_LACROS)
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kFeatureManagementContainerAppPreinstall);
#endif // !BUILDFLAG(IS_CHROMEOS_LACROS)
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kFeatureManagementOrca);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kFeatureManagementDisableChromeCompose);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kQuickAnswersMaterialNextUI);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kQuickAnswersRichCard);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kQuickAnswersV2SettingsSubToggle);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kUploadOfficeToCloud);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kUploadOfficeToCloudForEnterprise);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) BASE_DECLARE_FEATURE(kRoundedWindows);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kMicrosoftOneDriveIntegrationForEnterprise);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kFileSystemProviderCloudFileSystem);
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
BASE_DECLARE_FEATURE(kFileSystemProviderContentCache);
// Keep alphabetized.
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsApnPoliciesEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsAppInstallServiceUriEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsCaptivePortalPopupWindowEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsClipboardHistoryRefreshEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsCloudGamingDeviceEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsAlmanacLauncherPayloadEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsBlinkExtensionEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsBlinkExtensionDiagnosticsEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsContainerAppPreinstallEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsCrosComponentsEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsCrosWebAppInstallDialogEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsCrosMallEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsCrosWebAppShortcutUiUpdateEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsCrosShortstandEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool ShouldDisableChromeComposeOnChromeOS();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsDataControlsFileAccessDefaultDenyEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsDataMigrationEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsDeskProfilesEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsEssentialSearchEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsFileSystemProviderCloudFileSystemEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsFileSystemProviderContentCacheEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsJellyEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsJellyrollEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsMahiEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsMahiDebuggingEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsRoundedWindowsEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) int RoundedWindowsRadius();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) extern const char kRoundedWindowsRadius[];
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsSeparateWebAppShortcutBadgeIconEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsOrcaEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsOrcaUseL10nStringsEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsQuickAnswersV2TranslationDisabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsQuickAnswersV2SettingsSubToggleEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsQuickAnswersRichCardEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsQuickAnswersAlwaysTriggerForSingleWord();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS) bool IsPkcs12ToChapsDualWriteEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsUploadOfficeToCloudEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsUploadOfficeToCloudForEnterpriseEnabled();
COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
bool IsMicrosoftOneDriveIntegrationForEnterpriseEnabled();
[[nodiscard]] COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
base::AutoReset<bool> SetAppInstallServiceUriEnabledForTesting();
#if !BUILDFLAG(IS_CHROMEOS_LACROS)
[[nodiscard]] COMPONENT_EXPORT(CHROMEOS_CONSTANTS)
base::AutoReset<bool> SetIgnoreContainerAppPreinstallKeyForTesting();
#endif // !BUILDFLAG(IS_CHROMEOS_LACROS)
} // namespace features
} // namespace chromeos
#endif // CHROMEOS_CONSTANTS_CHROMEOS_FEATURES_H_