blob: b9f4873783ad960f0361ab405ca8de808849a77e [file] [log] [blame] [edit]
{% from 'macros.tmpl' import license %}
{{license()}}
#ifndef RuntimeEnabledFeatures_h
#define RuntimeEnabledFeatures_h
#include <string>
#include "platform/PlatformExport.h"
#include "wtf/Forward.h"
namespace blink {
// A class that stores static enablers for all experimental features.
class PLATFORM_EXPORT RuntimeEnabledFeatures {
public:
{% for feature_set in feature_sets %}
static void set{{feature_set|capitalize}}FeaturesEnabled(bool);
{% endfor %}
static void setFeatureEnabledFromString(const std::string& name, bool isEnabled);
{% for feature in features %}
{% if feature.custom %}
static bool {{feature.first_lowered_name}}Enabled();
{% else %}
{% if feature.condition %}
#if ENABLE({{feature.condition}})
{% endif %}
static void set{{feature.name}}Enabled(bool isEnabled) { is{{feature.name}}Enabled = isEnabled; }
static bool {{feature.first_lowered_name}}Enabled() { return {{feature.enabled_condition}}; }
{% if feature.condition %}
#else
static void set{{feature.name}}Enabled(bool) { }
static bool {{feature.first_lowered_name}}Enabled() { return false; }
#endif
{% endif %}
{% endif %}
{% endfor %}
private:
RuntimeEnabledFeatures() { }
{% for feature in features if not feature.custom %}
{% filter enable_conditional(feature.condition) %}
static bool is{{feature.name}}Enabled;
{% endfilter %}
{% endfor %}
};
} // namespace blink
#endif // RuntimeEnabledFeatures_h