blob: 7f5fe618bf9a29fb763ff6f0b6f41f74d74914fc [file] [log] [blame]
// Copyright 2018 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.
#ifndef ASH_PUBLIC_CPP_ASH_FEATURES_H_
#define ASH_PUBLIC_CPP_ASH_FEATURES_H_
#include "ash/public/cpp/ash_public_export.h"
#include "base/feature_list.h"
namespace ash {
namespace features {
// Enables the docked (a.k.a. picture-in-picture) magnifier.
// TODO(afakhry): Remove this after the feature is fully launched.
// https://crbug.com/709824.
ASH_PUBLIC_EXPORT extern const base::Feature kDockedMagnifier;
// Enables dragging and snapping an overview window in clamshell mode.
// TODO(crbug.com/890029): Remove this when the feature is fully launched.
ASH_PUBLIC_EXPORT extern const base::Feature kDragToSnapInClamshellMode;
// Enables rounded corners in overview mode for testing.
// TODO(crbug.com/903486): Remove this when new rounded corners implementation
// has landed.
ASH_PUBLIC_EXPORT extern const base::Feature kEnableOverviewRoundedCorners;
// Enables notifications on the lock screen.
ASH_PUBLIC_EXPORT extern const base::Feature kLockScreenNotifications;
// Enables inline reply on notifications on the lock screen.
// This option is effective when |kLockScreenNotification| is enabled.
ASH_PUBLIC_EXPORT extern const base::Feature kLockScreenInlineReply;
// Supports the feature to hide sensitive content in notifications on the lock
// screen. This option is effective when |kLockScreenNotification| is enabled.
ASH_PUBLIC_EXPORT extern const base::Feature
kLockScreenHideSensitiveNotificationsSupport;
// Enables lock screen media controls UI and use of media keys on the lock
// screen.
ASH_PUBLIC_EXPORT extern const base::Feature kLockScreenMediaControls;
// Enables hiding of ARC media notifications. If this is enabled, all ARC
// notifications that are of the media type will not be shown. This
// is because they will be replaced by native media session notifications.
// TODO(beccahughes): Remove after launch. (https://crbug.com/897836)
ASH_PUBLIC_EXPORT extern const base::Feature kHideArcMediaNotifications;
// Enables the redesigned managed device info UI in the system tray.
ASH_PUBLIC_EXPORT extern const base::Feature kManagedDeviceUIRedesign;
// Enables the media session notification. If this is enabled, we will show
// a notification that shows the currently playing media with controls.
// TODO(beccahughes): Remove after launch. (https://crbug.com/897836)
ASH_PUBLIC_EXPORT extern const base::Feature kMediaSessionNotification;
// Enables multi-display support for overview and split view.
// TODO(crbug.com/952461): Remove this when the feature is fully launched.
ASH_PUBLIC_EXPORT extern const base::Feature kMultiDisplayOverviewAndSplitView;
// Enables new layout for overview mode.
// TODO(sammiequon): Cleanup this flag when feature is fully launched.
ASH_PUBLIC_EXPORT extern const base::Feature kNewOverviewLayout;
// Enables the Night Light feature.
ASH_PUBLIC_EXPORT extern const base::Feature kNightLight;
// Enabled notification expansion animation.
ASH_PUBLIC_EXPORT extern const base::Feature kNotificationExpansionAnimation;
// Enables notification scroll bar in UnifiedSystemTray.
ASH_PUBLIC_EXPORT extern const base::Feature kNotificationScrollBar;
// Enables using a cross fade animation for the wallpaper blur for overview
// mode.
ASH_PUBLIC_EXPORT extern const base::Feature kOverviewCrossFadeWallpaperBlur;
// Enables rounded corners for the Picture-in-picture window.
ASH_PUBLIC_EXPORT extern const base::Feature kPipRoundedCorners;
// Enables suppression of Displays notifications other than resolution change.
ASH_PUBLIC_EXPORT extern const base::Feature kReduceDisplayNotifications;
// Enables displaying separate network icons for different networks types.
// https://crbug.com/902409
ASH_PUBLIC_EXPORT extern const base::Feature kSeparateNetworkIcons;
// Enables trilinear filtering.
ASH_PUBLIC_EXPORT extern const base::Feature kTrilinearFiltering;
// Enables running an external binary which provides lock screen authentication.
ASH_PUBLIC_EXPORT extern const base::Feature kUnlockWithExternalBinary;
// Enables views login.
ASH_PUBLIC_EXPORT extern const base::Feature kViewsLogin;
// Enables the Virtual Desks feature.
ASH_PUBLIC_EXPORT extern const base::Feature kVirtualDesks;
// Enables the touchpad 3-finger gestures to switch desks. It also changes tab
// scrubbing as well as overview highlight to use 4-finger gestures.
// This flag is only effective if the Virtual Desks feature is enabled (see
// `kVirtualDesks`).
ASH_PUBLIC_EXPORT extern const base::Feature kVirtualDesksGestures;
// Enables using the BluetoothSystem Mojo interface for Bluetooth operations.
ASH_PUBLIC_EXPORT extern const base::Feature kUseBluetoothSystemInAsh;
// Enables the Supervised User Deprecation notices.
ASH_PUBLIC_EXPORT extern const base::Feature kSupervisedUserDeprecationNotice;
// Enables side volume button control based on screen orientation feature.
// TODO(https://crbug.com/937907): Remove this after the feature is fully
// launched.
ASH_PUBLIC_EXPORT extern const base::Feature
kSwapSideVolumeButtonsForOrientation;
// Enables background blur for the app list, shelf, unified system tray,
// autoclick menu, etc. Also enables the AppsGridView mask layer, slower devices
// may have choppier app list animations while in this mode. crbug.com/765292.
ASH_PUBLIC_EXPORT extern const base::Feature kEnableBackgroundBlur;
// Enables refactored UnifiedMessageCenter which is completely separated from
// the UnifiedSystemTrayView.
ASH_PUBLIC_EXPORT extern const base::Feature kUnifiedMessageCenterRefactor;
// Enables going back to previous page while swiping from the left edge of the
// display. Only for tablet mode.
ASH_PUBLIC_EXPORT extern const base::Feature kSwipingFromLeftEdgeToGoBack;
// Enables dragging from shelf to enter home screen or overview feature.
// Only for tablet mode.
// TODO(https://crbug.com/992642): Remove this after this feature is fully
// launched.
ASH_PUBLIC_EXPORT extern const base::Feature kDragFromShelfToHomeOrOverview;
ASH_PUBLIC_EXPORT bool IsHideArcMediaNotificationsEnabled();
ASH_PUBLIC_EXPORT bool IsKeyboardShortcutViewerAppEnabled();
ASH_PUBLIC_EXPORT bool IsLockScreenNotificationsEnabled();
ASH_PUBLIC_EXPORT bool IsManagedDeviceUIRedesignEnabled();
ASH_PUBLIC_EXPORT bool IsLockScreenInlineReplyEnabled();
ASH_PUBLIC_EXPORT bool IsLockScreenHideSensitiveNotificationsSupported();
ASH_PUBLIC_EXPORT bool IsNotificationExpansionAnimationEnabled();
ASH_PUBLIC_EXPORT bool IsNotificationScrollBarEnabled();
ASH_PUBLIC_EXPORT bool IsPipRoundedCornersEnabled();
ASH_PUBLIC_EXPORT bool IsSeparateNetworkIconsEnabled();
ASH_PUBLIC_EXPORT bool IsTrilinearFilteringEnabled();
ASH_PUBLIC_EXPORT bool IsViewsLoginEnabled();
ASH_PUBLIC_EXPORT bool IsVirtualDesksEnabled();
ASH_PUBLIC_EXPORT bool IsVirtualDesksGesturesEnabled();
ASH_PUBLIC_EXPORT bool IsSupervisedUserDeprecationNoticeEnabled();
ASH_PUBLIC_EXPORT bool IsSwapSideVolumeButtonsForOrientationEnabled();
ASH_PUBLIC_EXPORT bool IsUnifiedMessageCenterRefactorEnabled();
ASH_PUBLIC_EXPORT bool IsBackgroundBlurEnabled();
ASH_PUBLIC_EXPORT bool IsSwipingFromLeftEdgeToGoBackEnabled();
ASH_PUBLIC_EXPORT bool IsDragFromShelfToHomeOrOverviewEnabled();
ASH_PUBLIC_EXPORT bool IsReduceDisplayNotificationsEnabled();
} // namespace features
} // namespace ash
#endif // ASH_PUBLIC_CPP_ASH_FEATURES_H_