Test passes if "Netscape" is returned by the worker.
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}
w = new Worker('worker-navigator.js');
w.onmessage = function(e){
    console.log(e.data);
    testRunner.notifyDone();
}
</script>
