<html>

<head>
<title>Incognito Worker Test</title>

<script src="worker_utils.js"></script>

<script>
var worker = new SharedWorker("incognito_worker.js");
// Worker should only get a single connect event.
worker.port.onmessage = function(evt) {
  if (evt.data != 1) {
    // This instance should not be shared with other pre-existing instances,
    // so the connect count should be 1.
    onFailure();
    return;
  }
  // Make a second worker, make sure it shares this instance
  var worker = new SharedWorker("incognito_worker.js");
  worker.port.onmessage = function(evt) {
    if (evt.data == 2)
      onSuccess();
    else
      onFailure();
  };
};

</script>
</head>

<body>
<div id=statusPanel></div>
</body>
</html>
