mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Added check to handle all cases of MissingWebViewPackageException (#26189)
Summary: We have been experiencing the below crashes in our Flipkart Android app:   Stack overflow thread for the issue that is causing this crash: [https://stackoverflow.com/a/56246743](https://stackoverflow.com/a/56246743) The change I have done is an enhancement on the following PR which got merged to master: [https://github.com/facebook/react-native/pull/24533](https://github.com/facebook/react-native/pull/24533) The exception handling for this crash already exists but it relies on having a specific string in the error message ("Webview not installed"). But the error message for the crashes above does not include this string. I have added a check for all the crashes involving the `MissingWebViewPackageException`. Refer the file: [https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/webkit/WebViewFactory.java#102](https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/webkit/WebViewFactory.java#102) ## Changelog [ANDROID] [Fixed] - The ReactCookieJarContainer/ForwardingCookieHandler now handles all the cases of missing WebView exceptions gracefully. Pull Request resolved: https://github.com/facebook/react-native/pull/26189 Test Plan: No new tests have been added. CI should pass. This fix was made based on the exception stacktrace. I have not spent the time to acquire one of the devices that it is happening on. Differential Revision: D17258881 Pulled By: cpojer fbshipit-source-id: 3abb061e345329214025ebab2b3a908f9cce434d
This commit is contained in:
committed by
Facebook Github Bot
parent
021cbccbf2
commit
314eba98b2
+6
-2
@@ -184,8 +184,12 @@ public class ForwardingCookieHandler extends CookieHandler {
|
||||
// We cannot catch MissingWebViewPackageException as it is in a private / system API
|
||||
// class. This validates the exception's message to ensure we are only handling this
|
||||
// specific exception.
|
||||
// https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/webkit/WebViewFactory.java#98
|
||||
if (message != null && message.contains("No WebView installed")) {
|
||||
// https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/webkit/WebViewFactory.java#348
|
||||
if (message != null
|
||||
&& exception
|
||||
.getClass()
|
||||
.getCanonicalName()
|
||||
.equals("android.webkit.WebViewFactory.MissingWebViewPackageException")) {
|
||||
return null;
|
||||
} else {
|
||||
throw exception;
|
||||
|
||||
Reference in New Issue
Block a user