<!DOCTYPE html>
<meta charset="utf-8">
<title>Support page for beforeunload-canceling.html</title>

<h1>If this goes away, it navigated</h1>

<script>
"use strict";

window.runTest = (t, { valueToReturn, expectCancelation, setReturnValue, expectedReturnValue }) => {
  window.onbeforeunload = t.step_func(e => {
    if (setReturnValue !== undefined) {
      e.returnValue = setReturnValue;
    }

    return valueToReturn;
  });

  const listener = t.step_func(e => {
    top.assert_equals(e.defaultPrevented, expectCancelation, "canceled");
    top.assert_equals(e.returnValue, expectedReturnValue, "returnValue");
    window.onbeforeunload = null;

    t.done();
  });

  window.addEventListener("beforeunload", listener);

  window.location.href = "about:blank";
};
</script>
