diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java index 0134b1057734f9..355640952b9d1a 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppTestActivity.java @@ -218,8 +218,8 @@ public void loadBundle( builder.setReactPackageTurboModuleManagerDelegateBuilder( spec.getReactPackageTurboModuleManagerDelegateBuilder()); } - if (spec.getNativeModuleCallExceptionHandler() != null) { - builder.setNativeModuleCallExceptionHandler(spec.getNativeModuleCallExceptionHandler()); + if (spec.getJSExceptionHandler() != null) { + builder.setJSExceptionHandler(spec.getJSExceptionHandler()); } if (!spec.getAlternativeReactPackagesForTest().isEmpty()) { diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java index 6b96c8232b9da9..7c0fddbe46606d 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactInstanceSpecForTest.java @@ -11,11 +11,11 @@ import androidx.annotation.Nullable; import com.facebook.react.ReactPackage; import com.facebook.react.ReactPackageTurboModuleManagerDelegate; +import com.facebook.react.bridge.JSExceptionHandler; import com.facebook.react.bridge.JSIModuleSpec; import com.facebook.react.bridge.JavaScriptExecutorFactory; import com.facebook.react.bridge.JavaScriptModule; import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.NativeModuleCallExceptionHandler; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import java.util.ArrayList; @@ -40,7 +40,7 @@ public abstract static class JSIModuleBuilder { private final List> mJSModuleSpecs = new ArrayList<>(); private final List mViewManagers = new ArrayList<>(); private final ArrayList mReactPackages = new ArrayList<>(); - @Nullable private NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler = null; + @Nullable private JSExceptionHandler mJSExceptionHandler = null; @Nullable private FabricUIManagerFactory mFabricUIManagerFactory = null; @Nullable private JavaScriptExecutorFactory mJavaScriptExecutorFactory = null; @Nullable private ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder = null; @@ -51,14 +51,13 @@ public ReactInstanceSpecForTest addNativeModule(NativeModule module) { return this; } - public ReactInstanceSpecForTest setNativeModuleCallExceptionHandler( - NativeModuleCallExceptionHandler nativeModuleCallExceptionHandler) { - mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler; + public ReactInstanceSpecForTest setJSExceptionHandler(JSExceptionHandler jSExceptionHandler) { + mJSExceptionHandler = jSExceptionHandler; return this; } - public NativeModuleCallExceptionHandler getNativeModuleCallExceptionHandler() { - return mNativeModuleCallExceptionHandler; + public JSExceptionHandler getJSExceptionHandler() { + return mJSExceptionHandler; } public ReactInstanceSpecForTest setJavaScriptExecutorFactory( diff --git a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactTestHelper.java b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactTestHelper.java index bded7c858b45c3..11affeb80ffbc0 100644 --- a/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactTestHelper.java +++ b/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactTestHelper.java @@ -24,9 +24,9 @@ import com.facebook.react.bridge.CatalystInstance; import com.facebook.react.bridge.CatalystInstanceImpl; import com.facebook.react.bridge.JSBundleLoader; +import com.facebook.react.bridge.JSExceptionHandler; import com.facebook.react.bridge.JavaScriptExecutor; import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.NativeModuleCallExceptionHandler; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.queue.ReactQueueConfigurationSpec; import com.facebook.react.modules.core.ReactChoreographer; @@ -90,8 +90,8 @@ public CatalystInstance build() { .setJSBundleLoader( JSBundleLoader.createAssetLoader( mContext, "assets://AndroidTestBundle.js", false /* Asynchronous */)) - .setNativeModuleCallExceptionHandler( - new NativeModuleCallExceptionHandler() { + .setJSExceptionHandler( + new JSExceptionHandler() { @Override public void handleException(Exception e) { throw new RuntimeException(e); diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index feed1ca6d0bd4e..67120d27bde004 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java @@ -54,12 +54,12 @@ import com.facebook.react.bridge.CatalystInstance; import com.facebook.react.bridge.CatalystInstanceImpl; import com.facebook.react.bridge.JSBundleLoader; +import com.facebook.react.bridge.JSExceptionHandler; import com.facebook.react.bridge.JSIModulePackage; import com.facebook.react.bridge.JSIModuleType; import com.facebook.react.bridge.JavaJSExecutor; import com.facebook.react.bridge.JavaScriptExecutor; import com.facebook.react.bridge.JavaScriptExecutorFactory; -import com.facebook.react.bridge.NativeModuleCallExceptionHandler; import com.facebook.react.bridge.NativeModuleRegistry; import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener; import com.facebook.react.bridge.ProxyJavaScriptExecutor; @@ -182,7 +182,7 @@ public interface ReactInstanceEventListener // while true any spawned create thread should wait for proper clean up before initializing private volatile Boolean mHasStartedDestroying = false; private final MemoryPressureRouter mMemoryPressureRouter; - private final @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler; + private final @Nullable JSExceptionHandler mJSExceptionHandler; private final @Nullable JSIModulePackage mJSIModulePackage; private final @Nullable ReactPackageTurboModuleManagerDelegate.Builder mTMMDelegateBuilder; private List mViewManagers; @@ -226,7 +226,7 @@ public static ReactInstanceManagerBuilder builder() { @Nullable NotThreadSafeBridgeIdleDebugListener bridgeIdleDebugListener, LifecycleState initialLifecycleState, @Nullable UIImplementationProvider mUIImplementationProvider, - NativeModuleCallExceptionHandler nativeModuleCallExceptionHandler, + JSExceptionHandler jSExceptionHandler, @Nullable RedBoxHandler redBoxHandler, boolean lazyViewManagersEnabled, @Nullable DevBundleDownloadListener devBundleDownloadListener, @@ -268,7 +268,7 @@ public static ReactInstanceManagerBuilder builder() { mBridgeIdleDebugListener = bridgeIdleDebugListener; mLifecycleState = initialLifecycleState; mMemoryPressureRouter = new MemoryPressureRouter(applicationContext); - mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler; + mJSExceptionHandler = jSExceptionHandler; mTMMDelegateBuilder = tmmDelegateBuilder; synchronized (mPackages) { PrinterHolder.getPrinter() @@ -1331,11 +1331,9 @@ private ReactApplicationContext createReactContext( ReactMarker.logMarker(CREATE_REACT_CONTEXT_START, jsExecutor.getName()); final ReactApplicationContext reactContext = new ReactApplicationContext(mApplicationContext); - NativeModuleCallExceptionHandler exceptionHandler = - mNativeModuleCallExceptionHandler != null - ? mNativeModuleCallExceptionHandler - : mDevSupportManager; - reactContext.setNativeModuleCallExceptionHandler(exceptionHandler); + JSExceptionHandler exceptionHandler = + mJSExceptionHandler != null ? mJSExceptionHandler : mDevSupportManager; + reactContext.setJSExceptionHandler(exceptionHandler); NativeModuleRegistry nativeModuleRegistry = processPackages(reactContext, mPackages, false); @@ -1345,7 +1343,7 @@ private ReactApplicationContext createReactContext( .setJSExecutor(jsExecutor) .setRegistry(nativeModuleRegistry) .setJSBundleLoader(jsBundleLoader) - .setNativeModuleCallExceptionHandler(exceptionHandler); + .setJSExceptionHandler(exceptionHandler); ReactMarker.logMarker(CREATE_CATALYST_INSTANCE_START); // CREATE_CATALYST_INSTANCE_END is in JSCExecutor.cpp diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java index d004da42d6475b..1ac1c2f09130ed 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java @@ -18,9 +18,9 @@ import com.facebook.hermes.reactexecutor.HermesExecutorFactory; import com.facebook.infer.annotation.Assertions; import com.facebook.react.bridge.JSBundleLoader; +import com.facebook.react.bridge.JSExceptionHandler; import com.facebook.react.bridge.JSIModulePackage; import com.facebook.react.bridge.JavaScriptExecutorFactory; -import com.facebook.react.bridge.NativeModuleCallExceptionHandler; import com.facebook.react.bridge.NotThreadSafeBridgeIdleDebugListener; import com.facebook.react.common.LifecycleState; import com.facebook.react.common.SurfaceDelegateFactory; @@ -53,7 +53,7 @@ public class ReactInstanceManagerBuilder { private boolean mRequireActivity; private @Nullable LifecycleState mInitialLifecycleState; private @Nullable UIImplementationProvider mUIImplementationProvider; - private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler; + private @Nullable JSExceptionHandler mJSExceptionHandler; private @Nullable Activity mCurrentActivity; private @Nullable DefaultHardwareBackBtnHandler mDefaultHardwareBackBtnHandler; private @Nullable RedBoxHandler mRedBoxHandler; @@ -253,9 +253,8 @@ public ReactInstanceManagerBuilder setInitialLifecycleState( * DevSupportManager} will be used, which shows a redbox in dev mode and rethrows (crashes the * app) in prod mode. */ - public ReactInstanceManagerBuilder setNativeModuleCallExceptionHandler( - NativeModuleCallExceptionHandler handler) { - mNativeModuleCallExceptionHandler = handler; + public ReactInstanceManagerBuilder setJSExceptionHandler(JSExceptionHandler handler) { + mJSExceptionHandler = handler; return this; } @@ -357,7 +356,7 @@ public ReactInstanceManager build() { mBridgeIdleDebugListener, Assertions.assertNotNull(mInitialLifecycleState, "Initial lifecycle state was not set"), mUIImplementationProvider, - mNativeModuleCallExceptionHandler, + mJSExceptionHandler, mRedBoxHandler, mLazyViewManagersEnabled, mDevBundleDownloadListener, diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/AssertionException.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/AssertionException.java index 1675e6d07fd4b1..5b39dd854c4a8d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/AssertionException.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/AssertionException.java @@ -9,8 +9,8 @@ /** * Like {@link AssertionError} but extends RuntimeException so that it may be caught by a {@link - * NativeModuleCallExceptionHandler}. See that class for more details. Used in conjunction with - * {@link SoftAssertions}. + * JSExceptionHandler}. See that class for more details. Used in conjunction with {@link + * SoftAssertions}. */ public class AssertionException extends RuntimeException { diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java index 96fd8aa2592f81..50aedd434212a0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java @@ -93,7 +93,7 @@ public String toString() { private final NativeModuleRegistry mNativeModuleRegistry; private final JSIModuleRegistry mJSIModuleRegistry = new JSIModuleRegistry(); - private final NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler; + private final JSExceptionHandler mJSExceptionHandler; private final MessageQueueThread mNativeModulesQueueThread; private boolean mInitialized = false; private volatile boolean mAcceptCalls = false; @@ -120,7 +120,7 @@ private CatalystInstanceImpl( final JavaScriptExecutor jsExecutor, final NativeModuleRegistry nativeModuleRegistry, final JSBundleLoader jsBundleLoader, - NativeModuleCallExceptionHandler nativeModuleCallExceptionHandler) { + JSExceptionHandler jSExceptionHandler) { FLog.d(ReactConstants.TAG, "Initializing React Xplat Bridge."); Systrace.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "createCatalystInstanceImpl"); @@ -141,7 +141,7 @@ private CatalystInstanceImpl( mNativeModuleRegistry = nativeModuleRegistry; mJSModuleRegistry = new JavaScriptModuleRegistry(); mJSBundleLoader = jsBundleLoader; - mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler; + mJSExceptionHandler = jSExceptionHandler; mNativeModulesQueueThread = mReactQueueConfiguration.getNativeModulesQueueThread(); mTraceListener = new JSProfilerTraceListener(this); Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); @@ -626,7 +626,7 @@ public void run() { } private void onNativeException(Exception e) { - mNativeModuleCallExceptionHandler.handleException(e); + mJSExceptionHandler.handleException(e); mReactQueueConfiguration .getUIQueueThread() .runOnQueue( @@ -682,7 +682,7 @@ public static class Builder { private @Nullable JSBundleLoader mJSBundleLoader; private @Nullable NativeModuleRegistry mRegistry; private @Nullable JavaScriptExecutor mJSExecutor; - private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler; + private @Nullable JSExceptionHandler mJSExceptionHandler; public Builder setReactQueueConfigurationSpec( ReactQueueConfigurationSpec ReactQueueConfigurationSpec) { @@ -705,8 +705,8 @@ public Builder setJSExecutor(JavaScriptExecutor jsExecutor) { return this; } - public Builder setNativeModuleCallExceptionHandler(NativeModuleCallExceptionHandler handler) { - mNativeModuleCallExceptionHandler = handler; + public Builder setJSExceptionHandler(JSExceptionHandler handler) { + mJSExceptionHandler = handler; return this; } @@ -716,7 +716,7 @@ public CatalystInstanceImpl build() { Assertions.assertNotNull(mJSExecutor), Assertions.assertNotNull(mRegistry), Assertions.assertNotNull(mJSBundleLoader), - Assertions.assertNotNull(mNativeModuleCallExceptionHandler)); + Assertions.assertNotNull(mJSExceptionHandler)); } } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/DefaultNativeModuleCallExceptionHandler.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/DefaultJSExceptionHandler.java similarity index 85% rename from ReactAndroid/src/main/java/com/facebook/react/bridge/DefaultNativeModuleCallExceptionHandler.java rename to ReactAndroid/src/main/java/com/facebook/react/bridge/DefaultJSExceptionHandler.java index aca3a886e5c0c1..c3e40d6b78b0e7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/DefaultNativeModuleCallExceptionHandler.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/DefaultJSExceptionHandler.java @@ -8,7 +8,7 @@ package com.facebook.react.bridge; /** Crashy crashy exception handler. */ -public class DefaultNativeModuleCallExceptionHandler implements NativeModuleCallExceptionHandler { +public class DefaultJSExceptionHandler implements JSExceptionHandler { @Override public void handleException(Exception e) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedAsyncTask.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedAsyncTask.java index a4131e519fcad0..4c7c57665cac0c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedAsyncTask.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedAsyncTask.java @@ -11,22 +11,21 @@ /** * Abstract base for a AsyncTask that should have any RuntimeExceptions it throws handled by the - * {@link com.facebook.react.bridge.NativeModuleCallExceptionHandler} registered if the app is in - * dev mode. + * {@link JSExceptionHandler} registered if the app is in dev mode. * *

This class doesn't allow doInBackground to return a results. If you need this use * GuardedResultAsyncTask instead. */ public abstract class GuardedAsyncTask extends AsyncTask { - private final NativeModuleCallExceptionHandler mExceptionHandler; + private final JSExceptionHandler mExceptionHandler; @Deprecated protected GuardedAsyncTask(ReactContext reactContext) { this(reactContext.getExceptionHandler()); } - protected GuardedAsyncTask(NativeModuleCallExceptionHandler exceptionHandler) { + protected GuardedAsyncTask(JSExceptionHandler exceptionHandler) { mExceptionHandler = exceptionHandler; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java index 28e8fc4f8982f9..2f3a33d0f482a3 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedResultAsyncTask.java @@ -11,19 +11,18 @@ /** * Abstract base for a AsyncTask with result support that should have any RuntimeExceptions it - * throws handled by the {@link com.facebook.react.bridge.NativeModuleCallExceptionHandler} - * registered if the app is in dev mode. + * throws handled by the {@link JSExceptionHandler} registered if the app is in dev mode. */ public abstract class GuardedResultAsyncTask extends AsyncTask { - private final NativeModuleCallExceptionHandler mExceptionHandler; + private final JSExceptionHandler mExceptionHandler; @Deprecated protected GuardedResultAsyncTask(ReactContext reactContext) { this(reactContext.getExceptionHandler()); } - protected GuardedResultAsyncTask(NativeModuleCallExceptionHandler exceptionHandler) { + protected GuardedResultAsyncTask(JSExceptionHandler exceptionHandler) { mExceptionHandler = exceptionHandler; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedRunnable.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedRunnable.java index 14bcddf44cf33b..edfa90489c1dc6 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedRunnable.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/GuardedRunnable.java @@ -9,19 +9,18 @@ /** * Abstract base for a Runnable that should have any RuntimeExceptions it throws handled by the - * {@link com.facebook.react.bridge.NativeModuleCallExceptionHandler} registered if the app is in - * dev mode. + * {@link JSExceptionHandler} registered if the app is in dev mode. */ public abstract class GuardedRunnable implements Runnable { - private final NativeModuleCallExceptionHandler mExceptionHandler; + private final JSExceptionHandler mExceptionHandler; @Deprecated public GuardedRunnable(ReactContext reactContext) { this(reactContext.getExceptionHandler()); } - public GuardedRunnable(NativeModuleCallExceptionHandler exceptionHandler) { + public GuardedRunnable(JSExceptionHandler exceptionHandler) { mExceptionHandler = exceptionHandler; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleCallExceptionHandler.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/JSExceptionHandler.java similarity index 55% rename from ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleCallExceptionHandler.java rename to ReactAndroid/src/main/java/com/facebook/react/bridge/JSExceptionHandler.java index 786057f7a485bf..e7e3d580b121eb 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleCallExceptionHandler.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/JSExceptionHandler.java @@ -8,15 +8,15 @@ package com.facebook.react.bridge; /** - * Interface for a class that knows how to handle an Exception thrown by a native module invoked - * from JS. Since these Exceptions are triggered by JS calls (and can be fixed in JS), a common way - * to handle one is to show a error dialog and allow the developer to change and reload JS. + * Interface for a class that knows how to handle an Exception invoked from JS. Since these + * Exceptions are triggered by JS calls (and can be fixed in JS), a common way to handle one is to + * show a error dialog and allow the developer to change and reload JS. * *

We should also note that we have a unique stance on what 'caused' means: even if there's a bug * in the framework/native code, it was triggered by JS and theoretically since we were able to set - * up the bridge, JS could change its logic, reload, and not trigger that crash. + * up the React Instance, JS could change its logic, reload, and not trigger that crash. */ -public interface NativeModuleCallExceptionHandler { +public interface JSExceptionHandler { /** Do something to display or log the exception. */ void handleException(Exception e); diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java index 50cedcaa00073d..77ee2489413dc6 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -60,8 +60,8 @@ public class ReactContext extends ContextWrapper { private @Nullable MessageQueueThread mUiMessageQueueThread; private @Nullable MessageQueueThread mNativeModulesMessageQueueThread; private @Nullable MessageQueueThread mJSMessageQueueThread; - private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler; - private @Nullable NativeModuleCallExceptionHandler mExceptionHandlerWrapper; + private @Nullable JSExceptionHandler mJSExceptionHandler; + private @Nullable JSExceptionHandler mExceptionHandlerWrapper; private @Nullable WeakReference mCurrentActivity; private boolean mIsInitialized = false; @@ -123,9 +123,8 @@ public void resetPerfStats() { } } - public void setNativeModuleCallExceptionHandler( - @Nullable NativeModuleCallExceptionHandler nativeModuleCallExceptionHandler) { - mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler; + public void setJSExceptionHandler(@Nullable JSExceptionHandler jSExceptionHandler) { + mJSExceptionHandler = jSExceptionHandler; } private void raiseCatalystInstanceMissingException() { @@ -406,18 +405,17 @@ public boolean runOnJSQueueThread(Runnable runnable) { } /** - * Passes the given exception to the current {@link - * com.facebook.react.bridge.NativeModuleCallExceptionHandler} if one exists, rethrowing + * Passes the given exception to the current {@link JSExceptionHandler} if one exists, rethrowing * otherwise. */ public void handleException(Exception e) { boolean catalystInstanceVariableExists = mCatalystInstance != null; boolean isCatalystInstanceAlive = catalystInstanceVariableExists && !mCatalystInstance.isDestroyed(); - boolean hasExceptionHandler = mNativeModuleCallExceptionHandler != null; + boolean hasExceptionHandler = mJSExceptionHandler != null; if (isCatalystInstanceAlive && hasExceptionHandler) { - mNativeModuleCallExceptionHandler.handleException(e); + mJSExceptionHandler.handleException(e); } else { FLog.e( ReactConstants.TAG, @@ -432,14 +430,14 @@ public void handleException(Exception e) { } } - public class ExceptionHandlerWrapper implements NativeModuleCallExceptionHandler { + public class ExceptionHandlerWrapper implements JSExceptionHandler { @Override public void handleException(Exception e) { ReactContext.this.handleException(e); } } - public NativeModuleCallExceptionHandler getExceptionHandler() { + public JSExceptionHandler getExceptionHandler() { if (mExceptionHandlerWrapper == null) { mExceptionHandlerWrapper = new ExceptionHandlerWrapper(); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java index cd420267a09c97..e69f95cd0c3596 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java @@ -11,9 +11,9 @@ /** * Utility class to make assertions that should not hard-crash the app but instead be handled by the - * Catalyst app {@link NativeModuleCallExceptionHandler}. See the javadoc on that class for more - * information about our opinion on when these assertions should be used as opposed to assertions - * that might throw AssertionError Throwables that will cause the app to hard crash. + * Catalyst app {@link JSExceptionHandler}. See the javadoc on that class for more information about + * our opinion on when these assertions should be used as opposed to assertions that might throw + * AssertionError Throwables that will cause the app to hard crash. */ public class SoftAssertions { diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java index 8424b487de99d6..76977bfb462639 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java @@ -31,7 +31,7 @@ import com.facebook.common.logging.FLog; import com.facebook.infer.annotation.Assertions; import com.facebook.react.R; -import com.facebook.react.bridge.DefaultNativeModuleCallExceptionHandler; +import com.facebook.react.bridge.DefaultJSExceptionHandler; import com.facebook.react.bridge.JSBundleLoader; import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactMarker; @@ -94,7 +94,7 @@ public interface CallbackWithBundleLoader { private final @Nullable String mJSAppBundleName; private final File mJSBundleDownloadedFile; private final File mJSSplitBundlesDir; - private final DefaultNativeModuleCallExceptionHandler mDefaultNativeModuleCallExceptionHandler; + private final DefaultJSExceptionHandler mDefaultJSExceptionHandler; private final DevLoadingViewController mDevLoadingViewController; private @Nullable SurfaceDelegate mRedBoxSurfaceDelegate; @@ -201,7 +201,7 @@ public void onReceive(Context context, Intent intent) { final String splitBundlesDir = subclassTag.toLowerCase(Locale.ROOT) + "_dev_js_split_bundles"; mJSSplitBundlesDir = mApplicationContext.getDir(splitBundlesDir, Context.MODE_PRIVATE); - mDefaultNativeModuleCallExceptionHandler = new DefaultNativeModuleCallExceptionHandler(); + mDefaultJSExceptionHandler = new DefaultJSExceptionHandler(); setDevSupportEnabled(enableOnCreate); @@ -217,7 +217,7 @@ public void handleException(Exception e) { if (mIsDevSupportEnabled) { logJSException(e); } else { - mDefaultNativeModuleCallExceptionHandler.handleException(e); + mDefaultJSExceptionHandler.handleException(e); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java index f44cdeb332ebc7..4c965eba4437f5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java @@ -11,7 +11,7 @@ import android.util.Pair; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.bridge.DefaultNativeModuleCallExceptionHandler; +import com.facebook.react.bridge.DefaultJSExceptionHandler; import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.common.SurfaceDelegate; @@ -33,10 +33,10 @@ */ public class DisabledDevSupportManager implements DevSupportManager { - private final DefaultNativeModuleCallExceptionHandler mDefaultNativeModuleCallExceptionHandler; + private final DefaultJSExceptionHandler mDefaultJSExceptionHandler; public DisabledDevSupportManager() { - mDefaultNativeModuleCallExceptionHandler = new DefaultNativeModuleCallExceptionHandler(); + mDefaultJSExceptionHandler = new DefaultJSExceptionHandler(); } @Override @@ -192,7 +192,7 @@ public void setPackagerLocationCustomizer( @Override public void handleException(Exception e) { - mDefaultNativeModuleCallExceptionHandler.handleException(e); + mDefaultJSExceptionHandler.handleException(e); } @Override diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java index 40079b1e55e1c4..5380de4a32df4e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java @@ -11,7 +11,7 @@ import android.util.Pair; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.bridge.NativeModuleCallExceptionHandler; +import com.facebook.react.bridge.JSExceptionHandler; import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReadableArray; import com.facebook.react.common.SurfaceDelegate; @@ -23,7 +23,7 @@ * implementation {@link BridgeDevSupportManager}. In production mode, use the dummy implementation * {@link DisabledDevSupportManager}. */ -public interface DevSupportManager extends NativeModuleCallExceptionHandler { +public interface DevSupportManager extends JSExceptionHandler { void showNewJavaError(String message, Throwable e); diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.java index 1ab29715c9f06b..fb385e6eca03af 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/GuardedFrameCallback.java @@ -8,20 +8,20 @@ package com.facebook.react.fabric; import androidx.annotation.NonNull; -import com.facebook.react.bridge.NativeModuleCallExceptionHandler; +import com.facebook.react.bridge.JSExceptionHandler; import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.core.ChoreographerCompat; public abstract class GuardedFrameCallback extends ChoreographerCompat.FrameCallback { - @NonNull private final NativeModuleCallExceptionHandler mExceptionHandler; + @NonNull private final JSExceptionHandler mExceptionHandler; @Deprecated protected GuardedFrameCallback(@NonNull ReactContext reactContext) { this(reactContext.getExceptionHandler()); } - protected GuardedFrameCallback(@NonNull NativeModuleCallExceptionHandler exceptionHandler) { + protected GuardedFrameCallback(@NonNull JSExceptionHandler exceptionHandler) { mExceptionHandler = exceptionHandler; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.java index 421942a4ad6495..5cee3f36a32fd5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/GuardedFrameCallback.java @@ -7,13 +7,13 @@ package com.facebook.react.uimanager; +import com.facebook.react.bridge.JSExceptionHandler; import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.core.ChoreographerCompat; /** * Abstract base for a Choreographer FrameCallback that should have any RuntimeExceptions it throws - * handled by the {@link com.facebook.react.bridge.NativeModuleCallExceptionHandler} registered if - * the app is in dev mode. + * handled by the {@link JSExceptionHandler} registered if the app is in dev mode. */ public abstract class GuardedFrameCallback extends ChoreographerCompat.FrameCallback {