From ab45138394f41aeb13370882837968636de04c24 Mon Sep 17 00:00:00 2001 From: Lulu Wu Date: Fri, 4 Mar 2022 15:42:52 -0800 Subject: [PATCH] Report js exceptions via Lacrima Summary: Why Lacrima? - Throw a JavascriptException in native won't get the js error reported to backend, we need to use reporter APIs - Lacrima is a new error reporting framework to report crashes and app deaths in android applications at Facebook, and it has APIs for reporting js exceptions. - ```FbErrorReporterImpl.java``` uses ```Acra``` API to report, and ```Lacrima``` is a rewrite of ```Acra``` https://fb.workplace.com/groups/323014308578038/ - We've been receiving js errors reported via Lacrima https://fburl.com/logview/y1vhc8u8 In this diff all js errors are treated as soft errors during reporting because they don't usually crash the app, crashes will be reported with a different category. Changelog: [Android][Chagned] - Change static string to public Reviewed By: fkgozali Differential Revision: D34095100 fbshipit-source-id: 73d89647134a197baf5d228d620732781b6bd723 --- .../main/java/com/facebook/react/util/JSStackTrace.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.java b/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.java index f35e5a8a54333d..6e572332fc41f4 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.java +++ b/ReactAndroid/src/main/java/com/facebook/react/util/JSStackTrace.java @@ -15,12 +15,13 @@ public class JSStackTrace { - private static final String LINE_NUMBER_KEY = "lineNumber"; + public static final String LINE_NUMBER_KEY = "lineNumber"; + public static final String FILE_KEY = "file"; + public static final String COLUMN_KEY = "column"; + public static final String METHOD_NAME_KEY = "methodName"; + private static final Pattern FILE_ID_PATTERN = Pattern.compile("\\b((?:seg-\\d+(?:_\\d+)?|\\d+)\\.js)"); - private static final String FILE_KEY = "file"; - private static final String COLUMN_KEY = "column"; - private static final String METHOD_NAME_KEY = "methodName"; public static String format(String message, ReadableArray stack) { StringBuilder stringBuilder = new StringBuilder(message).append(", stack:\n");