Bug 863792 - Test. r=josh
authorJohn Schoenick <jschoenick@mozilla.com>
Fri, 19 Apr 2013 12:01:08 -0700
changeset 140627 39b0b62b8cd2cb5f8fc07fd2a3c1acb71e4716c3
parent 140626 557f1cfca69cbd232776947f0d18343517e6b1b6
child 140628 f31e6ad99dfe23a6d6d317f0c5ece7b462598c60
push id2579
push userakeybl@mozilla.com
push dateMon, 24 Jun 2013 18:52:47 +0000
treeherdermozilla-beta@b69b7de8a05a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjosh
bugs863792
milestone23.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 863792 - Test. r=josh
dom/plugins/test/mochitest/Makefile.in
dom/plugins/test/mochitest/file_bug863792.html
dom/plugins/test/mochitest/test_bug863792.html
--- a/dom/plugins/test/mochitest/Makefile.in
+++ b/dom/plugins/test/mochitest/Makefile.in
@@ -63,16 +63,18 @@ MOCHITEST_FILES = \
   test_bug539565-2.html \
   test_bug771202.html \
   file_bug771202.html \
   test_bug777098.html \
   test_bug751809.html \
   test_bug813906.html \
   test_bug784131.html \
   test_bug854082.html \
+  test_bug863792.html \
+  file_bug863792.html \
   test_enumerate.html \
   test_npruntime_construct.html \
   307-xo-redirect.sjs \
   test_redirect_handling.html \
   test_zero_opacity.html \
   test_NPPVpluginWantsAllNetworkStreams.html \
   test_npruntime_npnsetexception.html \
   test_NPNVdocumentOrigin.html \
new file mode 100644
--- /dev/null
+++ b/dom/plugins/test/mochitest/file_bug863792.html
@@ -0,0 +1,45 @@
+<!doctype html>
+<html>
+<head>
+  <title>File for Bug 863792</title>
+
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <base href="chrome://browser/content/">
+</head>
+<body>
+<script type="application/javascript">
+
+// A plugin that removes itself from the document and inactivates said document
+// inside NPP_New. We should not leak the instance. See also test_bug854082
+
+var outerwindow = window;
+var i = document.createElement("iframe");
+i.width = 500;
+i.height = 500;
+var ob = document.body;
+document.body.appendChild(i);
+i.addEventListener("load", function loaded() {
+  var id = i.contentDocument;
+  var e = id.createElement("embed");
+  var callbackrun = false;
+  e.width = 200;
+  e.height = 200;
+  e.type = "application/x-test";
+  e.__defineSetter__("pluginFoundElement", function() {
+    window.console.log("pluginFoundElement");
+    e.style.display = "none";
+    e.clientTop;
+    i.removeEventListener("load", loaded);
+    ob.removeChild(i);
+    id.body.clientTop;
+    id.body.removeChild(e);
+    callbackrun = true;
+  });
+  id.body.appendChild(e);
+  e.clientTop;
+  e = id = i = ob = null;
+  SpecialPowers.forceCC(); SpecialPowers.forceGC();
+}, false);
+</script>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/dom/plugins/test/mochitest/test_bug863792.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<html>
+<head>
+  <title>Test for Bug 863792</title>
+  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+</head>
+<body>
+<script type="application/javascript">
+
+// A plugin that removes itself from the document and inactivates said document
+// inside NPP_New. We should not leak the instance. See also test_bug854082
+
+SimpleTest.waitForExplicitFinish();
+
+var i = document.createElement("iframe");
+i.src = "file_bug863792.html";
+i.width = 500;
+i.height = 500;
+document.body.appendChild(i);
+
+i.addEventListener("load", function() {
+  SpecialPowers.forceGC();
+  SpecialPowers.forceCC();
+  SimpleTest.executeSoon(function() {
+    SpecialPowers.forceGC();
+    SpecialPowers.forceCC();
+    SimpleTest.executeSoon(function() {
+      ok(true, "Didn't crash");
+      SimpleTest.finish();
+    });
+  });
+}, false);
+</script>
+</body>
+</html>