summaryrefslogtreecommitdiffstats
path: root/devtools/server/actors/watcher/target-helpers/content-process-jsprocessactor-startup.js
blob: 1765bcc66c6ceae70bc0f39cc6ca4aff84d125c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* 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 { setTimeout } = ChromeUtils.importESModule(
  "resource://gre/modules/Timer.sys.mjs"
);

/*
   We can't spawn the JSProcessActor right away and have to spin the event loop.
   Otherwise it isn't registered yet and isn't listening to observer service.
   Could it be the reason why JSProcessActor aren't spawn via process actor option's child.observers notifications ??
*/
setTimeout(function () {
  /*
    This notification is registered in DevToolsServiceWorker JS process actor's options's `observers` attribute
    and will force the JS Process actor to be instantiated in all processes.
  */
  Services.obs.notifyObservers(null, "init-devtools-content-process-actor");
  /*
    Instead of using observer service, we could also manually call some method of the actor:
    ChromeUtils.domProcessChild.getActor("DevToolsProcess").observe(null, "foo");
  */
}, 0);