Home | History | Annotate | Download | only in data
      1 <html>
      2 
      3  <head><title>Click noreferrer links</title>
      4  <script>
      5   function simulateClick(target) {
      6     var evt = document.createEvent("MouseEvents");
      7     evt.initMouseEvent("click", true, true, window,
      8                        0, 0, 0, 0, 0, false, false,
      9                        false, false, 0, null);
     10 
     11     return target.dispatchEvent(evt);
     12   }
     13 
     14   function clickNoRefTargetBlankLink() {
     15     return simulateClick(document.getElementById("noref_and_tblank_link"));
     16   }
     17 
     18   function clickSameSiteNoRefTargetedLink() {
     19     return simulateClick(
     20         document.getElementById("samesite_noref_and_targeted_link"));
     21   }
     22 
     23   function clickSameSiteTargetedLink() {
     24     return simulateClick(document.getElementById("samesite_targeted_link"));
     25   }
     26 
     27   function clickSameSiteTargetBlankLink() {
     28     return simulateClick(document.getElementById("samesite_tblank_link"));
     29   }
     30 
     31   function clickTargetBlankLink() {
     32     return simulateClick(document.getElementById("tblank_link"));
     33   }
     34 
     35   function clickNoRefLink() {
     36     return simulateClick(document.getElementById("noref_link"));
     37   }
     38 
     39   function testScriptAccessToWindow() {
     40     // Grab a reference to the existing foo window and access its location.
     41     try {
     42       var w = window.open("", "foo");
     43       var url = w.location.href;
     44       return url != undefined;
     45     } catch (e) {
     46       return false;
     47     }
     48   }
     49 
     50   function testCloseWindow() {
     51     // Grab a reference to the existing foo window and close it.
     52     var w = window.open("", "foo");
     53     w.close();
     54     return true;
     55   }
     56 
     57   // Listen to incoming messages and reply to them.
     58   var receivedMessages = 0;
     59   window.addEventListener("message", messageReceived, false);
     60   function messageReceived(event) {
     61     receivedMessages++;
     62     event.source.postMessage(event.data, "*");
     63   }
     64 
     65   // Send a message which contains a message port.
     66   var mc;
     67   function postWithPortToFoo() {
     68     mc = new MessageChannel();
     69     mc.port1.onmessage = portMessageReceived;
     70     mc.port1.start();
     71     var w = window.open("", "foo");
     72     w.postMessage({message: "msg-with-port", port: mc.port2}, "*", [mc.port2]);
     73     return true;
     74   }
     75 
     76   var receivedMessagesViaPort = 0;
     77   function portMessageReceived(event) {
     78     receivedMessagesViaPort++;
     79     // Change the title to generate a notification.
     80     document.title = event.data;
     81   }
     82  </script>
     83  </head>
     84 
     85 <a href="https://REPLACE_WITH_HOST_AND_PORT/files/title2.html"
     86    id="noref_and_tblank_link" rel="noreferrer" target="_blank">
     87   rel=noreferrer and target=_blank</a><br>
     88 <a href="title2.html" id="samesite_noref_and_targeted_link"
     89    rel="noreferrer" target="foo">
     90   same-site rel=noreferrer and target=foo</a><br>
     91 <a href="navigate_opener.html" id="samesite_targeted_link" target="foo">
     92   same-site target=foo</a><br>
     93 <a href="title2.html" id="samesite_tblank_link" target="_blank">
     94   same-site target=_blank</a><br>
     95 <a href="https://REPLACE_WITH_HOST_AND_PORT/files/title2.html" id="tblank_link"
     96    target="_blank">target=_blank</a><br>
     97 <a href="https://REPLACE_WITH_HOST_AND_PORT/files/title2.html" id="noref_link"
     98    rel="noreferrer">rel=noreferrer</a><br>
     99 
    100 <iframe id="frame1" src="frame_tree/1-1.html"></iframe>
    101 
    102 </html>
    103