<html>
<head>
<script>
   if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
   }

   function printResults()
   {
      alert(document.getElementById("plugin").testCallback);

      if (window.testRunner)
          testRunner.notifyDone();
   }

   function setPlugin()
   {
      var pluginDiv = document.getElementById("pluginDiv");
      pluginDiv.style.display = 'inline';
      pluginDiv.innerHTML = '<object id="plugin" width="300" height="300" type="application/x-webkit-test-netscape"/>';
      setTimeout("printResults()", 1);
   }
</script>
</head>
<body onload="setPlugin();">
   <div id="pluginDiv" style="display: none;"></div>
</body>
</html>
