From 90895cb4535bad46cd8a3f5f0ad1753cdfee73cd Mon Sep 17 00:00:00 2001 From: Honza Bambas Date: Tue, 23 Feb 2016 14:32:00 +0100 Subject: [PATCH] Bug 1239671 - Don't let session store override persistent cookies, r=ehsan --- .../components/sessionstore/SessionCookies.jsm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/browser/components/sessionstore/SessionCookies.jsm b/browser/components/sessionstore/SessionCookies.jsm index c0b5c96f15f..01a03cbbb0d 100644 --- a/browser/components/sessionstore/SessionCookies.jsm +++ b/browser/components/sessionstore/SessionCookies.jsm @@ -117,9 +117,16 @@ var SessionCookiesInternal = { restore(cookies) { for (let cookie of cookies) { let expiry = "expiry" in cookie ? cookie.expiry : MAX_EXPIRY; - Services.cookies.add(cookie.host, cookie.path || "", cookie.name || "", - cookie.value, !!cookie.secure, !!cookie.httponly, - /* isSession = */ true, expiry); + let cookieObj = { + host: cookie.host, + path: cookie.path || "", + name: cookie.name || "" + }; + if (!Services.cookies.cookieExists(cookieObj)) { + Services.cookies.add(cookie.host, cookie.path || "", cookie.name || "", + cookie.value, !!cookie.secure, !!cookie.httponly, + /* isSession = */ true, expiry); + } } }, @@ -241,6 +248,8 @@ var SessionCookiesInternal = { if (cookie.isSession) { CookieStore.set(cookie); + } else { + CookieStore.delete(cookie); } },