Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / policy / configuration_policy_handler_list_factory.cc
index 2a47ba1..b64ddbd 100644 (file)
@@ -11,7 +11,6 @@
 #include "chrome/browser/net/proxy_policy_handler.h"
 #include "chrome/browser/policy/managed_bookmarks_policy_handler.h"
 #include "chrome/browser/profiles/incognito_mode_policy_handler.h"
-#include "chrome/browser/search_engines/default_search_policy_handler.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/pref_names.h"
 #include "components/password_manager/core/common/password_manager_pref_names.h"
 #include "components/policy/core/common/policy_map.h"
 #include "components/policy/core/common/policy_pref_names.h"
 #include "components/policy/core/common/schema.h"
+#include "components/search_engines/default_search_policy_handler.h"
 #include "components/translate/core/common/translate_pref_names.h"
-#include "grit/components_strings.h"
 #include "policy/policy_constants.h"
 
 #if !defined(OS_IOS)
-#include "chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h"
-#include "chrome/browser/extensions/policy_handlers.h"
 #include "chrome/browser/net/disk_cache_dir_policy_handler.h"
 #include "chrome/browser/policy/file_selection_dialogs_policy_handler.h"
 #include "chrome/browser/policy/javascript_policy_handler.h"
+#include "chrome/browser/policy/network_prediction_policy_handler.h"
 #include "chrome/browser/sessions/restore_on_startup_policy_handler.h"
 #include "chrome/browser/sync/sync_policy_handler.h"
-#include "extensions/browser/pref_names.h"
-#include "extensions/common/manifest.h"
 #endif
 
 #if defined(OS_CHROMEOS)
 #include "ash/magnifier/magnifier_constants.h"
-#include "chrome/browser/chromeos/login/users/user.h"
-#include "chrome/browser/chromeos/login/users/user_manager.h"
 #include "chrome/browser/chromeos/policy/configuration_policy_handler_chromeos.h"
 #include "chromeos/dbus/power_policy_controller.h"
+#include "components/user_manager/user.h"
+#include "components/user_manager/user_manager.h"
 #endif
 
 #if !defined(OS_ANDROID) && !defined(OS_IOS)
 #include "chrome/browser/download/download_dir_policy_handler.h"
 #endif
 
-#if !defined(OS_MACOSX) && !defined(OS_IOS)
-#include "apps/pref_names.h"
+#if defined(ENABLE_EXTENSIONS)
+#include "chrome/browser/extensions/api/messaging/native_messaging_policy_handler.h"
+#include "chrome/browser/extensions/extension_management_constants.h"
+#include "chrome/browser/extensions/policy_handlers.h"
+#include "extensions/browser/pref_names.h"
+#include "extensions/common/manifest.h"
 #endif
 
 namespace policy {
@@ -78,9 +78,6 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
   { key::kSearchSuggestEnabled,
     prefs::kSearchSuggestEnabled,
     base::Value::TYPE_BOOLEAN },
-  { key::kDnsPrefetchingEnabled,
-    prefs::kNetworkPredictionEnabled,
-    base::Value::TYPE_BOOLEAN },
   { key::kBuiltInDnsClientEnabled,
     prefs::kBuiltInDnsClientEnabled,
     base::Value::TYPE_BOOLEAN },
@@ -97,7 +94,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
     prefs::kForceSafeSearch,
     base::Value::TYPE_BOOLEAN },
   { key::kPasswordManagerEnabled,
-    password_manager::prefs::kPasswordManagerEnabled,
+    password_manager::prefs::kPasswordManagerSavingEnabled,
     base::Value::TYPE_BOOLEAN },
   { key::kPasswordManagerAllowShowPasswords,
     password_manager::prefs::kPasswordManagerAllowShowPasswords,
@@ -295,13 +292,13 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
     prefs::kPluginsAlwaysAuthorize,
     base::Value::TYPE_BOOLEAN },
   { key::kBookmarkBarEnabled,
-    prefs::kShowBookmarkBar,
+    bookmarks::prefs::kShowBookmarkBar,
     base::Value::TYPE_BOOLEAN },
   { key::kEditBookmarksEnabled,
-    prefs::kEditBookmarksEnabled,
+    bookmarks::prefs::kEditBookmarksEnabled,
     base::Value::TYPE_BOOLEAN },
   { key::kShowAppsShortcutInBookmarkBar,
-    prefs::kShowAppsShortcutInBookmarkBar,
+    bookmarks::prefs::kShowAppsShortcutInBookmarkBar,
     base::Value::TYPE_BOOLEAN },
   { key::kAllowFileSelectionDialogs,
     prefs::kAllowFileSelectionDialogs,
@@ -321,6 +318,9 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
   { key::kImportSavedPasswords,
     prefs::kImportSavedPasswords,
     base::Value::TYPE_BOOLEAN },
+  { key::kImportAutofillFormData,
+    prefs::kImportAutofillFormData,
+    base::Value::TYPE_BOOLEAN },
   { key::kMaxConnectionsPerProxy,
     prefs::kMaxConnectionsPerProxy,
     base::Value::TYPE_INTEGER },
@@ -373,7 +373,7 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
     base::Value::TYPE_BOOLEAN },
 #if defined(ENABLE_EXTENSIONS)
   { key::kFullscreenAllowed,
-    apps::prefs::kAppFullscreenAllowed,
+    extensions::pref_names::kAppFullscreenAllowed,
     base::Value::TYPE_BOOLEAN },
 #endif  // defined(ENABLE_EXTENSIONS)
 #endif  // !defined(OS_MACOSX) && !defined(OS_IOS)
@@ -466,6 +466,9 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
   { key::kTouchVirtualKeyboardEnabled,
     prefs::kTouchVirtualKeyboardEnabled,
     base::Value::TYPE_BOOLEAN },
+  { key::kEasyUnlockAllowed,
+    prefs::kEasyUnlockAllowed,
+    base::Value::TYPE_BOOLEAN },
 #endif  // defined(OS_CHROMEOS)
 
 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS)
@@ -484,33 +487,33 @@ const PolicyToPreferenceMapEntry kSimplePolicyMap[] = {
   { key::kNativeMessagingUserLevelHosts,
     extensions::pref_names::kNativeMessagingUserLevelHosts,
     base::Value::TYPE_BOOLEAN },
+  { key::kBrowserGuestModeEnabled,
+    prefs::kBrowserGuestModeEnabled,
+    base::Value::TYPE_BOOLEAN },
+  { key::kBrowserAddPersonEnabled,
+    prefs::kBrowserAddPersonEnabled,
+    base::Value::TYPE_BOOLEAN },
 #endif  // !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
 };
 
-#if !defined(OS_IOS)
+#if defined(ENABLE_EXTENSIONS)
 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>(new base::FundamentalValue(
-          extensions::Manifest::TYPE_EXTENSION))));
-  result->push_back(new StringMappingListPolicyHandler::MappingEntry(
-      "theme", scoped_ptr<base::Value>(new base::FundamentalValue(
-          extensions::Manifest::TYPE_THEME))));
-  result->push_back(new StringMappingListPolicyHandler::MappingEntry(
-      "user_script", scoped_ptr<base::Value>(new base::FundamentalValue(
-          extensions::Manifest::TYPE_USER_SCRIPT))));
-  result->push_back(new StringMappingListPolicyHandler::MappingEntry(
-      "hosted_app", scoped_ptr<base::Value>(new base::FundamentalValue(
-          extensions::Manifest::TYPE_HOSTED_APP))));
-  result->push_back(new StringMappingListPolicyHandler::MappingEntry(
-      "legacy_packaged_app", scoped_ptr<base::Value>(new base::FundamentalValue(
-          extensions::Manifest::TYPE_LEGACY_PACKAGED_APP))));
-  result->push_back(new StringMappingListPolicyHandler::MappingEntry(
-      "platform_app", scoped_ptr<base::Value>(new base::FundamentalValue(
-          extensions::Manifest::TYPE_PLATFORM_APP))));
+  for (size_t index = 0;
+       index < extensions::schema_constants::kAllowedTypesMapSize;
+       ++index) {
+    const extensions::schema_constants::AllowedTypesMapEntry& entry =
+        extensions::schema_constants::kAllowedTypesMap[index];
+    result->push_back(new StringMappingListPolicyHandler::MappingEntry(
+        entry.name,
+        scoped_ptr<base::Value>(
+            new base::FundamentalValue(entry.manifest_type))));
+  }
 }
+#endif
 
+#if !defined(OS_IOS)
 void GetDeprecatedFeaturesMap(
     ScopedVector<StringMappingListPolicyHandler::MappingEntry>* result) {
   // Maps feature tags as specified in policy to the corresponding switch to
@@ -527,8 +530,9 @@ void GetDeprecatedFeaturesMap(
 
 void PopulatePolicyHandlerParameters(PolicyHandlerParameters* parameters) {
 #if defined(OS_CHROMEOS)
-  if (chromeos::UserManager::IsInitialized()) {
-    const chromeos::User* user = chromeos::UserManager::Get()->GetActiveUser();
+  if (user_manager::UserManager::IsInitialized()) {
+    const user_manager::User* user =
+        user_manager::UserManager::Get()->GetActiveUser();
     if (user)
       parameters->user_id_hash = user->username_hash();
   }
@@ -567,11 +571,21 @@ scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
   handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
       new JavascriptPolicyHandler()));
   handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
+      new NetworkPredictionPolicyHandler()));
+  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
       new RestoreOnStartupPolicyHandler()));
   handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
       new browser_sync::SyncPolicyHandler()));
 
   handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
+      new StringMappingListPolicyHandler(
+          key::kEnableDeprecatedWebPlatformFeatures,
+          prefs::kEnableDeprecatedWebPlatformFeatures,
+          base::Bind(GetDeprecatedFeaturesMap))));
+#endif  // !defined(OS_IOS)
+
+#if defined(ENABLE_EXTENSIONS)
+  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
       new extensions::ExtensionListPolicyHandler(
           key::kExtensionInstallWhitelist,
           extensions::pref_names::kInstallAllowList,
@@ -592,12 +606,7 @@ scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
           key::kExtensionAllowedTypes,
           extensions::pref_names::kAllowedTypes,
           base::Bind(GetExtensionAllowedTypesMap))));
-  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
-      new StringMappingListPolicyHandler(
-          key::kEnableDeprecatedWebPlatformFeatures,
-          prefs::kEnableDeprecatedWebPlatformFeatures,
-          base::Bind(GetDeprecatedFeaturesMap))));
-#endif  // !defined(OS_IOS)
+#endif
 
 #if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
   handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
@@ -775,6 +784,14 @@ scoped_ptr<ConfigurationPolicyHandlerList> BuildHandlerList(
       new ExternalDataPolicyHandler(key::kUserAvatarImage)));
   handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
       new ExternalDataPolicyHandler(key::kWallpaperImage)));
+  handlers->AddHandler(make_scoped_ptr<ConfigurationPolicyHandler>(
+      new SimpleSchemaValidatingPolicyHandler(
+          key::kSessionLocales,
+          NULL,
+          chrome_schema,
+          SCHEMA_STRICT,
+          SimpleSchemaValidatingPolicyHandler::RECOMMENDED_ALLOWED,
+          SimpleSchemaValidatingPolicyHandler::MANDATORY_PROHIBITED)));
 #endif  // defined(OS_CHROMEOS)
 
   return handlers.Pass();