blob: f8f2acc00319b2c7d9610eb23a48d8ada404f7bb [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/tabs/features.h"
#include "base/feature_list.h"
#include "chrome/browser/ui/ui_features.h"
namespace tabs {
// Enables the debug UI used to visualize the tab strip model.
// chrome://tab-strip-internals
BASE_FEATURE(kDebugUITabStrip,
"DebugUITabStrip",
base::FEATURE_DISABLED_BY_DEFAULT);
// Splits pinned and unpinned tabs into separate TabStrips.
// https://crbug.com/1346019
BASE_FEATURE(kSplitTabStrip,
"SplitTabStrip",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables tabs to scroll in the tabstrip. https://crbug.com/951078
BASE_FEATURE(kScrollableTabStrip,
"ScrollableTabStrip",
base::FEATURE_DISABLED_BY_DEFAULT);
const char kMinimumTabWidthFeatureParameterName[] = "minTabWidth";
// Enables tab scrolling while dragging tabs in tabstrip
// https://crbug.com/1145747
BASE_FEATURE(kScrollableTabStripWithDragging,
"kScrollableTabStripWithDragging",
base::FEATURE_DISABLED_BY_DEFAULT);
const char kTabScrollingWithDraggingModeName[] = "tabScrollWithDragMode";
// Enables different methods of overflow when scrolling tabs in tabstrip
// https://crbug.com/951078
BASE_FEATURE(kScrollableTabStripOverflow,
"kScrollableTabStripOverflow",
base::FEATURE_DISABLED_BY_DEFAULT);
const char kScrollableTabStripOverflowModeName[] = "tabScrollOverflow";
BASE_FEATURE(kTabGroupHome, "TabGroupHome", base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kTabSearchPositionSetting,
"TabSearchPositionSetting",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kTabGroupShortcuts,
"TabGroupShortcuts",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kVerticalTabs, "VerticalTabs", base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kTabSelectionByPointer,
"TabSelectionByPointer",
base::FEATURE_DISABLED_BY_DEFAULT);
bool CanShowTabSearchPositionSetting() {
// Alternate tab search locations cannot be repositioned.
if (features::HasTabSearchToolbarButton()) {
return false;
}
// Mac and other platforms will always have the tab search position in the
// correct location, cros/linux/win git the user the option to change.
#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
return base::FeatureList::IsEnabled(kTabSearchPositionSetting);
#else
return false;
#endif
}
bool AreTabGroupShortcutsEnabled() {
return base::FeatureList::IsEnabled(kTabGroupShortcuts);
}
bool AreVerticalTabsEnabled() {
return base::FeatureList::IsEnabled(kVerticalTabs);
}
} // namespace tabs