| // 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 UI to support Ambient EQ if the device supports it. |
| // See https://crbug.com/1021193 for more details. |
| ASH_PUBLIC_EXPORT extern const base::Feature kAllowAmbientEQ; |
| |
| // Enables the Auto Night Light feature which sets the default schedule type to |
| // sunset-to-sunrise until the user changes it to something else. This feature |
| // is not exposed to the end user, and is enabled only via cros_config for |
| // certain devices. |
| ASH_PUBLIC_EXPORT extern const base::Feature kAutoNightLight; |
| |
| // Enables the Bento feature which encapsulate multiple sub-features which |
| // improve virtual desks. |
| ASH_PUBLIC_EXPORT extern const base::Feature kBento; |
| |
| // Enables the Capture Mode feature which is an enhanced screenshot and screen |
| // capture user experience. |
| ASH_PUBLIC_EXPORT extern const base::Feature kCaptureMode; |
| |
| // Enables contextual nudges for gesture education. |
| ASH_PUBLIC_EXPORT extern const base::Feature kContextualNudges; |
| |
| // Enables dark/light mode feature. |
| ASH_PUBLIC_EXPORT extern const base::Feature kDarkLightMode; |
| |
| // Enables indicators to hint where displays are connected. |
| ASH_PUBLIC_EXPORT extern const base::Feature kDisplayAlignAssist; |
| |
| // Enables identification overlays on each display. |
| ASH_PUBLIC_EXPORT extern const base::Feature kDisplayIdentification; |
| |
| // 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 chaining of keyboard and touchpad swipe induced desk animations. |
| // Enables continuous touchpad swiping to switch desks. |
| // TODO(crbug.com/1111445): Remove this when the feature is fully launched. |
| ASH_PUBLIC_EXPORT extern const base::Feature kEnhancedDeskAnimations; |
| |
| // Enables the full restore feature. If this is enabled, we will restore apps |
| // and app windows after a crash or reboot. |
| ASH_PUBLIC_EXPORT extern const base::Feature kFullRestore; |
| |
| // Limits the windows listed in Alt-Tab to the ones in the currently active |
| // desk. |
| ASH_PUBLIC_EXPORT extern const base::Feature kLimitAltTabToActiveDesk; |
| |
| // 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 more ways to interact with the window cycle list, i.e. mouse, touch, |
| // gestures, and alternate keys. |
| // TODO(chinsenj): Remove this when the feature is fully launched. |
| ASH_PUBLIC_EXPORT extern const base::Feature kInteractiveWindowCycleList; |
| |
| // Enables using arrow keys for display arrangement in display settings page. |
| ASH_PUBLIC_EXPORT extern const base::Feature |
| kKeyboardBasedDisplayArrangementInSettings; |
| |
| // 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; |
| |
| // Removes media notifications from the notification counter in the status area. |
| // TODO(crbug.com/1111881): Remove when OS media controls launched. |
| ASH_PUBLIC_EXPORT extern const base::Feature kMediaNotificationsCounter; |
| |
| // Enables resizing/moving the selection region for partial screenshot. |
| ASH_PUBLIC_EXPORT extern const base::Feature kMovablePartialScreenshot; |
| |
| // 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; |
| |
| // Shorten notification timeouts to 6 seconds. |
| ASH_PUBLIC_EXPORT extern const base::Feature |
| kNotificationExperimentalShortTimeouts; |
| |
| // Enables notification scroll bar in UnifiedSystemTray. |
| ASH_PUBLIC_EXPORT extern const base::Feature kNotificationScrollBar; |
| |
| // Limits the items on the shelf to the ones associated with windows the |
| // currently active desk. |
| ASH_PUBLIC_EXPORT extern const base::Feature kPerDeskShelf; |
| |
| // 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 using the BluetoothSystem Mojo interface for Bluetooth operations. |
| ASH_PUBLIC_EXPORT extern const base::Feature kUseBluetoothSystemInAsh; |
| |
| // 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; |
| |
| // When enabled, shelf navigation controls and the overview tray item will be |
| // removed from the shelf in tablet mode (unless otherwise specified by user |
| // preferences, or policy). |
| ASH_PUBLIC_EXPORT extern const base::Feature kHideShelfControlsInTabletMode; |
| |
| // When enabled, the overivew and desk reverse scrolling behaviors are changed |
| // and if the user performs the old gestures, a notification or toast will show |
| // up. |
| // TODO(https://crbug.com/1107183): Remove this after the feature is launched. |
| ASH_PUBLIC_EXPORT extern const base::Feature kReverseScrollGestures; |
| |
| // When enabled, there will be an alert bubble showing up when the device |
| // returns from low brightness (e.g., sleep, closed cover) without a lock screen |
| // and the active window is in fullscreen. |
| // TODO(https://crbug.com/1107185): Remove this after the feature is launched. |
| ASH_PUBLIC_EXPORT extern const base::Feature kFullscreenAlertBubble; |
| |
| // Enables battery indicator for styluses in the palette tray |
| ASH_PUBLIC_EXPORT extern const base::Feature kStylusBatteryStatus; |
| |
| // Enables sliders for setting mic gain levels in the more audio settings |
| // section in the system tray. |
| ASH_PUBLIC_EXPORT extern const base::Feature kSystemTrayMicGainSetting; |
| |
| // Enables special handling of Chrome tab drags from a WebUI tab strip. |
| // These will be treated similarly to a window drag, showing split view |
| // indicators in tablet mode, etc. The functionality is behind a flag |
| // right now since it is under development. |
| ASH_PUBLIC_EXPORT extern const base::Feature kWebUITabStripTabDragIntegration; |
| |
| // Enables notifications to be shown within context menus. |
| ASH_PUBLIC_EXPORT extern const base::Feature kNotificationsInContextMenu; |
| |
| // Enables the experimental productivity feature that aims to reduce context |
| // switching by enabling users to collect content and transfer or access it |
| // later. |
| ASH_PUBLIC_EXPORT extern const base::Feature kTemporaryHoldingSpace; |
| |
| // Enables previews in the shelf for the `kTemporaryHoldingSpace` feature. Note |
| // that this has no effect if the `kTemporaryHoldingSpace` feature is disabled. |
| ASH_PUBLIC_EXPORT extern const base::Feature kTemporaryHoldingSpacePreviews; |
| |
| // Enables dragging an unpinned open app to pinned app side to pin. |
| ASH_PUBLIC_EXPORT extern const base::Feature kDragUnpinnedAppToPin; |
| |
| // Enables the system tray to show more information in larger screen. |
| ASH_PUBLIC_EXPORT extern const base::Feature kScalableStatusArea; |
| |
| ASH_PUBLIC_EXPORT bool IsAllowAmbientEQEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsAltTabLimitedToActiveDesk(); |
| |
| ASH_PUBLIC_EXPORT bool IsPerDeskShelfEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsAutoNightLightEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsBentoEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsCaptureModeEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsDarkLightModeEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsEnhancedDeskAnimations(); |
| |
| ASH_PUBLIC_EXPORT bool IsFullRestoreEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsHideArcMediaNotificationsEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsKeyboardBasedDisplayArrangementInSettingsEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsKeyboardShortcutViewerAppEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsLockScreenNotificationsEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsInteractiveWindowCycleListEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsManagedDeviceUIRedesignEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsLockScreenInlineReplyEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsLockScreenHideSensitiveNotificationsSupported(); |
| |
| ASH_PUBLIC_EXPORT bool IsNotificationExpansionAnimationEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsNotificationExperimentalShortTimeoutsEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsNotificationScrollBarEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsPipRoundedCornersEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsSeparateNetworkIconsEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsTrilinearFilteringEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsSwapSideVolumeButtonsForOrientationEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsBackgroundBlurEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsReduceDisplayNotificationsEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsHideShelfControlsInTabletModeEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsReverseScrollGesturesEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsFullscreenAlertBubbleEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool AreContextualNudgesEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsSystemTrayMicGainSettingEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsStylusBatteryStatusEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsDisplayIdentificationEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsWebUITabStripTabDragIntegrationEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsDisplayAlignmentAssistanceEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsMovablePartialScreenshotEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsNotificationsInContextMenuEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsTemporaryHoldingSpaceEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsTemporaryHoldingSpacePreviewsEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsDragUnpinnedAppToPinEnabled(); |
| |
| ASH_PUBLIC_EXPORT bool IsScalableStatusAreaEnabled(); |
| |
| // These two functions are supposed to be temporary functions to set or get |
| // whether "WebUITabStrip" feature is enabled from Chrome. |
| ASH_PUBLIC_EXPORT void SetWebUITabStripEnabled(bool enabled); |
| ASH_PUBLIC_EXPORT bool IsWebUITabStripEnabled(); |
| |
| } // namespace features |
| } // namespace ash |
| |
| #endif // ASH_PUBLIC_CPP_ASH_FEATURES_H_ |