diff options
Diffstat (limited to 'dom/plugins/test/mochitest/test_bug777098.html')
-rw-r--r-- | dom/plugins/test/mochitest/test_bug777098.html | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/test_bug777098.html b/dom/plugins/test/mochitest/test_bug777098.html new file mode 100644 index 0000000000..77ba9ed316 --- /dev/null +++ b/dom/plugins/test/mochitest/test_bug777098.html @@ -0,0 +1,58 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=777098 +--> +<head> + <meta charset="utf-8"> + <title>Test for Bug 777098</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="application/javascript" src="plugin-utils.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body onload="go();"> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=777098">Mozilla Bug 777098</a> +<pre id="test"> +<script type="application/javascript"> + +/** Test for passing dead NPObjects back into plugins. **/ +SimpleTest.waitForExplicitFinish(); +setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED); + +function go() { + var plugin = document.getElementById('plugin'); + + // Get wrapped npobject from plugin (plugin.__proto__) + var val = plugin.getObjectValue(); + + // Force a re-instantiate by re-setting dummy uri, + // making val a wrapper for a dead plugin + plugin.data = plugin.data; + + // The correct behavior is an exception, if plugin.checkObjectValue succeeds + // the plugin wasn't torn down for some reason, and if we crash... that's bad + function pluginCheck() { + try { + plugin.checkObjectValue(val); + } catch (e) { + return true; + } + return false; + } + + // Spin the event loop so the instantiation can complete + window.setTimeout(function () { + ok(pluginCheck(), "Shouldn't explode"); + + // All done. + SimpleTest.finish(); + }, 0); +} + +</script> +</pre> + +<object data="data:text/plain,a" width=200 height=200 type="application/x-test" id="plugin"></object> + +</body> +</html> |