Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
- This WPT test may be referenced by the following Test IDs:
            
- /content-security-policy/form-action/form-action-src-javascript-prevented.html - WPT Dashboard Interop Dashboard
 
 
<!DOCTYPE html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<meta http-equiv="Content-Security-Policy" content="form-action 'none'; script-src 'self' 'nonce-noncynonce'; connect-src 'self';">
</head>
<body>
  <form action='/content-security-policy/support/postmessage-pass-to-opener.html'
        id='form_id'
        target="_blank">
        <input type="submit" />
  </form>
  <p>
    Test that "form-action 'none'" doesn't create a violation report if the event was prevented.
  </p>
</body>
<script nonce='noncynonce'>
  async_test(t => {
    document.addEventListener('securitypolicyviolation', function(e) {
      assert_unreached('Form submission was blocked.');
    });
    window.addEventListener('message', function(event) {
      assert_unreached('Form submission was blocked.');
    })
    window.addEventListener("load", function() {
      let form = document.getElementById("form_id");
      form.addEventListener("submit", e => {
        e.preventDefault();
        setTimeout(() => {
          t.done();
        }, 0);
      });
      // clicking the input is used here as form.submit() will submit a form without an event and should also be blocked.
      form.querySelector("input").click();
    });
  }, "The form submission should not be blocked by when javascript prevents the load.");
</script>
</html>