Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / tools / grit / grit / format / policy_templates / writers / plist_writer.py
index 46b7ade..6d929d6 100644 (file)
@@ -32,6 +32,7 @@ class PListWriter(xml_formatted_writer.XMLFormattedWriter):
     'int': 'integer',
     'int-enum': 'integer',
     'string-enum': 'string',
+    'string-enum-list': 'array',
     'main': 'boolean',
     'list': 'array',
     'dict': 'dictionary',
@@ -66,7 +67,7 @@ class PListWriter(xml_formatted_writer.XMLFormattedWriter):
     self.AddElement(parent, 'key', {}, key_string)
     self.AddElement(parent, 'string', {}, value_string)
 
-  def _AddTargets(self, parent):
+  def _AddTargets(self, parent, policy):
     '''Adds the following XML snippet to an XML element:
       <key>pfm_targets</key>
       <array>
@@ -77,7 +78,10 @@ class PListWriter(xml_formatted_writer.XMLFormattedWriter):
         parent: The parent XML element where the snippet will be added.
     '''
     array = self._AddKeyValuePair(parent, 'pfm_targets', 'array')
-    self.AddElement(array, 'string', {}, 'user-managed')
+    if self.CanBeRecommended(policy):
+      self.AddElement(array, 'string', {}, 'user')
+    if self.CanBeMandatory(policy):
+      self.AddElement(array, 'string', {}, 'user-managed')
 
   def PreprocessPolicies(self, policy_list):
     return self.FlattenGroupsAndSortPolicies(policy_list)
@@ -96,7 +100,7 @@ class PListWriter(xml_formatted_writer.XMLFormattedWriter):
     # Those files are generated by plist_strings_writer.
     self._AddStringKeyValuePair(dict, 'pfm_description', '')
     self._AddStringKeyValuePair(dict, 'pfm_title', '')
-    self._AddTargets(dict)
+    self._AddTargets(dict, policy)
     self._AddStringKeyValuePair(dict, 'pfm_type',
                                 self.TYPE_TO_INPUT[policy_type])
     if policy_type in ('int-enum', 'string-enum'):
@@ -107,7 +111,7 @@ class PListWriter(xml_formatted_writer.XMLFormattedWriter):
         else:
           element_type = 'string'
         self.AddElement(range_list, element_type, {}, str(item['value']))
-    elif policy_type == 'list':
+    elif policy_type in ('list', 'string-enum-list'):
       subkeys = self._AddKeyValuePair(dict, 'pfm_subkeys', 'array')
       subkeys_dict = self.AddElement(subkeys, 'dict')
       subkeys_type = self._AddKeyValuePair(subkeys_dict, 'pfm_type', 'string')
@@ -127,13 +131,16 @@ class PListWriter(xml_formatted_writer.XMLFormattedWriter):
 
     self._array = self._AddKeyValuePair(dict, 'pfm_subkeys', 'array')
 
-  def Init(self):
+  def CreatePlistDocument(self):
     dom_impl = minidom.getDOMImplementation('')
     doctype = dom_impl.createDocumentType(
         'plist',
         '-//Apple//DTD PLIST 1.0//EN',
         'http://www.apple.com/DTDs/PropertyList-1.0.dtd')
-    self._doc = dom_impl.createDocument(None, 'plist', doctype)
+    return dom_impl.createDocument(None, 'plist', doctype)
+
+  def Init(self):
+    self._doc = self.CreatePlistDocument()
     self._plist = self._doc.documentElement
 
   def GetTemplateText(self):