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

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

Issue 91273002: Improve platform support indications for policy documentation. (Closed) Base URL: https://chromium.googlesource.com/external/grit-i18n.git@master
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
diff --git a/grit/format/policy_templates/writers/doc_writer.py b/grit/format/policy_templates/writers/doc_writer.py
index 3876fafec5c923825ddcacf5366082a070711b9f..9d8bb55868ba0303f447eb9a271ea6b4da05c069 100644
--- a/grit/format/policy_templates/writers/doc_writer.py
+++ b/grit/format/policy_templates/writers/doc_writer.py
@@ -227,9 +227,12 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
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 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
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 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
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,35 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
'''
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'):
+ data_type += 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,13 +636,22 @@ class DocWriter(xml_formatted_writer.XMLFormattedWriter):
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)',
Jói 2013/11/27 12:44:44 I'd rather see these without a space and without t
Joao da Silva 2013/11/27 13:03:22 Done; note that this CL has been closed and upload
+ 'int': ' (REG_DWORD)',
+ 'main': ' (REG_DWORD)',
+ 'int-enum': ' (REG_DWORD)',
+ 'string-enum': ' (REG_SZ)',
+ 'list': '',
+ '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,
« no previous file with comments | « grit/format/policy_templates/policy_template_generator.py ('k') | grit/format/policy_templates/writers/template_writer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698