56 lines
2.0 KiB
HTML
56 lines
2.0 KiB
HTML
<!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>
|