summaryrefslogtreecommitdiffstats
path: root/dom/plugins/test/mochitest/test_busy_hang.xul
blob: 824dcbb4da9460e181f943a81e37efabae2190b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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>