summaryrefslogtreecommitdiffstats
path: root/dom/plugins/test/mochitest/test_bug854082.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/plugins/test/mochitest/test_bug854082.html')
-rw-r--r--dom/plugins/test/mochitest/test_bug854082.html38
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>