--- a/devtools/client/aboutdebugging/components/workers/ServiceWorkerTarget.js
+++ b/devtools/client/aboutdebugging/components/workers/ServiceWorkerTarget.js
@@ -28,17 +28,17 @@ class ServiceWorkerTarget extends Compon
active: PropTypes.bool,
fetch: PropTypes.bool.isRequired,
icon: PropTypes.string,
name: PropTypes.string.isRequired,
url: PropTypes.string,
scope: PropTypes.string.isRequired,
// registrationActor can be missing in e10s.
registrationActor: PropTypes.string,
- workerActor: PropTypes.string
+ workerTargetActor: PropTypes.string
}).isRequired
};
}
constructor(props) {
super(props);
this.state = {
@@ -81,30 +81,30 @@ class ServiceWorkerTarget extends Compon
debug() {
if (!this.isRunning()) {
// If the worker is not running, we can't debug it.
return;
}
const { client, target } = this.props;
- gDevToolsBrowser.openWorkerToolbox(client, target.workerActor);
+ gDevToolsBrowser.openWorkerToolbox(client, target.workerTargetActor);
}
push() {
if (!this.isActive() || !this.isRunning()) {
// If the worker is not running, we can't push to it.
// If the worker is not active, the registration might be unavailable and the
// push will not succeed.
return;
}
const { client, target } = this.props;
client.request({
- to: target.workerActor,
+ to: target.workerTargetActor,
type: "push"
});
}
start() {
if (!this.isActive() || this.isRunning()) {
// If the worker is not active or if it is already running, we can't start it.
return;
@@ -144,17 +144,17 @@ class ServiceWorkerTarget extends Compon
type: "getPushSubscription"
}, ({ subscription }) => {
this.setState({ pushSubscription: subscription });
});
}
isRunning() {
// We know the target is running if it has a worker actor.
- return !!this.props.target.workerActor;
+ return !!this.props.target.workerTargetActor;
}
isActive() {
return this.props.target.active;
}
getServiceWorkerStatus() {
if (this.isActive() && this.isRunning()) {
--- a/devtools/client/aboutdebugging/components/workers/Target.js
+++ b/devtools/client/aboutdebugging/components/workers/Target.js
@@ -22,29 +22,29 @@ const Strings = Services.strings.createB
class WorkerTarget extends Component {
static get propTypes() {
return {
client: PropTypes.instanceOf(DebuggerClient).isRequired,
debugDisabled: PropTypes.bool,
target: PropTypes.shape({
icon: PropTypes.string,
name: PropTypes.string.isRequired,
- workerActor: PropTypes.string
+ workerTargetActor: PropTypes.string
}).isRequired
};
}
constructor(props) {
super(props);
this.debug = this.debug.bind(this);
}
debug() {
const { client, target } = this.props;
- gDevToolsBrowser.openWorkerToolbox(client, target.workerActor);
+ gDevToolsBrowser.openWorkerToolbox(client, target.workerTargetActor);
}
render() {
const { target, debugDisabled } = this.props;
return dom.li({ className: "target-container" },
dom.img({
className: "target-icon",
--- a/devtools/client/application/src/components/Worker.js
+++ b/devtools/client/application/src/components/Worker.js
@@ -30,17 +30,17 @@ class Worker extends Component {
client: PropTypes.instanceOf(DebuggerClient).isRequired,
debugDisabled: PropTypes.bool,
worker: PropTypes.shape({
active: PropTypes.bool,
name: PropTypes.string.isRequired,
scope: PropTypes.string.isRequired,
// registrationActor can be missing in e10s.
registrationActor: PropTypes.string,
- workerActor: PropTypes.string
+ workerTargetActor: PropTypes.string
}).isRequired
};
}
constructor(props) {
super(props);
this.debug = this.debug.bind(this);
@@ -50,17 +50,17 @@ class Worker extends Component {
debug() {
if (!this.isRunning()) {
console.log("Service workers cannot be debugged if they are not running");
return;
}
const { client, worker } = this.props;
- gDevToolsBrowser.openWorkerToolbox(client, worker.workerActor);
+ gDevToolsBrowser.openWorkerToolbox(client, worker.workerTargetActor);
}
start() {
if (!this.isActive() || this.isRunning()) {
console.log("Running or inactive service workers cannot be started");
return;
}
@@ -76,17 +76,17 @@ class Worker extends Component {
client.request({
to: worker.registrationActor,
type: "unregister"
});
}
isRunning() {
// We know the worker is running if it has a worker actor.
- return !!this.props.worker.workerActor;
+ return !!this.props.worker.workerTargetActor;
}
isActive() {
return this.props.worker.active;
}
getServiceWorkerStatus() {
if (this.isActive() && this.isRunning()) {
--- a/devtools/client/debugger/debugger-controller.js
+++ b/devtools/client/debugger/debugger-controller.js
@@ -496,27 +496,27 @@ Workers.prototype = {
}
this._tabClient.listWorkers((response) => {
let workerForms = Object.create(null);
for (let worker of response.workers) {
workerForms[worker.actor] = worker;
}
- for (let workerActor in this._workerForms) {
- if (!(workerActor in workerForms)) {
- DebuggerView.Workers.removeWorker(this._workerForms[workerActor]);
- delete this._workerForms[workerActor];
+ for (let workerTargetActor in this._workerForms) {
+ if (!(workerTargetActor in workerForms)) {
+ DebuggerView.Workers.removeWorker(this._workerForms[workerTargetActor]);
+ delete this._workerForms[workerTargetActor];
}
}
- for (let workerActor in workerForms) {
- if (!(workerActor in this._workerForms)) {
- let workerForm = workerForms[workerActor];
- this._workerForms[workerActor] = workerForm;
+ for (let workerTargetActor in workerForms) {
+ if (!(workerTargetActor in this._workerForms)) {
+ let workerForm = workerForms[workerTargetActor];
+ this._workerForms[workerTargetActor] = workerForm;
DebuggerView.Workers.addWorker(workerForm);
}
}
});
},
_onWorkerListChanged: function () {
this._updateWorkerList();
--- a/devtools/client/debugger/test/mochitest/browser.ini
+++ b/devtools/client/debugger/test/mochitest/browser.ini
@@ -47,19 +47,19 @@ support-files =
code_ugly-5.js
code_ugly-6.js
code_ugly-7.js
code_ugly-8
code_ugly-8^headers^
code_worker-source-map.coffee
code_worker-source-map.js
code_worker-source-map.js.map
- code_WorkerActor.attach-worker1.js
- code_WorkerActor.attach-worker2.js
- code_WorkerActor.attachThread-worker.js
+ code_WorkerTargetActor.attach-worker1.js
+ code_WorkerTargetActor.attach-worker2.js
+ code_WorkerTargetActor.attachThread-worker.js
doc_auto-pretty-print-01.html
doc_auto-pretty-print-02.html
doc_binary_search.html
doc_blackboxing.html
doc_blackboxing_unblackbox.html
doc_breakpoints-break-on-last-line-of-script-on-reload.html
doc_breakpoints-other-tabs.html
doc_breakpoints-reload.html
@@ -116,19 +116,19 @@ support-files =
doc_step-many-statements.html
doc_step-out.html
doc_terminate-on-tab-close.html
doc_watch-expressions.html
doc_watch-expression-button.html
doc_whitespace-property-names.html
doc_with-frame.html
doc_worker-source-map.html
- doc_WorkerActor.attach-tab1.html
- doc_WorkerActor.attach-tab2.html
- doc_WorkerActor.attachThread-tab.html
+ doc_WorkerTargetActor.attach-tab1.html
+ doc_WorkerTargetActor.attach-tab2.html
+ doc_WorkerTargetActor.attachThread-tab.html
head.js
sjs_post-page.sjs
sjs_random-javascript.sjs
testactors.js
!/devtools/client/commandline/test/helpers.js
!/devtools/client/shared/test/shared-head.js
!/devtools/client/shared/test/telemetry-test-helpers.js
--- a/devtools/client/debugger/test/mochitest/browser2.ini
+++ b/devtools/client/debugger/test/mochitest/browser2.ini
@@ -47,19 +47,19 @@ support-files =
code_ugly-5.js
code_ugly-6.js
code_ugly-7.js
code_ugly-8
code_ugly-8^headers^
code_worker-source-map.coffee
code_worker-source-map.js
code_worker-source-map.js.map
- code_WorkerActor.attach-worker1.js
- code_WorkerActor.attach-worker2.js
- code_WorkerActor.attachThread-worker.js
+ code_WorkerTargetActor.attach-worker1.js
+ code_WorkerTargetActor.attach-worker2.js
+ code_WorkerTargetActor.attachThread-worker.js
doc_auto-pretty-print-01.html
doc_auto-pretty-print-02.html
doc_binary_search.html
doc_blackboxing.html
doc_blackboxing_unblackbox.html
doc_breakpoints-break-on-last-line-of-script-on-reload.html
doc_breakpoints-other-tabs.html
doc_breakpoints-reload.html
@@ -116,19 +116,19 @@ support-files =
doc_step-many-statements.html
doc_step-out.html
doc_terminate-on-tab-close.html
doc_watch-expressions.html
doc_watch-expression-button.html
doc_whitespace-property-names.html
doc_with-frame.html
doc_worker-source-map.html
- doc_WorkerActor.attach-tab1.html
- doc_WorkerActor.attach-tab2.html
- doc_WorkerActor.attachThread-tab.html
+ doc_WorkerTargetActor.attach-tab1.html
+ doc_WorkerTargetActor.attach-tab2.html
+ doc_WorkerTargetActor.attachThread-tab.html
head.js
sjs_post-page.sjs
sjs_random-javascript.sjs
testactors.js
!/devtools/client/commandline/test/helpers.js
!/devtools/client/shared/test/shared-head.js
!/devtools/client/shared/test/telemetry-test-helpers.js
@@ -581,15 +581,15 @@ skip-if = e10s && debug
skip-if = debug # bug 1334683
[browser_dbg_worker-console-04.js]
skip-if = e10s && debug
[browser_dbg_worker-source-map.js]
uses-unsafe-cpows = true
skip-if = e10s && debug
[browser_dbg_worker-window.js]
skip-if = e10s && debug
-[browser_dbg_WorkerActor.attach.js]
+[browser_dbg_WorkerTargetActor.attach.js]
skip-if = e10s && debug
-[browser_dbg_WorkerActor.attachThread.js]
+[browser_dbg_WorkerTargetActor.attachThread.js]
skip-if = e10s && debug
[browser_dbg_split-console-keypress.js]
uses-unsafe-cpows = true
skip-if = (debug || os == "linux") # Bug 1214439
rename from devtools/client/debugger/test/mochitest/browser_dbg_WorkerActor.attach.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attach.js
--- a/devtools/client/debugger/test/mochitest/browser_dbg_WorkerActor.attach.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attach.js
@@ -1,14 +1,14 @@
var MAX_TOTAL_VIEWERS = "browser.sessionhistory.max_total_viewers";
-var TAB1_URL = EXAMPLE_URL + "doc_WorkerActor.attach-tab1.html";
-var TAB2_URL = EXAMPLE_URL + "doc_WorkerActor.attach-tab2.html";
-var WORKER1_URL = "code_WorkerActor.attach-worker1.js";
-var WORKER2_URL = "code_WorkerActor.attach-worker2.js";
+var TAB1_URL = EXAMPLE_URL + "doc_WorkerTargetActor.attach-tab1.html";
+var TAB2_URL = EXAMPLE_URL + "doc_WorkerTargetActor.attach-tab2.html";
+var WORKER1_URL = "code_WorkerTargetActor.attach-worker1.js";
+var WORKER2_URL = "code_WorkerTargetActor.attach-worker2.js";
function test() {
Task.spawn(function* () {
let oldMaxTotalViewers = SpecialPowers.getIntPref(MAX_TOTAL_VIEWERS);
SpecialPowers.setIntPref(MAX_TOTAL_VIEWERS, 10);
DebuggerServer.init();
DebuggerServer.registerAllActors();
rename from devtools/client/debugger/test/mochitest/browser_dbg_WorkerActor.attachThread.js
rename to devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attachThread.js
--- a/devtools/client/debugger/test/mochitest/browser_dbg_WorkerActor.attachThread.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_WorkerTargetActor.attachThread.js
@@ -1,10 +1,10 @@
-var TAB_URL = EXAMPLE_URL + "doc_WorkerActor.attachThread-tab.html";
-var WORKER_URL = "code_WorkerActor.attachThread-worker.js";
+var TAB_URL = EXAMPLE_URL + "doc_WorkerTargetActor.attachThread-tab.html";
+var WORKER_URL = "code_WorkerTargetActor.attachThread-worker.js";
function test() {
Task.spawn(function* () {
DebuggerServer.init();
DebuggerServer.registerAllActors();
let client1 = new DebuggerClient(DebuggerServer.connectPipe());
yield connect(client1);
--- a/devtools/client/debugger/test/mochitest/browser_dbg_worker-console-01.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_worker-console-01.js
@@ -1,13 +1,13 @@
// Check to make sure that a worker can be attached to a toolbox
// and that the console works.
-var TAB_URL = EXAMPLE_URL + "doc_WorkerActor.attachThread-tab.html";
-var WORKER_URL = "code_WorkerActor.attachThread-worker.js";
+var TAB_URL = EXAMPLE_URL + "doc_WorkerTargetActor.attachThread-tab.html";
+var WORKER_URL = "code_WorkerTargetActor.attachThread-worker.js";
add_task(async function testNormalExecution() {
let {client, tab, tabClient, workerClient, toolbox, gDebugger} =
await initWorkerDebugger(TAB_URL, WORKER_URL);
let jsterm = await getSplitConsole(toolbox);
let executed = await jsterm.execute("this.location.toString()");
ok(executed.textContent.includes(WORKER_URL),
--- a/devtools/client/debugger/test/mochitest/browser_dbg_worker-console-02.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_worker-console-02.js
@@ -1,13 +1,13 @@
// Check to make sure that a worker can be attached to a toolbox
// and that the console works.
-var TAB_URL = EXAMPLE_URL + "doc_WorkerActor.attachThread-tab.html";
-var WORKER_URL = "code_WorkerActor.attachThread-worker.js";
+var TAB_URL = EXAMPLE_URL + "doc_WorkerTargetActor.attachThread-tab.html";
+var WORKER_URL = "code_WorkerTargetActor.attachThread-worker.js";
add_task(async function testWhilePaused() {
let {client, tab, tabClient, workerClient, toolbox, gDebugger} =
await initWorkerDebugger(TAB_URL, WORKER_URL);
let gTarget = gDebugger.gTarget;
let gResumeButton = gDebugger.document.getElementById("resume");
let gResumeKey = gDebugger.document.getElementById("resumeKey");
--- a/devtools/client/debugger/test/mochitest/browser_dbg_worker-console-03.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_worker-console-03.js
@@ -1,13 +1,13 @@
// Check to make sure that a worker can be attached to a toolbox
// and that the console works.
-var TAB_URL = EXAMPLE_URL + "doc_WorkerActor.attachThread-tab.html";
-var WORKER_URL = "code_WorkerActor.attachThread-worker.js";
+var TAB_URL = EXAMPLE_URL + "doc_WorkerTargetActor.attachThread-tab.html";
+var WORKER_URL = "code_WorkerTargetActor.attachThread-worker.js";
// Test to see if creating the pause from the console works.
add_task(async function testPausedByConsole() {
let {client, tab, tabClient, workerClient, toolbox, gDebugger} =
await initWorkerDebugger(TAB_URL, WORKER_URL);
let gTarget = gDebugger.gTarget;
let gResumeButton = gDebugger.document.getElementById("resume");
--- a/devtools/client/debugger/test/mochitest/browser_dbg_worker-console-04.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_worker-console-04.js
@@ -2,18 +2,18 @@
"use strict";
// 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(/connection just closed/);
-const TAB_URL = EXAMPLE_URL + "doc_WorkerActor.attachThread-tab.html";
-const WORKER_URL = "code_WorkerActor.attachThread-worker.js";
+const TAB_URL = EXAMPLE_URL + "doc_WorkerTargetActor.attachThread-tab.html";
+const WORKER_URL = "code_WorkerTargetActor.attachThread-worker.js";
add_task(async function testPausedByConsole() {
let {client, tab, workerClient, toolbox} =
await initWorkerDebugger(TAB_URL, WORKER_URL);
info("Check Date objects can be used in the console");
let jsterm = await getSplitConsole(toolbox);
let executed = await jsterm.execute("new Date(0)");
--- a/devtools/client/debugger/test/mochitest/browser_dbg_worker-window.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_worker-window.js
@@ -3,18 +3,18 @@
"use strict";
// The following "connectionClosed" rejection should not be left uncaught. This
// test has been whitelisted until the issue is fixed.
ChromeUtils.import("resource://testing-common/PromiseTestUtils.jsm", this);
PromiseTestUtils.expectUncaughtRejection(/[object Object]/);
-var TAB_URL = EXAMPLE_URL + "doc_WorkerActor.attachThread-tab.html";
-var WORKER_URL = "code_WorkerActor.attachThread-worker.js";
+var TAB_URL = EXAMPLE_URL + "doc_WorkerTargetActor.attachThread-tab.html";
+var WORKER_URL = "code_WorkerTargetActor.attachThread-worker.js";
add_task(async function() {
await pushPrefs(["devtools.scratchpad.enabled", true]);
DebuggerServer.init();
DebuggerServer.registerAllActors();
let client = new DebuggerClient(DebuggerServer.connectPipe());
rename from devtools/client/debugger/test/mochitest/code_WorkerActor.attach-worker1.js
rename to devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attach-worker1.js
rename from devtools/client/debugger/test/mochitest/code_WorkerActor.attach-worker2.js
rename to devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attach-worker2.js
rename from devtools/client/debugger/test/mochitest/code_WorkerActor.attachThread-worker.js
rename to devtools/client/debugger/test/mochitest/code_WorkerTargetActor.attachThread-worker.js
rename from devtools/client/debugger/test/mochitest/doc_WorkerActor.attach-tab1.html
rename to devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attach-tab1.html
rename from devtools/client/debugger/test/mochitest/doc_WorkerActor.attach-tab2.html
rename to devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attach-tab2.html
rename from devtools/client/debugger/test/mochitest/doc_WorkerActor.attachThread-tab.html
rename to devtools/client/debugger/test/mochitest/doc_WorkerTargetActor.attachThread-tab.html
--- a/devtools/client/framework/devtools-browser.js
+++ b/devtools/client/framework/devtools-browser.js
@@ -367,21 +367,21 @@ var gDevToolsBrowser = exports.gDevTools
return Promise.reject(msg);
},
/**
* Open a window-hosted toolbox to debug the worker associated to the provided
* worker actor.
*
* @param {DebuggerClient} client
- * @param {Object} workerActor
+ * @param {Object} workerTargetActor
* worker actor form to debug
*/
- openWorkerToolbox(client, workerActor) {
- client.attachWorker(workerActor, (response, workerClient) => {
+ openWorkerToolbox(client, workerTargetActor) {
+ client.attachWorker(workerTargetActor, (response, workerClient) => {
const workerTarget = TargetFactory.forWorker(workerClient);
gDevTools.showToolbox(workerTarget, null, Toolbox.HostType.WINDOW)
.then(toolbox => {
toolbox.once("destroy", () => workerClient.detach());
});
});
},
--- a/devtools/client/framework/target.js
+++ b/devtools/client/framework/target.js
@@ -808,17 +808,17 @@ WorkerTarget.prototype = {
return this._workerClient.client;
},
destroy: function() {
this._workerClient.detach();
},
hasActor: function(name) {
- // console is the only one actor implemented by WorkerActor
+ // console is the only one actor implemented by WorkerTargetActor
if (name == "console") {
return true;
}
return false;
},
getTrait: function() {
return undefined;
--- a/devtools/docs/backend/actor-hierarchy.md
+++ b/devtools/docs/backend/actor-hierarchy.md
@@ -21,17 +21,17 @@ RootActor: First one, automatically inst
|
\-- Target actors:
Actors that represent the main "thing" being targeted by a given toolbox,
such as a tab, frame, worker, add-on, etc. and track its lifetime.
Generally, there is a target actor for each thing you can point a
toolbox at.
Examples include:
FrameTargetActor (for a frame, such as a tab)
- WorkerActor (for various kind of workers)
+ WorkerTargetActor (for various kind of workers)
|
\-- Tab-scoped actors:
Actors exposing one particular feature set. They are children of a
given target actor and the data they return is filtered to reflect
the target.
These actors are registered with `tab: true` in
devtools/server/main.js.
Examples include:
@@ -62,17 +62,17 @@ RootActor (root.js)
| |
| \-- FrameTargetActor (frame.js)
| The "real" target actor for a frame (such as a tab) which runs in
| whichever process holds the content. FrameTargetActorProxy
| communicates with this via the frame's message manager.
| Extends the abstract class BrowsingContextTargetActor.
| Returned by "connect" on FrameTargetActorProxy.
|
- |-- WorkerActor (worker.js)
+ |-- WorkerTargetActor (worker.js)
| Targets a worker (applies to various kinds like web worker, service
| worker, etc.).
| Returned by "listWorkers" request to the root actor to get all workers.
| Returned by "listWorkers" request to a FrameTargetActorProxy to get
| workers for a specific frame.
| Returned by "listWorkers" request to a ChildProcessActor to get workers
| for the chrome of the child process.
|
--- a/devtools/server/actors/child-process.js
+++ b/devtools/server/actors/child-process.js
@@ -9,17 +9,17 @@ const Services = require("Services");
const { ChromeDebuggerActor } = require("devtools/server/actors/thread");
const { WebConsoleActor } = require("devtools/server/actors/webconsole");
const makeDebugger = require("devtools/server/actors/utils/make-debugger");
const { ActorPool } = require("devtools/server/main");
const { assert } = require("devtools/shared/DevToolsUtils");
const { TabSources } = require("./utils/TabSources");
-loader.lazyRequireGetter(this, "WorkerActorList", "devtools/server/actors/worker/worker-list", true);
+loader.lazyRequireGetter(this, "WorkerTargetActorList", "devtools/server/actors/worker/worker-list", true);
function ChildProcessActor(connection) {
this.conn = connection;
this._contextPool = new ActorPool(this.conn);
this.conn.addActorPool(this._contextPool);
this.threadActor = null;
// Use a see-everything debugger
@@ -50,17 +50,17 @@ function ChildProcessActor(connection) {
const systemPrincipal = Cc["@mozilla.org/systemprincipal;1"]
.createInstance(Ci.nsIPrincipal);
const sandbox = Cu.Sandbox(systemPrincipal, {
sandboxPrototype,
});
this._consoleScope = sandbox;
this._workerList = null;
- this._workerActorPool = null;
+ this._workerTargetActorPool = null;
this._onWorkerListChanged = this._onWorkerListChanged.bind(this);
}
exports.ChildProcessActor = ChildProcessActor;
ChildProcessActor.prototype = {
actorPrefix: "process",
get isRootActor() {
@@ -109,27 +109,27 @@ ChildProcessActor.prototype = {
highlightable: false,
networkMonitor: false,
},
};
},
onListWorkers: function() {
if (!this._workerList) {
- this._workerList = new WorkerActorList(this.conn, {});
+ this._workerList = new WorkerTargetActorList(this.conn, {});
}
return this._workerList.getList().then(actors => {
const pool = new ActorPool(this.conn);
for (const actor of actors) {
pool.addActor(actor);
}
- this.conn.removeActorPool(this._workerActorPool);
- this._workerActorPool = pool;
- this.conn.addActorPool(this._workerActorPool);
+ this.conn.removeActorPool(this._workerTargetActorPool);
+ this._workerTargetActorPool = pool;
+ this.conn.addActorPool(this._workerTargetActorPool);
this._workerList.onListChanged = this._onWorkerListChanged;
return {
"from": this.actorID,
"workers": actors.map(actor => actor.form())
};
});
--- a/devtools/server/actors/moz.build
+++ b/devtools/server/actors/moz.build
@@ -68,17 +68,16 @@ DevToolsModules(
'webaudio.js',
'webbrowser.js',
'webconsole.js',
'webextension-inspected-window.js',
'webextension-parent.js',
'webextension.js',
'webgl.js',
'window.js',
- 'worker.js',
)
with Files('animation.js'):
BUG_COMPONENT = ('Firefox', 'Developer Tools: Animation Inspector')
with Files('breakpoint.js'):
BUG_COMPONENT = ('Firefox', 'Developer Tools: Debugger')
--- a/devtools/server/actors/root.js
+++ b/devtools/server/actors/root.js
@@ -430,19 +430,19 @@ RootActor.prototype = {
workerList.onListChanged = this._onWorkerListChanged;
return workerList.getList().then(actors => {
const pool = new ActorPool(this.conn);
for (const actor of actors) {
pool.addActor(actor);
}
- this.conn.removeActorPool(this._workerActorPool);
- this._workerActorPool = pool;
- this.conn.addActorPool(this._workerActorPool);
+ this.conn.removeActorPool(this._workerTargetActorPool);
+ this._workerTargetActorPool = pool;
+ this.conn.addActorPool(this._workerTargetActorPool);
return {
"from": this.actorID,
"workers": actors.map(actor => actor.form())
};
});
},
--- a/devtools/server/actors/targets/browsing-context.js
+++ b/devtools/server/actors/targets/browsing-context.js
@@ -34,17 +34,17 @@ const InspectorUtils = require("Inspecto
const EXTENSION_CONTENT_JSM = "resource://gre/modules/ExtensionContent.jsm";
const { ActorClassWithSpec, Actor } = require("devtools/shared/protocol");
const { browsingContextTargetSpec } = require("devtools/shared/specs/targets/browsing-context");
loader.lazyRequireGetter(this, "ThreadActor", "devtools/server/actors/thread", true);
loader.lazyRequireGetter(this, "unwrapDebuggerObjectGlobal", "devtools/server/actors/thread", true);
-loader.lazyRequireGetter(this, "WorkerActorList", "devtools/server/actors/worker/worker-list", true);
+loader.lazyRequireGetter(this, "WorkerTargetActorList", "devtools/server/actors/worker/worker-list", true);
loader.lazyImporter(this, "ExtensionContent", EXTENSION_CONTENT_JSM);
loader.lazyRequireGetter(this, "StyleSheetActor", "devtools/server/actors/stylesheets", true);
loader.lazyRequireGetter(this, "getSheetText", "devtools/server/actors/stylesheets", true);
function getWindowID(window) {
return window.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIDOMWindowUtils)
@@ -244,19 +244,20 @@ const browsingContextTargetPrototype = {
frames: true,
// Do not require to send reconfigure request to reset the document state
// to what it was before using the actor
noTabReconfigureOnClose: true,
// Supports the logInPage request.
logInPage: true,
};
- this._workerActorList = null;
- this._workerActorPool = null;
- this._onWorkerActorListChanged = this._onWorkerActorListChanged.bind(this);
+ this._workerTargetActorList = null;
+ this._workerTargetActorPool = null;
+ this._onWorkerTargetActorListChanged =
+ this._onWorkerTargetActorListChanged.bind(this);
},
traits: null,
// Optional console API listener options (e.g. used by the WebExtensionActor to
// filter console messages by addonID), set to an empty (no options) object by default.
consoleAPIListenerOptions: {},
@@ -652,34 +653,34 @@ const browsingContextTargetPrototype = {
return { frames: windows };
},
listWorkers(request) {
if (!this.attached) {
return { error: "wrongState" };
}
- if (this._workerActorList === null) {
- this._workerActorList = new WorkerActorList(this.conn, {
+ if (this._workerTargetActorList === null) {
+ this._workerTargetActorList = new WorkerTargetActorList(this.conn, {
type: Ci.nsIWorkerDebugger.TYPE_DEDICATED,
window: this.window
});
}
- return this._workerActorList.getList().then((actors) => {
+ return this._workerTargetActorList.getList().then((actors) => {
const pool = new ActorPool(this.conn);
for (const actor of actors) {
pool.addActor(actor);
}
- this.conn.removeActorPool(this._workerActorPool);
- this._workerActorPool = pool;
- this.conn.addActorPool(this._workerActorPool);
+ this.conn.removeActorPool(this._workerTargetActorPool);
+ this._workerTargetActorPool = pool;
+ this.conn.addActorPool(this._workerTargetActorPool);
- this._workerActorList.onListChanged = this._onWorkerActorListChanged;
+ this._workerTargetActorList.onListChanged = this._onWorkerTargetActorListChanged;
return {
"from": this.actorID,
"workers": actors.map((actor) => actor.form())
};
});
},
@@ -688,18 +689,18 @@ const browsingContextTargetPrototype = {
const scriptErrorClass = Cc["@mozilla.org/scripterror;1"];
const scriptError = scriptErrorClass.createInstance(Ci.nsIScriptError);
scriptError.initWithWindowID(text, null, null, 0, 0, flags,
category, getInnerId(this.window));
Services.console.logMessage(scriptError);
return {};
},
- _onWorkerActorListChanged() {
- this._workerActorList.onListChanged = null;
+ _onWorkerTargetActorListChanged() {
+ this._workerTargetActorList.onListChanged = null;
this.conn.sendActorEvent(this.actorID, "workerListChanged");
},
observe(subject, topic, data) {
// Ignore any event that comes before/after the actor is attached.
// That typically happens during Firefox shutdown.
if (!this.attached) {
return;
@@ -930,24 +931,24 @@ const browsingContextTargetPrototype = {
this.conn.removeActorPool(this._tabPool);
this._tabPool = null;
if (this._tabActorPool) {
this.conn.removeActorPool(this._tabActorPool);
this._tabActorPool = null;
}
// Make sure that no more workerListChanged notifications are sent.
- if (this._workerActorList !== null) {
- this._workerActorList.onListChanged = null;
- this._workerActorList = null;
+ if (this._workerTargetActorList !== null) {
+ this._workerTargetActorList.onListChanged = null;
+ this._workerTargetActorList = null;
}
- if (this._workerActorPool !== null) {
- this.conn.removeActorPool(this._workerActorPool);
- this._workerActorPool = null;
+ if (this._workerTargetActorPool !== null) {
+ this.conn.removeActorPool(this._workerTargetActorPool);
+ this._workerTargetActorPool = null;
}
this._attached = false;
this.conn.send({ from: this.actorID,
type: "tabDetached" });
return true;
--- a/devtools/server/actors/targets/moz.build
+++ b/devtools/server/actors/targets/moz.build
@@ -3,9 +3,10 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DevToolsModules(
'browsing-context.js',
'frame-proxy.js',
'frame.js',
+ 'worker.js',
)
rename from devtools/server/actors/worker.js
rename to devtools/server/actors/targets/worker.js
--- a/devtools/server/actors/worker.js
+++ b/devtools/server/actors/targets/worker.js
@@ -1,30 +1,36 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
+/*
+ * Target actor for any of the various kinds of workers.
+ *
+ * See devtools/docs/backend/actor-hierarchy.md for more details.
+ */
+
const { Ci } = require("chrome");
const ChromeUtils = require("ChromeUtils");
const { DebuggerServer } = require("devtools/server/main");
const { XPCOMUtils } = require("resource://gre/modules/XPCOMUtils.jsm");
const protocol = require("devtools/shared/protocol");
-const { workerSpec } = require("devtools/shared/specs/worker/worker");
+const { workerTargetSpec } = require("devtools/shared/specs/targets/worker");
loader.lazyRequireGetter(this, "ChromeUtils");
XPCOMUtils.defineLazyServiceGetter(
this, "swm",
"@mozilla.org/serviceworkers/manager;1",
"nsIServiceWorkerManager"
);
-const WorkerActor = protocol.ActorClassWithSpec(workerSpec, {
+const WorkerTargetActor = protocol.ActorClassWithSpec(workerTargetSpec, {
initialize(conn, dbg) {
protocol.Actor.prototype.initialize.call(this, conn);
this._dbg = dbg;
this._attached = false;
this._threadActor = null;
this._transport = null;
},
@@ -174,9 +180,9 @@ const WorkerActor = protocol.ActorClassW
}
}
this._dbg.removeListener(this);
this._attached = false;
}
});
-exports.WorkerActor = WorkerActor;
+exports.WorkerTargetActor = WorkerTargetActor;
--- a/devtools/server/actors/webbrowser.js
+++ b/devtools/server/actors/webbrowser.js
@@ -10,17 +10,17 @@ var { Ci } = require("chrome");
var Services = require("Services");
var { DebuggerServer } = require("devtools/server/main");
var DevToolsUtils = require("devtools/shared/DevToolsUtils");
loader.lazyRequireGetter(this, "RootActor", "devtools/server/actors/root", true);
loader.lazyRequireGetter(this, "FrameTargetActorProxy", "devtools/server/actors/targets/frame-proxy", true);
loader.lazyRequireGetter(this, "BrowserAddonActor", "devtools/server/actors/addon", true);
loader.lazyRequireGetter(this, "WebExtensionParentActor", "devtools/server/actors/webextension-parent", true);
-loader.lazyRequireGetter(this, "WorkerActorList", "devtools/server/actors/worker/worker-list", true);
+loader.lazyRequireGetter(this, "WorkerTargetActorList", "devtools/server/actors/worker/worker-list", true);
loader.lazyRequireGetter(this, "ServiceWorkerRegistrationActorList", "devtools/server/actors/worker/worker-list", true);
loader.lazyRequireGetter(this, "ProcessActorList", "devtools/server/actors/process", true);
loader.lazyImporter(this, "AddonManager", "resource://gre/modules/AddonManager.jsm");
/**
* Browser-specific actors.
*/
@@ -69,17 +69,17 @@ exports.sendShutdownEvent = sendShutdown
*
* * @param connection DebuggerServerConnection
* The conection to the client.
*/
function createRootActor(connection) {
return new RootActor(connection, {
tabList: new BrowserTabList(connection),
addonList: new BrowserAddonList(connection),
- workerList: new WorkerActorList(connection, {}),
+ workerList: new WorkerTargetActorList(connection, {}),
serviceWorkerRegistrationList:
new ServiceWorkerRegistrationActorList(connection),
processList: new ProcessActorList(),
globalActorFactories: DebuggerServer.globalActorFactories,
onShutdown: sendShutdownEvent
});
}
--- a/devtools/server/actors/worker/worker-list.js
+++ b/devtools/server/actors/worker/worker-list.js
@@ -1,17 +1,17 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const { Ci } = require("chrome");
const { XPCOMUtils } = require("resource://gre/modules/XPCOMUtils.jsm");
-loader.lazyRequireGetter(this, "WorkerActor", "devtools/server/actors/worker", true);
+loader.lazyRequireGetter(this, "WorkerTargetActor", "devtools/server/actors/targets/worker", true);
loader.lazyRequireGetter(this, "ServiceWorkerRegistrationActor", "devtools/server/actors/worker/service-worker", true);
XPCOMUtils.defineLazyServiceGetter(
this, "wdm",
"@mozilla.org/dom/workers/workerdebuggermanager;1",
"nsIWorkerDebuggerManager"
);
@@ -34,27 +34,27 @@ function matchWorkerDebugger(dbg, option
if (window !== options.window) {
return false;
}
}
return true;
}
-function WorkerActorList(conn, options) {
+function WorkerTargetActorList(conn, options) {
this._conn = conn;
this._options = options;
this._actors = new Map();
this._onListChanged = null;
this._mustNotify = false;
this.onRegister = this.onRegister.bind(this);
this.onUnregister = this.onUnregister.bind(this);
}
-WorkerActorList.prototype = {
+WorkerTargetActorList.prototype = {
getList() {
// Create a set of debuggers.
const dbgs = new Set();
const e = wdm.getWorkerDebuggerEnumerator();
while (e.hasMoreElements()) {
const dbg = e.getNext().QueryInterface(Ci.nsIWorkerDebugger);
if (matchWorkerDebugger(dbg, this._options)) {
dbgs.add(dbg);
@@ -66,17 +66,17 @@ WorkerActorList.prototype = {
if (!dbgs.has(dbg)) {
this._actors.delete(dbg);
}
}
// Create an actor for each debugger for which we don't have one.
for (const dbg of dbgs) {
if (!this._actors.has(dbg)) {
- this._actors.set(dbg, new WorkerActor(this._conn, dbg));
+ this._actors.set(dbg, new WorkerTargetActor(this._conn, dbg));
}
}
const actors = [];
for (const [, actor] of this._actors) {
actors.push(actor);
}
@@ -130,17 +130,17 @@ WorkerActorList.prototype = {
onUnregister(dbg) {
if (matchWorkerDebugger(dbg, this._options)) {
this._notifyListChanged();
}
}
};
-exports.WorkerActorList = WorkerActorList;
+exports.WorkerTargetActorList = WorkerTargetActorList;
function ServiceWorkerRegistrationActorList(conn) {
this._conn = conn;
this._actors = new Map();
this._onListChanged = null;
this._mustNotify = false;
this.onRegister = this.onRegister.bind(this);
this.onUnregister = this.onUnregister.bind(this);
--- a/devtools/shared/client/debugger-client.js
+++ b/devtools/shared/client/debugger-client.js
@@ -357,29 +357,29 @@ DebuggerClient.prototype = {
tabClient = new TabClient(this, response);
this.registerClient(tabClient);
}
onResponse(response, tabClient);
return [response, tabClient];
});
},
- attachWorker: function(workerActor, onResponse = noop) {
- let workerClient = this._clients.get(workerActor);
+ attachWorker: function(workerTargetActor, onResponse = noop) {
+ let workerClient = this._clients.get(workerTargetActor);
if (workerClient !== undefined) {
const response = {
from: workerClient.actor,
type: "attached",
url: workerClient.url
};
DevToolsUtils.executeSoon(() => onResponse(response, workerClient));
return promise.resolve([response, workerClient]);
}
- return this.request({ to: workerActor, type: "attach" }).then(response => {
+ return this.request({ to: workerTargetActor, type: "attach" }).then(response => {
if (response.error) {
onResponse(response, null);
return [response, null];
}
workerClient = new WorkerClient(this, response);
this.registerClient(workerClient);
onResponse(response, workerClient);
--- a/devtools/shared/client/root-client.js
+++ b/devtools/shared/client/root-client.js
@@ -96,19 +96,19 @@ RootClient.prototype = {
* registrations and workers, this method will combine this information to present a
* unified array of serviceWorkers. If you are only interested in other workers, use
* listWorkers.
*
* @return {Object}
* - {Array} service
* array of form-like objects for serviceworkers
* - {Array} shared
- * Array of WorkerActor forms, containing shared workers.
+ * Array of WorkerTargetActor forms, containing shared workers.
* - {Array} other
- * Array of WorkerActor forms, containing other workers.
+ * Array of WorkerTargetActor forms, containing other workers.
*/
listAllWorkers: async function() {
let registrations = [];
let workers = [];
try {
// List service worker registrations
({ registrations } = await this.listServiceWorkerRegistrations());
@@ -152,28 +152,28 @@ RootClient.prototype = {
lastUpdateTime: form.lastUpdateTime
});
});
workers.forEach(form => {
const worker = {
name: form.url,
url: form.url,
- workerActor: form.actor
+ workerTargetActor: form.actor
};
switch (form.type) {
case Ci.nsIWorkerDebugger.TYPE_SERVICE:
const registration = result.service.find(r => r.scope === form.scope);
if (registration) {
// XXX: Race, sometimes a ServiceWorkerRegistrationInfo doesn't
// have a scriptSpec, but its associated WorkerDebugger does.
if (!registration.url) {
registration.name = registration.url = form.url;
}
- registration.workerActor = form.actor;
+ registration.workerTargetActor = form.actor;
} else {
worker.fetch = form.fetch;
// If a service worker registration could not be found, this means we are in
// e10s, and registrations are not forwarded to other processes until they
// reach the activated state. Augment the worker as a registration worker to
// display it in aboutdebugging.
worker.scope = form.scope;
--- a/devtools/shared/client/tab-client.js
+++ b/devtools/shared/client/tab-client.js
@@ -147,16 +147,16 @@ TabClient.prototype = {
type: "reconfigure",
options: arg(0)
}),
listWorkers: DebuggerClient.requester({
type: "listWorkers"
}),
- attachWorker: function(workerActor, onResponse) {
- return this.client.attachWorker(workerActor, onResponse);
+ attachWorker: function(workerTargetActor, onResponse) {
+ return this.client.attachWorker(workerTargetActor, onResponse);
},
};
eventSource(TabClient.prototype);
module.exports = TabClient;
--- a/devtools/shared/specs/index.js
+++ b/devtools/shared/specs/index.js
@@ -220,16 +220,21 @@ const Types = exports.__TypesForTests =
front: null,
},
{
types: ["frameTarget"],
spec: "devtools/shared/specs/targets/frame",
front: null,
},
{
+ types: ["workerTarget"],
+ spec: "devtools/shared/specs/targets/worker",
+ front: null,
+ },
+ {
types: ["timeline"],
spec: "devtools/shared/specs/timeline",
front: "devtools/shared/fronts/timeline",
},
{
types: ["audionode", "webaudio"],
spec: "devtools/shared/specs/webaudio",
front: "devtools/shared/fronts/webaudio",
@@ -254,21 +259,16 @@ const Types = exports.__TypesForTests =
spec: "devtools/shared/specs/webgl",
front: "devtools/shared/fronts/webgl",
},
{
types: ["pushSubscription", "serviceWorkerRegistration", "serviceWorker"],
spec: "devtools/shared/specs/worker/service-worker",
front: null,
},
- {
- types: ["worker"],
- spec: "devtools/shared/specs/worker/worker",
- front: null,
- },
];
const lazySpecs = new Map();
const lazyFronts = new Map();
// Convert the human readable `Types` list into efficient maps
Types.forEach(item => {
item.types.forEach(type => {
--- a/devtools/shared/specs/targets/moz.build
+++ b/devtools/shared/specs/targets/moz.build
@@ -2,9 +2,10 @@
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DevToolsModules(
'browsing-context.js',
'frame.js',
+ 'worker.js',
)
rename from devtools/shared/specs/worker/worker.js
rename to devtools/shared/specs/targets/worker.js
--- a/devtools/shared/specs/worker/worker.js
+++ b/devtools/shared/specs/targets/worker.js
@@ -1,17 +1,17 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const {Arg, RetVal, generateActorSpec} = require("devtools/shared/protocol");
-const workerSpec = generateActorSpec({
- typeName: "worker",
+const workerTargetSpec = generateActorSpec({
+ typeName: "workerTarget",
methods: {
attach: {
request: {},
response: RetVal("json")
},
detach: {
request: {},
@@ -25,9 +25,9 @@ const workerSpec = generateActorSpec({
},
push: {
request: {},
response: RetVal("json")
},
},
});
-exports.workerSpec = workerSpec;
+exports.workerTargetSpec = workerTargetSpec;
--- a/devtools/shared/specs/worker/moz.build
+++ b/devtools/shared/specs/worker/moz.build
@@ -1,10 +1,9 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DevToolsModules(
'service-worker.js',
- 'worker.js',
)
--- a/devtools/shared/webconsole/test/common.js
+++ b/devtools/shared/webconsole/test/common.js
@@ -100,23 +100,24 @@ var _attachConsole = async function(
const worker = new Worker(workerName);
// Keep a strong reference to the Worker to avoid it being
// GCd during the test (bug 1237492).
// eslint-disable-next-line camelcase
state._worker_ref = worker;
await waitForMessage(worker);
const { workers } = await tabClient.listWorkers();
- const workerActor = workers.filter(w => w.url == workerName)[0].actor;
- if (!workerActor) {
+ const workerTargetActor = workers.filter(w => w.url == workerName)[0].actor;
+ if (!workerTargetActor) {
console.error("listWorkers failed. Unable to find the " +
"worker actor\n");
return;
}
- const [workerResponse, workerClient] = await tabClient.attachWorker(workerActor);
+ const [workerResponse, workerClient] =
+ await tabClient.attachWorker(workerTargetActor);
if (!workerClient || workerResponse.error) {
console.error("attachWorker failed. No worker client or " +
" error: " + workerResponse.error);
return;
}
await workerClient.attachThread({});
state.actor = workerClient.consoleActor;
state.dbgClient.attachConsole(workerClient.consoleActor, listeners,