Bug 863792 - Test. r=josh
authorJohn Schoenick <jschoenick@mozilla.com>
Fri, 19 Apr 2013 12:01:08 -0700
changeset 140453 d226a39b41819fdae245dec187b8676e5b379928
parent 140452 9423207656dd9f2f76379a9dd1f7e70d9ad0b2e4
child 140454 3b8a036e8beb8739fc45e31b65e2a17ff5d42a0f
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>