google-analytics-legacy.js (3362B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 // based on https://github.com/gorhill/uBlock/blob/6f49e079db0262e669b70f4169924f796ac8db7c/src/web_accessible_resources/google-analytics_ga.js 6 7 "use strict"; 8 9 if (!window._gaq) { 10 function noopfn() {} 11 12 const gaq = { 13 Na: noopfn, 14 O: noopfn, 15 Sa: noopfn, 16 Ta: noopfn, 17 Va: noopfn, 18 _createAsyncTracker: noopfn, 19 _getAsyncTracker: noopfn, 20 _getPlugin: noopfn, 21 push: a => { 22 if (typeof a === "function") { 23 a(); 24 return; 25 } 26 if (!Array.isArray(a)) { 27 return; 28 } 29 if ( 30 typeof a[0] === "string" && 31 /(^|\.)_link$/.test(a[0]) && 32 typeof a[1] === "string" 33 ) { 34 window.location.assign(a[1]); 35 } 36 if ( 37 a[0] === "_set" && 38 a[1] === "hitCallback" && 39 typeof a[2] === "function" 40 ) { 41 a[2](); 42 } 43 }, 44 }; 45 46 const tracker = { 47 _addIgnoredOrganic: noopfn, 48 _addIgnoredRef: noopfn, 49 _addItem: noopfn, 50 _addOrganic: noopfn, 51 _addTrans: noopfn, 52 _clearIgnoredOrganic: noopfn, 53 _clearIgnoredRef: noopfn, 54 _clearOrganic: noopfn, 55 _cookiePathCopy: noopfn, 56 _deleteCustomVar: noopfn, 57 _getName: noopfn, 58 _setAccount: noopfn, 59 _getAccount: noopfn, 60 _getClientInfo: noopfn, 61 _getDetectFlash: noopfn, 62 _getDetectTitle: noopfn, 63 _getLinkerUrl: a => a, 64 _getLocalGifPath: noopfn, 65 _getServiceMode: noopfn, 66 _getVersion: noopfn, 67 _getVisitorCustomVar: noopfn, 68 _initData: noopfn, 69 _link: noopfn, 70 _linkByPost: noopfn, 71 _setAllowAnchor: noopfn, 72 _setAllowHash: noopfn, 73 _setAllowLinker: noopfn, 74 _setCampContentKey: noopfn, 75 _setCampMediumKey: noopfn, 76 _setCampNameKey: noopfn, 77 _setCampNOKey: noopfn, 78 _setCampSourceKey: noopfn, 79 _setCampTermKey: noopfn, 80 _setCampaignCookieTimeout: noopfn, 81 _setCampaignTrack: noopfn, 82 _setClientInfo: noopfn, 83 _setCookiePath: noopfn, 84 _setCookiePersistence: noopfn, 85 _setCookieTimeout: noopfn, 86 _setCustomVar: noopfn, 87 _setDetectFlash: noopfn, 88 _setDetectTitle: noopfn, 89 _setDomainName: noopfn, 90 _setLocalGifPath: noopfn, 91 _setLocalRemoteServerMode: noopfn, 92 _setLocalServerMode: noopfn, 93 _setReferrerOverride: noopfn, 94 _setRemoteServerMode: noopfn, 95 _setSampleRate: noopfn, 96 _setSessionTimeout: noopfn, 97 _setSiteSpeedSampleRate: noopfn, 98 _setSessionCookieTimeout: noopfn, 99 _setVar: noopfn, 100 _setVisitorCookieTimeout: noopfn, 101 _trackEvent: noopfn, 102 _trackPageLoadTime: noopfn, 103 _trackPageview: noopfn, 104 _trackSocial: noopfn, 105 _trackTiming: noopfn, 106 _trackTrans: noopfn, 107 _visitCode: noopfn, 108 }; 109 110 const gat = { 111 _anonymizeIP: noopfn, 112 _createTracker: noopfn, 113 _forceSSL: noopfn, 114 _getPlugin: noopfn, 115 _getTracker: () => tracker, 116 _getTrackerByName: () => tracker, 117 _getTrackers: noopfn, 118 aa: noopfn, 119 ab: noopfn, 120 hb: noopfn, 121 la: noopfn, 122 oa: noopfn, 123 pa: noopfn, 124 u: noopfn, 125 }; 126 127 window._gat = gat; 128 129 const aa = window._gaq || []; 130 if (Array.isArray(aa)) { 131 while (aa[0]) { 132 gaq.push(aa.shift()); 133 } 134 } 135 136 window._gaq = gaq.qf = gaq; 137 }