Index: chrome/browser/cookie_modal_dialog.cc |
diff --git a/chrome/browser/cookie_modal_dialog.cc b/chrome/browser/cookie_modal_dialog.cc |
index ed861785f18dab91cfe504e9c77894eef730ef09..08bf183edee14e932e62e8b8dc302a3905f81373 100644 |
--- a/chrome/browser/cookie_modal_dialog.cc |
+++ b/chrome/browser/cookie_modal_dialog.cc |
@@ -86,8 +86,9 @@ bool CookiePromptModalDialog::IsValid() { |
origin_, CONTENT_SETTINGS_TYPE_COOKIES); |
if (content_setting != CONTENT_SETTING_ASK) { |
if (content_setting == CONTENT_SETTING_ALLOW) { |
- // If it's remembered as allow, then we assume session_expire is false. |
AllowSiteData(false, false); |
+ } else if (content_setting == CONTENT_SETTING_SESSION_ONLY) { |
+ AllowSiteData(false, true); |
} else { |
DCHECK(content_setting == CONTENT_SETTING_BLOCK); |
BlockSiteData(false); |
@@ -108,7 +109,8 @@ void CookiePromptModalDialog::AllowSiteData(bool remember, |
CONTENT_SETTINGS_TYPE_COOKIES, CONTENT_SETTING_DEFAULT); |
host_content_settings_map_->SetContentSetting( |
HostContentSettingsMap::Pattern::FromURL(origin_), |
- CONTENT_SETTINGS_TYPE_COOKIES, CONTENT_SETTING_ALLOW); |
+ CONTENT_SETTINGS_TYPE_COOKIES, |
+ session_expire ? CONTENT_SETTING_SESSION_ONLY : CONTENT_SETTING_ALLOW); |
} |
if (delegate_) { |