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

Unified Diff: grit/format/policy_templates/writers/doc_writer.py

Issue 91233003: Improve platform support indications for policy documentation. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month 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
Index: grit/format/policy_templates/writers/doc_writer.py
===================================================================
--- grit/format/policy_templates/writers/doc_writer.py (revision 138)
+++ grit/format/policy_templates/writers/doc_writer.py (working copy)
@@ -227,9 +227,12 @@
policy: The data structure of a policy.
'''
examples = self._AddStyledElement(parent, 'dl', ['dd dl'])
- self._AddListExampleWindows(examples, policy)
- self._AddListExampleLinux(examples, policy)
- self._AddListExampleMac(examples, policy)
+ if self.IsPolicySupportedOnPlatform(policy, 'win'):
+ self._AddListExampleWindows(examples, policy)
+ if self.IsPolicySupportedOnPlatform(policy, 'linux'):
+ self._AddListExampleLinux(examples, policy)
+ if self.IsPolicySupportedOnPlatform(policy, 'mac'):
+ self._AddListExampleMac(examples, policy)
def _PythonDictionaryToMacDictionary(self, dictionary, indent=''):
'''Converts a python dictionary to an equivalent XML plist.
@@ -336,9 +339,12 @@
policy: The data structure of a policy.
'''
examples = self._AddStyledElement(parent, 'dl', ['dd dl'])
- self._AddDictionaryExampleWindows(examples, policy)
- self._AddDictionaryExampleLinux(examples, policy)
- self._AddDictionaryExampleMac(examples, policy)
+ if self.IsPolicySupportedOnPlatform(policy, 'win'):
+ self._AddDictionaryExampleWindows(examples, policy)
+ if self.IsPolicySupportedOnPlatform(policy, 'linux'):
+ self._AddDictionaryExampleLinux(examples, policy)
+ if self.IsPolicySupportedOnPlatform(policy, 'mac'):
+ self._AddDictionaryExampleMac(examples, policy)
def _AddExample(self, parent, policy):
'''Adds the HTML DOM representation of the example value of a policy to
@@ -358,20 +364,28 @@
example_value = policy['example_value']
policy_type = policy['type']
if policy_type == 'main':
- if example_value == True:
- self.AddText(
- parent, '0x00000001 (Windows), true (Linux), <true /> (Mac)')
- elif example_value == False:
- self.AddText(
- parent, '0x00000000 (Windows), false (Linux), <false /> (Mac)')
- else:
- raise Exception('Expected boolean value.')
+ pieces = []
+ if self.IsPolicySupportedOnPlatform(policy, 'win'):
+ value = '0x00000001' if example_value else '0x00000000'
+ pieces.append(value + ' (Windows)')
+ if self.IsPolicySupportedOnPlatform(policy, 'linux'):
+ value = 'true' if example_value else 'false'
+ pieces.append(value + ' (Linux)')
+ if self.IsPolicySupportedOnPlatform(policy, 'mac'):
+ value = '<true />' if example_value else '<false />'
+ pieces.append(value + ' (Mac)')
+ self.AddText(parent, ', '.join(pieces))
elif policy_type == 'string':
self.AddText(parent, '"%s"' % example_value)
elif policy_type in ('int', 'int-enum'):
- self.AddText(
- parent,
- '0x%08x (Windows), %d (Linux/Mac)' % (example_value, example_value))
+ pieces = []
+ if self.IsPolicySupportedOnPlatform(policy, 'win'):
+ pieces.append('0x%08x (Windows)' % example_value)
+ if self.IsPolicySupportedOnPlatform(policy, 'linux'):
+ pieces.append('%d (Linux)' % example_value)
+ if self.IsPolicySupportedOnPlatform(policy, 'mac'):
+ pieces.append('%d (Mac)' % example_value)
+ self.AddText(parent, ', '.join(pieces))
elif policy_type == 'string-enum':
self.AddText(parent, '"%s"' % (example_value))
elif policy_type == 'list':
@@ -445,28 +459,36 @@
'''
dl = self.AddElement(parent, 'dl')
- self._AddPolicyAttribute(
- dl,
- 'data_type',
- self._TYPE_MAP[policy['type']])
- self._AddPolicyAttribute(
- dl,
- 'win_reg_loc',
- self.config['win_reg_mandatory_key_name'] + '\\' + policy['name'],
- ['.monospace'])
- self._AddPolicyAttribute(
- dl,
- 'mac_linux_pref_name',
- policy['name'],
- ['.monospace'])
+ data_type = self._TYPE_MAP[policy['type']]
+ if (self.IsPolicySupportedOnPlatform(policy, 'win') and
+ self._REG_TYPE_MAP.get(policy['type'], None)):
+ data_type += ' (%s)' % self._REG_TYPE_MAP[policy['type']]
+ self._AddPolicyAttribute(dl, 'data_type', data_type)
+ if self.IsPolicySupportedOnPlatform(policy, 'win'):
+ self._AddPolicyAttribute(
+ dl,
+ 'win_reg_loc',
+ self.config['win_reg_mandatory_key_name'] + '\\' + policy['name'],
+ ['.monospace'])
+ if (self.IsPolicySupportedOnPlatform(policy, 'linux') or
+ self.IsPolicySupportedOnPlatform(policy, 'mac')):
+ self._AddPolicyAttribute(
+ dl,
+ 'mac_linux_pref_name',
+ policy['name'],
+ ['.monospace'])
dd = self._AddPolicyAttribute(dl, 'supported_on')
self._AddSupportedOnList(dd, policy['supported_on'])
dd = self._AddPolicyAttribute(dl, 'supported_features')
self._AddFeatures(dd, policy)
dd = self._AddPolicyAttribute(dl, 'description')
self._AddDescription(dd, policy)
- dd = self._AddPolicyAttribute(dl, 'example_value')
- self._AddExample(dd, policy)
+ if (self.IsPolicySupportedOnPlatform(policy, 'win') or
+ self.IsPolicySupportedOnPlatform(policy, 'linux') or
+ self.IsPolicySupportedOnPlatform(policy, 'mac')):
+ # Don't add an example for ChromeOS-only policies.
+ dd = self._AddPolicyAttribute(dl, 'example_value')
+ self._AddExample(dd, policy)
def _AddPolicyNote(self, parent, policy):
'''If a policy has an additional web page assigned with it, then add
@@ -615,14 +637,22 @@
self._FEATURE_MAP[message[12:]] = self.messages[message]['text']
# Human-readable names of types.
self._TYPE_MAP = {
- 'string': 'String (REG_SZ)',
- 'int': 'Integer (REG_DWORD)',
- 'main': 'Boolean (REG_DWORD)',
- 'int-enum': 'Integer (REG_DWORD)',
- 'string-enum': 'String (REG_SZ)',
+ 'string': 'String',
+ 'int': 'Integer',
+ 'main': 'Boolean',
+ 'int-enum': 'Integer',
+ 'string-enum': 'String',
'list': 'List of strings',
- 'dict': 'Dictionary (REG_SZ, encoded as a JSON string)',
+ 'dict': 'Dictionary',
}
+ self._REG_TYPE_MAP = {
+ 'string': 'REG_SZ',
+ 'int': 'REG_DWORD',
+ 'main': 'REG_DWORD',
+ 'int-enum': 'REG_DWORD',
+ 'string-enum': 'REG_SZ',
+ 'dict': 'REG_SZ, encoded as a JSON string',
+ }
# The CSS style-sheet used for the document. It will be used in Google
# Sites, which strips class attributes from HTML tags. To work around this,
# the style-sheet is a dictionary and the style attributes will be added
« no previous file with comments | « grit/format/policy_templates/policy_template_generator.py ('k') | grit/format/policy_templates/writers/doc_writer_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698