Remove cloud_policy_generated.cc
Store enough metadata in policy_constants.cc that we can
use it to decode policies, and so don't need to generate any
more code in cloud_policy_generated.cc
The metadata required to decode a policy from a proto is
the key, the type (both the raw type ie integer or string,
and also whether it is JSON or external), and pointers to
both has_policyproto() and policyproto() functions, where
policyproto is the message field that holds this policy.
The metadata that is stored in policy_constants.cc looks like so -
the lines starting with &em are function pointers into the
CloudPolicySettings proto:
constexpr BooleanPolicyAccess kBooleanPolicyAccess[] = {
{key::kAbusiveExperienceInterventionEnforce,
&em::CloudPolicySettings::has_abusiveexperienceinterventionenforce,
&em::CloudPolicySettings::abusiveexperienceinterventionenforce},
{key::kAllowCrossOriginAuthPrompt,
&em::CloudPolicySettings::has_allowcrossoriginauthprompt,
&em::CloudPolicySettings::allowcrossoriginauthprompt},
...
{nullptr, nullptr, nullptr},
};
constexpr IntegerPolicyAccess kIntegerPolicyAccess[] = {
{key::kAdsSettingForIntrusiveAdsSites,
&em::CloudPolicySettings::has_adssettingforintrusiveadssites,
&em::CloudPolicySettings::adssettingforintrusiveadssites},
{key::kArcBackupRestoreServiceEnabled,
&em::CloudPolicySettings::has_arcbackuprestoreserviceenabled,
&em::CloudPolicySettings::arcbackuprestoreserviceenabled},
...
{nullptr, nullptr, nullptr},
};
constexpr StringPolicyAccess kStringPolicyAccess[] = {
{key::kAllowedDomainsForApps,
&em::CloudPolicySettings::has_alloweddomainsforapps,
&em::CloudPolicySettings::alloweddomainsforapps,
StringPolicyType::STRING},
{key::kContentPackManualBehaviorHosts,
&em::CloudPolicySettings::has_contentpackmanualbehaviorhosts,
&em::CloudPolicySettings::contentpackmanualbehaviorhosts,
StringPolicyType::JSON},
{key::kNativePrintersBulkConfiguration,
&em::CloudPolicySettings::has_nativeprintersbulkconfiguration,
&em::CloudPolicySettings::nativeprintersbulkconfiguration,
StringPolicyType::EXTERNAL},
...
{nullptr, nullptr, nullptr},
};
constexpr StringListPolicyAccess kStringListPolicyAccess[] = {
{key::kAllowedInputMethods,
&em::CloudPolicySettings::has_allowedinputmethods,
&em::CloudPolicySettings::allowedinputmethods},
...
{nullptr, nullptr, nullptr},
};
Bug: 852366
Change-Id: I1b8a0ebc0c6d5019e63d81a4cb7e1cd1cb461bb3
Reviewed-on: https://chromium-review.googlesource.com/1110219
Commit-Queue: A Olsen <olsen@chromium.org>
Reviewed-by:
Lutz Justen <ljusten@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572212}
Showing
This diff is collapsed.
Please register or sign in to comment