| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/policy/configuration_policy_handler.h" | 5 #include "chrome/browser/policy/configuration_policy_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/json/json_writer.h" | 10 #include "base/json/json_writer.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/stl_util.h" | 12 #include "base/stl_util.h" |
| 13 #include "base/string16.h" | 13 #include "base/string16.h" |
| 14 #include "base/string_number_conversions.h" | 14 #include "base/string_number_conversions.h" |
| 15 #include "base/string_util.h" | 15 #include "base/string_util.h" |
| 16 #include "chrome/browser/download/download_util.h" | 16 #include "chrome/browser/download/download_util.h" |
| 17 #include "chrome/browser/policy/configuration_policy_pref_store.h" | 17 #include "chrome/browser/policy/configuration_policy_pref_store.h" |
| 18 #include "chrome/browser/policy/policy_error_map.h" | 18 #include "chrome/browser/policy/policy_error_map.h" |
| 19 #include "chrome/browser/policy/policy_map.h" | 19 #include "chrome/browser/policy/policy_map.h" |
| 20 #include "chrome/browser/policy/policy_path_parser.h" | 20 #include "chrome/browser/policy/policy_path_parser.h" |
| 21 #include "chrome/browser/prefs/pref_value_map.h" | 21 #include "chrome/browser/prefs/pref_value_map.h" |
| 22 #include "chrome/browser/prefs/proxy_config_dictionary.h" | 22 #include "chrome/browser/prefs/proxy_config_dictionary.h" |
| 23 #include "chrome/browser/prefs/proxy_prefs.h" | 23 #include "chrome/browser/prefs/proxy_prefs.h" |
| 24 #include "chrome/browser/prefs/session_startup_pref.h" | 24 #include "chrome/browser/prefs/session_startup_pref.h" |
| 25 #include "chrome/browser/search_engines/search_terms_data.h" | 25 #include "chrome/browser/search_engines/search_terms_data.h" |
| 26 #include "chrome/browser/search_engines/template_url.h" | 26 #include "chrome/browser/search_engines/template_url.h" |
| 27 #include "chrome/common/chrome_notification_types.h" | 27 #include "chrome/common/chrome_notification_types.h" |
| 28 #include "chrome/common/content_settings.h" | |
| 29 #include "chrome/common/extensions/extension.h" | 28 #include "chrome/common/extensions/extension.h" |
| 30 #include "chrome/common/pref_names.h" | 29 #include "chrome/common/pref_names.h" |
| 31 #include "content/public/browser/notification_service.h" | 30 #include "content/public/browser/notification_service.h" |
| 32 #include "grit/generated_resources.h" | 31 #include "grit/generated_resources.h" |
| 33 #include "policy/policy_constants.h" | 32 #include "policy/policy_constants.h" |
| 34 | 33 |
| 35 namespace policy { | 34 namespace policy { |
| 36 | 35 |
| 37 namespace { | 36 namespace { |
| 38 | 37 |
| (...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1089 setting = CONTENT_SETTING_BLOCK; | 1088 setting = CONTENT_SETTING_BLOCK; |
| 1090 } | 1089 } |
| 1091 } | 1090 } |
| 1092 | 1091 |
| 1093 if (setting != CONTENT_SETTING_DEFAULT) { | 1092 if (setting != CONTENT_SETTING_DEFAULT) { |
| 1094 prefs->SetValue(prefs::kManagedDefaultJavaScriptSetting, | 1093 prefs->SetValue(prefs::kManagedDefaultJavaScriptSetting, |
| 1095 Value::CreateIntegerValue(setting)); | 1094 Value::CreateIntegerValue(setting)); |
| 1096 } | 1095 } |
| 1097 } | 1096 } |
| 1098 | 1097 |
| 1098 // ClearSiteDataOnExitPolicyHandler implementation ----------------------------- |
| 1099 |
| 1100 ClearSiteDataOnExitPolicyHandler::ClearSiteDataOnExitPolicyHandler() |
| 1101 : TypeCheckingPolicyHandler(key::kClearSiteDataOnExit, |
| 1102 Value::TYPE_BOOLEAN) { |
| 1103 } |
| 1104 |
| 1105 ClearSiteDataOnExitPolicyHandler::~ClearSiteDataOnExitPolicyHandler() { |
| 1106 } |
| 1107 |
| 1108 bool ClearSiteDataOnExitPolicyHandler::CheckPolicySettings( |
| 1109 const PolicyMap& policies, |
| 1110 PolicyErrorMap* errors) { |
| 1111 ContentSetting content_setting = CONTENT_SETTING_DEFAULT; |
| 1112 if (ClearSiteDataEnabled(policies) && |
| 1113 GetContentSetting(policies, &content_setting) && |
| 1114 content_setting == CONTENT_SETTING_ALLOW) { |
| 1115 errors->AddError(key::kDefaultCookiesSetting, |
| 1116 IDS_POLICY_OVERRIDDEN, |
| 1117 policy_name()); |
| 1118 } |
| 1119 |
| 1120 return TypeCheckingPolicyHandler::CheckPolicySettings(policies, errors); |
| 1121 } |
| 1122 |
| 1123 void ClearSiteDataOnExitPolicyHandler::ApplyPolicySettings( |
| 1124 const PolicyMap& policies, |
| 1125 PrefValueMap* prefs) { |
| 1126 if (ClearSiteDataEnabled(policies)) { |
| 1127 ContentSetting content_setting = CONTENT_SETTING_DEFAULT; |
| 1128 if (!GetContentSetting(policies, &content_setting) || |
| 1129 content_setting == CONTENT_SETTING_ALLOW) { |
| 1130 prefs->SetValue( |
| 1131 prefs::kManagedDefaultCookiesSetting, |
| 1132 Value::CreateIntegerValue(CONTENT_SETTING_SESSION_ONLY)); |
| 1133 } |
| 1134 } |
| 1135 } |
| 1136 |
| 1137 bool ClearSiteDataOnExitPolicyHandler::ClearSiteDataEnabled( |
| 1138 const PolicyMap& policies) { |
| 1139 const base::Value* value = NULL; |
| 1140 PolicyErrorMap errors; |
| 1141 bool clear_site_data = false; |
| 1142 |
| 1143 return (CheckAndGetValue(policies, &errors, &value) && |
| 1144 value && |
| 1145 value->GetAsBoolean(&clear_site_data) && |
| 1146 clear_site_data); |
| 1147 } |
| 1148 |
| 1149 // static |
| 1150 bool ClearSiteDataOnExitPolicyHandler::GetContentSetting( |
| 1151 const PolicyMap& policies, |
| 1152 ContentSetting* content_setting) { |
| 1153 const base::Value* value = policies.GetValue(key::kDefaultCookiesSetting); |
| 1154 int setting = CONTENT_SETTING_DEFAULT; |
| 1155 if (value && value->GetAsInteger(&setting)) { |
| 1156 *content_setting = static_cast<ContentSetting>(setting); |
| 1157 return true; |
| 1158 } |
| 1159 |
| 1160 return false; |
| 1161 } |
| 1162 |
| 1099 // RestoreOnStartupPolicyHandler implementation -------------------------------- | 1163 // RestoreOnStartupPolicyHandler implementation -------------------------------- |
| 1100 | 1164 |
| 1101 RestoreOnStartupPolicyHandler::RestoreOnStartupPolicyHandler() | 1165 RestoreOnStartupPolicyHandler::RestoreOnStartupPolicyHandler() |
| 1102 : TypeCheckingPolicyHandler(key::kRestoreOnStartup, | 1166 : TypeCheckingPolicyHandler(key::kRestoreOnStartup, |
| 1103 Value::TYPE_INTEGER) { | 1167 Value::TYPE_INTEGER) { |
| 1104 } | 1168 } |
| 1105 | 1169 |
| 1106 RestoreOnStartupPolicyHandler::~RestoreOnStartupPolicyHandler() { | 1170 RestoreOnStartupPolicyHandler::~RestoreOnStartupPolicyHandler() { |
| 1107 } | 1171 } |
| 1108 | 1172 |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1204 errors->AddError(policy_name(), | 1268 errors->AddError(policy_name(), |
| 1205 IDS_POLICY_OUT_OF_RANGE_ERROR, | 1269 IDS_POLICY_OUT_OF_RANGE_ERROR, |
| 1206 base::IntToString(restore_value)); | 1270 base::IntToString(restore_value)); |
| 1207 } | 1271 } |
| 1208 } | 1272 } |
| 1209 } | 1273 } |
| 1210 return true; | 1274 return true; |
| 1211 } | 1275 } |
| 1212 | 1276 |
| 1213 } // namespace policy | 1277 } // namespace policy |
| OLD | NEW |