diff --git a/common/changes/@snowplow/browser-tracker-core/issue-1162-fix-root-domain-algorithm-start_2023-03-03-10-32.json b/common/changes/@snowplow/browser-tracker-core/issue-1162-fix-root-domain-algorithm-start_2023-03-03-10-32.json new file mode 100644 index 000000000..5131a2c0c --- /dev/null +++ b/common/changes/@snowplow/browser-tracker-core/issue-1162-fix-root-domain-algorithm-start_2023-03-03-10-32.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@snowplow/browser-tracker-core", + "comment": "Fix root domain algorithm initial attempt", + "type": "none" + } + ], + "packageName": "@snowplow/browser-tracker-core" +} \ No newline at end of file diff --git a/libraries/browser-tracker-core/src/helpers.ts b/libraries/browser-tracker-core/src/helpers.ts index cce34e27a..6889a0a49 100755 --- a/libraries/browser-tracker-core/src/helpers.ts +++ b/libraries/browser-tracker-core/src/helpers.ts @@ -324,22 +324,20 @@ export function findRootDomain(sameSite: string, secure: boolean) { cookieName = cookiePrefix + new Date().getTime(), cookieValue = '_test_value_' + new Date().getTime(); - var split = windowLocationHostnameAlias.split('.'); - var position = split.length - 1; - while (position >= 0) { - var currentDomain = split.slice(position, split.length).join('.'); + const locationParts = windowLocationHostnameAlias.split('.'); + for (let idx = locationParts.length - 2; idx >= 0; idx--) { + const currentDomain = locationParts.slice(idx).join('.'); cookie(cookieName, cookieValue, 0, '/', currentDomain, sameSite, secure); if (cookie(cookieName) === cookieValue) { // Clean up created cookie(s) deleteCookie(cookieName, currentDomain, sameSite, secure); - var cookieNames = getCookiesWithPrefix(cookiePrefix); - for (var i = 0; i < cookieNames.length; i++) { + const cookieNames = getCookiesWithPrefix(cookiePrefix); + for (let i = 0; i < cookieNames.length; i++) { deleteCookie(cookieNames[i], currentDomain, sameSite, secure); } return currentDomain; } - position -= 1; } // Cookies cannot be read