Index: Source/core/page/RuntimeEnabledFeatures.h.tmpl |
diff --git a/Source/core/page/RuntimeEnabledFeatures.h.tmpl b/Source/core/page/RuntimeEnabledFeatures.h.tmpl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9dc847df1b2c355d2d272430767c753ddc8b2ffe |
--- /dev/null |
+++ b/Source/core/page/RuntimeEnabledFeatures.h.tmpl |
@@ -0,0 +1,44 @@ |
+{% from "macros.tmpl" import wrap_with_condition -%} |
+ |
+{{ license }} |
+#ifndef RuntimeEnabledFeatures_h |
+#define RuntimeEnabledFeatures_h |
+ |
+namespace WebCore { |
+ |
+// A class that stores static enablers for all experimental features. |
+ |
+class RuntimeEnabledFeatures { |
+public: |
+{%- 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 %} |
+{%- call wrap_with_condition(feature.condition) %} |
+ static bool is{{feature.name}}Enabled; |
+{%- endcall %} |
+{%- endfor %} |
+}; |
+ |
+} // namespace WebCore |
+ |
+#endif // RuntimeEnabledFeatures_h |
+ |