Bug 1254843 - Intermittent e10s browser_thumbnails_bg_no_cookies_sent.js | uncaught exception - Error: operation not possible on dead CPOW at :0. r=markh, a=test-only
authorDrew Willcoxon <adw@mozilla.com>
Mon, 08 Aug 2016 13:14:13 -0700
changeset 349774 ebabbd80b65c1717ad8a9ed98dda0fcc1c032405
parent 349773 8a43440d1d25e23af817faad624a5820a2b9ae8d
child 349775 704c14625c6fdf3ff00962c03dd6350a25a6b11a
push id1230
push userjlund@mozilla.com
push dateMon, 31 Oct 2016 18:13:35 +0000
treeherdermozilla-release@5e06e3766db2 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmarkh, test-only
bugs1254843
milestone50.0a2
Bug 1254843 - Intermittent e10s browser_thumbnails_bg_no_cookies_sent.js | uncaught exception - Error: operation not possible on dead CPOW at :0. r=markh, a=test-only MozReview-Commit-ID: JH6zieXx2Sz CLOSED TREE
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);
       });
     }
   }