<!DOCTYPE html>
<title>Service Worker: Register() on Closed Window</title>
<meta name=timeout content=long>
<script src="/resources/testharness.js"></script>
<script src="resources/testharness-helpers.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="resources/test-helpers.sub.js"></script>
<body>
<script>

var host_info = get_host_info();
var frameURL = host_info['HTTPS_ORIGIN'] + base_path() +
               'resources/register-closed-window-iframe.html';

async_test(function(t) {
  var frame;
  with_iframe(frameURL).then(function(f) {
    frame = f;
    return new Promise(function(resolve) {
      window.addEventListener('message', function messageHandler(evt) {
        window.removeEventListener('message', messageHandler);
        resolve(evt.data);
      });
      frame.contentWindow.postMessage('START', '*');
    });
  }).then(function(result) {
    assert_equals(result, 'OK', 'frame should complete without crashing');
    frame.remove();
    t.done();
  }).catch(unreached_rejection(t));
}, 'Call register() on ServiceWorkerContainer owned by closed window.');

</script>
</body>
