/* 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 EventEmitter = require("resource://devtools/shared/event-emitter.js"); const BROWSERTOOLBOX_SCOPE_PREF = "devtools.browsertoolbox.scope"; // Possible values of the previous pref: const BROWSERTOOLBOX_SCOPE_EVERYTHING = "everything"; const BROWSERTOOLBOX_SCOPE_PARENTPROCESS = "parent-process"; // eslint-disable-next-line mozilla/reject-some-requires const createStore = require("resource://devtools/client/shared/redux/create-store.js"); const reducer = require("resource://devtools/shared/commands/target/reducers/targets.js"); loader.lazyRequireGetter( this, ["refreshTargets", "registerTarget", "unregisterTarget"], "resource://devtools/shared/commands/target/actions/targets.js", true ); class TargetCommand extends EventEmitter { #selectedTargetFront; /** * This class helps managing, iterating over and listening for Targets. * * It exposes: * - the top level target, typically the main process target for the browser toolbox * or the browsing context target for a regular web toolbox * - target of remoted iframe, in case Fission is enabled and some