summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/content-security-policy/navigate-to/parent-navigates-child-blocked.html
blob: c662da95fa1b89e13c61c7b65226cb55a15d93e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html>

<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>

<body>
<script>
  var t = async_test("Test that the parent can't navigate the child because the relevant policy belongs to the navigation initiator (in this case the parent, which has the policy `navigate-to support/wait_for_navigation.html;`)");
  window.onmessage = t.unreached_func("Should not have received a message as the navigation should not have been successful");
  window.addEventListener('securitypolicyviolation', t.step_func_done(function(e) {
    assert_equals(e.violatedDirective, 'navigate-to');
  }));

  var i = document.createElement('iframe');
  var src_changed = false;
  i.onload = function() {
    if (src_changed) return;
    src_changed = true;
    i.src = "support/post_message_to_frame_owner.html";
  }
  i.src = "support/wait_for_navigation.html?csp=navigate-to%20%27self%27";
  document.body.appendChild(i);
</script>

<script async defer src='../support/checkReport.sub.js?reportField=violated-directive&reportValue=navigate-to%20support%2Fwait_for_navigation.html'></script>
</body>