<!DOCTYPE html>
<meta charset="utf-8">
<title>Navigation Preload Same Site SW registrator</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../resources/test-helpers.sub.js"></script>
<script>

/**
 *  This is a helper file to register/unregister service worker in a same-site
 *  iframe.
 **/

async function messageToParent(msg) {
  parent.postMessage(msg, '*');
}

onmessage = async (e) => {
  // t is a , but the helper function needs a test object.
  let t = {
    step_func: (func) => func,
  };
  if (e.data === "Register") {
    let reg = await service_worker_unregister_and_register(t, "samesite-worker.js", ".");
    let worker = reg.installing;
    await wait_for_state(t, worker, 'activated');
    await messageToParent("SW Registered");
  } else if (e.data == "Unregister") {
    await service_worker_unregister(t, ".");
    await messageToParent("SW Unregistered");
  }
}

</script>
