mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-09 09:30:10 +08:00
WebWorkers: Allow web worker owner to inject globals into worker, supply modified __fbBatchedBridgeConfig
Summary: Now that web workers are just JSCExecutors, we can move forward with adding native module support. The means we need to supply the worker with a correct __fbBatchedBridgeConfig global so it can appropriately set up its JS MessageQueue. Unfortunately, native modules can't support multiple JS execution contexts out-of-the-box, so we need to whitelist those modules that actually can be referenced from a webworker. In order to do that, we add the supportsWebWorkers call in NativeModule and the SupportsWebWorkers annotation for JS modules. These add metadata to __fbBatchedBridgeConfig which allows us to create a new config with only those modules that support web workers. Reviewed By: lexs Differential Revision: D2927091 fb-gh-sync-id: 9b47331253b277940b552e7d899198b5f0a3ed8c shipit-source-id: 9b47331253b277940b552e7d899198b5f0a3ed8c
This commit is contained in:
committed by
facebook-github-bot-5
parent
febb1fbe13
commit
2b251638a6
@@ -65,6 +65,7 @@ public class NativeModuleRegistry {
|
||||
for (ModuleDefinition moduleDef : mModuleTable) {
|
||||
jg.writeObjectFieldStart(moduleDef.name);
|
||||
jg.writeNumberField("moduleID", moduleDef.id);
|
||||
jg.writeBooleanField("supportsWebWorkers", moduleDef.target.supportsWebWorkers());
|
||||
jg.writeObjectFieldStart("methods");
|
||||
for (int i = 0; i < moduleDef.methods.size(); i++) {
|
||||
MethodRegistration method = moduleDef.methods.get(i);
|
||||
|
||||
Reference in New Issue
Block a user