| {% from 'templates/macros.tmpl' import license, source_files_for_generated_file %} |
| {{license()}} |
| |
| {{source_files_for_generated_file(template_file, input_files)}} |
| |
| #ifndef {{header_guard}} |
| #define {{header_guard}} |
| |
| #include "third_party/blink/renderer/platform/runtime_enabled_features.h" |
| #include "third_party/blink/renderer/platform/wtf/assertions.h" |
| |
| namespace blink { |
| |
| // Don't use this class directly. Use Scoped*ForTest instead. |
| class RuntimeEnabledFeaturesTestHelpers { |
| public: |
| template <bool& data_member> |
| class ScopedRuntimeEnabledFeature { |
| public: |
| ScopedRuntimeEnabledFeature(bool enabled) |
| : enabled_(enabled), original_(data_member) { data_member = enabled; } |
| ~ScopedRuntimeEnabledFeature() { |
| CHECK_EQ(enabled_, data_member); |
| data_member = original_; |
| } |
| private: |
| bool enabled_; |
| bool original_; |
| }; |
| |
| {% for feature in features %} |
| using Scoped{{feature.name}} = ScopedRuntimeEnabledFeature< |
| RuntimeEnabledFeatures::{{feature.data_member_name}}>; |
| {% endfor %} |
| }; |
| |
| {% for feature in features %} |
| using Scoped{{feature.name}}ForTest = |
| RuntimeEnabledFeaturesTestHelpers::Scoped{{feature.name}}; |
| {% endfor %} |
| } // namespace blink |
| |
| #endif // {{header_guard}} |