Stop requiring registration of callable JS modules

Reviewed By: AaaChiuuu

Differential Revision: D5229073

fbshipit-source-id: d6d1967982ae379733a7e9667515ca9f074aadd4
This commit is contained in:
Pieter De Baets
2017-06-13 05:44:10 -07:00
committed by Facebook Github Bot
parent 1d30f833a6
commit 53d5504f40
3 changed files with 58 additions and 124 deletions

View File

@@ -75,7 +75,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
private final ArrayList<PendingJSCall> mJSCallsPendingInit = new ArrayList<PendingJSCall>();
private final Object mJSCallsPendingInitLock = new Object();
private final NativeModuleRegistry mJavaRegistry;
private final NativeModuleRegistry mNativeModuleRegistry;
private final NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
private final MessageQueueThread mNativeModulesQueueThread;
private final @Nullable MessageQueueThread mUIBackgroundQueueThread;
@@ -92,8 +92,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
private CatalystInstanceImpl(
final ReactQueueConfigurationSpec reactQueueConfigurationSpec,
final JavaScriptExecutor jsExecutor,
final NativeModuleRegistry registry,
final JavaScriptModuleRegistry jsModuleRegistry,
final NativeModuleRegistry nativeModuleRegistry,
final JSBundleLoader jsBundleLoader,
NativeModuleCallExceptionHandler nativeModuleCallExceptionHandler) {
Log.d(ReactConstants.TAG, "Initializing React Xplat Bridge.");
@@ -103,8 +102,8 @@ public class CatalystInstanceImpl implements CatalystInstance {
reactQueueConfigurationSpec,
new NativeExceptionHandler());
mBridgeIdleListeners = new CopyOnWriteArrayList<>();
mJavaRegistry = registry;
mJSModuleRegistry = jsModuleRegistry;
mNativeModuleRegistry = nativeModuleRegistry;
mJSModuleRegistry = new JavaScriptModuleRegistry();
mJSBundleLoader = jsBundleLoader;
mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler;
mNativeModulesQueueThread = mReactQueueConfiguration.getNativeModulesQueueThread();
@@ -118,8 +117,8 @@ public class CatalystInstanceImpl implements CatalystInstance {
mReactQueueConfiguration.getJSQueueThread(),
mNativeModulesQueueThread,
mUIBackgroundQueueThread,
mJavaRegistry.getJavaModules(this),
mJavaRegistry.getCxxModules());
mNativeModuleRegistry.getJavaModules(this),
mNativeModuleRegistry.getCxxModules());
Log.d(ReactConstants.TAG, "Initializing React Xplat Bridge after initializeBridge");
}
@@ -137,7 +136,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
public void onBatchComplete() {
CatalystInstanceImpl impl = mOuter.get();
if (impl != null) {
impl.mJavaRegistry.onBatchComplete();
impl.mNativeModuleRegistry.onBatchComplete();
}
}
@@ -294,7 +293,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
mNativeModulesQueueThread.runOnQueue(new Runnable() {
@Override
public void run() {
mJavaRegistry.notifyJSInstanceDestroy();
mNativeModuleRegistry.notifyJSInstanceDestroy();
boolean wasIdle = (mPendingJSCalls.getAndSet(0) == 0);
if (!wasIdle && !mBridgeIdleListeners.isEmpty()) {
for (NotThreadSafeBridgeIdleDebugListener listener : mBridgeIdleListeners) {
@@ -342,7 +341,7 @@ public class CatalystInstanceImpl implements CatalystInstance {
mNativeModulesQueueThread.runOnQueue(new Runnable() {
@Override
public void run() {
mJavaRegistry.notifyJSInstanceInitialized();
mNativeModuleRegistry.notifyJSInstanceInitialized();
}
});
}
@@ -359,19 +358,19 @@ public class CatalystInstanceImpl implements CatalystInstance {
@Override
public <T extends NativeModule> boolean hasNativeModule(Class<T> nativeModuleInterface) {
return mJavaRegistry.hasModule(nativeModuleInterface);
return mNativeModuleRegistry.hasModule(nativeModuleInterface);
}
// This is only ever called with UIManagerModule or CurrentViewerModule.
@Override
public <T extends NativeModule> T getNativeModule(Class<T> nativeModuleInterface) {
return mJavaRegistry.getModule(nativeModuleInterface);
return mNativeModuleRegistry.getModule(nativeModuleInterface);
}
// This is only used by com.facebook.react.modules.common.ModuleDataCleaner
@Override
public Collection<NativeModule> getNativeModules() {
return mJavaRegistry.getAllModules();
return mNativeModuleRegistry.getAllModules();
}
private native void handleMemoryPressureUiHidden();
@@ -528,7 +527,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
private @Nullable ReactQueueConfigurationSpec mReactQueueConfigurationSpec;
private @Nullable JSBundleLoader mJSBundleLoader;
private @Nullable NativeModuleRegistry mRegistry;
private @Nullable JavaScriptModuleRegistry mJSModuleRegistry;
private @Nullable JavaScriptExecutor mJSExecutor;
private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
@@ -544,7 +542,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
}
public Builder setJSModuleRegistry(JavaScriptModuleRegistry jsModuleRegistry) {
mJSModuleRegistry = jsModuleRegistry;
return this;
}
@@ -569,7 +566,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
Assertions.assertNotNull(mReactQueueConfigurationSpec),
Assertions.assertNotNull(mJSExecutor),
Assertions.assertNotNull(mRegistry),
Assertions.assertNotNull(mJSModuleRegistry),
Assertions.assertNotNull(mJSBundleLoader),
Assertions.assertNotNull(mNativeModuleCallExceptionHandler));
}