File: allowed-end-of-chain-because-of-same-origin.sub.html

package info (click to toggle)
firefox-esr 78.15.0esr-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 3,301,156 kB
  • sloc: cpp: 5,665,905; javascript: 4,798,386; ansic: 2,878,233; python: 977,004; asm: 270,347; xml: 181,456; java: 111,756; sh: 72,926; makefile: 21,819; perl: 13,380; cs: 4,725; yacc: 4,565; objc: 3,026; pascal: 1,787; lex: 1,720; ada: 1,681; exp: 505; php: 436; lisp: 260; awk: 152; ruby: 103; csh: 80; sed: 53; sql: 45
file content (29 lines) | stat: -rw-r--r-- 1,378 bytes parent folder | download | duplicates (18)
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
29
<!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 child iframe navigation is allowed");
  window.onmessage = t.step_func_done(function(e) {
    assert_equals(e.data.result, 'success');
  });

  // the iframe will navigate to:
  //    [www2]/..../redirect.py (which is not in the navigate-to source list) which will in turn navigate to
  //    [www1]/..../post_message_to_frame_owner.html which is not exactly in
  // the list but the check should be reduced to an origin check since there has been a redirect.
  // Because of 'unsafe-allow-redirects' only the second one is checked since the first is a redirect

  var i = document.createElement('iframe');
  i.src = "../support/link_click_navigation.sub.html" +
    "?csp=" + encodeURIComponent("navigate-to {{location[scheme]}}://{{domains[www1]}}:{{location[port]}}/some-path/ 'unsafe-allow-redirects'") +
    "&target=" + encodeURIComponent("{{location[scheme]}}://{{domains[www2]}}:{{location[port]}}/common/redirect.py?location=" +
                                     encodeURIComponent("{{location[scheme]}}://{{domains[www1]}}:{{location[port]}}/content-security-policy/navigate-to/support/post_message_to_frame_owner.html"));
  document.body.appendChild(i);
</script>

</body>