test_anchor_target_blank_referrer.html (5320B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Test anchor target=_blank rel=noopener referrer header for Bug 1502678</title> 6 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 7 <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/> 8 9 <!-- 10 Testing that anchor referrer header are honoured correctly 11 * anchor tag with rel=noopener target=_blank 12 https://bugzilla.mozilla.org/show_bug.cgi?id=1502678 13 --> 14 15 <script type="application/javascript"> 16 // We are going to open new tabs with target=_blank and rel=noopener 17 // Listen a new tab is opened then close the new tab, otherwise we will lose 18 // focus for the next tests 19 const {BrowserTestUtils} = ChromeUtils.importESModule( 20 "resource://testing-common/BrowserTestUtils.sys.mjs" 21 ); 22 const gBrowser = Services.wm.getMostRecentWindow("navigator:browser").gBrowser; 23 window.addEventListener("message", function(event) { 24 if (event.data == "childLoadReady") { 25 BrowserTestUtils.waitForNewTab(gBrowser, null, 26 true).then(function(aNewTab) { 27 BrowserTestUtils.removeTab(aNewTab); 28 advance(); 29 }); 30 } 31 }); 32 33 const SJS = "://example.com/tests/dom/base/test/referrer_testserver.sjs?"; 34 const PARAMS = ["RP_HEADER", "META_POLICY", "REL", "SCHEME_FROM", "SCHEME_TO"]; 35 36 const testCases = [ 37 {ACTION: ["generate-anchor-target-blank-policy-test"], 38 PREFS: [ 39 ["dom.security.https_first", false], // need to test http and https 40 ], 41 TESTS: [ 42 // Referrer policy is set in meta 43 {NAME: 'origin-in-meta-rel-noopener', 44 META_POLICY: 'origin', 45 DESC: "origin in meta and rel=noopener", 46 SCHEME_FROM: 'https', 47 SCHEME_TO: 'http', 48 RESULT: 'origin'}, 49 {NAME: 'unsafe-url-in-meta-rel-noopener', 50 META_POLICY: 'unsafe-url', 51 DESC: "unsafe-url in meta and rel=noopener", 52 SCHEME_FROM: 'https', 53 SCHEME_TO: 'http', 54 RESULT: 'full'}, 55 {NAME: 'no-referrer-in-meta-rel-noopener', 56 META_POLICY: 'no-referrer', 57 DESC: "no-referrer in meta and rel=noopener", 58 SCHEME_FROM: 'https', 59 SCHEME_TO: 'http', 60 RESULT: 'none'}, 61 {NAME: 'strict-origin-in-meta-rel-noopener', 62 META_POLICY: 'strict-origin', 63 DESC: "strict-origin in meta and rel=noopener", 64 SCHEME_FROM: 'https', 65 SCHEME_TO: 'http', 66 RESULT: 'none'}, 67 {NAME: 'strict-origin-when-cross-origin-in-meta-rel-noopener', 68 META_POLICY: 'strict-origin-when-cross-origin', 69 DESC: "strict-origin-when-cross-origin in meta and rel=noopener", 70 SCHEME_FROM: 'https', 71 SCHEME_TO: 'http', 72 RESULT: 'none'}, 73 {NAME: 'same-origin-in-meta-rel-noopener', 74 META_POLICY: 'same-origin', 75 DESC: "same-origin in meta and rel=noopener", 76 SCHEME_FROM: 'https', 77 SCHEME_TO: 'http', 78 RESULT: 'none'}, 79 {NAME: 'no-meta-rel-noopener', 80 META_POLICY: '', 81 DESC: "no meta and rel=noopener", 82 SCHEME_FROM: 'https', 83 SCHEME_TO: 'http', 84 RESULT: 'none'}, 85 86 // Referrer policy is set in Referrer-Policy Header 87 {NAME: 'origin-in-referrer-policy-header-rel-noopener', 88 RP_HEADER: 'origin', 89 DESC: "origin in Referrer-Policy Header and rel=noopener", 90 SCHEME_FROM: 'https', 91 SCHEME_TO: 'http', 92 RESULT: 'origin'}, 93 {NAME: 'unsafe-url-in-referrer-policy-header-rel-noopener', 94 RP_HEADER: 'unsafe-url', 95 DESC: "unsafe-url in Referrer-Policy Header and rel=noopener", 96 SCHEME_FROM: 'https', 97 SCHEME_TO: 'http', 98 RESULT: 'full'}, 99 {NAME: 'no-referrer-in-referrer-policy-header-rel-noopener', 100 RP_HEADER: 'no-referrer', 101 DESC: "no-referrer in Referrer-Policy Header and rel=noopener", 102 SCHEME_FROM: 'https', 103 SCHEME_TO: 'http', 104 RESULT: 'none'}, 105 {NAME: 'strict-origin-in-referrer-policy-header-rel-noopener', 106 RP_HEADER: 'strict-origin', 107 DESC: "strict-origin in Referrer-Policy Header and rel=noopener", 108 SCHEME_FROM: 'https', 109 SCHEME_TO: 'http', 110 RESULT: 'none'}, 111 {NAME: 'strict-origin-when-cross-origin-in-referrer-policy-header-rel-noopener', 112 RP_HEADER: 'strict-origin-when-cross-origin', 113 DESC: "strict-origin-when-cross-origin in Referrer-Policy Header and rel=noopener", 114 SCHEME_FROM: 'https', 115 SCHEME_TO: 'http', 116 RESULT: 'none'}, 117 {NAME: 'same-origin-in-referrer-policy-header-rel-noopener', 118 RP_HEADER: 'same-origin', 119 DESC: "same-origin in Referrer-Policy Header and rel=noopener", 120 SCHEME_FROM: 'https', 121 SCHEME_TO: 'http', 122 RESULT: 'none'}, 123 {NAME: 'no-referrer-policy-header-rel-noopener', 124 RP_HEADER: '', 125 DESC: "no Referrer-Policy Header and rel=noopener", 126 SCHEME_FROM: 'https', 127 SCHEME_TO: 'http', 128 RESULT: 'none'} 129 130 ]} 131 ]; 132 </script> 133 <script type="application/javascript" src="referrer_helper.js"></script> 134 </head> 135 <body onload="tests.next();"> 136 <iframe id="testframe"></iframe> 137 </body> 138 </html>