diff options
Diffstat (limited to '')
-rw-r--r-- | devtools/server/actors/watcher.js | 78 |
1 files changed, 60 insertions, 18 deletions
diff --git a/devtools/server/actors/watcher.js b/devtools/server/actors/watcher.js index 10de102229..34d2509420 100644 --- a/devtools/server/actors/watcher.js +++ b/devtools/server/actors/watcher.js @@ -258,10 +258,24 @@ exports.WatcherActor = class WatcherActor extends Actor { continue; } promises.push( - domProcess.getActor(this._jsActorName).watchTargets({ - watcherActorID: this.actorID, - targetType, - }) + domProcess + .getActor(this._jsActorName) + .watchTargets({ + watcherActorID: this.actorID, + targetType, + }) + .catch(e => { + // Ignore any process that got destroyed while trying to send the request + if (!domProcess.canSend) { + console.warn( + "Content process closed while requesting targets", + domProcess.name, + domProcess.remoteType + ); + return; + } + throw e; + }) ); } await Promise.all(promises); @@ -561,13 +575,27 @@ exports.WatcherActor = class WatcherActor extends Actor { const domProcesses = ChromeUtils.getAllDOMProcesses(); for (const domProcess of domProcesses) { promises.push( - domProcess.getActor(this._jsActorName).addOrSetSessionDataEntry({ - watcherActorID: this.actorID, - sessionContext: this.sessionContext, - type: "resources", - entries: resourceTypes, - updateType: "add", - }) + domProcess + .getActor(this._jsActorName) + .addOrSetSessionDataEntry({ + watcherActorID: this.actorID, + sessionContext: this.sessionContext, + type: "resources", + entries: resourceTypes, + updateType: "add", + }) + .catch(e => { + // Ignore any process that got destroyed while trying to send the request + if (!domProcess.canSend) { + console.warn( + "Content process closed while requesting resources", + domProcess.name, + domProcess.remoteType + ); + return; + } + throw e; + }) ); } await Promise.all(promises); @@ -769,13 +797,27 @@ exports.WatcherActor = class WatcherActor extends Actor { const domProcesses = ChromeUtils.getAllDOMProcesses(); for (const domProcess of domProcesses) { promises.push( - domProcess.getActor(this._jsActorName).addOrSetSessionDataEntry({ - watcherActorID: this.actorID, - sessionContext: this.sessionContext, - type, - entries, - updateType, - }) + domProcess + .getActor(this._jsActorName) + .addOrSetSessionDataEntry({ + watcherActorID: this.actorID, + sessionContext: this.sessionContext, + type, + entries, + updateType, + }) + .catch(e => { + // Ignore any process that got destroyed while trying to send the request + if (!domProcess.canSend) { + console.warn( + "Content process closed while sending session data", + domProcess.name, + domProcess.remoteType + ); + return; + } + throw e; + }) ); } await Promise.all(promises); |