1 // Copyright 2014 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 "ui/native_theme/native_theme_features.h"
6 
7 #include "build/build_config.h"
8 #include "build/chromeos_buildflags.h"
9 
10 namespace features {
11 
12 #if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_FUCHSIA) || \
13     BUILDFLAG(IS_LACROS)
14 constexpr base::FeatureState kOverlayScrollbarFeatureState =
15     base::FEATURE_ENABLED_BY_DEFAULT;
16 #else
17 constexpr base::FeatureState kOverlayScrollbarFeatureState =
18     base::FEATURE_DISABLED_BY_DEFAULT;
19 #endif
20 
21 // Enables or disables overlay scrollbars in Blink (i.e. web content) on Aura
22 // or Linux.  The status of native UI overlay scrollbars is determined in
23 // PlatformStyle::CreateScrollBar. Does nothing on Mac.
24 const base::Feature kOverlayScrollbar{"OverlayScrollbar",
25                                       kOverlayScrollbarFeatureState};
26 
27 // Enables will flash all scrollbars in page after any scroll update.
28 const base::Feature kOverlayScrollbarFlashAfterAnyScrollUpdate{
29     "OverlayScrollbarFlashAfterAnyScrollUpdate", kOverlayScrollbarFeatureState};
30 
31 }  // namespace features
32 
33 namespace ui {
34 
IsOverlayScrollbarEnabled()35 bool IsOverlayScrollbarEnabled() {
36   return base::FeatureList::IsEnabled(features::kOverlayScrollbar);
37 }
38 
OverlayScrollbarFlashAfterAnyScrollUpdate()39 bool OverlayScrollbarFlashAfterAnyScrollUpdate() {
40   return base::FeatureList::IsEnabled(
41       features::kOverlayScrollbarFlashAfterAnyScrollUpdate);
42 }
43 
44 }  // namespace ui
45