blob: b309b866ea77b2f0b1cb9b8fcbed54fe768372d4 [file] [log] [blame]
{% from 'templates/macros.tmpl' import license, source_files_for_generated_file %}
{{license()}}
#include "base/no_destructor.h"
#include "base/feature_list.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/feature_policy/document_policy_features.h"
#include "third_party/blink/public/common/feature_policy/policy_value.h"
#include "third_party/blink/public/mojom/feature_policy/policy_value.mojom.h"
#include "third_party/blink/public/mojom/feature_policy/document_policy_feature.mojom.h"
namespace blink {
const DocumentPolicyFeatureInfoMap& GetDocumentPolicyFeatureInfoMap() {
static const base::NoDestructor<DocumentPolicyFeatureInfoMap> feature_info_map([] {
DocumentPolicyFeatureInfoMap map({
{%- for feature in features %}
{
mojom::DocumentPolicyFeature::k{{feature.name}},
{
"{{feature.document_policy_name}}",
{{parse_default_value(feature.default_value, feature.value_type)}}
}
},
{%- endfor %}
});
{%- for feature in features %}
{%- if feature.default_value_behind_flag %}
{%- for flag, default_value in feature.default_value_behind_flag %}
{%- if not loop.first %} else {% endif %}
if (base::FeatureList::IsEnabled(features::k{{flag}})) {
map.find(mojom::DocumentPolicyFeature::k{{feature.name}})->second.default_value =
{{parse_default_value(default_value, feature.value_type)}};
}
{%- endfor %}
{%- endif %}
{%- endfor %}
return map;
}());
return *feature_info_map;
}
const DocumentPolicyNameFeatureMap& GetDocumentPolicyNameFeatureMap() {
static const base::NoDestructor<DocumentPolicyNameFeatureMap> name_feature_map([] {
DocumentPolicyNameFeatureMap map;
for (const auto& entry : GetDocumentPolicyFeatureInfoMap())
map.emplace(entry.second.feature_name, entry.first);
return map;
}());
return *name_feature_map;
}
} // namespace blink