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