blob: 9cb71ab6a226ae39e8328deb73901b780afcc5f7 [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file defines the public base::FeatureList features for ARC.
#ifndef ASH_COMPONENTS_ARC_ARC_FEATURES_H_
#define ASH_COMPONENTS_ARC_ARC_FEATURES_H_
#include <base/time/time.h>
#include "base/feature_list.h"
#include "base/metrics/field_trial_params.h"
namespace arc {
// Please keep alphabetized.
BASE_DECLARE_FEATURE(kArcExchangeVersionOnMojoHandshake);
BASE_DECLARE_FEATURE(kArcOnDemandV2);
BASE_DECLARE_FEATURE_PARAM(bool, kArcOnDemandActivateOnAppLaunch);
BASE_DECLARE_FEATURE_PARAM(base::TimeDelta, kArcOnDemandInactiveInterval);
BASE_DECLARE_FEATURE(kArcVmGki);
BASE_DECLARE_FEATURE(kBlockIoScheduler);
BASE_DECLARE_FEATURE_PARAM(bool, kEnableDataBlockIoScheduler);
BASE_DECLARE_FEATURE(kBootCompletedBroadcastFeature);
BASE_DECLARE_FEATURE(kContainerAppKiller);
BASE_DECLARE_FEATURE(kCustomTabsExperimentFeature);
BASE_DECLARE_FEATURE(kDeferArcActivationUntilUserSessionStartUpTaskCompletion);
BASE_DECLARE_FEATURE_PARAM(int, kDeferArcActivationHistoryWindow);
BASE_DECLARE_FEATURE_PARAM(int, kDeferArcActivationHistoryThreshold);
BASE_DECLARE_FEATURE(kEnableArcAttestation);
BASE_DECLARE_FEATURE(kEnableArcIdleManager);
BASE_DECLARE_FEATURE_PARAM(bool, kEnableArcIdleManagerIgnoreBatteryForPLT);
BASE_DECLARE_FEATURE_PARAM(int, kEnableArcIdleManagerDelayMs);
BASE_DECLARE_FEATURE_PARAM(bool, kEnableArcIdleManagerPendingIdleReactivate);
BASE_DECLARE_FEATURE(kEnableArcS2Idle);
BASE_DECLARE_FEATURE(kEnableArcVmDataMigration);
BASE_DECLARE_FEATURE(kEnableFriendlierErrorDialog);
BASE_DECLARE_FEATURE(kEnableLazyWebViewInit);
BASE_DECLARE_FEATURE(kEnablePerVmCoreScheduling);
BASE_DECLARE_FEATURE(kEnableVirtioBlkForData);
BASE_DECLARE_FEATURE(kEnableVirtioBlkMultipleWorkers);
BASE_DECLARE_FEATURE(kExtendIntentAnrTimeout);
BASE_DECLARE_FEATURE(kExtendServiceAnrTimeout);
BASE_DECLARE_FEATURE(kExternalStorageAccess);
BASE_DECLARE_FEATURE(kGmsCoreLowMemoryKillerProtection);
BASE_DECLARE_FEATURE(kGuestSwap);
BASE_DECLARE_FEATURE_PARAM(int, kGuestSwapSize);
BASE_DECLARE_FEATURE_PARAM(int, kGuestZramSizePercentage);
BASE_DECLARE_FEATURE_PARAM(int, kGuestZramSwappiness);
BASE_DECLARE_FEATURE_PARAM(bool, kGuestReclaimEnabled);
BASE_DECLARE_FEATURE_PARAM(bool, kGuestReclaimOnlyAnonymous);
BASE_DECLARE_FEATURE_PARAM(bool, kVirtualSwapEnabled);
BASE_DECLARE_FEATURE_PARAM(int, kVirtualSwapIntervalMs);
BASE_DECLARE_FEATURE(kArcVmPvclock);
BASE_DECLARE_FEATURE(kLockGuestMemory);
BASE_DECLARE_FEATURE(kLvmApplicationContainers);
BASE_DECLARE_FEATURE(kNativeBridgeToggleFeature);
BASE_DECLARE_FEATURE(kOutOfProcessVideoDecoding);
BASE_DECLARE_FEATURE(kPerAppLanguage);
BASE_DECLARE_FEATURE(kResizeCompat);
BASE_DECLARE_FEATURE(kRoundedWindowCompat);
extern const char kRoundedWindowCompatStrategy[];
extern const char kRoundedWindowCompatStrategy_BottomOnlyGesture[];
extern const char kRoundedWindowCompatStrategy_LeftRightBottomGesture[];
BASE_DECLARE_FEATURE(kRtVcpuDualCore);
BASE_DECLARE_FEATURE(kRtVcpuQuadCore);
BASE_DECLARE_FEATURE(kSaveRawFilesOnTracing);
BASE_DECLARE_FEATURE(kSkipDropCaches);
BASE_DECLARE_FEATURE(kSwitchToKeyMintOnT);
BASE_DECLARE_FEATURE(kSwitchToKeyMintOnTOverride);
BASE_DECLARE_FEATURE(kSyncInstallPriority);
BASE_DECLARE_FEATURE(kUnthrottleOnActiveAudioV2);
BASE_DECLARE_FEATURE(kVideoDecoder);
BASE_DECLARE_FEATURE(kVmMemoryPSIReports);
BASE_DECLARE_FEATURE_PARAM(int, kVmMemoryPSIReportsPeriod);
BASE_DECLARE_FEATURE(kVmMemorySize);
BASE_DECLARE_FEATURE_PARAM(int, kVmMemorySizeShiftMiB);
BASE_DECLARE_FEATURE_PARAM(int, kVmMemorySizeMaxMiB);
BASE_DECLARE_FEATURE_PARAM(int, kVmMemorySizePercentage);
BASE_DECLARE_FEATURE(kVmmSwapoutGhostWindow);
BASE_DECLARE_FEATURE(kVmmSwapKeyboardShortcut);
BASE_DECLARE_FEATURE(kVmmSwapPolicy);
BASE_DECLARE_FEATURE_PARAM(int, kVmmSwapOutDelaySecond);
BASE_DECLARE_FEATURE_PARAM(int, kVmmSwapOutTimeIntervalSecond);
BASE_DECLARE_FEATURE_PARAM(int, kVmmSwapArcSilenceIntervalSecond);
BASE_DECLARE_FEATURE_PARAM(base::TimeDelta, kVmmSwapTrimInterval);
BASE_DECLARE_FEATURE_PARAM(base::TimeDelta, kVmmSwapMinShrinkInterval);
BASE_DECLARE_FEATURE(kPriorityAppLmkDelay);
BASE_DECLARE_FEATURE_PARAM(int, kPriorityAppLmkDelaySecond);
BASE_DECLARE_FEATURE_PARAM(std::string, kPriorityAppLmkDelayList);
BASE_DECLARE_FEATURE(kLmkPerceptibleMinStateUpdate);
} // namespace arc
#endif // ASH_COMPONENTS_ARC_ARC_FEATURES_H_