Skip to content

Commit 83d17cf

Browse files
bmeurerDevtools-frontend LUCI CQ
authored andcommitted
Correctly handle promise rejections in the extension interface.
For DevTools extension commands, some of them were implemented as async functions, but the message dispatcher wasn't changed to also handle promise rejections, and thus any errors produced were silently swallowed, instead of being reported to the caller correctly. Fixed: 327554073 Change-Id: If6701e5905b7bc3eecedd1f9f8b9e8ca50fe9352 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7367453 Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org>
1 parent 3a2ba78 commit 83d17cf

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

front_end/panels/common/ExtensionServer.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1421,7 +1421,11 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
14211421
} else if (!this.extensionEnabled(port)) {
14221422
result = this.status.E_FAILED('Permission denied');
14231423
} else {
1424-
result = await handler(message, event.target as MessagePort);
1424+
try {
1425+
result = await handler(message, event.target as MessagePort);
1426+
} catch (e) {
1427+
result = this.status.E_FAILED(e.message);
1428+
}
14251429
}
14261430

14271431
if (result && message.requestId) {

0 commit comments

Comments
 (0)