From a30d5f3e60f0e66a0d99e8286ab13381be10935c Mon Sep 17 00:00:00 2001 From: John Knox Date: Wed, 25 Mar 2020 17:35:28 -0700 Subject: [PATCH] Don't throw when reporting network request Summary: Flipper should never crash the mobile app. This is a plugin entry point, so it's understandable that it can, but we should avoid it whenever possible. Reviewed By: passy Differential Revision: D20648373 fbshipit-source-id: f32b428cccdd0c78eb15e9e95a64ecf3f4e10429 --- .../plugins/network/NetworkFlipperPlugin.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/android/plugins/network/src/main/java/com/facebook/flipper/plugins/network/NetworkFlipperPlugin.java b/android/plugins/network/src/main/java/com/facebook/flipper/plugins/network/NetworkFlipperPlugin.java index d1edab31b..5ede7e4fb 100644 --- a/android/plugins/network/src/main/java/com/facebook/flipper/plugins/network/NetworkFlipperPlugin.java +++ b/android/plugins/network/src/main/java/com/facebook/flipper/plugins/network/NetworkFlipperPlugin.java @@ -34,18 +34,24 @@ public class NetworkFlipperPlugin extends BufferingFlipperPlugin implements Netw } @Override - public void reportRequest(RequestInfo requestInfo) { - final FlipperObject request = - new FlipperObject.Builder() - .put("id", requestInfo.requestId) - .put("timestamp", requestInfo.timeStamp) - .put("method", requestInfo.method) - .put("url", requestInfo.uri) - .put("headers", toFlipperObject(requestInfo.headers)) - .put("data", toBase64(requestInfo.body)) - .build(); + public void reportRequest(final RequestInfo requestInfo) { + (new ErrorReportingRunnable(getConnection()) { + @Override + protected void runOrThrow() throws Exception { + final FlipperObject request = + new FlipperObject.Builder() + .put("id", requestInfo.requestId) + .put("timestamp", requestInfo.timeStamp) + .put("method", requestInfo.method) + .put("url", requestInfo.uri) + .put("headers", toFlipperObject(requestInfo.headers)) + .put("data", toBase64(requestInfo.body)) + .build(); - send("newRequest", request); + send("newRequest", request); + } + }) + .run(); } @Override