browser_favicon_referer.js (1895B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 const FOLDER = getRootDirectory(gTestPath).replace( 7 "chrome://mochitests/content/", 8 "http://mochi.test:8888/" 9 ); 10 11 add_task(async function test_check_referrer_for_discovered_favicon() { 12 await BrowserTestUtils.withNewTab( 13 { gBrowser, url: "about:blank" }, 14 async browser => { 15 let referrerPromise = TestUtils.topicObserved( 16 "http-on-modify-request", 17 s => { 18 let chan = s.QueryInterface(Ci.nsIHttpChannel); 19 return chan.URI.spec == "http://mochi.test:8888/favicon.ico"; 20 } 21 ).then(([chan]) => chan.getRequestHeader("Referer")); 22 23 BrowserTestUtils.startLoadingURIString( 24 browser, 25 `${FOLDER}discovery.html` 26 ); 27 28 let referrer = await referrerPromise; 29 is( 30 referrer, 31 `${FOLDER}discovery.html`, 32 "Should have sent referrer for autodiscovered favicon." 33 ); 34 } 35 ); 36 }); 37 38 add_task( 39 async function test_check_referrer_for_referrerpolicy_explicit_favicon() { 40 await BrowserTestUtils.withNewTab( 41 { gBrowser, url: "about:blank" }, 42 async browser => { 43 let referrerPromise = TestUtils.topicObserved( 44 "http-on-modify-request", 45 s => { 46 let chan = s.QueryInterface(Ci.nsIHttpChannel); 47 return chan.URI.spec == `${FOLDER}file_favicon.png`; 48 } 49 ).then(([chan]) => chan.getRequestHeader("Referer")); 50 51 BrowserTestUtils.startLoadingURIString( 52 browser, 53 `${FOLDER}file_favicon_no_referrer.html` 54 ); 55 56 let referrer = await referrerPromise; 57 is( 58 referrer, 59 "http://mochi.test:8888/", 60 "Should have sent the origin referrer only due to the per-link referrer policy specified." 61 ); 62 } 63 ); 64 } 65 );