Merge pull request #3187 from tiblu/ep_prefs_different_cookie_for_different_protocol

#3179 - Using EP on same domain, but over different protocols causes "Warning: it appears that your browser does not have cookies enabled.
This commit is contained in:
Stefan 2017-07-30 11:49:29 +02:00 committed by GitHub
commit f6456c0aa7
2 changed files with 8 additions and 3 deletions

View file

@ -459,7 +459,7 @@ var pad = {
// This will check if the prefs-cookie is set. // This will check if the prefs-cookie is set.
// Otherwise it shows up a message to the user. // Otherwise it shows up a message to the user.
padcookie.init(); padcookie.init();
if (!readCookie("prefs")) if (!padcookie.isCookiesEnabled())
{ {
$('#loading').hide(); $('#loading').hide();
$('#noCookie').show(); $('#noCookie').show();

View file

@ -23,6 +23,8 @@
var padcookie = (function() var padcookie = (function()
{ {
var cookieName = isHttpsScheme() ? "prefs" : "prefsHttp";
function getRawCookie() function getRawCookie()
{ {
// returns null if can't get cookie text // returns null if can't get cookie text
@ -31,7 +33,7 @@ var padcookie = (function()
return null; return null;
} }
// look for (start of string OR semicolon) followed by whitespace followed by prefs=(something); // look for (start of string OR semicolon) followed by whitespace followed by prefs=(something);
var regexResult = document.cookie.match(/(?:^|;)\s*prefs=([^;]*)(?:;|$)/); var regexResult = document.cookie.match(new RegExp("(?:^|;)\\s*" + cookieName + "=([^;]*)(?:;|$)"));
if ((!regexResult) || (!regexResult[1])) if ((!regexResult) || (!regexResult[1]))
{ {
return null; return null;
@ -44,7 +46,7 @@ var padcookie = (function()
var expiresDate = new Date(); var expiresDate = new Date();
expiresDate.setFullYear(3000); expiresDate.setFullYear(3000);
var secure = isHttpsScheme() ? ";secure" : ""; var secure = isHttpsScheme() ? ";secure" : "";
document.cookie = ('prefs=' + safeText + ';expires=' + expiresDate.toGMTString() + secure); document.cookie = (cookieName + "=" + safeText + ";expires=" + expiresDate.toGMTString() + secure);
} }
function parseCookie(text) function parseCookie(text)
@ -122,6 +124,9 @@ var padcookie = (function()
{ {
return wasNoCookie; return wasNoCookie;
}, },
isCookiesEnabled: function() {
return !!getRawCookie();
},
getPref: function(prefName) getPref: function(prefName)
{ {
return cookieData[prefName]; return cookieData[prefName];