| {% from 'macros.tmpl' import license %} |
| {{license()}} |
| |
| #include "config.h" |
| #include "platform/RuntimeEnabledFeatures.h" |
| |
| #include "wtf/Assertions.h" |
| #include "wtf/text/WTFString.h" |
| |
| namespace { |
| |
| bool caseInsensitiveEqual(const std::string& a, const std::string& b) |
| { |
| if (a.size() != b.size()) |
| return false; |
| for (size_t i = 0; i < a.size(); ++i) { |
| if (tolower(a[i]) != tolower(b[i])) |
| return false; |
| } |
| return true; |
| } |
| |
| } // namespace |
| |
| namespace blink { |
| |
| {% for feature_set in feature_sets %} |
| void RuntimeEnabledFeatures::set{{feature_set|capitalize}}FeaturesEnabled(bool enable) |
| { |
| {% for feature in features if feature.status == feature_set %} |
| set{{feature.name}}Enabled(enable); |
| {% endfor %} |
| } |
| |
| {% endfor %} |
| |
| void RuntimeEnabledFeatures::setFeatureEnabledFromString(const std::string& name, bool isEnabled) |
| { |
| {% for feature in features if not feature.custom %} |
| {% filter enable_conditional(feature.condition) %} |
| if (caseInsensitiveEqual(name, "{{feature.name}}")) { |
| set{{feature.name}}Enabled(isEnabled); |
| return; |
| } |
| {% endfilter %} |
| {% endfor %} |
| WTF_LOG_ERROR("RuntimeEnabledFeature not recognized: %s", name.c_str()); |
| } |
| |
| {% for feature in features if not feature.custom %} |
| {% filter enable_conditional(feature.condition) %} |
| bool RuntimeEnabledFeatures::is{{feature.name}}Enabled = {{'true' if feature.status == 'stable' else 'false'}}; |
| {% endfilter %} |
| {% endfor %} |
| |
| } // namespace blink |