Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Side by Side Diff: components/policy/tools/generate_policy_source.py

Issue 546703004: Add mandatory policy setting for template generation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased and removed setting for SessionLocale Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/policy/resources/policy_templates.json ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 '''python %prog [options] platform chromium_os_flag template 6 '''python %prog [options] platform chromium_os_flag template
7 7
8 platform specifies which platform source is being generated for 8 platform specifies which platform source is being generated for
9 and can be one of (win, mac, linux) 9 and can be one of (win, mac, linux)
10 chromium_os_flag should be 1 if this is a Chromium OS build 10 chromium_os_flag should be 1 if this is a Chromium OS build
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 } 47 }
48 48
49 class EnumItem: 49 class EnumItem:
50 def __init__(self, item): 50 def __init__(self, item):
51 self.caption = PolicyDetails._RemovePlaceholders(item['caption']) 51 self.caption = PolicyDetails._RemovePlaceholders(item['caption'])
52 self.value = item['value'] 52 self.value = item['value']
53 53
54 def __init__(self, policy, os, is_chromium_os): 54 def __init__(self, policy, os, is_chromium_os):
55 self.id = policy['id'] 55 self.id = policy['id']
56 self.name = policy['name'] 56 self.name = policy['name']
57 features = policy.get('features', {})
58 self.can_be_recommended = features.get('can_be_recommended', False)
59 self.can_be_mandatory = features.get('can_be_mandatory', True)
57 self.is_deprecated = policy.get('deprecated', False) 60 self.is_deprecated = policy.get('deprecated', False)
58 self.is_device_only = policy.get('device_only', False) 61 self.is_device_only = policy.get('device_only', False)
59 self.schema = policy.get('schema', {}) 62 self.schema = policy.get('schema', {})
60 self.has_enterprise_default = 'default_for_enterprise_users' in policy 63 self.has_enterprise_default = 'default_for_enterprise_users' in policy
61 if self.has_enterprise_default: 64 if self.has_enterprise_default:
62 self.enterprise_default = policy['default_for_enterprise_users'] 65 self.enterprise_default = policy['default_for_enterprise_users']
63 66
64 expected_platform = 'chrome_os' if is_chromium_os else os.lower() 67 expected_platform = 'chrome_os' if is_chromium_os else os.lower()
65 self.platforms = [] 68 self.platforms = []
66 for platform, version in [ p.split(':') for p in policy['supported_on'] ]: 69 for platform, version in [ p.split(':') for p in policy['supported_on'] ]:
(...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after
778 _OutputComment(f, policy.caption + '\n\n' + policy.desc) 781 _OutputComment(f, policy.caption + '\n\n' + policy.desc)
779 if policy.items is not None: 782 if policy.items is not None:
780 _OutputComment(f, '\nValid values:') 783 _OutputComment(f, '\nValid values:')
781 for item in policy.items: 784 for item in policy.items:
782 _OutputComment(f, ' %s: %s' % (str(item.value), item.caption)) 785 _OutputComment(f, ' %s: %s' % (str(item.value), item.caption))
783 if policy.policy_type == 'TYPE_DICTIONARY': 786 if policy.policy_type == 'TYPE_DICTIONARY':
784 _OutputComment(f, '\nValue schema:\n%s' % 787 _OutputComment(f, '\nValue schema:\n%s' %
785 json.dumps(policy.schema, sort_keys=True, indent=4, 788 json.dumps(policy.schema, sort_keys=True, indent=4,
786 separators=(',', ': '))) 789 separators=(',', ': ')))
787 _OutputComment(f, '\nSupported on: %s' % ', '.join(policy.platforms)) 790 _OutputComment(f, '\nSupported on: %s' % ', '.join(policy.platforms))
791 if policy.can_be_recommended and not policy.can_be_mandatory:
792 _OutputComment(f, '\nNote: this policy must have a RECOMMENDED ' +\
793 'PolicyMode set in PolicyOptions.')
788 f.write('message %sProto {\n' % policy.name) 794 f.write('message %sProto {\n' % policy.name)
789 f.write(' optional PolicyOptions policy_options = 1;\n') 795 f.write(' optional PolicyOptions policy_options = 1;\n')
790 f.write(' optional %s %s = 2;\n' % (policy.protobuf_type, policy.name)) 796 f.write(' optional %s %s = 2;\n' % (policy.protobuf_type, policy.name))
791 f.write('}\n\n') 797 f.write('}\n\n')
792 fields += [ ' optional %sProto %s = %s;\n' % 798 fields += [ ' optional %sProto %s = %s;\n' %
793 (policy.name, policy.name, policy.id + RESERVED_IDS) ] 799 (policy.name, policy.name, policy.id + RESERVED_IDS) ]
794 800
795 801
796 def _WriteChromeSettingsProtobuf(policies, os, f): 802 def _WriteChromeSettingsProtobuf(policies, os, f):
797 f.write(CHROME_SETTINGS_PROTO_HEAD) 803 f.write(CHROME_SETTINGS_PROTO_HEAD)
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 def _WriteCloudPolicyDecoder(policies, os, f): 963 def _WriteCloudPolicyDecoder(policies, os, f):
958 f.write(CPP_HEAD) 964 f.write(CPP_HEAD)
959 for policy in policies: 965 for policy in policies:
960 if policy.is_supported and not policy.is_device_only: 966 if policy.is_supported and not policy.is_device_only:
961 _WritePolicyCode(f, policy) 967 _WritePolicyCode(f, policy)
962 f.write(CPP_FOOT) 968 f.write(CPP_FOOT)
963 969
964 970
965 if __name__ == '__main__': 971 if __name__ == '__main__':
966 sys.exit(main()) 972 sys.exit(main())
OLDNEW
« no previous file with comments | « components/policy/resources/policy_templates.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698