blob: 1c78938c6bb23b2aeaafe8648065f5c996160987 [file] [log] [blame]
{% 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}}