Bug 1148770 - Rewrite browser_styleeditor_bug_870339.js to fix intermittent leaks. r=ejpbruel, a=test-only
💩💩 backed out by 0f0c47f90ab6 💩 💩
authorSami Jaktholm <sjakthol@outlook.com>
Sun, 29 Mar 2015 08:59:28 +0300
changeset 258366 a7535132fe8e
parent 258365 8d23b1e2cc0f
child 258367 0299772271a8
push id4654
push userryanvm@gmail.com
push date2015-04-08 19:02 +0000
treeherdermozilla-beta@01cf08a90d44 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersejpbruel, test-only
bugs1148770
milestone38.0
Bug 1148770 - Rewrite browser_styleeditor_bug_870339.js to fix intermittent leaks. r=ejpbruel, a=test-only
browser/devtools/styleeditor/test/browser_styleeditor_bug_870339.js
--- a/browser/devtools/styleeditor/test/browser_styleeditor_bug_870339.js
+++ b/browser/devtools/styleeditor/test/browser_styleeditor_bug_870339.js
@@ -1,46 +1,44 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+const SIMPLE = TEST_BASE_HTTP + "simple.css";
+const DOCUMENT_WITH_ONE_STYLESHEET = "data:text/html;charset=UTF-8," +
+        encodeURIComponent(
+          ["<!DOCTYPE html>",
+           "<html>",
+           " <head>",
+           "  <title>Bug 870339</title>",
+           '  <link rel="stylesheet" type="text/css" href="'+SIMPLE+'">',
+           " </head>",
+           " <body>",
+           " </body>",
+           "</html>"
+          ].join("\n"));
 
-function test()
-{
-  const SIMPLE = TEST_BASE_HTTP + "simple.css";
-  const DOCUMENT_WITH_ONE_STYLESHEET = "data:text/html;charset=UTF-8," +
-          encodeURIComponent(
-            ["<!DOCTYPE html>",
-             "<html>",
-             " <head>",
-             "  <title>Bug 870339</title>",
-             '  <link rel="stylesheet" type="text/css" href="'+SIMPLE+'">',
-             " </head>",
-             " <body>",
-             " </body>",
-             "</html>"
-            ].join("\n"));
+add_task(function* () {
+  let { ui } = yield openStyleEditorForURL(DOCUMENT_WITH_ONE_STYLESHEET);
 
-  waitForExplicitFinish();
-  addTabAndOpenStyleEditors(1, function (aPanel) {
-    let UI = aPanel.UI;
+  // Spam the _onNewDocument callback multiple times before the
+  // StyleEditorActor has a chance to respond to the first one.
+  const SPAM_COUNT = 2;
+  for (let i=0; i<SPAM_COUNT; ++i) {
+    ui._onNewDocument();
+  }
 
-    // Spam the _onNewDocument callback multiple times before the
-    // StyleEditorActor has a chance to respond to the first one.
-    const SPAM_COUNT = 2;
-    for (let i=0; i<SPAM_COUNT; ++i) {
-      UI._onNewDocument();
-    }
-
-    // Wait for the StyleEditorActor to respond to each "newDocument"
-    // message.
+  // Wait for the StyleEditorActor to respond to each "newDocument"
+  // message.
+  yield new Promise(resolve => {
     let loadCount = 0;
-    UI.on("stylesheets-reset", function () {
+    ui.on("stylesheets-reset", function onReset() {
       ++loadCount;
       if (loadCount == SPAM_COUNT) {
+        ui.off("stylesheets-reset", onReset);
         // No matter how large SPAM_COUNT is, the number of style
         // sheets should never be more than the number of style sheets
         // in the document.
-        is(UI.editors.length, 1, "correct style sheet count");
-        finish();
+        is(ui.editors.length, 1, "correct style sheet count");
+        resolve();
       }
     });
   });
-  content.location = DOCUMENT_WITH_ONE_STYLESHEET;
-}
+});