diff --git a/devtools/client/debugger/debugger-controller.js b/devtools/client/debugger/debugger-controller.js index 65a759ae5442..35ce949349bd 100644 --- a/devtools/client/debugger/debugger-controller.js +++ b/devtools/client/debugger/debugger-controller.js @@ -297,7 +297,9 @@ var DebuggerController = { } }); - this.Workers.connect(); + if (this._target.isTabActor) { + this.Workers.connect(); + } this.ThreadState.connect(); this.StackFrames.connect(); diff --git a/devtools/client/debugger/test/mochitest/browser.ini b/devtools/client/debugger/test/mochitest/browser.ini index 67fbecfc1953..5b13be24926e 100644 --- a/devtools/client/debugger/test/mochitest/browser.ini +++ b/devtools/client/debugger/test/mochitest/browser.ini @@ -125,6 +125,8 @@ skip-if = e10s && debug tags = addons [browser_dbg_addon-sources.js] tags = addons +[browser_dbg_addon-workers-dbg-enabled.js] +tags = addons [browser_dbg_addon-modules.js] skip-if = e10s # TODO tags = addons diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_addon-workers-dbg-enabled.js b/devtools/client/debugger/test/mochitest/browser_dbg_addon-workers-dbg-enabled.js new file mode 100644 index 000000000000..65cbd9865428 --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg_addon-workers-dbg-enabled.js @@ -0,0 +1,39 @@ +/* -*- 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"; + +// Test that the Addon Debugger works when devtools.debugger.workers is enabled. +// Workers controller cannot be used when debugging an Addon actor. + +const ADDON_URL = EXAMPLE_URL + "addon3.xpi"; + +function test() { + Task.spawn(function*() { + info("Enable worker debugging."); + yield new Promise(resolve => { + SpecialPowers.pushPrefEnv({ + "set": [["devtools.debugger.workers", true]] + }, resolve); + }); + + let addon = yield addAddon(ADDON_URL); + let addonDebugger = yield initAddonDebugger(ADDON_URL); + + is(addonDebugger.title, "Debugger - browser_dbg_addon3", + "Saw the right toolbox title."); + + info("Check that groups and sources are displayed."); + let groups = yield addonDebugger.getSourceGroups(); + is(groups.length, 2, "Should be only two groups."); + let sources = groups[0].sources; + is(sources.length, 2, "Should be two sources"); + + yield addonDebugger.destroy(); + yield removeAddon(addon); + finish(); + }); +} +