Bug 1254843 - Intermittent e10s browser_thumbnails_bg_no_cookies_sent.js | uncaught exception - Error: operation not possible on dead CPOW at :0. r?markh draft
authorDrew Willcoxon <adw@mozilla.com>
Fri, 05 Aug 2016 20:28:14 -0700
changeset 397496 6a138e9aa509ad92812407512b6549028be41754
parent 397305 6140083fa3c90e1bce6646785584e177e9cf665d
child 527479 ba1ff6852be681d87d1444de790e2a512973bdea
push id25324
push userdwillcoxon@mozilla.com
push dateSat, 06 Aug 2016 03:28:31 +0000
reviewersmarkh
bugs1254843
milestone51.0a1
Bug 1254843 - Intermittent e10s browser_thumbnails_bg_no_cookies_sent.js | uncaught exception - Error: operation not possible on dead CPOW at :0. r?markh MozReview-Commit-ID: JH6zieXx2Sz
toolkit/components/thumbnails/test/browser_thumbnails_bg_no_cookies_sent.js
toolkit/components/thumbnails/test/head.js
--- a/toolkit/components/thumbnails/test/browser_thumbnails_bg_no_cookies_sent.js
+++ b/toolkit/components/thumbnails/test/browser_thumbnails_bg_no_cookies_sent.js
@@ -1,31 +1,33 @@
 /* Any copyright is dedicated to the Public Domain.
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 function* runTests() {
   // Visit the test page in the browser and tell it to set a cookie.
   let url = bgTestPageURL({ setGreenCookie: true });
-  let tab = gBrowser.loadOneTab(url, { inBackground: false });
+  let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, url);
   let browser = tab.linkedBrowser;
-  yield whenLoaded(browser);
 
   // The root element of the page shouldn't be green yet.
-  let greenStr = "rgb(0, 255, 0)";
-  isnot(browser.contentDocument.documentElement.style.backgroundColor,
-        greenStr,
-        "The page shouldn't be green yet.");
+  yield ContentTask.spawn(browser, null, function () {
+    Assert.notEqual(content.document.documentElement.style.backgroundColor,
+                    "rgb(0, 255, 0)",
+                    "The page shouldn't be green yet.");
+  });
 
   // Cookie should be set now.  Reload the page to verify.  Its root element
   // will be green if the cookie's set.
   browser.reload();
-  yield whenLoaded(browser);
-  is(browser.contentDocument.documentElement.style.backgroundColor,
-     greenStr,
-     "The page should be green now.");
+  yield BrowserTestUtils.browserLoaded(browser);
+  yield ContentTask.spawn(browser, null, function () {
+    Assert.equal(content.document.documentElement.style.backgroundColor,
+                 "rgb(0, 255, 0)",
+                 "The page should be green now.");
+  });
 
   // Capture the page.  Get the image data of the capture and verify it's not
   // green.  (Checking only the first pixel suffices.)
   yield bgCapture(url);
   ok(thumbnailExists(url), "Thumbnail file should exist after capture.");
 
   retrieveImageDataForURL(url, function ([r, g, b]) {
     isnot([r, g, b].toString(), [0, 255, 0].toString(),
--- a/toolkit/components/thumbnails/test/head.js
+++ b/toolkit/components/thumbnails/test/head.js
@@ -50,22 +50,23 @@ var TestRunner = {
   },
 
   /**
    * Runs the next available test or finishes if there's no test left.
    * @param aValue This value will be passed to the yielder via the runner's
    *               iterator.
    */
   next: function (aValue) {
-    let { done, value } = TestRunner._iter.next(aValue);
-    if (done) {
+    let obj = TestRunner._iter.next(aValue);
+    if (obj.done) {
       finish();
       return;
     }
 
+    let value = obj.value || obj;
     if (value && typeof value.then == "function") {
       value.then(result => {
         next(result);
       }, error => {
         ok(false, error + "\n" + error.stack);
       });
     }
   }