diff options
Diffstat (limited to 'dom/plugins/test/mochitest/test_busy_hang.xul')
-rw-r--r-- | dom/plugins/test/mochitest/test_busy_hang.xul | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/test_busy_hang.xul b/dom/plugins/test/mochitest/test_busy_hang.xul new file mode 100644 index 000000000..824dcbb4d --- /dev/null +++ b/dom/plugins/test/mochitest/test_busy_hang.xul @@ -0,0 +1,47 @@ +<?xml version="1.0"?> +<?xml-stylesheet href="chrome://global/skin" type="text/css"?> +<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" + type="text/css"?> +<window title="Basic Plugin Tests" + xmlns:html="http://www.w3.org/1999/xhtml" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + <title>Plugin Busy Hang Test</title> + <script type="application/javascript" + src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" /> + <script type="application/javascript" + src="http://mochi.test:8888/chrome/dom/plugins/test/mochitest/hang_test.js" /> + <script type="application/javascript" src="plugin-utils.js"></script> + <script type="application/javascript"> + setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED); + </script> + <body xmlns="http://www.w3.org/1999/xhtml" onload="runTests()"> + <embed id="plugin1" type="application/x-test" width="200" height="200"></embed> + </body> + <script class="testbody" type="application/javascript"> + <![CDATA[ +SimpleTest.waitForExplicitFinish(); + +function runTests() { + // Default plugin hang timeout is too high for mochitests + var prefs = Cc["@mozilla.org/preferences-service;1"] + .getService(Ci.nsIPrefBranch); + var timeoutPref = "dom.ipc.plugins.timeoutSecs"; + prefs.setIntPref(timeoutPref, 5); + + var os = Cc["@mozilla.org/observer-service;1"]. + getService(Ci.nsIObserverService); + os.addObserver(testObserver, "plugin-crashed", true); + + testObserver.idleHang = false; + document.addEventListener("PluginCrashed", onPluginCrashed, false); + + var pluginElement = document.getElementById("plugin1"); + try { + pluginElement.hang(true); + } catch (e) { + } +} +]]> + </script> +</window> + |