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

Unified Diff: tools/grit/grit/format/policy_templates/writers/adm_writer.py

Issue 3436013: Use 'Categories' instead of 'ADM policies' in ADM for related policies (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: remove trainling spaces Created 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/grit/grit/format/policy_templates/writers/adm_writer_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/grit/grit/format/policy_templates/writers/adm_writer.py
diff --git a/tools/grit/grit/format/policy_templates/writers/adm_writer.py b/tools/grit/grit/format/policy_templates/writers/adm_writer.py
index e3a079f973727a0fe6644ca5fcf0c931665aa2bd..df3620c79fa55828e6a2856cd7d350b4bb5a3960 100644
--- a/tools/grit/grit/format/policy_templates/writers/adm_writer.py
+++ b/tools/grit/grit/format/policy_templates/writers/adm_writer.py
@@ -25,6 +25,27 @@ class AdmWriter(template_writer.TemplateWriter):
'list': 'LISTBOX'}
NEWLINE = '\r\n'
+ # TODO(gfeher): Get rid of this logic by renaming the messages in the .grd
+ # file. Before that, all the writers should switch to using
+ # this logic.
+ def _GetLocalizedPolicyMessage(self, policy, msg_id):
+ '''Looks up localized caption or description for a policy.
+ If the policy does not have the required message, then it is
+ inherited from the group.
+
+ Args:
+ policy: The data structure of the policy.
+ msg_id: Either 'caption' or 'desc'.
+
+ Returns:
+ The corresponding message for the policy.
+ '''
+ if msg_id in policy:
+ msg = policy[msg_id]
+ else:
+ msg = policy['parent'][msg_id]
+ return msg
+
def _AddGuiString(self, name, value):
# Escape newlines in the value.
value = value.replace('\n','\\n')
@@ -55,32 +76,29 @@ class AdmWriter(template_writer.TemplateWriter):
self._PrintLine('SUPPORTED !!SUPPORTED_WINXPSP2')
self._PrintLine('#endif', -1)
- def WritePolicy(self, policy):
- policy_type = policy['type']
- policy_name = policy['name']
- if policy_type == 'main':
- self._PrintLine('VALUENAME "%s"' % policy_name )
- self._PrintLine('VALUEON NUMERIC 1')
- self._PrintLine('VALUEOFF NUMERIC 0')
- return
+ def _WritePart(self, policy):
+ '''Writes the PART ... END PART section of a policy.
- policy_part_name = policy_name + '_Part'
- self._AddGuiString(policy_part_name, policy['caption'])
+ Args:
+ policy: The policy to write to the output.
+ '''
+ policy_caption = self._GetLocalizedPolicyMessage(policy, 'caption')
+ policy_part_name = policy['name'] + '_Part'
+ self._AddGuiString(policy_part_name, policy_caption)
- self._PrintLine()
# Print the PART ... END PART section:
- self._PrintLine(
- 'PART !!%s %s' % (policy_part_name, self.TYPE_TO_INPUT[policy_type]),
- 1)
- if policy_type == 'list':
+ self._PrintLine()
+ adm_type = self.TYPE_TO_INPUT[policy['type']]
+ self._PrintLine('PART !!%s %s' % (policy_part_name, adm_type), 1)
+ if policy['type'] == 'list':
# Note that the following line causes FullArmor ADMX Migrator to create
# corrupt ADMX files. Please use admx_writer to get ADMX files.
self._PrintLine('KEYNAME "%s\\%s"' %
- (self.config['win_reg_key_name'], policy_name))
+ (self.config['win_reg_key_name'], policy['name']))
self._PrintLine('VALUEPREFIX ""')
else:
- self._PrintLine('VALUENAME "%s"' % policy_name)
- if policy_type == 'enum':
+ self._PrintLine('VALUENAME "%s"' % policy['name'])
+ if policy['type'] == 'enum':
self._PrintLine('ITEMLIST', 1)
for item in policy['items']:
self._PrintLine('NAME !!%s_DropDown VALUE NUMERIC %s' %
@@ -89,19 +107,40 @@ class AdmWriter(template_writer.TemplateWriter):
self._PrintLine('END ITEMLIST', -1)
self._PrintLine('END PART', -1)
- def BeginPolicyGroup(self, group):
- group_explain_name = group['name'] + '_Explain'
- self._AddGuiString(group['name'] + '_Policy', group['caption'])
- self._AddGuiString(group_explain_name, group['desc'])
+ def WritePolicy(self, policy):
+ policy_desc = self._GetLocalizedPolicyMessage(policy, 'desc')
+ policy_caption = self._GetLocalizedPolicyMessage(policy, 'caption')
- self._PrintLine('POLICY !!%s_Policy' % group['name'], 1)
+ self._AddGuiString(policy['name'] + '_Policy', policy_caption)
+ self._PrintLine('POLICY !!%s_Policy' % policy['name'], 1)
self._WriteSupported()
- self._PrintLine('EXPLAIN !!' + group_explain_name)
+ policy_explain_name = policy['name'] + '_Explain'
+ self._AddGuiString(policy_explain_name, policy_desc)
+ self._PrintLine('EXPLAIN !!' + policy_explain_name)
+
+ if policy['type'] == 'main':
+ self._PrintLine('VALUENAME "%s"' % policy['name'])
+ self._PrintLine('VALUEON NUMERIC 1')
+ self._PrintLine('VALUEOFF NUMERIC 0')
+ else:
+ self._WritePart(policy)
- def EndPolicyGroup(self):
self._PrintLine('END POLICY', -1)
self._PrintLine()
+ def BeginPolicyGroup(self, group):
+ self._open_category = len(group['policies']) > 1
+ # Open a category for the policies if there is more than one in the
+ # group.
+ if self._open_category:
+ category_name = group['name'] + '_Category'
+ self._AddGuiString(category_name, group['caption'])
+ self._PrintLine('CATEGORY !!' + category_name, 1)
+
+ def EndPolicyGroup(self):
+ if self._open_category:
+ self._PrintLine('END CATEGORY', -1)
+
def BeginTemplate(self):
category_path = self.config['win_category_path']
self._AddGuiString(self.config['win_supported_os'],
« no previous file with comments | « no previous file | tools/grit/grit/format/policy_templates/writers/adm_writer_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698