From e7174096e8742c5de61b65738e67ef0ad7493c15 Mon Sep 17 00:00:00 2001 From: Adriaan van Rossum <1079135+adriaanvanrossum@users.noreply.github.com> Date: Tue, 27 May 2025 17:30:58 +0200 Subject: [PATCH 1/2] Save local changes [no ci] --- src/auto-events.js | 2 +- src/default.js | 60 ++++++++++++++++++++-------------------------- 2 files changed, 27 insertions(+), 35 deletions(-) diff --git a/src/auto-events.js b/src/auto-events.js index 29fdd9e..af554a9 100644 --- a/src/auto-events.js +++ b/src/auto-events.js @@ -155,7 +155,7 @@ /^https?:\/\//i.test(link.href) && new RegExp( "\\.(" + (optionsLink.downloadsExtensions || []).join("|") + ")$", - "i", + "i" ).test(link.pathname) ) { collect = "download"; diff --git a/src/default.js b/src/default.js index 5f7576c..27497ce 100644 --- a/src/default.js +++ b/src/default.js @@ -345,24 +345,13 @@ Date.now(); }; - var cleanSubdomain = function (url) { - if (!url) return; - return url.replace( - /^(https?:\/\/)?((m|l|w{2,3}([0-9]+)?)\.)?([^?#]+)(.*)$/, - "$5" - ); - }; - // Customers can overwrite their hostname, here we check for that - var overwrittenHostname = cleanSubdomain( - overwriteOptions.hostname || attr(scriptElement, "hostname") - ); - - var definedHostname = cleanSubdomain( - overwrittenHostname || locationHostname - ); + var overwrittenHostname = + overwriteOptions.hostname || attr(scriptElement, "hostname"); + var definedHostname = overwrittenHostname || locationHostname; var basePayload = { + pullrequest: "54", version: version, hostname: definedHostname, }; @@ -498,13 +487,12 @@ // /** if botdetection **/ - var phantom = window.phantom; var bot = nav.webdriver || window.__nightmare || window.callPhantom || window._phantom || - (phantom && !phantom.solana) || + window.phantom || window.__polypane || window._bot || isBotAgent || @@ -596,9 +584,16 @@ var page = {}; var lastSendPath; + // Customers can overwrite their referrer, here we check for that + var overwrittenReferrer = + overwriteOptions.referrer || attr(scriptElement, "referrer"); + var getReferrer = function () { - return cleanSubdomain( - (doc.referrer || "").replace(locationHostname, definedHostname) + return ( + (overwrittenReferrer || doc.referrer || "") + .replace(locationHostname, definedHostname) + .replace(/^https?:\/\/((m|l|w{2,3}([0-9]+)?)\.)?([^?#]+)(.*)$/, "$4") + .replace(/^([^/]+)$/, "$1") || undefinedVar ); }; @@ -847,10 +842,7 @@ /** if uniques **/ // We set unique variable based on pushstate or back navigation, if no match we check the referrer - page.unique = - /__cf_/.test(getReferrer()) || isPushState || userNavigated - ? falseVar - : !sameSite; + page.unique = isPushState || userNavigated ? falseVar : !sameSite; /** endif **/ /** if metadata **/ @@ -961,17 +953,17 @@ /** if (or spa hash) **/ if (autoCollect) pageview(); - - /** if metadata **/ - window.sa_pageview = function (path, metadata) { - pageview(0, path, metadata); - }; - /** else **/ - window.sa_pageview = function (path) { - pageview(0, path); - }; - /** endif **/ - + else { + /** if metadata **/ + window.sa_pageview = function (path, metadata) { + pageview(0, path, metadata); + }; + /** else **/ + window.sa_pageview = function (path) { + pageview(0, path); + }; + /** endif **/ + } /** else **/ pageview(); /** endif **/ From 065dbb14c0c83a8258285a52c9ac507adcb7d8c6 Mon Sep 17 00:00:00 2001 From: Adriaan van Rossum <1079135+adriaanvanrossum@users.noreply.github.com> Date: Thu, 29 May 2025 14:55:59 +0200 Subject: [PATCH 2/2] Allow overwriting referrer --- src/default.js | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/default.js b/src/default.js index 27497ce..08d7cd9 100644 --- a/src/default.js +++ b/src/default.js @@ -351,7 +351,6 @@ var definedHostname = overwrittenHostname || locationHostname; var basePayload = { - pullrequest: "54", version: version, hostname: definedHostname, }; @@ -487,12 +486,13 @@ // /** if botdetection **/ + var phantom = window.phantom; var bot = nav.webdriver || window.__nightmare || window.callPhantom || window._phantom || - window.phantom || + (phantom && !phantom.solana) || window.__polypane || window._bot || isBotAgent || @@ -584,11 +584,11 @@ var page = {}; var lastSendPath; - // Customers can overwrite their referrer, here we check for that - var overwrittenReferrer = - overwriteOptions.referrer || attr(scriptElement, "referrer"); - var getReferrer = function () { + // Customers can overwrite their referrer, here we check for that + var overwrittenReferrer = + overwriteOptions.referrer || attr(scriptElement, "referrer"); + return ( (overwrittenReferrer || doc.referrer || "") .replace(locationHostname, definedHostname) @@ -842,7 +842,10 @@ /** if uniques **/ // We set unique variable based on pushstate or back navigation, if no match we check the referrer - page.unique = isPushState || userNavigated ? falseVar : !sameSite; + page.unique = + /__cf_/.test(getReferrer()) || isPushState || userNavigated + ? falseVar + : !sameSite; /** endif **/ /** if metadata **/ @@ -953,17 +956,17 @@ /** if (or spa hash) **/ if (autoCollect) pageview(); - else { - /** if metadata **/ - window.sa_pageview = function (path, metadata) { - pageview(0, path, metadata); - }; - /** else **/ - window.sa_pageview = function (path) { - pageview(0, path); - }; - /** endif **/ - } + + /** if metadata **/ + window.sa_pageview = function (path, metadata) { + pageview(0, path, metadata); + }; + /** else **/ + window.sa_pageview = function (path) { + pageview(0, path); + }; + /** endif **/ + /** else **/ pageview(); /** endif **/