diff --git a/devtools/client/debugger/new/test/mochitest/browser.ini b/devtools/client/debugger/new/test/mochitest/browser.ini
index d59da7c6d9e0..ee6a95d733b0 100644
--- a/devtools/client/debugger/new/test/mochitest/browser.ini
+++ b/devtools/client/debugger/new/test/mochitest/browser.ini
@@ -624,7 +624,6 @@ support-files =
examples/doc-pause-points.html
examples/doc-return-values.html
examples/doc-wasm-sourcemaps.html
- examples/doc_global-method-override.html
examples/asm.js
examples/async.js
examples/bogus-map.js
@@ -687,8 +686,6 @@ skip-if = (os == "win" && ccov) # Bug 1424154
[browser_dbg-ember-quickstart.js]
[browser_dbg-expressions.js]
[browser_dbg-expressions-error.js]
-[browser_dbg_global-method-override.js]
-skip-if = e10s && debug
[browser_dbg-iframes.js]
[browser_dbg-inline-cache.js]
[browser_dbg-keyboard-navigation.js]
diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg_global-method-override.js b/devtools/client/debugger/new/test/mochitest/browser_dbg_global-method-override.js
deleted file mode 100644
index 3ba490e84632..000000000000
--- a/devtools/client/debugger/new/test/mochitest/browser_dbg_global-method-override.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-/**
- * Tests that scripts that override properties of the global object, like
- * toString, don't break the debugger. The test page used to cause the debugger
- * to throw when trying to attach to the thread actor.
- */
-
-"use strict";
-
-add_task(async function() {
- const dbg = await initDebugger("doc_global-method-override.html");
- ok(dbg, "Should have a debugger available.");
- is(dbg.toolbox.threadClient.state, "attached", "Debugger should be attached.");
-});
diff --git a/devtools/client/shared/test/addon1.xpi b/devtools/client/debugger/test/mochitest/addon1.xpi
similarity index 100%
rename from devtools/client/shared/test/addon1.xpi
rename to devtools/client/debugger/test/mochitest/addon1.xpi
diff --git a/devtools/client/shared/test/addon2.xpi b/devtools/client/debugger/test/mochitest/addon2.xpi
similarity index 100%
rename from devtools/client/shared/test/addon2.xpi
rename to devtools/client/debugger/test/mochitest/addon2.xpi
diff --git a/devtools/client/debugger/test/mochitest/browser.ini b/devtools/client/debugger/test/mochitest/browser.ini
index a39600066c90..0337bcef4d64 100644
--- a/devtools/client/debugger/test/mochitest/browser.ini
+++ b/devtools/client/debugger/test/mochitest/browser.ini
@@ -6,6 +6,8 @@ tags = devtools
subsuite = devtools
skip-if = (os == 'linux' && debug && bits == 32)
support-files =
+ addon1.xpi
+ addon2.xpi
addon4.xpi
addon5.xpi
addon-webext-contentscript.xpi
@@ -68,6 +70,7 @@ support-files =
doc_function-display-name.html
doc_function-jump.html
doc_function-search.html
+ doc_global-method-override.html
doc_iframes.html
doc_included-script.html
doc_inline-debugger-statement.html
@@ -144,6 +147,10 @@ skip-if = e10s && debug
skip-if = e10s && debug
[browser_dbg_bug-896139.js]
skip-if = e10s && debug
+[browser_dbg_chrome-create.js]
+skip-if = (e10s && debug) || (verify && os == "linux") # Exit code mismatch with verify
+[browser_dbg_chrome-debugging.js]
+skip-if = e10s && debug
[browser_dbg_clean-exit.js]
skip-if = true # Bug 1044985 (racy test)
[browser_dbg_closure-inspection.js]
@@ -186,6 +193,10 @@ skip-if = e10s && debug
skip-if = e10s && debug
[browser_dbg_file-reload.js]
skip-if = e10s && debug
+[browser_dbg_global-method-override.js]
+skip-if = e10s && debug
+[browser_dbg_globalactor.js]
+skip-if = e10s
[browser_dbg_host-layout.js]
skip-if = e10s && debug
[browser_dbg_jump-to-function-definition.js]
@@ -194,4 +205,15 @@ skip-if = e10s && debug
skip-if = e10s # TODO
[browser_dbg_interrupts.js]
skip-if = e10s && debug
+[browser_dbg_listaddons.js]
+skip-if = e10s && debug
+tags = addons
+[browser_dbg_listtabs-01.js]
+[browser_dbg_listtabs-02.js]
+skip-if = true # Never worked for remote frames, needs a mock DebuggerServerConnection
+[browser_dbg_listtabs-03.js]
+skip-if = e10s && debug
[browser_dbg_listworkers.js]
+[browser_dbg_multiple-windows.js]
+[browser_dbg_navigation.js]
+skip-if = e10s && debug
diff --git a/devtools/client/debugger/test/mochitest/browser2.ini b/devtools/client/debugger/test/mochitest/browser2.ini
index aae111095676..9540852d01a9 100644
--- a/devtools/client/debugger/test/mochitest/browser2.ini
+++ b/devtools/client/debugger/test/mochitest/browser2.ini
@@ -6,6 +6,8 @@ tags = devtools
subsuite = devtools
skip-if = (os == 'linux' && debug && bits == 32)
support-files =
+ addon1.xpi
+ addon2.xpi
addon4.xpi
addon5.xpi
addon-webext-contentscript.xpi
@@ -68,6 +70,7 @@ support-files =
doc_function-display-name.html
doc_function-jump.html
doc_function-search.html
+ doc_global-method-override.html
doc_iframes.html
doc_included-script.html
doc_inline-debugger-statement.html
@@ -156,6 +159,8 @@ uses-unsafe-cpows = true
skip-if = e10s && debug
[browser_dbg_split-console-paused-reload.js]
skip-if = true # Bug 1288348 - previously e10s && debug
+[browser_dbg_target-scoped-actor-01.js]
+[browser_dbg_target-scoped-actor-02.js]
[browser_dbg_terminate-on-tab-close.js]
uses-unsafe-cpows = true
skip-if = e10s && debug
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_chrome-create.js b/devtools/client/debugger/test/mochitest/browser_dbg_chrome-create.js
new file mode 100644
index 000000000000..ec9dc9ec2c25
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_chrome-create.js
@@ -0,0 +1,70 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Tests that a chrome debugger can be created in a new process.
+ */
+
+// There are shutdown issues for which multiple rejections are left uncaught.
+// See bug 1018184 for resolving these issues.
+const { PromiseTestUtils } = scopedCuImport("resource://testing-common/PromiseTestUtils.jsm");
+PromiseTestUtils.whitelistRejectionsGlobally(/File closed/);
+PromiseTestUtils.whitelistRejectionsGlobally(/NS_ERROR_FAILURE/);
+
+var gProcess;
+
+function test() {
+ // Windows XP and 8.1 test slaves are terribly slow at this test.
+ requestLongerTimeout(5);
+ Services.prefs.setBoolPref("devtools.chrome.enabled", true);
+ Services.prefs.setBoolPref("devtools.debugger.remote-enabled", true);
+
+ initChromeDebugger(aOnClose).then(aProcess => {
+ gProcess = aProcess;
+
+ info("Starting test...");
+ performTest();
+ });
+}
+
+function performTest() {
+ ok(gProcess._dbgProcess,
+ "The remote debugger process wasn't created properly!");
+ ok(gProcess._dbgProcess.exitCode == null,
+ "The remote debugger process isn't running!");
+ is(typeof gProcess._dbgProcess.pid, "number",
+ "The remote debugger process doesn't have a pid (?!)");
+
+ info("process location: " + gProcess._dbgProcess.location);
+ info("process pid: " + gProcess._dbgProcess.pid);
+ info("process name: " + gProcess._dbgProcess.processName);
+ info("process sig: " + gProcess._dbgProcess.processSignature);
+
+ ok(gProcess._dbgProfilePath,
+ "The remote debugger profile wasn't created properly!");
+ is(gProcess._dbgProfilePath, OS.Path.join(OS.Constants.Path.profileDir, "chrome_debugger_profile"),
+ "The remote debugger profile isn't where we expect it!");
+
+ info("profile path: " + gProcess._dbgProfilePath);
+
+ gProcess.close();
+}
+
+function aOnClose() {
+ is(gProcess._dbgProcess.exitCode, (Services.appinfo.OS == "WINNT" ? -9 : -15),
+ "The remote debugger process didn't die cleanly.");
+
+ info("process exit value: " + gProcess._dbgProcess.exitValue);
+
+ info("profile path: " + gProcess._dbgProfilePath);
+
+ finish();
+}
+
+registerCleanupFunction(function () {
+ Services.prefs.clearUserPref("devtools.chrome.enabled");
+ Services.prefs.clearUserPref("devtools.debugger.remote-enabled");
+ gProcess = null;
+});
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_chrome-debugging.js b/devtools/client/debugger/test/mochitest/browser_dbg_chrome-debugging.js
new file mode 100644
index 000000000000..03af3ae44342
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_chrome-debugging.js
@@ -0,0 +1,89 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Tests that chrome debugging works.
+ */
+
+const TAB_URL = EXAMPLE_URL + "doc_inline-debugger-statement.html";
+
+var gClient, gThreadClient;
+var gAttached = promise.defer();
+var gNewChromeSource = promise.defer();
+
+var { DevToolsLoader } = ChromeUtils.import("resource://devtools/shared/Loader.jsm", {});
+var customLoader = new DevToolsLoader();
+customLoader.invisibleToDebugger = true;
+var { DebuggerServer } = customLoader.require("devtools/server/main");
+
+function test() {
+ DebuggerServer.init();
+ DebuggerServer.registerAllActors();
+ DebuggerServer.allowChromeProcess = 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.");
+
+ promise.all([gAttached.promise, gNewChromeSource.promise])
+ .then(resumeAndCloseConnection)
+ .then(finish)
+ .catch(aError => {
+ ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
+ });
+
+ testParentProcessTargetActor();
+ });
+}
+
+function testParentProcessTargetActor() {
+ gClient.getProcess().then(aResponse => {
+ let actor = aResponse.form.actor;
+ gClient.attachTarget(actor).then(([response, tabClient]) => {
+ tabClient.attachThread(null).then(([aResponse, aThreadClient]) => {
+ gThreadClient = aThreadClient;
+ gThreadClient.addListener("newSource", onNewSource);
+
+ if (aResponse.error) {
+ ok(false, "Couldn't attach to the chrome debugger.");
+ gAttached.reject();
+ } else {
+ ok(true, "Attached to the chrome debugger.");
+ gAttached.resolve();
+
+ // Ensure that a new chrome global will be created.
+ gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:mozilla");
+ }
+ });
+ });
+ });
+}
+
+function onNewSource(aEvent, aPacket) {
+ if (aPacket.source.url.startsWith("chrome:")) {
+ ok(true, "Received a new chrome source: " + aPacket.source.url);
+
+ gThreadClient.removeListener("newSource", onNewSource);
+ gNewChromeSource.resolve();
+ }
+}
+
+function resumeAndCloseConnection() {
+ let deferred = promise.defer();
+ gThreadClient.resume(() => deferred.resolve(gClient.close()));
+ return deferred.promise;
+}
+
+registerCleanupFunction(function () {
+ gClient = null;
+ gThreadClient = null;
+ gAttached = null;
+ gNewChromeSource = null;
+
+ customLoader = null;
+ DebuggerServer = null;
+});
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_global-method-override.js b/devtools/client/debugger/test/mochitest/browser_dbg_global-method-override.js
new file mode 100644
index 000000000000..4b856698ac57
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_global-method-override.js
@@ -0,0 +1,26 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Tests that scripts that override properties of the global object, like
+ * toString don't break the debugger. The test page used to cause the debugger
+ * to throw when trying to attach to the thread actor.
+ */
+
+const TAB_URL = EXAMPLE_URL + "doc_global-method-override.html";
+
+function test() {
+ let options = {
+ source: TAB_URL,
+ line: 1
+ };
+ initDebugger(TAB_URL, options).then(([aTab, aPanel]) => {
+ let gDebugger = aPanel.panelWin;
+ ok(gDebugger, "Should have a debugger available.");
+ is(gDebugger.gThreadClient.state, "attached", "Debugger should be attached.");
+
+ closeDebuggerAndFinish(aPanel);
+ });
+}
diff --git a/devtools/client/shared/test/browser_dbg_globalactor.js b/devtools/client/debugger/test/mochitest/browser_dbg_globalactor.js
similarity index 84%
rename from devtools/client/shared/test/browser_dbg_globalactor.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_globalactor.js
index a334d9209f4b..9ec53d7bd11d 100644
--- a/devtools/client/shared/test/browser_dbg_globalactor.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_globalactor.js
@@ -7,13 +7,7 @@
* Check extension-added global actor API.
*/
-"use strict";
-
-var { DebuggerServer } = require("devtools/server/main");
-var { ActorRegistry } = require("devtools/server/actors/utils/actor-registry");
-var { DebuggerClient } = require("devtools/shared/client/debugger-client");
-
-const ACTORS_URL = EXAMPLE_URL + "testactors.js";
+const ACTORS_URL = CHROME_URL + "testactors.js";
add_task(async function() {
DebuggerServer.init();
@@ -49,7 +43,7 @@ add_task(async function() {
for (const connID of Object.getOwnPropertyNames(DebuggerServer._connections)) {
const conn = DebuggerServer._connections[connID];
const actorPrefix = conn._prefix + "testOne";
- for (const pool of conn._extraPools) {
+ for (let pool of conn._extraPools) {
for (const actor of pool.poolChildren()) {
if (actor.actorID.startsWith(actorPrefix)) {
count++;
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_listaddons.js b/devtools/client/debugger/test/mochitest/browser_dbg_listaddons.js
new file mode 100644
index 000000000000..bae19beecb8a
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_listaddons.js
@@ -0,0 +1,110 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Make sure the listAddons request works as specified.
+ */
+const ADDON1_ID = "jid1-oBAwBoE5rSecNg@jetpack";
+const ADDON1_PATH = "addon1.xpi";
+const ADDON2_ID = "jid1-qjtzNGV8xw5h2A@jetpack";
+const ADDON2_PATH = "addon2.xpi";
+
+var gAddon1, gAddon1Actor, gAddon2, gAddon2Actor, gClient;
+
+function test() {
+ DebuggerServer.init();
+ DebuggerServer.registerAllActors();
+
+ let transport = DebuggerServer.connectPipe();
+ gClient = new DebuggerClient(transport);
+ gClient.connect().then(([aType, aTraits]) => {
+ is(aType, "browser",
+ "Root actor should identify itself as a browser.");
+
+ promise.resolve(null)
+ .then(testFirstAddon)
+ .then(testSecondAddon)
+ .then(testRemoveFirstAddon)
+ .then(testRemoveSecondAddon)
+ .then(() => gClient.close())
+ .then(finish)
+ .catch(aError => {
+ ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
+ });
+ });
+}
+
+function testFirstAddon() {
+ let addonListChanged = false;
+ gClient.addOneTimeListener("addonListChanged", () => {
+ addonListChanged = true;
+ });
+
+ return addTemporaryAddon(ADDON1_PATH).then(aAddon => {
+ gAddon1 = aAddon;
+
+ return getAddonActorForId(gClient, ADDON1_ID).then(aGrip => {
+ ok(!addonListChanged, "Should not yet be notified that list of addons changed.");
+ ok(aGrip, "Should find an addon actor for addon1.");
+ gAddon1Actor = aGrip.actor;
+ });
+ });
+}
+
+function testSecondAddon() {
+ let addonListChanged = false;
+ gClient.addOneTimeListener("addonListChanged", function () {
+ addonListChanged = true;
+ });
+
+ return addTemporaryAddon(ADDON2_PATH).then(aAddon => {
+ gAddon2 = aAddon;
+
+ return getAddonActorForId(gClient, ADDON1_ID).then(aFirstGrip => {
+ return getAddonActorForId(gClient, ADDON2_ID).then(aSecondGrip => {
+ ok(addonListChanged, "Should be notified that list of addons changed.");
+ is(aFirstGrip.actor, gAddon1Actor, "First addon's actor shouldn't have changed.");
+ ok(aSecondGrip, "Should find a addon actor for the second addon.");
+ gAddon2Actor = aSecondGrip.actor;
+ });
+ });
+ });
+}
+
+function testRemoveFirstAddon() {
+ let addonListChanged = false;
+ gClient.addOneTimeListener("addonListChanged", function () {
+ addonListChanged = true;
+ });
+
+ return removeAddon(gAddon1).then(() => {
+ return getAddonActorForId(gClient, ADDON1_ID).then(aGrip => {
+ ok(addonListChanged, "Should be notified that list of addons changed.");
+ ok(!aGrip, "Shouldn't find a addon actor for the first addon anymore.");
+ });
+ });
+}
+
+function testRemoveSecondAddon() {
+ let addonListChanged = false;
+ gClient.addOneTimeListener("addonListChanged", function () {
+ addonListChanged = true;
+ });
+
+ return removeAddon(gAddon2).then(() => {
+ return getAddonActorForId(gClient, ADDON2_ID).then(aGrip => {
+ ok(addonListChanged, "Should be notified that list of addons changed.");
+ ok(!aGrip, "Shouldn't find a addon actor for the second addon anymore.");
+ });
+ });
+}
+
+registerCleanupFunction(function () {
+ gAddon1 = null;
+ gAddon1Actor = null;
+ gAddon2 = null;
+ gAddon2Actor = null;
+ gClient = null;
+});
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-01.js b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-01.js
new file mode 100644
index 000000000000..7f1d704f257b
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-01.js
@@ -0,0 +1,96 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Make sure the listTabs request works as specified.
+ */
+
+const TAB1_URL = EXAMPLE_URL + "doc_empty-tab-01.html";
+const TAB2_URL = EXAMPLE_URL + "doc_empty-tab-02.html";
+
+var gTab1, gTab1Actor, gTab2, gTab2Actor, gClient;
+
+function test() {
+ DebuggerServer.init();
+ DebuggerServer.registerAllActors();
+
+ let transport = DebuggerServer.connectPipe();
+ gClient = new DebuggerClient(transport);
+ gClient.connect().then(([aType, aTraits]) => {
+ is(aType, "browser",
+ "Root actor should identify itself as a browser.");
+
+ promise.resolve(null)
+ .then(testFirstTab)
+ .then(testSecondTab)
+ .then(testRemoveTab)
+ .then(testAttachRemovedTab)
+ .then(() => gClient.close())
+ .then(finish)
+ .catch(aError => {
+ ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
+ });
+ });
+}
+
+function testFirstTab() {
+ return addTab(TAB1_URL).then(aTab => {
+ gTab1 = aTab;
+
+ return getTargetActorForUrl(gClient, TAB1_URL).then(aGrip => {
+ ok(aGrip, "Should find a target actor for the first tab.");
+ gTab1Actor = aGrip.actor;
+ });
+ });
+}
+
+function testSecondTab() {
+ return addTab(TAB2_URL).then(aTab => {
+ gTab2 = aTab;
+
+ return getTargetActorForUrl(gClient, TAB1_URL).then(aFirstGrip => {
+ return getTargetActorForUrl(gClient, TAB2_URL).then(aSecondGrip => {
+ is(aFirstGrip.actor, gTab1Actor, "First tab's actor shouldn't have changed.");
+ ok(aSecondGrip, "Should find a target actor for the second tab.");
+ gTab2Actor = aSecondGrip.actor;
+ });
+ });
+ });
+}
+
+function testRemoveTab() {
+ return removeTab(gTab1).then(() => {
+ return getTargetActorForUrl(gClient, TAB1_URL).then(aGrip => {
+ ok(!aGrip, "Shouldn't find a target actor for the first tab anymore.");
+ });
+ });
+}
+
+function testAttachRemovedTab() {
+ return removeTab(gTab2).then(() => {
+ let deferred = promise.defer();
+
+ gClient.addListener("paused", (aEvent, aPacket) => {
+ ok(false, "Attaching to an exited target actor shouldn't generate a pause.");
+ deferred.reject();
+ });
+
+ gClient.request({ to: gTab2Actor, type: "attach" }, aResponse => {
+ is(aResponse.error, "connectionClosed",
+ "Connection is gone since the tab was removed.");
+ deferred.resolve();
+ });
+
+ return deferred.promise;
+ });
+}
+
+registerCleanupFunction(function () {
+ gTab1 = null;
+ gTab1Actor = null;
+ gTab2 = null;
+ gTab2Actor = null;
+ gClient = null;
+});
diff --git a/devtools/client/shared/test/browser_dbg_listtabs-02.js b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-02.js
similarity index 78%
rename from devtools/client/shared/test/browser_dbg_listtabs-02.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_listtabs-02.js
index 9adcdc2317e8..f8566865bf09 100644
--- a/devtools/client/shared/test/browser_dbg_listtabs-02.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-02.js
@@ -8,7 +8,6 @@
*/
var { BrowserTabList } = require("devtools/server/actors/webbrowser");
-var { DebuggerServer } = require("devtools/server/main");
var gTestPage = "data:text/html;charset=utf-8," + encodeURIComponent(
"
JS Debugger BrowserTabList test pageYo.");
@@ -55,18 +54,14 @@ function checkSingleTab() {
return gTabList.getList().then(targetActors => {
is(targetActors.length, 1, "initial tab list: contains initial tab");
gFirstActor = targetActors[0];
- is(
- gFirstActor.url,
- "about:blank",
- "initial tab list: initial tab URL is 'about:blank'"
- );
+ is(gFirstActor.url, "about:blank", "initial tab list: initial tab URL is 'about:blank'");
is(gFirstActor.title, "New Tab", "initial tab list: initial tab title is 'New Tab'");
});
}
function addTabA() {
- return addTab(gTestPage).then(tab => {
- gTabA = tab;
+ return addTab(gTestPage).then(aTab => {
+ gTabA = aTab;
});
}
@@ -81,17 +76,13 @@ function testTabA() {
info("actors: " + [...targetActors].map(a => a.url));
gActorA = [...targetActors].filter(a => a !== gFirstActor)[0];
ok(gActorA.url.match(/^data:text\/html;/), "gTabA opened: new tab URL");
- is(
- gActorA.title,
- "JS Debugger BrowserTabList test page",
- "gTabA opened: new tab title"
- );
+ is(gActorA.title, "JS Debugger BrowserTabList test page", "gTabA opened: new tab title");
});
}
function addTabB() {
- return addTab(gTestPage).then(tab => {
- gTabB = tab;
+ return addTab(gTestPage).then(aTab => {
+ gTabB = aTab;
});
}
@@ -105,10 +96,10 @@ function testTabB() {
}
function removeTabA() {
- const deferred = promise.defer();
+ let deferred = promise.defer();
- once(gBrowser.tabContainer, "TabClose").then(event => {
- ok(!event.detail.adoptedBy, "This was a normal tab close");
+ once(gBrowser.tabContainer, "TabClose").then(aEvent => {
+ ok(!aEvent.detail.adoptedBy, "This was a normal tab close");
// Let the actor's TabClose handler finish first.
executeSoon(deferred.resolve);
@@ -129,17 +120,13 @@ function testTabClosed() {
info("actors: " + [...targetActors].map(a => a.url));
gActorA = [...targetActors].filter(a => a !== gFirstActor)[0];
ok(gActorA.url.match(/^data:text\/html;/), "gTabA closed: new tab URL");
- is(
- gActorA.title,
- "JS Debugger BrowserTabList test page",
- "gTabA closed: new tab title"
- );
+ is(gActorA.title, "JS Debugger BrowserTabList test page", "gTabA closed: new tab title");
});
}
function addTabC() {
- return addTab(gTestPage).then(tab => {
- gTabC = tab;
+ return addTab(gTestPage).then(aTab => {
+ gTabC = aTab;
});
}
@@ -153,10 +140,10 @@ function testTabC() {
}
function removeTabC() {
- const deferred = promise.defer();
+ let deferred = promise.defer();
- once(gBrowser.tabContainer, "TabClose").then(event => {
- ok(event.detail.adoptedBy, "This was a tab closed by moving");
+ once(gBrowser.tabContainer, "TabClose").then(aEvent => {
+ ok(aEvent.detail.adoptedBy, "This was a tab closed by moving");
// Let the actor's TabClose handler finish first.
executeSoon(deferred.resolve);
@@ -177,19 +164,15 @@ function testNewWindow() {
info("actors: " + [...targetActors].map(a => a.url));
gActorA = [...targetActors].filter(a => a !== gFirstActor)[0];
ok(gActorA.url.match(/^data:text\/html;/), "gTabC closed: new tab URL");
- is(
- gActorA.title,
- "JS Debugger BrowserTabList test page",
- "gTabC closed: new tab title"
- );
+ is(gActorA.title, "JS Debugger BrowserTabList test page", "gTabC closed: new tab title");
});
}
function removeNewWindow() {
- const deferred = promise.defer();
+ let deferred = promise.defer();
- once(gNewWindow, "unload").then(event => {
- ok(!event.detail, "This was a normal window close");
+ once(gNewWindow, "unload").then(aEvent => {
+ ok(!aEvent.detail, "This was a normal window close");
// Let the actor's TabClose handler finish first.
executeSoon(deferred.resolve);
@@ -210,19 +193,15 @@ function testWindowClosed() {
info("actors: " + [...targetActors].map(a => a.url));
gActorA = [...targetActors].filter(a => a !== gFirstActor)[0];
ok(gActorA.url.match(/^data:text\/html;/), "gNewWindow closed: new tab URL");
- is(
- gActorA.title,
- "JS Debugger BrowserTabList test page",
- "gNewWindow closed: new tab title"
- );
+ is(gActorA.title, "JS Debugger BrowserTabList test page", "gNewWindow closed: new tab title");
});
}
function removeTabB() {
- const deferred = promise.defer();
+ let deferred = promise.defer();
- once(gBrowser.tabContainer, "TabClose").then(event => {
- ok(!event.detail.adoptedBy, "This was a normal tab close");
+ once(gBrowser.tabContainer, "TabClose").then(aEvent => {
+ ok(!aEvent.detail.adoptedBy, "This was a normal tab close");
// Let the actor's TabClose handler finish first.
executeSoon(deferred.resolve);
diff --git a/devtools/client/shared/test/browser_dbg_listtabs-03.js b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-03.js
similarity index 77%
rename from devtools/client/shared/test/browser_dbg_listtabs-03.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_listtabs-03.js
index 941c61f7a222..5282709d591b 100644
--- a/devtools/client/shared/test/browser_dbg_listtabs-03.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-03.js
@@ -3,34 +3,28 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
-"use strict";
-
/**
* Make sure the listTabs request works as specified.
*/
-var { DebuggerServer } = require("devtools/server/main");
-var { DebuggerClient } = require("devtools/shared/client/debugger-client");
-var { Task } = require("devtools/shared/task");
-
const TAB1_URL = EXAMPLE_URL + "doc_empty-tab-01.html";
-var gClient;
+var gTab1, gTab1Actor, gTab2, gTab2Actor, gClient;
function test() {
DebuggerServer.init();
DebuggerServer.registerAllActors();
- const transport = DebuggerServer.connectPipe();
+ let transport = DebuggerServer.connectPipe();
gClient = new DebuggerClient(transport);
gClient.connect().then(Task.async(function* ([aType, aTraits]) {
is(aType, "browser",
"Root actor should identify itself as a browser.");
- const tab = yield addTab(TAB1_URL);
+ let tab = yield addTab(TAB1_URL);
let { tabs } = yield gClient.listTabs();
is(tabs.length, 2, "Should be two tabs");
- const tabGrip = tabs.filter(a => a.url == TAB1_URL).pop();
+ let tabGrip = tabs.filter(a => a.url == TAB1_URL).pop();
ok(tabGrip, "Should have an actor for the tab");
let response = yield gClient.request({ to: tabGrip.actor, type: "attach" });
@@ -42,7 +36,7 @@ function test() {
response = yield gClient.request({ to: tabGrip.actor, type: "detach" });
is(response.type, "detached", "Should have detached");
- const newGrip = tabs.filter(a => a.url == TAB1_URL).pop();
+ let newGrip = tabs.filter(a => a.url == TAB1_URL).pop();
is(newGrip.actor, tabGrip.actor, "Should have the same actor for the same tab");
response = yield gClient.request({ to: tabGrip.actor, type: "attach" });
@@ -56,6 +50,10 @@ function test() {
}));
}
-registerCleanupFunction(function() {
+registerCleanupFunction(function () {
+ gTab1 = null;
+ gTab1Actor = null;
+ gTab2 = null;
+ gTab2Actor = null;
gClient = null;
});
diff --git a/devtools/client/shared/test/browser_dbg_multiple-windows.js b/devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js
similarity index 88%
rename from devtools/client/shared/test/browser_dbg_multiple-windows.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js
index 23ea71435ba6..e6dcf99fbacc 100644
--- a/devtools/client/shared/test/browser_dbg_multiple-windows.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js
@@ -3,16 +3,11 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
-"use strict";
-
/**
* Make sure that the debugger attaches to the right tab when multiple windows
* are open.
*/
-var { DebuggerServer } = require("devtools/server/main");
-var { DebuggerClient } = require("devtools/shared/client/debugger-client");
-
const TAB1_URL = EXAMPLE_URL + "doc_script-switching-01.html";
const TAB2_URL = EXAMPLE_URL + "doc_script-switching-02.html";
@@ -92,7 +87,8 @@ async function testRemoveTab(client, win, tab) {
await continue_remove_tab(client, tab);
}
-async function continue_remove_tab(client, tab) {
+async function continue_remove_tab(client, tab)
+{
removeTab(tab);
const response = await client.listTabs();
@@ -104,12 +100,3 @@ async function continue_remove_tab(client, tab) {
is(response.selected, 0, "The original tab is selected.");
}
-
-function addWindow(url) {
- info("Adding window: " + url);
- return promise.resolve(getChromeWindow(window.open(url)));
-}
-
-function getChromeWindow(win) {
- return win.docShell.rootTreeItem.domWindow;
-}
diff --git a/devtools/client/shared/test/browser_dbg_navigation.js b/devtools/client/debugger/test/mochitest/browser_dbg_navigation.js
similarity index 50%
rename from devtools/client/shared/test/browser_dbg_navigation.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_navigation.js
index a7bc37249e33..0f05a262e83c 100644
--- a/devtools/client/shared/test/browser_dbg_navigation.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_navigation.js
@@ -3,18 +3,12 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
-"use strict";
-
/**
* Check tab attach/navigation.
*/
-var { DebuggerServer } = require("devtools/server/main");
-var { DebuggerClient } = require("devtools/shared/client/debugger-client");
-
const TAB1_URL = EXAMPLE_URL + "doc_empty-tab-01.html";
-const TAB2_FILE = "doc_empty-tab-02.html";
-const TAB2_URL = EXAMPLE_URL + TAB2_FILE;
+const TAB2_URL = EXAMPLE_URL + "doc_empty-tab-02.html";
var gClient;
@@ -22,7 +16,7 @@ function test() {
DebuggerServer.init();
DebuggerServer.registerAllActors();
- const transport = DebuggerServer.connectPipe();
+ let transport = DebuggerServer.connectPipe();
gClient = new DebuggerClient(transport);
gClient.connect().then(([aType, aTraits]) => {
is(aType, "browser",
@@ -33,23 +27,20 @@ function test() {
.then(testNavigate)
.then(testDetach)
.then(finish)
- .catch(error => {
- ok(false, "Got an error: " + error.message + "\n" + error.stack);
+ .catch(aError => {
+ ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
});
});
}
function testNavigate([aGrip, aResponse]) {
- const outstanding = [promise.defer(), promise.defer()];
+ let outstanding = [promise.defer(), promise.defer()];
- gClient.addListener("tabNavigated", function onTabNavigated(event, packet) {
- is(packet.url.split("/").pop(), TAB2_FILE,
+ gClient.addListener("tabNavigated", function onTabNavigated(aEvent, aPacket) {
+ is(aPacket.url, TAB2_URL,
"Got a tab navigation notification.");
- info(JSON.stringify(packet));
- info(JSON.stringify(event));
-
- if (packet.state == "start") {
+ if (aPacket.state == "start") {
ok(true, "Tab started to navigate.");
outstanding[0].resolve();
} else {
@@ -64,12 +55,12 @@ function testNavigate([aGrip, aResponse]) {
.then(() => aGrip.actor);
}
-function testDetach(actor) {
- const deferred = promise.defer();
+function testDetach(aActor) {
+ let deferred = promise.defer();
- gClient.addOneTimeListener("tabDetached", (type, packet) => {
+ gClient.addOneTimeListener("tabDetached", (aType, aPacket) => {
ok(true, "Got a tab detach notification.");
- is(packet.from, actor, "tab detach message comes from the expected actor");
+ is(aPacket.from, aActor, "tab detach message comes from the expected actor");
deferred.resolve(gClient.close());
});
@@ -77,23 +68,6 @@ function testDetach(actor) {
return deferred.promise;
}
-registerCleanupFunction(function() {
+registerCleanupFunction(function () {
gClient = null;
});
-
-async function attachTargetActorForUrl(client, url) {
- const grip = await getTargetActorForUrl(client, url);
- const [ response ] = await client.attachTarget(grip.actor);
- return [grip, response];
-}
-
-function getTargetActorForUrl(client, url) {
- const deferred = promise.defer();
-
- client.listTabs().then(response => {
- const targetActor = response.tabs.filter(grip => grip.url == url).pop();
- deferred.resolve(targetActor);
- });
-
- return deferred.promise;
-}
diff --git a/devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-01.js
similarity index 66%
rename from devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-01.js
index 63f1470a25fb..34e65ebbf6aa 100644
--- a/devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-01.js
@@ -3,16 +3,11 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
-"use strict";
-
/**
* Check target-scoped actor lifetimes.
*/
-var { DebuggerServer } = require("devtools/server/main");
-var { DebuggerClient } = require("devtools/shared/client/debugger-client");
-
-const ACTORS_URL = EXAMPLE_URL + "testactors.js";
+const ACTORS_URL = CHROME_URL + "testactors.js";
const TAB_URL = EXAMPLE_URL + "doc_empty-tab-01.html";
add_task(async function test() {
@@ -47,20 +42,3 @@ async function testTargetScopedActor(client, grip) {
const response = await client.request({ to: grip.testOneActor, type: "ping" });
is(response.pong, "pong", "Actor should respond to requests.");
}
-
-async function attachTargetActorForUrl(client, url) {
- const grip = await getTargetActorForUrl(client, url);
- const [ response ] = await client.attachTarget(grip.actor);
- return [grip, response];
-}
-
-function getTargetActorForUrl(client, url) {
- const deferred = promise.defer();
-
- client.listTabs().then(response => {
- const targetActor = response.tabs.filter(grip => grip.url == url).pop();
- deferred.resolve(targetActor);
- });
-
- return deferred.promise;
-}
diff --git a/devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js
similarity index 71%
rename from devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js
index 9fb9cfb60eab..9c5fab84e88d 100644
--- a/devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js
@@ -3,16 +3,11 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
-"use strict";
-
/**
* Check target-scoped actor lifetimes.
*/
-var { DebuggerServer } = require("devtools/server/main");
-var { DebuggerClient } = require("devtools/shared/client/debugger-client");
-
-const ACTORS_URL = EXAMPLE_URL + "testactors.js";
+const ACTORS_URL = CHROME_URL + "testactors.js";
const TAB_URL = EXAMPLE_URL + "doc_empty-tab-01.html";
add_task(async function() {
@@ -58,20 +53,3 @@ async function closeTab(client, grip) {
`can't be sent as the connection just closed.`,
"testOneActor went away.");
}
-
-async function attachTargetActorForUrl(client, url) {
- const grip = await getTargetActorForUrl(client, url);
- const [ response ] = await client.attachTarget(grip.actor);
- return [grip, response];
-}
-
-function getTargetActorForUrl(client, url) {
- const deferred = promise.defer();
-
- client.listTabs().then(response => {
- const targetActor = response.tabs.filter(grip => grip.url == url).pop();
- deferred.resolve(targetActor);
- });
-
- return deferred.promise;
-}
diff --git a/devtools/client/debugger/new/test/mochitest/examples/doc_global-method-override.html b/devtools/client/debugger/test/mochitest/doc_global-method-override.html
similarity index 100%
rename from devtools/client/debugger/new/test/mochitest/examples/doc_global-method-override.html
rename to devtools/client/debugger/test/mochitest/doc_global-method-override.html
diff --git a/devtools/client/shared/test/browser.ini b/devtools/client/shared/test/browser.ini
index 4b582b63fb80..f638e2f203b3 100644
--- a/devtools/client/shared/test/browser.ini
+++ b/devtools/client/shared/test/browser.ini
@@ -2,13 +2,9 @@
tags = devtools
subsuite = devtools
support-files =
- addon1.xpi
- addon2.xpi
browser_devices.json
doc_cubic-bezier-01.html
doc_cubic-bezier-02.html
- doc_empty-tab-01.html
- doc_empty-tab-02.html
doc_filter-editor-01.html
doc_html_tooltip-02.xul
doc_html_tooltip-03.xul
@@ -25,8 +21,6 @@ support-files =
doc_layoutHelpers-getBoxQuads.html
doc_layoutHelpers.html
doc_options-view.xul
- doc_script-switching-01.html
- doc_script-switching-02.html
doc_spectrum.html
doc_tableWidget_basic.html
doc_tableWidget_keyboard_interaction.xul
@@ -44,7 +38,6 @@ support-files =
telemetry-test-helpers.js
test-actor-registry.js
test-actor.js
- testactors.js
!/devtools/client/responsive.html/test/browser/devices.json
[browser_autocomplete_popup.js]
@@ -57,8 +50,6 @@ support-files =
[browser_cubic-bezier-05.js]
[browser_cubic-bezier-06.js]
[browser_cubic-bezier-07.js]
-[browser_dbg_globalactor.js]
-skip-if = e10s
[browser_filter-editor-01.js]
[browser_filter-editor-02.js]
[browser_filter-editor-03.js]
@@ -213,16 +204,3 @@ skip-if = !e10s || os == "win" # RDM only works for remote tabs, Win: bug 140419
[browser_devices.js]
skip-if = verify
[browser_theme_switching.js]
-[browser_dbg_listaddons.js]
-skip-if = e10s && debug
-tags = addons
-[browser_dbg_listtabs-01.js]
-[browser_dbg_listtabs-02.js]
-skip-if = true # Never worked for remote frames, needs a mock DebuggerServerConnection
-[browser_dbg_listtabs-03.js]
-skip-if = e10s && debug
-[browser_dbg_multiple-windows.js]
-[browser_dbg_navigation.js]
-skip-if = e10s && debug
-[browser_dbg_target-scoped-actor-01.js]
-[browser_dbg_target-scoped-actor-02.js]
\ No newline at end of file
diff --git a/devtools/client/shared/test/browser_dbg_listaddons.js b/devtools/client/shared/test/browser_dbg_listaddons.js
deleted file mode 100644
index 00593ee57fd8..000000000000
--- a/devtools/client/shared/test/browser_dbg_listaddons.js
+++ /dev/null
@@ -1,163 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-var { DebuggerServer } = require("devtools/server/main");
-var { DebuggerClient } = require("devtools/shared/client/debugger-client");
-
-const chromeRegistry =
- Cc["@mozilla.org/chrome/chrome-registry;1"].getService(Ci.nsIChromeRegistry);
-const DEBUGGER_CHROME_URL = "chrome://mochitests/content/browser/devtools/client/shared/test/";
-const DEBUGGER_CHROME_URI = Services.io.newURI(DEBUGGER_CHROME_URL);
-
-/**
- * Make sure the listAddons request works as specified.
- */
-const ADDON1_ID = "jid1-oBAwBoE5rSecNg@jetpack";
-const ADDON1_PATH = "addon1.xpi";
-const ADDON2_ID = "jid1-qjtzNGV8xw5h2A@jetpack";
-const ADDON2_PATH = "addon2.xpi";
-
-var gAddon1, gAddon1Actor, gAddon2, gClient;
-
-function test() {
- DebuggerServer.init();
- DebuggerServer.registerAllActors();
-
- const transport = DebuggerServer.connectPipe();
- gClient = new DebuggerClient(transport);
- gClient.connect().then(([aType, aTraits]) => {
- is(aType, "browser",
- "Root actor should identify itself as a browser.");
-
- promise.resolve(null)
- .then(testFirstAddon)
- .then(testSecondAddon)
- .then(testRemoveFirstAddon)
- .then(testRemoveSecondAddon)
- .then(() => gClient.close())
- .then(finish)
- .catch(error => {
- ok(false, "Got an error: " + error.message + "\n" + error.stack);
- });
- });
-}
-
-function testFirstAddon() {
- let addonListChanged = false;
- gClient.addOneTimeListener("addonListChanged", () => {
- addonListChanged = true;
- });
-
- return addTemporaryAddon(ADDON1_PATH).then(addon => {
- gAddon1 = addon;
-
- return getAddonActorForId(gClient, ADDON1_ID).then(grip => {
- ok(!addonListChanged, "Should not yet be notified that list of addons changed.");
- ok(grip, "Should find an addon actor for addon1.");
- gAddon1Actor = grip.actor;
- });
- });
-}
-
-function testSecondAddon() {
- let addonListChanged = false;
- gClient.addOneTimeListener("addonListChanged", function() {
- addonListChanged = true;
- });
-
- return addTemporaryAddon(ADDON2_PATH).then(addon => {
- gAddon2 = addon;
-
- return getAddonActorForId(gClient, ADDON1_ID).then(fistGrip => {
- return getAddonActorForId(gClient, ADDON2_ID).then(secondGrip => {
- ok(addonListChanged, "Should be notified that list of addons changed.");
- is(fistGrip.actor, gAddon1Actor, "First addon's actor shouldn't have changed.");
- ok(secondGrip, "Should find a addon actor for the second addon.");
- });
- });
- });
-}
-
-function testRemoveFirstAddon() {
- let addonListChanged = false;
- gClient.addOneTimeListener("addonListChanged", function() {
- addonListChanged = true;
- });
-
- return removeAddon(gAddon1).then(() => {
- return getAddonActorForId(gClient, ADDON1_ID).then(grip => {
- ok(addonListChanged, "Should be notified that list of addons changed.");
- ok(!grip, "Shouldn't find a addon actor for the first addon anymore.");
- });
- });
-}
-
-function testRemoveSecondAddon() {
- let addonListChanged = false;
- gClient.addOneTimeListener("addonListChanged", function() {
- addonListChanged = true;
- });
-
- return removeAddon(gAddon2).then(() => {
- return getAddonActorForId(gClient, ADDON2_ID).then(grip => {
- ok(addonListChanged, "Should be notified that list of addons changed.");
- ok(!grip, "Shouldn't find a addon actor for the second addon anymore.");
- });
- });
-}
-
-registerCleanupFunction(function() {
- gAddon1 = null;
- gAddon1Actor = null;
- gAddon2 = null;
- gClient = null;
-});
-
-function getAddonURIFromPath(path) {
- const chromeURI = Services.io.newURI(path, null, DEBUGGER_CHROME_URI);
- return chromeRegistry.convertChromeURL(chromeURI).QueryInterface(Ci.nsIFileURL);
-}
-
-function addTemporaryAddon(path) {
- const addonFile = getAddonURIFromPath(path).file;
- info("Installing addon: " + addonFile.path);
-
- return AddonManager.installTemporaryAddon(addonFile);
-}
-
-function getAddonActorForId(client, addonId) {
- info("Get addon actor for ID: " + addonId);
- const deferred = promise.defer();
-
- client.listAddons(response => {
- const addonTargetActor = response.addons.filter(grip => grip.id == addonId).pop();
- info("got addon actor for ID: " + addonId);
- deferred.resolve(addonTargetActor);
- });
-
- return deferred.promise;
-}
-
-function removeAddon(addon) {
- info("Removing addon.");
-
- const deferred = promise.defer();
-
- const listener = {
- onUninstalled: function(uninstalledAddon) {
- if (uninstalledAddon != addon) {
- return;
- }
- AddonManager.removeAddonListener(listener);
- deferred.resolve();
- }
- };
- AddonManager.addAddonListener(listener);
- addon.uninstall();
-
- return deferred.promise;
-}
diff --git a/devtools/client/shared/test/browser_dbg_listtabs-01.js b/devtools/client/shared/test/browser_dbg_listtabs-01.js
deleted file mode 100644
index 0e1d9a778541..000000000000
--- a/devtools/client/shared/test/browser_dbg_listtabs-01.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-/**
- * Make sure the listTabs request works as specified.
- */
-
-var { DebuggerServer } = require("devtools/server/main");
-var { DebuggerClient } = require("devtools/shared/client/debugger-client");
-
-const TAB1_URL = EXAMPLE_URL + "doc_empty-tab-01.html";
-const TAB2_URL = EXAMPLE_URL + "doc_empty-tab-02.html";
-
-var gTab1, gTab1Actor, gTab2, gTab2Actor, gClient;
-
-function test() {
- DebuggerServer.init();
- DebuggerServer.registerAllActors();
-
- const transport = DebuggerServer.connectPipe();
- gClient = new DebuggerClient(transport);
- gClient.connect().then(([aType, aTraits]) => {
- is(aType, "browser",
- "Root actor should identify itself as a browser.");
-
- promise.resolve(null)
- .then(testFirstTab)
- .then(testSecondTab)
- .then(testRemoveTab)
- .then(testAttachRemovedTab)
- .then(() => gClient.close())
- .then(finish)
- .catch(error => {
- ok(false, "Got an error: " + error.message + "\n" + error.stack);
- });
- });
-}
-
-function testFirstTab() {
- return addTab(TAB1_URL).then(tab => {
- gTab1 = tab;
-
- return getTargetActorForUrl(gClient, TAB1_URL).then(grip => {
- ok(grip, "Should find a target actor for the first tab.");
- gTab1Actor = grip.actor;
- });
- });
-}
-
-function testSecondTab() {
- return addTab(TAB2_URL).then(tab => {
- gTab2 = tab;
-
- return getTargetActorForUrl(gClient, TAB1_URL).then(firstGrip => {
- return getTargetActorForUrl(gClient, TAB2_URL).then(secondGrip => {
- is(firstGrip.actor, gTab1Actor, "First tab's actor shouldn't have changed.");
- ok(secondGrip, "Should find a target actor for the second tab.");
- gTab2Actor = secondGrip.actor;
- });
- });
- });
-}
-
-function testRemoveTab() {
- return removeTab(gTab1).then(() => {
- return getTargetActorForUrl(gClient, TAB1_URL).then(grip => {
- ok(!grip, "Shouldn't find a target actor for the first tab anymore.");
- });
- });
-}
-
-function testAttachRemovedTab() {
- return removeTab(gTab2).then(() => {
- const deferred = promise.defer();
-
- gClient.addListener("paused", () => {
- ok(false, "Attaching to an exited target actor shouldn't generate a pause.");
- deferred.reject();
- });
-
- gClient.request({ to: gTab2Actor, type: "attach" }, response => {
- is(response.error, "connectionClosed",
- "Connection is gone since the tab was removed.");
- deferred.resolve();
- });
-
- return deferred.promise;
- });
-}
-
-registerCleanupFunction(function() {
- gTab1 = null;
- gTab1Actor = null;
- gTab2 = null;
- gTab2Actor = null;
- gClient = null;
-});
-
-function getTargetActorForUrl(client, url) {
- const deferred = promise.defer();
-
- client.listTabs().then(response => {
- const targetActor = response.tabs.filter(grip => grip.url == url).pop();
- deferred.resolve(targetActor);
- });
-
- return deferred.promise;
-}
diff --git a/devtools/client/shared/test/doc_empty-tab-01.html b/devtools/client/shared/test/doc_empty-tab-01.html
deleted file mode 100644
index 28398f776821..000000000000
--- a/devtools/client/shared/test/doc_empty-tab-01.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
- Empty test page 1
-
-
-
-
-
-
diff --git a/devtools/client/shared/test/doc_empty-tab-02.html b/devtools/client/shared/test/doc_empty-tab-02.html
deleted file mode 100644
index 5db150844734..000000000000
--- a/devtools/client/shared/test/doc_empty-tab-02.html
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
- Empty test page 2
-
-
-
-
-
-
diff --git a/devtools/client/shared/test/doc_script-switching-01.html b/devtools/client/shared/test/doc_script-switching-01.html
deleted file mode 100644
index afb4484b5d09..000000000000
--- a/devtools/client/shared/test/doc_script-switching-01.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
- Debugger test page
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/client/shared/test/doc_script-switching-02.html b/devtools/client/shared/test/doc_script-switching-02.html
deleted file mode 100644
index cceeea2c8ef5..000000000000
--- a/devtools/client/shared/test/doc_script-switching-02.html
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
- Debugger test page
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/client/shared/test/head.js b/devtools/client/shared/test/head.js
index 53a0678e6ba1..09cbb23f7dc4 100644
--- a/devtools/client/shared/test/head.js
+++ b/devtools/client/shared/test/head.js
@@ -16,8 +16,6 @@ const {Hosts} = require("devtools/client/framework/toolbox-hosts");
const TEST_URI_ROOT = "http://example.com/browser/devtools/client/shared/test/";
const OPTIONS_VIEW_URL = TEST_URI_ROOT + "doc_options-view.xul";
-const EXAMPLE_URL = "chrome://mochitests/content/browser/devtools/client/shared/test/";
-
function catchFail(func) {
return function() {
try {
diff --git a/devtools/client/shared/test/testactors.js b/devtools/client/shared/test/testactors.js
deleted file mode 100644
index 26404d51e0c7..000000000000
--- a/devtools/client/shared/test/testactors.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-function TestActor1(connection, tab) {
- this.conn = connection;
- this.tab = tab;
-}
-
-TestActor1.prototype = {
- actorPrefix: "testOne",
-
- grip: function TA1_grip() {
- return { actor: this.actorID,
- test: "TestActor1" };
- },
-
- onPing: function TA1_onPing() {
- return { pong: "pong" };
- }
-};
-
-TestActor1.prototype.requestTypes = {
- "ping": TestActor1.prototype.onPing
-};
-exports.TestActor1 = TestActor1;