Chromium Code Reviews| Index: chrome/browser/policy/configuration_policy_handler.cc |
| diff --git a/chrome/browser/policy/configuration_policy_handler.cc b/chrome/browser/policy/configuration_policy_handler.cc |
| index 06ab09307659f392806abe42e1c282c218a15ed1..aa10533f21fd2773e18adb7aa97279067a21945a 100644 |
| --- a/chrome/browser/policy/configuration_policy_handler.cc |
| +++ b/chrome/browser/policy/configuration_policy_handler.cc |
| @@ -25,7 +25,6 @@ |
| #include "chrome/browser/search_engines/search_terms_data.h" |
| #include "chrome/browser/search_engines/template_url.h" |
| #include "chrome/common/chrome_notification_types.h" |
| -#include "chrome/common/content_settings.h" |
| #include "chrome/common/extensions/extension.h" |
| #include "chrome/common/pref_names.h" |
| #include "content/public/browser/notification_service.h" |
| @@ -1096,6 +1095,70 @@ void JavascriptPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, |
| } |
| } |
| +// ClearSiteDataOnExitPolicyHandler implementation ----------------------------- |
| + |
| +ClearSiteDataOnExitPolicyHandler::ClearSiteDataOnExitPolicyHandler() |
| + : TypeCheckingPolicyHandler(key::kClearSiteDataOnExit, |
| + Value::TYPE_BOOLEAN) { |
| +} |
| + |
| +ClearSiteDataOnExitPolicyHandler::~ClearSiteDataOnExitPolicyHandler() { |
| +} |
| + |
| +bool ClearSiteDataOnExitPolicyHandler::CheckPolicySettings( |
| + const PolicyMap& policies, |
| + PolicyErrorMap* errors) { |
| + ContentSetting content_setting = CONTENT_SETTING_DEFAULT; |
| + if (ClearSiteDataEnabled(policies) && |
| + GetContentSetting(policies, &content_setting) && |
| + content_setting == CONTENT_SETTING_ALLOW) { |
| + errors->AddError(key::kDefaultCookiesSetting, IDS_POLICY_OVERRIDDEN, |
|
pastarmovj
2012/06/18 15:42:16
Split the two params on separate lines.
Mattias Nissler (ping if slow)
2012/06/18 16:28:52
Not required by the style guide, but the rest of t
|
| + policy_name()); |
| + } |
| + |
| + return TypeCheckingPolicyHandler::CheckPolicySettings(policies, errors); |
| +} |
| + |
| +void ClearSiteDataOnExitPolicyHandler::ApplyPolicySettings( |
| + const PolicyMap& policies, |
| + PrefValueMap* prefs) { |
| + if (ClearSiteDataEnabled(policies)) { |
| + ContentSetting content_setting = CONTENT_SETTING_DEFAULT; |
| + if (!GetContentSetting(policies, &content_setting) || |
| + content_setting == CONTENT_SETTING_ALLOW) { |
| + prefs->SetValue( |
| + prefs::kManagedDefaultCookiesSetting, |
| + Value::CreateIntegerValue(CONTENT_SETTING_SESSION_ONLY)); |
| + } |
| + } |
| +} |
| + |
| +bool ClearSiteDataOnExitPolicyHandler::ClearSiteDataEnabled( |
| + const PolicyMap& policies) { |
| + const base::Value* value = NULL; |
| + PolicyErrorMap errors; |
| + bool clear_site_data = false; |
| + |
| + return (CheckAndGetValue(policies, &errors, &value) && |
| + value && |
| + value->GetAsBoolean(&clear_site_data) && |
| + clear_site_data); |
| +} |
| + |
| +// static |
| +bool ClearSiteDataOnExitPolicyHandler::GetContentSetting( |
| + const PolicyMap& policies, |
| + ContentSetting* content_setting) { |
| + const base::Value* value = policies.GetValue(key::kDefaultCookiesSetting); |
| + int setting = CONTENT_SETTING_DEFAULT; |
| + if (value && value->GetAsInteger(&setting)) { |
| + *content_setting = static_cast<ContentSetting>(setting); |
| + return true; |
| + } |
| + |
| + return false; |
| +} |
| + |
| // RestoreOnStartupPolicyHandler implementation -------------------------------- |
| RestoreOnStartupPolicyHandler::RestoreOnStartupPolicyHandler() |