Bug 1633727 - Improve error reporting for legacy actors r=nchevobbe

Depends on D75157

A thread actor attach error shows up as
  Protocol error (unknownError): error occurred while processing 'attach':
  [object Object] from: server0.conn145.content-process36/workerTarget5/thread1

[object Object] is a legacy {error, message} object thrown by the thread actor

Differential Revision: https://phabricator.services.mozilla.com/D83507
This commit is contained in:
Julian Descottes 2020-07-28 19:44:51 +00:00
parent 148b8f4f8f
commit 49a164e548

View File

@ -268,7 +268,7 @@ DevToolsServerConnection.prototype = {
);
}
const prefix = `error occurred while processing '${type}'`;
const prefix = `error occurred while queuing response for '${type}'`;
this.transport.send(this._unknownError(from, prefix, error));
});
@ -378,8 +378,17 @@ DevToolsServerConnection.prototype = {
this.currentPacket = packet;
ret = actor.requestTypes[packet.type].bind(actor)(packet, this);
} catch (error) {
// Support legacy errors from old actors such as thread actor which
// throw { error, message } objects.
let errorMessage = error;
if (error?.error && error?.message) {
errorMessage = `"(${error.error}) ${error.message}"`;
}
const prefix = `error occurred while processing '${packet.type}'`;
this.transport.send(this._unknownError(actor.actorID, prefix, error));
this.transport.send(
this._unknownError(actor.actorID, prefix, errorMessage)
);
} finally {
this.currentPacket = undefined;
}