<html>
<head>
<!--
Sorry for the hackery in this test. Currently, we have no elegant way to
catch Java errors and print out an intelligent response.
-->

<script>
function loadApplet() {
        // force Safari to load and cache the TestApplet class
        document.getElementById('applet').method();
}
</script>
</head>
<body onload="loadApplet();window.open('resources/liveconnect-security-exception-popup.html', 'w', 'height=300, width=300');">
<p>This test checks for a regression against <i>rdar://problem/4151132 REGRESSION: Some applet liveconnect calls throws privilege exception.</i>.</p>
<p>To test:</p>
<ol>
<li>Disable popup blocking.</li>
<li>Select the window titled "popup window."</li>
<li>From the debug menu, select "Show JavaScript console." This will allow you to see errors thrown in the popup window by the Java Virtual Machine. If there are any, the test has failed.</li>
<li>If the text in the popup window does not match the text below, the test has failed:<br>
applet.field returned 1<br>
incremented applet.field by 1<br>
applet.field returned 2<br>
applet.method() returned 1<br>
</li>
<li>Otherwise, the test has passed.</li>
</ol>
<applet id='applet' code="TestApplet.class" codebase="resources"></applet>
</body>
</html>
