blob: b56624092a5e59b2fd4f3ee5055150dcb60304a3 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script>
function runTest()
{
// Make the plugin retrieve a DOM element to itself. This exercises
// https://bugs.webkit.org/show_bug.cgi?id=80428
document.getElementById("testPlugin").testDOMAccess();
var callReload = true;
if (window.sessionStorage) {
if (window.sessionStorage.netscapeDomAccessAndReloadHasReloaded)
callReload = false;
else
window.sessionStorage.netscapeDomAccessAndReloadHasReloaded = 1;
}
if (window.testRunner)
testRunner.dumpAsText();
if (callReload) {
if (window.testRunner)
testRunner.waitUntilDone();
location.reload();
} else {
window.GCController.collect();
// Note we could also collect the number of live nodes, but that seems
// more likely to give spurious failures. When an HTMLPluginElement is
// improperly retained, its owning Document also survives, so we'll
// detect an excess Document.
if (internals && internals.numberOfLiveDocuments) {
var numberOfLiveDocuments = internals.numberOfLiveDocuments();
if (numberOfLiveDocuments == 1) {
document.getElementById("result").innerHTML = "SUCCESS";
}
} else {
document.getElementById("result").innerHTML = "FAILED; This test is only valid in DumpRenderTree, and only when the Inspector is enabled.";
}
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.notifyDone();
}
}
}
</script>
</head>
<body onload="runTest();">
<p>This page tests reloading a Netscape plug-in that accesses its own DOM element. See https://bugs.webkit.org/show_bug.cgi?id=80428, "HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called".
If it succeeds, you should see SUCCESS below.
<embed id="testPlugin" type="application/x-webkit-test-netscape" width="200" height="200"></embed>
<div id="result">FAILURE</div>
</body>
</html>