diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:14:29 +0000 |
commit | fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch) | |
tree | 4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /devtools/server/connectors/js-window-actor | |
parent | Releasing progress-linux version 124.0.1-1~progress7.99u1. (diff) | |
download | firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip |
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/server/connectors/js-window-actor')
3 files changed, 17 insertions, 21 deletions
diff --git a/devtools/server/connectors/js-window-actor/DevToolsFrameChild.sys.mjs b/devtools/server/connectors/js-window-actor/DevToolsFrameChild.sys.mjs index 519cd10325..acb5e97110 100644 --- a/devtools/server/connectors/js-window-actor/DevToolsFrameChild.sys.mjs +++ b/devtools/server/connectors/js-window-actor/DevToolsFrameChild.sys.mjs @@ -173,7 +173,7 @@ export class DevToolsFrameChild extends JSWindowActorChild { * The prefix of the DevToolsServerConnection of the Watcher Actor. * This is used to compute a unique ID for the target actor. * @param Object options.sessionData - * All data managed by the Watcher Actor and WatcherRegistry.jsm, containing + * All data managed by the Watcher Actor and WatcherRegistry.sys.mjs, containing * target types, resources types to be listened as well as breakpoints and any * other data meant to be shared across processes and threads. * @param Boolean options.isDocumentCreation @@ -364,6 +364,10 @@ export class DevToolsFrameChild extends JSWindowActorChild { ignoreSubFrames: isEveryFrameTargetEnabled, sessionContext: sessionData.sessionContext, }); + // There is no root actor in content processes and so + // the target actor can't be managed by it, but we do have to manage + // the actor to have it working and be registered in the DevToolsServerConnection. + // We make it manage itself and become a top level actor. targetActor.manage(targetActor); targetActor.createdFromJsWindowActor = true; @@ -554,10 +558,10 @@ export class DevToolsFrameChild extends JSWindowActorChild { sessionContext, }); // By the time we are calling this, the target may already have been destroyed. - if (targetActor) { - return targetActor.removeSessionDataEntry(type, entries); + if (!targetActor) { + return null; } - return null; + return targetActor.removeSessionDataEntry(type, entries); } handleEvent({ type, persisted, target }) { @@ -691,8 +695,8 @@ export class DevToolsFrameChild extends JSWindowActorChild { didDestroy(options) { logWindowGlobal(this.manager, "Destroy WindowGlobalTarget"); - for (const [, connectionInfo] of this._connections) { - connectionInfo.connection.close(options); + for (const { connection } of this._connections.values()) { + connection.close(options); } this._connections.clear(); diff --git a/devtools/server/connectors/js-window-actor/DevToolsFrameParent.sys.mjs b/devtools/server/connectors/js-window-actor/DevToolsFrameParent.sys.mjs index 3c5af2a724..31750d58e4 100644 --- a/devtools/server/connectors/js-window-actor/DevToolsFrameParent.sys.mjs +++ b/devtools/server/connectors/js-window-actor/DevToolsFrameParent.sys.mjs @@ -7,11 +7,9 @@ import { EventEmitter } from "resource://gre/modules/EventEmitter.sys.mjs"; const { WatcherRegistry } = ChromeUtils.importESModule( "resource://devtools/server/actors/watcher/WatcherRegistry.sys.mjs", - { - // WatcherRegistry needs to be a true singleton and loads ActorManagerParent - // which also has to be a true singleton. - loadInDevToolsLoader: false, - } + // WatcherRegistry needs to be a true singleton and loads ActorManagerParent + // which also has to be a true singleton. + { global: "shared" } ); const lazy = {}; diff --git a/devtools/server/connectors/js-window-actor/DevToolsWorkerParent.sys.mjs b/devtools/server/connectors/js-window-actor/DevToolsWorkerParent.sys.mjs index ebe3d10ad5..cb9bffc2ca 100644 --- a/devtools/server/connectors/js-window-actor/DevToolsWorkerParent.sys.mjs +++ b/devtools/server/connectors/js-window-actor/DevToolsWorkerParent.sys.mjs @@ -7,11 +7,9 @@ import { EventEmitter } from "resource://gre/modules/EventEmitter.sys.mjs"; const { WatcherRegistry } = ChromeUtils.importESModule( "resource://devtools/server/actors/watcher/WatcherRegistry.sys.mjs", - { - // WatcherRegistry needs to be a true singleton and loads ActorManagerParent - // which also has to be a true singleton. - loadInDevToolsLoader: false, - } + // WatcherRegistry needs to be a true singleton and loads ActorManagerParent + // which also has to be a true singleton. + { global: "shared" } ); const lazy = {}; @@ -175,11 +173,7 @@ export class DevToolsWorkerParent extends JSWindowActorParent { watcher.notifyTargetAvailable(workerTargetForm); } - workerTargetDestroyed({ - watcherActorID, - forwardingPrefix, - workerTargetForm, - }) { + workerTargetDestroyed({ watcherActorID, workerTargetForm }) { const watcher = WatcherRegistry.getWatcher(watcherActorID); if (!watcher) { |