diff --git a/remote/cdp/domains/parent/Target.sys.mjs b/remote/cdp/domains/parent/Target.sys.mjs index c37ba2addf0e..d69d65f27bfd 100644 --- a/remote/cdp/domains/parent/Target.sys.mjs +++ b/remote/cdp/domains/parent/Target.sys.mjs @@ -99,14 +99,14 @@ export class Target extends Domain { if (discover) { targetList.on("target-created", this._onTargetCreated); targetList.on("target-destroyed", this._onTargetDestroyed); + + for (const target of targetList) { + this._onTargetCreated("target-created", target); + } } else { targetList.off("target-created", this._onTargetCreated); targetList.off("target-destroyed", this._onTargetDestroyed); } - - for (const target of targetList) { - this._onTargetCreated("target-created", target); - } } async createTarget(options = {}) { diff --git a/remote/cdp/test/browser/target/browser_setDiscoverTargets.js b/remote/cdp/test/browser/target/browser_setDiscoverTargets.js index d2d0ba604f0d..1d0c59dbd23f 100644 --- a/remote/cdp/test/browser/target/browser_setDiscoverTargets.js +++ b/remote/cdp/test/browser/target/browser_setDiscoverTargets.js @@ -138,6 +138,45 @@ add_task( { createTab: false } ); +add_task( + async function noTargetsWithDiscoverFalse({ client }) { + const { Target } = client; + + await loadURL(PAGE_TEST); + + const targets = await getDiscoveredTargets(Target, { discover: false }); + is(targets.length, 0, "Got 0 targets with discover false"); + }, + { createTab: false } +); + +add_task( + async function noEventsWithDiscoverFalse({ client }) { + const { Target } = client; + + await loadURL(PAGE_TEST); + + const targets = []; + const unsubscribe = Target.targetCreated(target => { + targets.push(target.targetInfo); + }); + + await Target.setDiscoverTargets({ + discover: false, + }); + + // Cannot use openTab() helper as it relies on the event + await BrowserTestUtils.openNewForegroundTab(gBrowser); + + // Wait 1s for the event to possibly dispatch + await timeoutPromise(1000); + + unsubscribe(); + is(targets.length, 0, "Got 0 target created events with discover false"); + }, + { createTab: false } +); + add_task( async function targetInfoValues({ client }) { const { Target, target } = client;