diff options
Diffstat (limited to 'dom/plugins/test/mochitest/test_instance_unparent1.html')
-rw-r--r-- | dom/plugins/test/mochitest/test_instance_unparent1.html | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/test_instance_unparent1.html b/dom/plugins/test/mochitest/test_instance_unparent1.html new file mode 100644 index 000000000..5a11dc588 --- /dev/null +++ b/dom/plugins/test/mochitest/test_instance_unparent1.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html> +<head> + <title>Test removing an instance's DOM node</title> + <script type="text/javascript" src="/MochiKit/packed.js"></script> + <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="text/javascript" src="plugin-utils.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> +</head> +<body onload="startTest()"> + <script type="application/javascript;version=1.8"> + SimpleTest.waitForExplicitFinish(); + setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED); + + const MAX_ATTEMPTS = 50; + var attempts = 0; + var destroyed = false; + function onDestroy() { + destroyed = true; + } + + function checkPluginAlreadyDestroyed() { + // We may need to retry a few times until the plugin stop event makes + // its way through the event queue. + if (attempts < MAX_ATTEMPTS && !destroyed) { + ++attempts; + SimpleTest.executeSoon(checkPluginAlreadyDestroyed); + } else { + info("Number of retry attempts: " + attempts); + is(destroyed, true, "Plugin instance should have been destroyed."); + SimpleTest.finish(); + } + } + + function startTest() { + var p1 = document.getElementById('plugin1'); + var d1 = document.getElementById('div1'); + + p1.callOnDestroy(onDestroy); + d1.removeChild(p1); + SimpleTest.executeSoon(checkPluginAlreadyDestroyed); + } + </script> + + <p id="display"></p> + + <div id="div1"> + <embed id="plugin1" type="application/x-test" width="200" height="200"></embed> + </div> +</body> +</html> |