mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 20:05:49 +00:00
Bug 1059308 - Fix tests to support chrome actor. r=jryans
This commit is contained in:
parent
9ddabe8061
commit
2b002a6748
@ -23,6 +23,7 @@ function test() {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
DebuggerServer.allowChromeProcess = true;
|
||||
|
||||
let transport = DebuggerServer.connectPipe();
|
||||
gClient = new DebuggerClient(transport);
|
||||
@ -42,26 +43,26 @@ function test() {
|
||||
}
|
||||
|
||||
function testChromeActor() {
|
||||
gClient.listTabs(aResponse => {
|
||||
ok(aResponse.chromeDebugger.contains("chromeDebugger"),
|
||||
"Chrome debugger actor should identify itself accordingly.");
|
||||
|
||||
gClient.attachProcess().then(aResponse => {
|
||||
gClient.addListener("newGlobal", onNewGlobal);
|
||||
gClient.addListener("newSource", onNewSource);
|
||||
|
||||
gClient.attachThread(aResponse.chromeDebugger, (aResponse, aThreadClient) => {
|
||||
gThreadClient = aThreadClient;
|
||||
let actor = aResponse.form.actor;
|
||||
gClient.attachTab(actor, (response, tabClient) => {
|
||||
tabClient.attachThread(null, (aResponse, aThreadClient) => {
|
||||
gThreadClient = aThreadClient;
|
||||
|
||||
if (aResponse.error) {
|
||||
ok(false, "Couldn't attach to the chrome debugger.");
|
||||
gAttached.reject();
|
||||
} else {
|
||||
ok(true, "Attached to the chrome debugger.");
|
||||
gAttached.resolve();
|
||||
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 = gBrowser.addTab("about:mozilla");
|
||||
}
|
||||
// Ensure that a new chrome global will be created.
|
||||
gBrowser.selectedTab = gBrowser.addTab("about:mozilla");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -563,6 +563,7 @@ AddonDebugger.prototype = {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
DebuggerServer.allowChromeProcess = true;
|
||||
|
||||
this.frame = document.createElement("iframe");
|
||||
this.frame.setAttribute("height", 400);
|
||||
|
@ -1,10 +1,6 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
let { DebuggerServer } =
|
||||
Cu.import("resource://gre/modules/devtools/dbg-server.jsm", {});
|
||||
let { DebuggerClient } =
|
||||
Cu.import("resource://gre/modules/devtools/dbg-client.jsm", {});
|
||||
let { devtools } =
|
||||
Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
||||
|
||||
@ -12,28 +8,19 @@ let { devtools } =
|
||||
function test() {
|
||||
waitForExplicitFinish();
|
||||
|
||||
if (!DebuggerServer.initialized) {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
getChromeActors((client, response) => {
|
||||
let options = {
|
||||
form: response,
|
||||
client: client,
|
||||
chrome: true
|
||||
};
|
||||
|
||||
var client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
let options = {
|
||||
form: response,
|
||||
client: client,
|
||||
chrome: true
|
||||
};
|
||||
|
||||
devtools.TargetFactory.forRemoteTab(options).then(target => {
|
||||
target.on("close", () => {
|
||||
ok(true, "Target was closed");
|
||||
DebuggerServer.destroy();
|
||||
finish();
|
||||
});
|
||||
client.close();
|
||||
devtools.TargetFactory.forRemoteTab(options).then(target => {
|
||||
target.on("close", () => {
|
||||
ok(true, "Target was closed");
|
||||
finish();
|
||||
});
|
||||
client.close();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -4,10 +4,6 @@
|
||||
// Test support methods on Target, such as `hasActor`, `getActorDescription`,
|
||||
// `actorHasMethod` and `getTrait`.
|
||||
|
||||
let { DebuggerServer } =
|
||||
Cu.import("resource://gre/modules/devtools/dbg-server.jsm", {});
|
||||
let { DebuggerClient } =
|
||||
Cu.import("resource://gre/modules/devtools/dbg-client.jsm", {});
|
||||
let { devtools } =
|
||||
Cu.import("resource://gre/modules/devtools/Loader.jsm", {});
|
||||
let { Task } =
|
||||
@ -60,29 +56,20 @@ function* testTarget (client, target) {
|
||||
function test() {
|
||||
waitForExplicitFinish();
|
||||
|
||||
if (!DebuggerServer.initialized) {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
getChromeActors((client, response) => {
|
||||
let options = {
|
||||
form: response,
|
||||
client: client,
|
||||
chrome: true
|
||||
};
|
||||
|
||||
var client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
let options = {
|
||||
form: response,
|
||||
client: client,
|
||||
chrome: true
|
||||
};
|
||||
|
||||
devtools.TargetFactory.forRemoteTab(options).then(Task.async(testTarget).bind(null, client));
|
||||
});
|
||||
devtools.TargetFactory.forRemoteTab(options).then(Task.async(testTarget).bind(null, client));
|
||||
});
|
||||
}
|
||||
|
||||
function close (target, client) {
|
||||
target.on("close", () => {
|
||||
ok(true, "Target was closed");
|
||||
DebuggerServer.destroy();
|
||||
finish();
|
||||
});
|
||||
client.close();
|
||||
|
@ -152,3 +152,26 @@ function toggleAllTools(state) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getChromeActors(callback)
|
||||
{
|
||||
let { DebuggerServer } = Cu.import("resource://gre/modules/devtools/dbg-server.jsm", {});
|
||||
let { DebuggerClient } = Cu.import("resource://gre/modules/devtools/dbg-client.jsm", {});
|
||||
|
||||
if (!DebuggerServer.initialized) {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
DebuggerServer.allowChromeProcess = true;
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.attachProcess().then(response => {
|
||||
callback(client, response.form);
|
||||
});
|
||||
});
|
||||
|
||||
SimpleTest.registerCleanupFunction(() => {
|
||||
DebuggerServer.destroy();
|
||||
});
|
||||
}
|
||||
|
@ -382,6 +382,7 @@ function _setupDebuggerServer(breakpointFiles, callback) {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
DebuggerServer.addActors("resource://testing-common/dbg-actors.js");
|
||||
DebuggerServer.allowChromeProcess = true;
|
||||
|
||||
// An observer notification that tells us when we can "resume" script
|
||||
// execution.
|
||||
|
@ -227,6 +227,24 @@ function finishClient(aClient)
|
||||
});
|
||||
}
|
||||
|
||||
// Create a server, connect to it and fetch tab actors for the parent process;
|
||||
// pass |aCallback| the debugger client and tab actor form with all actor IDs.
|
||||
function get_chrome_actors(callback)
|
||||
{
|
||||
if (!DebuggerServer.initialized) {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
DebuggerServer.allowChromeProcess = true;
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.attachProcess().then(response => {
|
||||
callback(client, response.form);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes a relative file path and returns the absolute file url for it.
|
||||
*/
|
||||
|
@ -11,11 +11,6 @@ function run_test()
|
||||
{
|
||||
let EventEmitter = devtools.require("devtools/toolkit/event-emitter");
|
||||
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
|
||||
function MonitorClient(client, form) {
|
||||
this.client = client;
|
||||
this.actor = form.monitorActor;
|
||||
@ -25,7 +20,7 @@ function run_test()
|
||||
client.registerClient(this);
|
||||
}
|
||||
MonitorClient.prototype.destroy = function () {
|
||||
client.unregisterClient(this);
|
||||
this.client.unregisterClient(this);
|
||||
}
|
||||
MonitorClient.prototype.start = function (callback) {
|
||||
this.client.request({
|
||||
@ -40,15 +35,14 @@ function run_test()
|
||||
}, callback);
|
||||
}
|
||||
|
||||
let monitor;
|
||||
let monitor, client;
|
||||
|
||||
// Start the monitor actor.
|
||||
client.connect(function () {
|
||||
client.listTabs(function(resp) {
|
||||
monitor = new MonitorClient(client, resp);
|
||||
monitor.on("update", gotUpdate);
|
||||
monitor.start(update);
|
||||
});
|
||||
get_chrome_actors((c, form) => {
|
||||
client = c;
|
||||
monitor = new MonitorClient(client, form);
|
||||
monitor.on("update", gotUpdate);
|
||||
monitor.start(update);
|
||||
});
|
||||
|
||||
let time = Date.now();
|
||||
|
@ -10,27 +10,16 @@
|
||||
|
||||
const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
||||
|
||||
function connect_client(callback)
|
||||
{
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
callback(client, response.profilerActor);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
// Ensure the profiler is not running when the test starts (it could
|
||||
// happen if the MOZ_PROFILER_STARTUP environment variable is set).
|
||||
Profiler.StopProfiler();
|
||||
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
connect_client((client1, actor1) => {
|
||||
connect_client((client2, actor2) => {
|
||||
get_chrome_actors((client1, form1) => {
|
||||
let actor1 = form1.profilerActor;
|
||||
get_chrome_actors((client2, form2) => {
|
||||
let actor2 = form2.profilerActor;
|
||||
test_activate(client1, actor1, client2, actor2, () => {
|
||||
do_test_finished();
|
||||
});
|
||||
|
@ -11,26 +11,15 @@
|
||||
const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
||||
const WAIT_TIME = 1000; // ms
|
||||
|
||||
function connect_client(callback)
|
||||
{
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
callback(client, response.profilerActor);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
// Ensure the profiler is already running when the test starts.
|
||||
Profiler.StartProfiler(1000000, 1, ["js"], 1);
|
||||
|
||||
DevToolsUtils.waitForTime(WAIT_TIME).then(() => {
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
connect_client((client, actor) => {
|
||||
get_chrome_actors((client, form) => {
|
||||
let actor = form.profilerActor;
|
||||
test_start_time(client, actor, () => {
|
||||
client.close(do_test_finished);
|
||||
});
|
||||
|
@ -10,23 +10,12 @@
|
||||
|
||||
const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
||||
|
||||
function connect_client(callback)
|
||||
{
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
callback(client, response.profilerActor);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
connect_client((client1, actor1) => {
|
||||
connect_client((client2, actor2) => {
|
||||
get_chrome_actors((client1, form1) => {
|
||||
let actor1 = form1.profilerActor;
|
||||
get_chrome_actors((client2, form2) => {
|
||||
let actor2 = form2.profilerActor;
|
||||
test_close(client1, actor1, client2, actor2, () => {
|
||||
client1.close(() => {
|
||||
client2.close(() => {
|
||||
|
@ -12,22 +12,10 @@ const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
||||
const INITIAL_WAIT_TIME = 100; // ms
|
||||
const MAX_WAIT_TIME = 20000; // ms
|
||||
|
||||
function connect_client(callback)
|
||||
{
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
callback(client, response.profilerActor);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
connect_client((client, actor) => {
|
||||
get_chrome_actors((client, form) => {
|
||||
let actor = form.profilerActor;
|
||||
activate_profiler(client, actor, () => {
|
||||
test_data(client, actor, () => {
|
||||
deactivate_profiler(client, actor, () => {
|
||||
|
@ -9,22 +9,10 @@
|
||||
|
||||
const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
||||
|
||||
function connect_client(callback)
|
||||
{
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
callback(client, response.profilerActor);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
connect_client((client, actor) => {
|
||||
get_chrome_actors((client, form) => {
|
||||
let actor = form.profilerActor;
|
||||
activate_profiler(client, actor, () => {
|
||||
test_events(client, actor, () => {
|
||||
client.close(do_test_finished);
|
||||
|
@ -10,22 +10,10 @@
|
||||
|
||||
const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
||||
|
||||
function connect_client(callback)
|
||||
{
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
callback(client, response.profilerActor);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
connect_client((client, actor) => {
|
||||
get_chrome_actors((client, form) => {
|
||||
let actor = form.profilerActor;
|
||||
activate_profiler(client, actor, () => {
|
||||
test_events(client, actor, () => {
|
||||
client.close(do_test_finished);
|
||||
|
@ -9,22 +9,10 @@
|
||||
|
||||
const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
||||
|
||||
function connect_client(callback)
|
||||
{
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
callback(client, response.profilerActor);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
connect_client((client, actor) => {
|
||||
get_chrome_actors((client, form) => {
|
||||
let actor = form.profilerActor;
|
||||
test_getfeatures(client, actor, () => {
|
||||
client.close(() => {
|
||||
do_test_finished();
|
||||
|
@ -9,22 +9,10 @@
|
||||
|
||||
const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
||||
|
||||
function connect_client(callback)
|
||||
{
|
||||
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(() => {
|
||||
client.listTabs(response => {
|
||||
callback(client, response.profilerActor);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
connect_client((client, actor) => {
|
||||
get_chrome_actors((client, form) => {
|
||||
let actor = form.profilerActor;
|
||||
test_getsharedlibraryinformation(client, actor, () => {
|
||||
client.close(() => {
|
||||
do_test_finished();
|
||||
|
@ -3,48 +3,33 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
const { RootActor } = devtools.require("devtools/server/actors/root");
|
||||
|
||||
function test_requestTypes_request(aClient, anActor)
|
||||
{
|
||||
var calls = [];
|
||||
aClient.request({ to: "root", type: "requestTypes" }, function (aResponse) {
|
||||
var expectedRequestTypes = Object.keys(RootActor.
|
||||
prototype.
|
||||
requestTypes);
|
||||
|
||||
calls.push(test_existent_actor(aClient, anActor));
|
||||
do_check_true(Array.isArray(aResponse.requestTypes));
|
||||
do_check_eq(JSON.stringify(aResponse.requestTypes),
|
||||
JSON.stringify(expectedRequestTypes));
|
||||
|
||||
promise.all(calls).then(() => {
|
||||
aClient.close(() => {
|
||||
do_test_finished();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function test_existent_actor(aClient, anActor)
|
||||
{
|
||||
let deferred = promise.defer();
|
||||
|
||||
aClient.request({ to: anActor, type: "requestTypes" }, function (aResponse) {
|
||||
var expectedRequestTypes = Object.keys(DebuggerServer.
|
||||
globalActorFactories["chromeDebugger"].
|
||||
_getConstructor().
|
||||
prototype.requestTypes);
|
||||
|
||||
do_check_true(Array.isArray(aResponse.requestTypes));
|
||||
do_check_eq(JSON.stringify(aResponse.requestTypes),
|
||||
JSON.stringify(expectedRequestTypes));
|
||||
|
||||
deferred.resolve();
|
||||
});
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function run_test()
|
||||
{
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
|
||||
var client = new DebuggerClient(DebuggerServer.connectPipe());
|
||||
client.connect(function() {
|
||||
client.listTabs(function(aResponse) {
|
||||
test_requestTypes_request(client, aResponse.chromeDebugger);
|
||||
});
|
||||
test_requestTypes_request(client);
|
||||
});
|
||||
|
||||
do_test_pending();
|
||||
|
@ -14,30 +14,32 @@ function run_test() {
|
||||
let client = new DebuggerClient(transport);
|
||||
client.connect(() => {
|
||||
// Even though we have no tabs, listTabs gives us the chromeDebugger.
|
||||
client.listTabs(response => {
|
||||
let chromeDebugger = response.chromeDebugger;
|
||||
client.attachThread(chromeDebugger, (response, threadClient) => {
|
||||
threadClient.addOneTimeListener("paused", (event, packet) => {
|
||||
equal(packet.why.type, "breakpoint",
|
||||
"yay - hit the breakpoint at the first line in our script");
|
||||
// Resume again - next stop should be our "debugger" statement.
|
||||
client.attachProcess().then(response => {
|
||||
let actor = response.form.actor;
|
||||
client.attachTab(actor, (response, tabClient) => {
|
||||
tabClient.attachThread(null, (response, threadClient) => {
|
||||
threadClient.addOneTimeListener("paused", (event, packet) => {
|
||||
equal(packet.why.type, "debuggerStatement",
|
||||
"yay - hit the 'debugger' statement in our script");
|
||||
threadClient.resume(() => {
|
||||
finishClient(client);
|
||||
equal(packet.why.type, "breakpoint",
|
||||
"yay - hit the breakpoint at the first line in our script");
|
||||
// Resume again - next stop should be our "debugger" statement.
|
||||
threadClient.addOneTimeListener("paused", (event, packet) => {
|
||||
equal(packet.why.type, "debuggerStatement",
|
||||
"yay - hit the 'debugger' statement in our script");
|
||||
threadClient.resume(() => {
|
||||
finishClient(client);
|
||||
});
|
||||
});
|
||||
threadClient.resume();
|
||||
});
|
||||
// tell the thread to do the initial resume. This would cause the
|
||||
// xpcshell test harness to resume and load the file under test.
|
||||
threadClient.resume(response => {
|
||||
// should have been told to resume the test itself.
|
||||
ok(testResumed);
|
||||
// Now load our test script.
|
||||
load(testFile.path);
|
||||
// and our "paused" listener above should get hit.
|
||||
});
|
||||
threadClient.resume();
|
||||
});
|
||||
// tell the thread to do the initial resume. This would cause the
|
||||
// xpcshell test harness to resume and load the file under test.
|
||||
threadClient.resume(response => {
|
||||
// should have been told to resume the test itself.
|
||||
ok(testResumed);
|
||||
// Now load our test script.
|
||||
load(testFile.path);
|
||||
// and our "paused" listener above should get hit.
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -32,6 +32,7 @@ function initDebuggerServer()
|
||||
DebuggerServer.init();
|
||||
DebuggerServer.addBrowserActors();
|
||||
}
|
||||
DebuggerServer.allowChromeProcess = true;
|
||||
}
|
||||
|
||||
function connectToDebugger(aCallback)
|
||||
@ -68,20 +69,27 @@ function attachConsole(aListeners, aCallback, aAttachToTab)
|
||||
return;
|
||||
}
|
||||
|
||||
aState.dbgClient.listTabs(function _onListTabs(aResponse) {
|
||||
if (aResponse.error) {
|
||||
Cu.reportError("listTabs failed: " + aResponse.error + " " +
|
||||
aResponse.message);
|
||||
aCallback(aState, aResponse);
|
||||
return;
|
||||
}
|
||||
let consoleActor = aAttachToTab ?
|
||||
aResponse.tabs[aResponse.selected].consoleActor :
|
||||
aResponse.consoleActor;
|
||||
aState.actor = consoleActor;
|
||||
aState.dbgClient.attachConsole(consoleActor, aListeners,
|
||||
_onAttachConsole.bind(null, aState));
|
||||
});
|
||||
if (aAttachToTab) {
|
||||
aState.dbgClient.listTabs(function _onListTabs(aResponse) {
|
||||
if (aResponse.error) {
|
||||
Cu.reportError("listTabs failed: " + aResponse.error + " " +
|
||||
aResponse.message);
|
||||
aCallback(aState, aResponse);
|
||||
return;
|
||||
}
|
||||
let consoleActor = aResponse.tabs[aResponse.selected].consoleActor;
|
||||
aState.actor = consoleActor;
|
||||
aState.dbgClient.attachConsole(consoleActor, aListeners,
|
||||
_onAttachConsole.bind(null, aState));
|
||||
});
|
||||
} else {
|
||||
aState.dbgClient.attachProcess().then(response => {
|
||||
let consoleActor = response.form.consoleActor;
|
||||
aState.actor = consoleActor;
|
||||
aState.dbgClient.attachConsole(consoleActor, aListeners,
|
||||
_onAttachConsole.bind(null, aState));
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user