test_triggeringprincipal_frame_nav.html (2652B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Bug 1181370 - Test triggeringPrincipal for iframe navigations</title> 6 <!-- Including SimpleTest.js so we can use waitForExplicitFinish !--> 7 <script src="/tests/SimpleTest/SimpleTest.js"></script> 8 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 9 </head> 10 <body> 11 <iframe style="width:100%;" id="testframe1"></iframe> 12 <iframe style="width:100%;" id="testframe2"></iframe> 13 14 <script class="testbody" type="text/javascript"> 15 16 /* Description of the test: 17 * 18 * +------------------------------------+ 19 * | +----------+ +--------------+ | 20 * | | Frame 1 | | Frame 2 | | 21 * | +----------+ | | | 22 * | | +----------+ | | 23 * | | | Subframe | | | 24 * | | +----------+ | | 25 * | +--------------+ | 26 * +------------------------------------+ 27 * 28 * Frame1: test1.mochi.test 29 * Frame2: test2.mochi.test 30 * Subframe: test2.mochi.test 31 * 32 * (*) Frame1 and Subframe set their document.domain to mochi.test 33 * (*) Frame1 navigates the Subframe 34 * (*) TriggeringPrincipal for the Subframe navigation should be 35 * ==> test1.mochi.test 36 * (*) LoadingPrincipal for the Subframe navigation should be 37 * ==> test2.mochi.test 38 */ 39 40 // eslint-disable-next-line @microsoft/sdl/no-insecure-url 41 const BASEDOMAIN1 = "http://test1.mochi.test:8888/"; 42 // eslint-disable-next-line @microsoft/sdl/no-insecure-url 43 const BASEDOMAIN2 = "http://test2.mochi.test:8888/"; 44 const PATH = "tests/docshell/test/navigation/"; 45 const BASEURL1 = BASEDOMAIN1 + PATH; 46 const BASEURL2 = BASEDOMAIN2 + PATH; 47 const TRIGGERINGPRINCIPALURI = BASEURL1 + "file_triggeringprincipal_frame_1.html"; 48 const LOADINGPRINCIPALURI = BASEURL2 + "file_triggeringprincipal_frame_2.html"; 49 50 SimpleTest.waitForExplicitFinish(); 51 52 window.addEventListener("message", receiveMessage); 53 54 function receiveMessage(event) { 55 is(event.data.triggeringPrincipalURI, TRIGGERINGPRINCIPALURI, 56 "TriggeringPrincipal should be the navigating iframe (Frame 1)"); 57 is(event.data.loadingPrincipalURI, LOADINGPRINCIPALURI, 58 "LoadingPrincipal should be the enclosing iframe (Frame 2)"); 59 is(event.data.referrerURI, BASEDOMAIN1, 60 "The path of Referrer should be trimmed (Frame 1)"); 61 62 window.removeEventListener("message", receiveMessage); 63 SimpleTest.finish(); 64 } 65 66 var frame1 = document.getElementById("testframe1"); 67 frame1.src = BASEURL1 + "file_triggeringprincipal_frame_1.html"; 68 69 var frame2 = document.getElementById("testframe2"); 70 frame2.src = BASEURL2 + "file_triggeringprincipal_frame_2.html"; 71 72 </script> 73 </body> 74 </html>