diff options
Diffstat (limited to 'dom/plugins/test/mochitest/test_bug854082.html')
-rw-r--r-- | dom/plugins/test/mochitest/test_bug854082.html | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/test_bug854082.html b/dom/plugins/test/mochitest/test_bug854082.html new file mode 100644 index 000000000..ff3d1e1e8 --- /dev/null +++ b/dom/plugins/test/mochitest/test_bug854082.html @@ -0,0 +1,38 @@ +<!doctype html> +<html> +<head> + <title>Test for Bug 854082</title> + <script type="application/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"/> + + <meta http-equiv="content-type" content="text/html; charset=utf-8"> + <base href="chrome://browser/content/"> +</head> +<body> +<script type="application/javascript"> + // Tests that destroying the plugin's frame inside NPP_New does not cause a + // crash + + SimpleTest.waitForExplicitFinish(); + setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED); + + // Create an object that will spawn asynchronously + var o = document.createElement("object"); + o.type = "application/x-test"; + + // The test plugin sets pluginFoundElement on its element inside NPP_New, + // abuse this to run arbitrary script. + var setterCalled; + o.__defineSetter__("pluginFoundElement", function() { + o.style.display = "none"; + // Access clientTop to force layout flush + o.clientTop; + ok(true, "Setter called and did not crash"); + SimpleTest.finish(); + setterCalled = true; + }); + document.body.appendChild(o); +</script> +</body> +</html> |