summaryrefslogtreecommitdiffstats
path: root/dom/plugins/test/mochitest/test_idle_hang.xul
blob: 83ff28f52fa4e779289d871536cdb6fdbb92b446 (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 Idle 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">
    getTestPlugin().enabledState = 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 = true;
  document.addEventListener("PluginCrashed", onPluginCrashed, false);

  var pluginElement = document.getElementById("plugin1");
  try {
    pluginElement.hang(false);
  } catch (e) {
  }
}
]]>
</script>
</window>