Bug 1478245 - Enable client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js in e10s. r=jdescottes draft
authorAlexandre Poirot <poirot.alex@gmail.com>
Tue, 31 Jul 2018 10:21:57 -0700
changeset 825350 c63525f9a69496570274bf8d7f2cc0240b427bb5
parent 825349 b495c5ed8bd4e38190f57dd331fd0215d14b40c7
push id118078
push userbmo:poirot.alex@gmail.com
push dateWed, 01 Aug 2018 14:03:02 +0000
reviewersjdescottes
bugs1478245
milestone63.0a1
Bug 1478245 - Enable client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js in e10s. r=jdescottes MozReview-Commit-ID: JFcEgMrYDTP
devtools/client/debugger/test/mochitest/browser2.ini
devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js
--- a/devtools/client/debugger/test/mochitest/browser2.ini
+++ b/devtools/client/debugger/test/mochitest/browser2.ini
@@ -396,17 +396,16 @@ skip-if = e10s && debug
 uses-unsafe-cpows = true
 subsuite = clipboard
 skip-if = (e10s && debug) || (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
 [browser_dbg_step-out.js]
 uses-unsafe-cpows = true
 skip-if = e10s && debug
 [browser_dbg_target-scoped-actor-01.js]
 [browser_dbg_target-scoped-actor-02.js]
-skip-if = e10s # TODO
 [browser_dbg_terminate-on-tab-close.js]
 uses-unsafe-cpows = true
 skip-if = e10s && debug
 [browser_dbg_variables-view-01.js]
 uses-unsafe-cpows = true
 skip-if = e10s && debug
 [browser_dbg_variables-view-02.js]
 uses-unsafe-cpows = true
--- a/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js
@@ -5,77 +5,51 @@
 
 /**
  * Check target-scoped actor lifetimes.
  */
 
 const ACTORS_URL = CHROME_URL + "testactors.js";
 const TAB_URL = EXAMPLE_URL + "doc_empty-tab-01.html";
 
-var gClient;
+add_task(async function() {
+  await addTab(TAB_URL);
 
-function test() {
   DebuggerServer.init();
   DebuggerServer.registerAllActors();
 
-  DebuggerServer.registerModule(ACTORS_URL, {
+  await registerActorInContentProcess(ACTORS_URL, {
     prefix: "testOne",
     constructor: "TestActor1",
     type: { target: true },
   });
 
-  let transport = DebuggerServer.connectPipe();
-  gClient = new DebuggerClient(transport);
-  gClient.connect().then(([aType, aTraits]) => {
-    is(aType, "browser",
-      "Root actor should identify itself as a browser.");
+  const transport = DebuggerServer.connectPipe();
+  const client = new DebuggerClient(transport);
+  const [type] = await client.connect();
+  is(type, "browser",
+    "Root actor should identify itself as a browser.");
 
-    addTab(TAB_URL)
-      .then(() => attachTargetActorForUrl(gClient, TAB_URL))
-      .then(testTargetScopedActor)
-      .then(closeTab)
-      .then(() => gClient.close())
-      .then(finish)
-      .catch(aError => {
-        ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
-      });
-  });
-}
+  const [grip] = await attachTargetActorForUrl(client, TAB_URL);
+  await testTargetScopedActor(client, grip);
+  await closeTab(client, grip);
+  await client.close();
+});
 
-function testTargetScopedActor([aGrip, aResponse]) {
-  let deferred = promise.defer();
-
-  ok(aGrip.testOneActor,
+async function testTargetScopedActor(client, grip) {
+  ok(grip.testOneActor,
     "Found the test target-scoped actor.");
-  ok(aGrip.testOneActor.includes("testOne"),
+  ok(grip.testOneActor.includes("testOne"),
     "testOneActor's actorPrefix should be used.");
 
-  gClient.request({ to: aGrip.testOneActor, type: "ping" }, aResponse => {
-    is(aResponse.pong, "pong",
-      "Actor should respond to requests.");
-
-    deferred.resolve(aResponse.actor);
-  });
-
-  return deferred.promise;
+  const response = await client.request({ to: grip.testOneActor, type: "ping" });
+  is(response.pong, "pong",
+     "Actor should respond to requests.");
 }
 
-function closeTab(aTestActor) {
-  return removeTab(gBrowser.selectedTab).then(() => {
-    let deferred = promise.defer();
-
-    try {
-      gClient.request({ to: aTestActor, type: "ping" }, aResponse => {
-        ok(false, "testTargetScopedActor1 didn't go away with the tab.");
-        deferred.reject(aResponse);
-      });
-    } catch (e) {
-      is(e.message, "'ping' request packet has no destination.", "testOnActor went away.");
-      deferred.resolve();
-    }
-
-    return deferred.promise;
-  });
+async function closeTab(client, grip) {
+  await removeTab(gBrowser.selectedTab);
+  await Assert.rejects(
+    client.request({ to: grip.testOneActor, type: "ping" }),
+    err => err.message === `'ping' active request packet to '${grip.testOneActor}' ` +
+                           `can't be sent as the connection just closed.`,
+    "testOneActor went away.");
 }
-
-registerCleanupFunction(function () {
-  gClient = null;
-});