1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "components/arc/arc_features.h"
6 
7 namespace arc {
8 
9 // Controls whether ARC++ app runtime performance statistics collection is
10 // enabled.
11 const base::Feature kAppRuntimePerormanceStatistics{
12     "AppRuntimePerormanceStatistics", base::FEATURE_ENABLED_BY_DEFAULT};
13 
14 // Controls ACTION_BOOT_COMPLETED broadcast for third party applications on ARC.
15 // When disabled, third party apps will not receive this broadcast.
16 const base::Feature kBootCompletedBroadcastFeature {
17     "ArcBootCompletedBroadcast", base::FEATURE_ENABLED_BY_DEFAULT
18 };
19 
20 // Controls whether we should delete all ARC data before transitioning a user
21 // from regular to child account.
22 const base::Feature kCleanArcDataOnRegularToChildTransitionFeature{
23     "ArcCleanDataOnRegularToChildTransition",
24     base::FEATURE_DISABLED_BY_DEFAULT};
25 
26 // Controls experimental Custom Tabs feature for ARC.
27 const base::Feature kCustomTabsExperimentFeature{
28     "ArcCustomTabsExperiment", base::FEATURE_ENABLED_BY_DEFAULT};
29 
30 // Controls whether ARC applications support zoom in/out.
31 const base::Feature kEnableApplicationZoomFeature{
32     "ArcEnableApplicationZoomFeature", base::FEATURE_DISABLED_BY_DEFAULT};
33 
34 // Controls whether ARC handles child->regular account transition.
35 const base::Feature kEnableChildToRegularTransitionFeature{
36     "ArcEnableChildToRegularTransition", base::FEATURE_ENABLED_BY_DEFAULT};
37 
38 // Controls whether ARC documents from DocumentsProviders should be shown in
39 // Chrome OS Files app.
40 const base::Feature kEnableDocumentsProviderInFilesAppFeature{
41     "ArcEnableDocumentsProviderInFilesApp", base::FEATURE_ENABLED_BY_DEFAULT};
42 
43 // Controls whether ARC handles regular->child account transition.
44 const base::Feature kEnableRegularToChildTransitionFeature{
45     "ArcEnableRegularToChildTransition", base::FEATURE_ENABLED_BY_DEFAULT};
46 
47 // Controls whether we should delegate audio focus requests from ARC to Chrome.
48 const base::Feature kEnableUnifiedAudioFocusFeature{
49     "ArcEnableUnifiedAudioFocus", base::FEATURE_ENABLED_BY_DEFAULT};
50 
51 // Controls experimental file picker feature for ARC.
52 const base::Feature kFilePickerExperimentFeature{
53     "ArcFilePickerExperiment", base::FEATURE_ENABLED_BY_DEFAULT};
54 
55 // Toggles between native bridge implementations for ARC.
56 // Note, that we keep the original feature name to preserve
57 // corresponding metrics.
58 const base::Feature kNativeBridgeToggleFeature{
59     "ArcNativeBridgeExperiment", base::FEATURE_ENABLED_BY_DEFAULT};
60 
61 // Controls ARC picture-in-picture feature. If this is enabled, then Android
62 // will control which apps can enter PIP. If this is disabled, then ARC PIP
63 // will be disabled.
64 const base::Feature kPictureInPictureFeature{"ArcPictureInPicture",
65                                              base::FEATURE_ENABLED_BY_DEFAULT};
66 
67 // Controls experimental print spooler feature for ARC.
68 const base::Feature kPrintSpoolerExperimentFeature{
69     "ArcPrintSpoolerExperiment", base::FEATURE_ENABLED_BY_DEFAULT};
70 
71 // Controls Smart Text Selection for Chrome.
72 // When enabled, the context menu will show contextual quick actions based on
73 // the current text selection.
74 const base::Feature kSmartTextSelectionFeature{
75     "ArcSmartTextSelection", base::FEATURE_ENABLED_BY_DEFAULT};
76 
77 // Controls ARC USB host integration.
78 // When enabled, Android apps will be able to use usb host features.
79 const base::Feature kUsbHostFeature{"ArcUsbHost",
80                                     base::FEATURE_ENABLED_BY_DEFAULT};
81 
82 // Controls ARC USB Storage UI feature.
83 // When enabled, chrome://settings and Files.app will ask if the user wants
84 // to expose USB storage devices to ARC.
85 const base::Feature kUsbStorageUIFeature{"ArcUsbStorageUI",
86                                          base::FEATURE_ENABLED_BY_DEFAULT};
87 
88 // Controls whether ARC uses VideoDecoder-backed video decoding.
89 // When enabled, GpuArcVideoDecodeAccelerator will use VdVideoDecodeAccelerator
90 // to delegate decoding tasks to VideoDecoder implementations, instead of using
91 // VDA implementations created by GpuVideoDecodeAcceleratorFactory.
92 const base::Feature kVideoDecoder{"ArcVideoDecoder",
93                                   base::FEATURE_DISABLED_BY_DEFAULT};
94 
95 }  // namespace arc
96