diff options
author | Peter Zhang <peter@innocraft.com> | 2022-01-17 05:00:00 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-17 05:00:00 +0300 |
commit | c6442f37da31d4f89e21e86bd46599ebf8c82b13 (patch) | |
tree | 7aa68933fc04d59a132e5276484ad8fb1e8656fb /js/piwik.js | |
parent | 104b6f66e622b406daf9eaa0117ac114292995b9 (diff) |
add disable finger print options (#18599)
* add disable finger print
add disable finger print
* rebuilt piwik.js
* update eslint and piwijs
update eslint and piwijs
* Update piwik.js
update name
* Update piwik.js
update naming and functions
* rebuilt piwik.js
* Update piwik.js
add disableBrowserFeatureDetection to apply first
* rebuilt piwik.js
* Update .eslintignore
remove eslint rules
* Update .eslintignore
reset
* Update piwik.js
swap apply event place
* Update .eslintignore
apply ignores
* rebuilt piwik.js
* Update piwik.js
move disableBrowserFeatureDetection up
* Update piwik.js
move function below
* Update piwik.js
update format
* update some naming
update some naming
* Update js/piwik.js
Co-authored-by: Justin Velluppillai <justin@innocraft.com>
Co-authored-by: peterhashair <peterhashair@users.noreply.github.com>
Co-authored-by: Justin Velluppillai <justin@innocraft.com>
Diffstat (limited to 'js/piwik.js')
-rw-r--r-- | js/piwik.js | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/js/piwik.js b/js/piwik.js index 25767400f2..9953318ee9 100644 --- a/js/piwik.js +++ b/js/piwik.js @@ -75,7 +75,7 @@ disablePerformanceTracking, maq_confirm_opted_in, doNotTrack, setDoNotTrack, msDoNotTrack, getValuesFromVisitorIdCookie, enableCrossDomainLinking, disableCrossDomainLinking, isCrossDomainLinkingEnabled, setCrossDomainLinkingTimeout, getCrossDomainLinkingUrlParameter, - addListener, enableLinkTracking, enableJSErrorTracking, setLinkTrackingTimer, getLinkTrackingTimer, + addListener, enableLinkTracking, disableBrowserFeatureDetection, enableJSErrorTracking, setLinkTrackingTimer, getLinkTrackingTimer, enableHeartBeatTimer, disableHeartBeatTimer, killFrame, redirectFile, setCountPreRendered, setVisitStandardLength, trackGoal, trackLink, trackPageView, getNumTrackedPageViews, trackRequest, ping, queueRequest, trackSiteSearch, trackEvent, requests, timeout, enabled, sendRequests, queueRequest, canQueue, pushMultiple, disableQueueRequest,setRequestQueueInterval,interval,getRequestQueue, getJavascriptErrors, unsetPageIsUnloading, @@ -2439,7 +2439,9 @@ if (typeof window.Matomo !== 'object') { uniqueTrackerId = trackerIdCounter++, // whether a tracking request has been sent yet during this page view - hasSentTrackingRequestYet = false; + hasSentTrackingRequestYet = false, + + configBrowserFeatureDetection = true; // Document title try { @@ -3128,6 +3130,11 @@ if (typeof window.Matomo !== 'object') { * Browser features (plugins, resolution, cookies) */ function detectBrowserFeatures() { + + // Browser Feature is disabled return empty object + if (!configBrowserFeatureDetection) { + return {}; + } if (isDefined(browserFeatures.res)) { return browserFeatures; } @@ -3749,13 +3756,13 @@ if (typeof window.Matomo !== 'object') { (charSet ? '&cs=' + encodeWrapper(charSet) : '') + '&send_image=0'; - var browserFeatures = detectBrowserFeatures(); - // browser features - for (i in browserFeatures) { - if (Object.prototype.hasOwnProperty.call(browserFeatures, i)) { - request += '&' + i + '=' + browserFeatures[i]; + var browserFeatures = detectBrowserFeatures(); + // browser features + for (i in browserFeatures) { + if (Object.prototype.hasOwnProperty.call(browserFeatures, i)) { + request += '&' + i + '=' + browserFeatures[i]; + } } - } var customDimensionIdsAlreadyHandled = []; if (customData) { @@ -4960,6 +4967,7 @@ if (typeof window.Matomo !== 'object') { linkTrackingInstalled = false; linkTrackingEnabled = false; }; + this.getConfigVisitorCookieTimeout = function () { return configVisitorCookieTimeout; }; @@ -6018,6 +6026,7 @@ if (typeof window.Matomo !== 'object') { this.setCookieConsentGiven = function () { if (configCookiesDisabled && !configDoNotTrack) { configCookiesDisabled = false; + configBrowserFeatureDetection = true; if (configTrackerSiteId && hasSentTrackingRequestYet) { setVisitorIdCookie(); @@ -6392,6 +6401,10 @@ if (typeof window.Matomo !== 'object') { } }; + this.disableBrowserFeatureDetection = function () { + configBrowserFeatureDetection = false; + }; + /** * Scans the entire DOM for all content blocks and tracks all impressions once the DOM ready event has * been triggered. @@ -6947,7 +6960,7 @@ if (typeof window.Matomo !== 'object') { */ this.setConsentGiven = function (setCookieConsent) { configHasConsent = true; - + configBrowserFeatureDetection = true; deleteCookie(CONSENT_REMOVED_COOKIE_NAME, configCookiePath, configCookieDomain); var i, requestType; @@ -7106,7 +7119,7 @@ if (typeof window.Matomo !== 'object') { * Constructor ************************************************************/ - var applyFirst = ['addTracker', 'forgetCookieConsentGiven', 'requireCookieConsent', 'disableCookies', 'setTrackerUrl', 'setAPIUrl', 'enableCrossDomainLinking', 'setCrossDomainLinkingTimeout', 'setSessionCookieTimeout', 'setVisitorCookieTimeout', 'setCookieNamePrefix', 'setCookieSameSite', 'setSecureCookie', 'setCookiePath', 'setCookieDomain', 'setDomains', 'setUserId', 'setVisitorId', 'setSiteId', 'alwaysUseSendBeacon', 'enableLinkTracking', 'setCookieConsentGiven', 'requireConsent', 'setConsentGiven', 'disablePerformanceTracking', 'setPagePerformanceTiming', 'setExcludedQueryParams']; + var applyFirst = ['addTracker', 'forgetCookieConsentGiven', 'requireCookieConsent','disableBrowserFeatureDetection', 'disableCookies', 'setTrackerUrl', 'setAPIUrl', 'enableCrossDomainLinking', 'setCrossDomainLinkingTimeout', 'setSessionCookieTimeout', 'setVisitorCookieTimeout', 'setCookieNamePrefix', 'setCookieSameSite', 'setSecureCookie', 'setCookiePath', 'setCookieDomain', 'setDomains', 'setUserId', 'setVisitorId', 'setSiteId', 'alwaysUseSendBeacon', 'enableLinkTracking', 'setCookieConsentGiven', 'requireConsent', 'setConsentGiven', 'disablePerformanceTracking', 'setPagePerformanceTiming', 'setExcludedQueryParams']; function createFirstTracker(matomoUrl, siteId) { |