Improve cookie detection

Still  not perfect: doesn't test for session-only cookies...


Former-commit-id: e15897f2c8868e75b1f69f6c5542353515441261 [formerly 4ac21dd677fd3d9aa301be2396afe3277ab29807]
Former-commit-id: 96a6fc0b37e7d13fd4860dd268e6d891ab87463a
This commit is contained in:
Jaifroid 2019-08-15 12:33:04 +01:00
parent a333560ad4
commit 3e7ca51946
2 changed files with 14 additions and 2 deletions

View File

@ -190,8 +190,13 @@ function getCookie(name) {
function checkCookies() {
// Test for cookie support
var storeType = 'cookie';
document.cookie = "kiwixCookie=working";
document.cookie = 'kiwixCookie=working;expires=Fri, 31 Dec 9999 23:59:59 GMT';
var kiwixCookie = /kiwixCookie=working/i.test(document.cookie);
if (kiwixCookie) {
document.cookie = 'kiwixCookie=broken;expires=Fri, 31 Dec 9999 23:59:59 GMT';
kiwixCookie = !/kiwixCookie=working/i.test(document.cookie);
}
document.cookie = 'kiwixCookie=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
if (!kiwixCookie) {
// Cookies appear to be blocked, so test for localStorage support
var result = false;
@ -202,6 +207,7 @@ function checkCookies() {
}
if (result) storeType = 'local_storage';
}
console.log('Test1: storeType: ' + storeType);
return storeType;
}

View File

@ -23,8 +23,13 @@ define([], function() {
// Test for cookie support
var storeType = 'cookie';
document.cookie = "kiwixCookie=working";
document.cookie = 'kiwixCookie=working;expires=Fri, 31 Dec 9999 23:59:59 GMT';
var kiwixCookie = /kiwixCookie=working/i.test(document.cookie);
if (kiwixCookie) {
document.cookie = 'kiwixCookie=broken;expires=Fri, 31 Dec 9999 23:59:59 GMT';
kiwixCookie = !/kiwixCookie=working/i.test(document.cookie);
}
document.cookie = 'kiwixCookie=;expires=Thu, 01 Jan 1970 00:00:00 GMT';
if (!kiwixCookie) {
// Cookies appear to be blocked, so test for localStorage support
var result = false;
@ -35,6 +40,7 @@ if (!kiwixCookie) {
}
if (result) storeType = 'local_storage';
}
console.log('Test2: storeType: ' + storeType);
var docCookies = {
getItem: function (sKey) {