From c871b221fd71fc7369d6483606a84f93d333e8cc Mon Sep 17 00:00:00 2001 From: Lorenzo Blasa Date: Tue, 19 Jul 2022 04:05:12 -0700 Subject: [PATCH] Add catch handlers to client calls Summary: Client calls return a promise. Not dealing with the error causes promise unhandled rejection errors. This change adds a catch block and logs the error instead. Reviewed By: antonk52 Differential Revision: D37955029 fbshipit-source-id: 50cac5a5339961d16868ab2102d3c77790e6943c --- desktop/plugins/public/layout/index.tsx | 32 +++++++++++++------- desktop/plugins/public/leak_canary/index.tsx | 4 ++- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/desktop/plugins/public/layout/index.tsx b/desktop/plugins/public/layout/index.tsx index a76cef0ab..126d2eb4d 100644 --- a/desktop/plugins/public/layout/index.tsx +++ b/desktop/plugins/public/layout/index.tsx @@ -287,10 +287,14 @@ export default class LayoutPlugin extends FlipperPlugin< ); const resolvedPath = IDEFileResolver.getBestPath(paths, params.className); if (this.client.isConnected) { - this.client.send('setResolvedPath', { - className: params.className, - resolvedPath: resolvedPath, - }); + this.client + .call('setResolvedPath', { + className: params.className, + resolvedPath: resolvedPath, + }) + .catch((e) => { + console.warn('[Layout] setResolvePath failed with error', e); + }); } }; @@ -315,7 +319,9 @@ export default class LayoutPlugin extends FlipperPlugin< if (this.client.isConnected) { const inTargetMode = !this.state.inTargetMode; this.setState({inTargetMode}); - this.client.send('setSearchActive', {active: inTargetMode}); + this.client.call('setSearchActive', {active: inTargetMode}).catch((e) => { + console.warn('[Layout] setSearchActive failed with error', e); + }); } }; @@ -388,12 +394,16 @@ export default class LayoutPlugin extends FlipperPlugin< path: Array.from(path).splice(1).join(), ...this.realClient.query, }); - this.client.call('setData', { - id, - path, - value, - ax: this.state.inAXMode, - }); + this.client + .call('setData', { + id, + path, + value, + ax: this.state.inAXMode, + }) + .catch((e) => { + console.warn('[Layout] setData failed with error', e); + }); }; loadScreenDimensions(): {width: number; height: number} | null { diff --git a/desktop/plugins/public/leak_canary/index.tsx b/desktop/plugins/public/leak_canary/index.tsx index 625de49e8..8de008b9a 100644 --- a/desktop/plugins/public/leak_canary/index.tsx +++ b/desktop/plugins/public/leak_canary/index.tsx @@ -130,7 +130,9 @@ export default class LeakCanary extends FlipperPlugin< selectedIdx: null, selectedEid: null, }); - this.client.call('clear'); + this.client.call('clear').catch((e) => { + console.warn('[LeakCanary] clear failed with error', e); + }); }; _selectElement = (leakIdx: number, eid: string) => {