trackingAPI.js (2098B)
1 function createIframe(src) { 2 let ifr = document.createElement("iframe"); 3 ifr.src = src; 4 document.body.appendChild(ifr); 5 } 6 7 function createImage(src) { 8 let img = document.createElement("img"); 9 img.src = src; 10 img.onload = () => { 11 parent.postMessage("done", "*"); 12 }; 13 document.body.appendChild(img); 14 } 15 16 onmessage = event => { 17 switch (event.data) { 18 case "tracking": 19 createIframe("https://trackertest.org/"); 20 break; 21 case "socialtracking": 22 createIframe( 23 "https://social-tracking.example.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs" 24 ); 25 break; 26 case "cryptomining": 27 createIframe("http://cryptomining.example.com/"); 28 break; 29 case "fingerprinting": 30 createIframe("https://fingerprinting.example.com/"); 31 break; 32 case "more-tracking": 33 createIframe("https://itisatracker.org/"); 34 break; 35 case "cookie": 36 createIframe( 37 "https://trackertest.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs" 38 ); 39 break; 40 case "first-party-cookie": 41 // Since the content blocking log doesn't seem to get updated for 42 // top-level cookies right now, we just create an iframe with the 43 // first party domain... 44 createIframe( 45 "http://not-tracking.example.com/browser/browser/base/content/test/protectionsUI/cookieServer.sjs" 46 ); 47 break; 48 case "third-party-cookie": 49 createIframe( 50 "https://test1.example.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs" 51 ); 52 break; 53 case "image": 54 createImage( 55 "http://trackertest.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs?type=image-no-cookie" 56 ); 57 break; 58 case "window-open": 59 window.win = window.open( 60 "http://trackertest.org/browser/browser/base/content/test/protectionsUI/cookieServer.sjs", 61 "_blank", 62 "width=100,height=100" 63 ); 64 break; 65 case "window-close": 66 window.win.close(); 67 window.win = null; 68 break; 69 } 70 };