Index: chrome/browser/cookies_tree_model.cc |
diff --git a/chrome/browser/cookies_tree_model.cc b/chrome/browser/cookies_tree_model.cc |
index b2660ec852bd9e74151437ebe6205018cdccdf6b..350c6eaf3e292ec7e16d7015af64d425e45c3d7e 100644 |
--- a/chrome/browser/cookies_tree_model.cc |
+++ b/chrome/browser/cookies_tree_model.cc |
@@ -14,6 +14,8 @@ |
#include "base/string_util.h" |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/browsing_data_cookie_helper.h" |
+#include "chrome/browser/content_settings/content_settings_pattern.h" |
+#include "chrome/browser/content_settings/cookie_settings.h" |
#include "chrome/browser/content_settings/host_content_settings_map.h" |
#include "chrome/browser/extensions/extension_service.h" |
#include "content/browser/in_process_webkit/webkit_context.h" |
@@ -454,11 +456,20 @@ CookieTreeQuotaNode* CookieTreeOriginNode::UpdateOrCreateQuotaNode( |
void CookieTreeOriginNode::CreateContentException( |
HostContentSettingsMap* content_settings, ContentSetting setting) const { |
if (CanCreateContentException()) { |
- content_settings->AddExceptionForURL(url_, |
- url_, |
- CONTENT_SETTINGS_TYPE_COOKIES, |
- "", |
- setting); |
+ CookieSettings* cookie_settings = content_settings->GetCookieSettings(); |
+ cookie_settings->ResetCookieAllowed( |
+ ContentSettingsPattern::FromURLNoWildcard(url_), |
+ ContentSettingsPattern::Wildcard()); |
+ cookie_settings->ResetCookieSessionOnly( |
+ ContentSettingsPattern::FromURLNoWildcard(url_)); |
+ bool allow = (setting == CONTENT_SETTING_ALLOW || |
+ setting == CONTENT_SETTING_SESSION_ONLY); |
+ bool session_only = (setting == CONTENT_SETTING_SESSION_ONLY); |
+ cookie_settings->SetCookieAllowed(ContentSettingsPattern::FromURL(url_), |
+ ContentSettingsPattern::Wildcard(), |
+ allow); |
+ cookie_settings->SetCookieSessionOnly(ContentSettingsPattern::FromURL(url_), |
+ session_only); |
} |
} |