diff options
author | Thomas Steur <thomas.steur@gmail.com> | 2015-04-28 02:34:58 +0300 |
---|---|---|
committer | Thomas Steur <thomas.steur@gmail.com> | 2015-04-28 02:34:58 +0300 |
commit | e9c5ee52954adddf793695974f6c4023b07085ff (patch) | |
tree | b8737b62608c25b009d9036ca5110741be682028 /js | |
parent | 5d556a0ebc4b3cfd496fcf88c8eadeaee98f3a91 (diff) |
refs #7752 before setting a new cookie domain, test whether it works to set a cookie on that domain
Diffstat (limited to 'js')
-rw-r--r-- | js/piwik.js | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/js/piwik.js b/js/piwik.js index 50d589969e..19c41aee68 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -2801,15 +2801,33 @@ if (typeof Piwik !== 'object') { ]; } + function isPossibleToSetCookieOnDomain(domainToTest) + { + var valueToSet = 'testvalue'; + setCookie('test', valueToSet, 10000, null, domainToTest); + + if (getCookie('test') === valueToSet) { + deleteCookie('test', null, domainToTest); + + return true; + } + + return false; + } + + function deleteCookie(cookieName, path, domain) { + setCookie(cookieName, '', -86400, path, domain); + } + function deleteCookies() { var savedConfigCookiesDisabled = configCookiesDisabled; // Temporarily allow cookies just to delete the existing ones configCookiesDisabled = false; - setCookie(getCookieName('id'), '', -86400, configCookiePath, configCookieDomain); - setCookie(getCookieName('ses'), '', -86400, configCookiePath, configCookieDomain); - setCookie(getCookieName('cvar'), '', -86400, configCookiePath, configCookieDomain); - setCookie(getCookieName('ref'), '', -86400, configCookiePath, configCookieDomain); + deleteCookie(getCookieName('id'), configCookiePath, configCookieDomain); + deleteCookie(getCookieName('ses'), configCookiePath, configCookieDomain); + deleteCookie(getCookieName('cvar'), configCookiePath, configCookieDomain); + deleteCookie(getCookieName('ref'), configCookiePath, configCookieDomain); configCookiesDisabled = savedConfigCookiesDisabled; } @@ -4643,8 +4661,12 @@ if (typeof Piwik !== 'object') { * @param string domain */ setCookieDomain: function (domain) { - configCookieDomain = domainFixup(domain); - updateDomainHash(); + var domainFixed = domainFixup(domain); + + if (isPossibleToSetCookieOnDomain(domainFixed)) { + configCookieDomain = domainFixed; + updateDomainHash(); + } }, /** |