// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef EXTENSIONS_COMMON_FEATURE_SWITCH_H_ #define EXTENSIONS_COMMON_FEATURE_SWITCH_H_ #include <optional> #include <string> #include "base/memory/raw_ptr.h" namespace base { class CommandLine; } namespace extensions { // A switch that can turn a feature on or off. Typically controlled via // command-line switches but can be overridden, e.g., for testing. // A note about priority: // 1. If an override is present, the override state will be used. // 2. If there is no switch name, the default value will be used. This is // because certain features are specifically designed *not* to be able to // be turned off via command-line, so we can't consult it. // 3. If there is a switch name, and the switch is present in the command line, // the command line value will be used. // 4. Otherwise, the default value is used. class FeatureSwitch { … }; } // namespace extensions #endif // EXTENSIONS_COMMON_FEATURE_SWITCH_H_