Index: chrome/browser/policy/configuration_policy_handler_list_factory.cc |
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc |
index 4795d6e5d5e5f37c4162af9827047aa7dd740e01..6971e4a738114e732b1279348d406df3a2472e66 100644 |
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc |
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc |
@@ -484,15 +484,29 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = { |
}; |
#if !defined(OS_IOS) |
-// Mapping from extension type names to Manifest::Type. |
-StringToIntEnumListPolicyHandler::MappingEntry kExtensionAllowedTypesMap[] = { |
- { "extension", extensions::Manifest::TYPE_EXTENSION }, |
- { "theme", extensions::Manifest::TYPE_THEME }, |
- { "user_script", extensions::Manifest::TYPE_USER_SCRIPT }, |
- { "hosted_app", extensions::Manifest::TYPE_HOSTED_APP }, |
- { "legacy_packaged_app", extensions::Manifest::TYPE_LEGACY_PACKAGED_APP }, |
- { "platform_app", extensions::Manifest::TYPE_PLATFORM_APP }, |
-}; |
+void GetExtensionAllowedTypesMap( |
+ ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) { |
+ // Mapping from extension type names to Manifest::Type. |
+ result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
+ "extension", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( |
+ extensions::Manifest::TYPE_EXTENSION)))); |
+ result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
+ "theme", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( |
+ extensions::Manifest::TYPE_THEME)))); |
+ result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
+ "user_script", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( |
+ extensions::Manifest::TYPE_USER_SCRIPT)))); |
+ result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
+ "hosted_app", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( |
+ extensions::Manifest::TYPE_HOSTED_APP)))); |
+ result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
+ "legacy_packaged_app", scoped_ptr<base::Value>( |
+ base::Value::CreateIntegerValue( |
+ extensions::Manifest::TYPE_LEGACY_PACKAGED_APP)))); |
+ result->push_back(new StringMappingListPolicyHandler::MappingEntry( |
+ "platform_app", scoped_ptr<base::Value>(base::Value::CreateIntegerValue( |
+ extensions::Manifest::TYPE_PLATFORM_APP)))); |
+} |
#endif // !defined(OS_IOS) |
} // namespace |
@@ -560,11 +574,10 @@ scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList( |
key::kExtensionInstallSources, |
extensions::pref_names::kAllowedInstallSites))); |
handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>( |
- new StringToIntEnumListPolicyHandler( |
+ new StringMappingListPolicyHandler( |
key::kExtensionAllowedTypes, |
extensions::pref_names::kAllowedTypes, |
- kExtensionAllowedTypesMap, |
- kExtensionAllowedTypesMap + arraysize(kExtensionAllowedTypesMap)))); |
+ base::Bind(GetExtensionAllowedTypesMap)))); |
#endif // !defined(OS_IOS) |
#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS) |