diff --git a/React/CxxBridge/RCTCxxBridge.mm b/React/CxxBridge/RCTCxxBridge.mm index 535f22c1b..bc66cf910 100644 --- a/React/CxxBridge/RCTCxxBridge.mm +++ b/React/CxxBridge/RCTCxxBridge.mm @@ -36,7 +36,6 @@ #import #import #import -#import #import #import "NSDataBigString.h" @@ -1185,9 +1184,8 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithBundleURL:(__unused NSURL *)bundleUR [self->_performanceLogger markStopForTag:RCTPLRAMBundleLoad]; [self->_performanceLogger setValue:scriptStr->size() forTag:RCTPLRAMStartupCodeSize]; if (self->_reactInstance) { - auto registry = std::make_unique(std::move(ramBundle)); - self->_reactInstance->loadRAMBundle(std::move(registry), std::move(scriptStr), - sourceUrlStr.UTF8String, !async); + self->_reactInstance->loadUnbundle(std::move(ramBundle), std::move(scriptStr), + sourceUrlStr.UTF8String, !async); } } else if (self->_reactInstance) { self->_reactInstance->loadScriptFromString(std::make_unique(script), diff --git a/React/CxxBridge/RCTObjcExecutor.mm b/React/CxxBridge/RCTObjcExecutor.mm index 53c32368d..a8428dd72 100644 --- a/React/CxxBridge/RCTObjcExecutor.mm +++ b/React/CxxBridge/RCTObjcExecutor.mm @@ -91,8 +91,8 @@ public: }]; } - void setBundleRegistry(std::unique_ptr) override { - RCTAssert(NO, @"RAM bundles are not supported in RCTObjcExecutor"); + void setJSModulesUnbundle(std::unique_ptr) override { + RCTAssert(NO, @"Unbundle is not supported in RCTObjcExecutor"); } void callFunction(const std::string &module, const std::string &method, diff --git a/React/React.xcodeproj/project.pbxproj b/React/React.xcodeproj/project.pbxproj index f8aa22880..778f9b482 100644 --- a/React/React.xcodeproj/project.pbxproj +++ b/React/React.xcodeproj/project.pbxproj @@ -1102,7 +1102,6 @@ C6194AB11EF156280034D062 /* RCTPackagerConnectionConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AAB1EF156280034D062 /* RCTPackagerConnectionConfig.h */; }; C654505E1F3BD9280090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C654505D1F3BD9280090799B /* RCTManagedPointer.h */; }; C654505F1F3BD9280090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C654505D1F3BD9280090799B /* RCTManagedPointer.h */; }; - C669D8981F72E3DE006748EB /* RAMBundleRegistry.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6D380181F71D75B00621378 /* RAMBundleRegistry.h */; }; C6827DF61EF17CCC00D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; }; C6827DF71EF17CCC00D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; }; C6827DFB1EF1800E00D66BEF /* RCTJSEnvironment.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; }; @@ -1610,7 +1609,6 @@ dstPath = include/cxxreact; dstSubfolderSpec = 16; files = ( - C669D8981F72E3DE006748EB /* RAMBundleRegistry.h in Copy Headers */, 3DA981A01E5B0E34004F2374 /* CxxModule.h in Copy Headers */, 3DA981A11E5B0E34004F2374 /* CxxNativeModule.h in Copy Headers */, 3DA981A21E5B0E34004F2374 /* JSExecutor.h in Copy Headers */, diff --git a/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp b/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp index d5f9e0971..da393c836 100644 --- a/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +++ b/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -186,10 +185,8 @@ void CatalystInstanceImpl::jniLoadScriptFromAssets( auto manager = extractAssetManager(assetManager); auto script = loadScriptFromAssets(manager, sourceURL); if (JniJSModulesUnbundle::isUnbundle(manager, sourceURL)) { - auto bundle = folly::make_unique(manager, sourceURL); - auto registry = folly::make_unique(std::move(bundle)); - instance_->loadRAMBundle( - std::move(registry), + instance_->loadUnbundle( + folly::make_unique(manager, sourceURL), std::move(script), sourceURL, loadSynchronously); @@ -217,9 +214,8 @@ void CatalystInstanceImpl::jniLoadScriptFromFile(const std::string& fileName, if (isIndexedRAMBundle(zFileName)) { auto bundle = folly::make_unique(zFileName); auto startupScript = bundle->getStartupCode(); - auto registry = folly::make_unique(std::move(bundle)); - instance_->loadRAMBundle( - std::move(registry), + instance_->loadUnbundle( + std::move(bundle), std::move(startupScript), sourceURL, loadSynchronously); diff --git a/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp b/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp index d79f4f96d..5e495ec7a 100644 --- a/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp +++ b/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.cpp @@ -84,10 +84,10 @@ void ProxyExecutor::loadApplicationScript( // we launch the application. } -void ProxyExecutor::setBundleRegistry(std::unique_ptr) { +void ProxyExecutor::setJSModulesUnbundle(std::unique_ptr) { jni::throwNewJavaException( "java/lang/UnsupportedOperationException", - "Loading application RAM bundles is not supported for proxy executors"); + "Loading application unbundles is not supported for proxy executors"); } void ProxyExecutor::callFunction(const std::string& moduleId, const std::string& methodId, const folly::dynamic& arguments) { diff --git a/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h b/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h index 30758073a..e4d88a2b3 100644 --- a/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h +++ b/ReactAndroid/src/main/jni/react/jni/ProxyExecutor.h @@ -35,8 +35,8 @@ public: virtual void loadApplicationScript( std::unique_ptr script, std::string sourceURL) override; - virtual void setBundleRegistry( - std::unique_ptr bundle) override; + virtual void setJSModulesUnbundle( + std::unique_ptr bundle) override; virtual void callFunction( const std::string& moduleId, const std::string& methodId, diff --git a/ReactCommon/cxxreact/BUCK b/ReactCommon/cxxreact/BUCK index 6b567cca0..053a23930 100644 --- a/ReactCommon/cxxreact/BUCK +++ b/ReactCommon/cxxreact/BUCK @@ -87,7 +87,6 @@ CXXREACT_PUBLIC_HEADERS = [ "NativeModule.h", "NativeToJsBridge.h", "Platform.h", - "RAMBundleRegistry.h", "RecoverableError.h", "SharedProxyCxxModule.h", "SystraceSection.h", diff --git a/ReactCommon/cxxreact/Instance.cpp b/ReactCommon/cxxreact/Instance.cpp index 04e86cc82..f3329d27c 100644 --- a/ReactCommon/cxxreact/Instance.cpp +++ b/ReactCommon/cxxreact/Instance.cpp @@ -4,10 +4,10 @@ #include "JSBigString.h" #include "JSExecutor.h" +#include "JSModulesUnbundle.h" #include "MessageQueueThread.h" #include "MethodCall.h" #include "NativeToJsBridge.h" -#include "RAMBundleRegistry.h" #include "RecoverableError.h" #include "SystraceSection.h" @@ -50,17 +50,17 @@ void Instance::initializeBridge( CHECK(nativeToJsBridge_); } -void Instance::loadApplication(std::unique_ptr bundleRegistry, +void Instance::loadApplication(std::unique_ptr unbundle, std::unique_ptr string, std::string sourceURL) { callback_->incrementPendingJSCalls(); SystraceSection s("Instance::loadApplication", "sourceURL", sourceURL); - nativeToJsBridge_->loadApplication(std::move(bundleRegistry), std::move(string), + nativeToJsBridge_->loadApplication(std::move(unbundle), std::move(string), std::move(sourceURL)); } -void Instance::loadApplicationSync(std::unique_ptr bundleRegistry, +void Instance::loadApplicationSync(std::unique_ptr unbundle, std::unique_ptr string, std::string sourceURL) { std::unique_lock lock(m_syncMutex); @@ -68,7 +68,7 @@ void Instance::loadApplicationSync(std::unique_ptr bundleRegi SystraceSection s("Instance::loadApplicationSync", "sourceURL", sourceURL); - nativeToJsBridge_->loadApplicationSync(std::move(bundleRegistry), std::move(string), + nativeToJsBridge_->loadApplicationSync(std::move(unbundle), std::move(string), std::move(sourceURL)); } @@ -91,15 +91,15 @@ void Instance::loadScriptFromString(std::unique_ptr string, } } -void Instance::loadRAMBundle(std::unique_ptr bundleRegistry, - std::unique_ptr startupScript, - std::string startupScriptSourceURL, - bool loadSynchronously) { +void Instance::loadUnbundle(std::unique_ptr unbundle, + std::unique_ptr startupScript, + std::string startupScriptSourceURL, + bool loadSynchronously) { if (loadSynchronously) { - loadApplicationSync(std::move(bundleRegistry), std::move(startupScript), + loadApplicationSync(std::move(unbundle), std::move(startupScript), std::move(startupScriptSourceURL)); } else { - loadApplication(std::move(bundleRegistry), std::move(startupScript), + loadApplication(std::move(unbundle), std::move(startupScript), std::move(startupScriptSourceURL)); } } diff --git a/ReactCommon/cxxreact/Instance.h b/ReactCommon/cxxreact/Instance.h index 45ab52842..5089830b4 100644 --- a/ReactCommon/cxxreact/Instance.h +++ b/ReactCommon/cxxreact/Instance.h @@ -21,9 +21,9 @@ namespace react { class JSBigString; class JSExecutorFactory; +class JSModulesUnbundle; class MessageQueueThread; class ModuleRegistry; -class RAMBundleRegistry; struct InstanceCallback { virtual ~InstanceCallback() {} @@ -44,9 +44,9 @@ public: void loadScriptFromString(std::unique_ptr string, std::string sourceURL, bool loadSynchronously); - void loadRAMBundle(std::unique_ptr bundleRegistry, - std::unique_ptr startupScript, - std::string startupScriptSourceURL, bool loadSynchronously); + void loadUnbundle(std::unique_ptr unbundle, + std::unique_ptr startupScript, + std::string startupScriptSourceURL, bool loadSynchronously); bool supportsProfiling(); void setGlobalVariable(std::string propName, std::unique_ptr jsonValue); @@ -73,10 +73,10 @@ public: private: void callNativeModules(folly::dynamic &&calls, bool isEndOfBatch); - void loadApplication(std::unique_ptr bundleRegistry, + void loadApplication(std::unique_ptr unbundle, std::unique_ptr startupScript, std::string startupScriptSourceURL); - void loadApplicationSync(std::unique_ptr bundleRegistry, + void loadApplicationSync(std::unique_ptr unbundle, std::unique_ptr startupScript, std::string startupScriptSourceURL); diff --git a/ReactCommon/cxxreact/JSCExecutor.cpp b/ReactCommon/cxxreact/JSCExecutor.cpp index f1162fe37..a85aa6ef2 100644 --- a/ReactCommon/cxxreact/JSCExecutor.cpp +++ b/ReactCommon/cxxreact/JSCExecutor.cpp @@ -354,11 +354,11 @@ void JSCExecutor::loadApplicationScript(std::unique_ptr scrip ReactMarker::logTaggedMarker(ReactMarker::RUN_JS_BUNDLE_STOP, scriptName.c_str()); } -void JSCExecutor::setBundleRegistry(std::unique_ptr bundleRegistry) { +void JSCExecutor::setJSModulesUnbundle(std::unique_ptr unbundle) { if (!m_bundleRegistry) { installNativeHook<&JSCExecutor::nativeRequire>("nativeRequire"); } - m_bundleRegistry = std::move(bundleRegistry); + m_bundleRegistry = folly::make_unique(std::move(unbundle)); } void JSCExecutor::bindBridge() throw(JSException) { diff --git a/ReactCommon/cxxreact/JSCExecutor.h b/ReactCommon/cxxreact/JSCExecutor.h index 25bd64c87..c027c7d12 100644 --- a/ReactCommon/cxxreact/JSCExecutor.h +++ b/ReactCommon/cxxreact/JSCExecutor.h @@ -65,7 +65,8 @@ public: std::unique_ptr script, std::string sourceURL) override; - virtual void setBundleRegistry(std::unique_ptr bundleRegistry) override; + virtual void setJSModulesUnbundle( + std::unique_ptr unbundle) override; virtual void callFunction( const std::string& moduleId, diff --git a/ReactCommon/cxxreact/JSExecutor.h b/ReactCommon/cxxreact/JSExecutor.h index b8cc3d3f1..7d9deb716 100644 --- a/ReactCommon/cxxreact/JSExecutor.h +++ b/ReactCommon/cxxreact/JSExecutor.h @@ -16,7 +16,6 @@ class JSExecutor; class JSModulesUnbundle; class MessageQueueThread; class ModuleRegistry; -class RAMBundleRegistry; // This interface describes the delegate interface required by // Executor implementations to call from JS into native code. @@ -49,9 +48,9 @@ public: std::string sourceURL) = 0; /** - * Add an application "RAM" bundle registry + * Add an application "unbundle" file */ - virtual void setBundleRegistry(std::unique_ptr bundleRegistry) = 0; + virtual void setJSModulesUnbundle(std::unique_ptr bundle) = 0; /** * Executes BatchedBridge.callFunctionReturnFlushedQueue with the module ID, diff --git a/ReactCommon/cxxreact/NativeToJsBridge.cpp b/ReactCommon/cxxreact/NativeToJsBridge.cpp index 3f1f78c83..39329c377 100644 --- a/ReactCommon/cxxreact/NativeToJsBridge.cpp +++ b/ReactCommon/cxxreact/NativeToJsBridge.cpp @@ -10,8 +10,8 @@ #include "JSBigString.h" #include "SystraceSection.h" #include "MethodCall.h" +#include "JSModulesUnbundle.h" #include "MessageQueueThread.h" -#include "RAMBundleRegistry.h" #ifdef WITH_FBSYSTRACE #include @@ -91,17 +91,17 @@ NativeToJsBridge::~NativeToJsBridge() { } void NativeToJsBridge::loadApplication( - std::unique_ptr bundleRegistry, + std::unique_ptr unbundle, std::unique_ptr startupScript, std::string startupScriptSourceURL) { runOnExecutorQueue( - [bundleRegistryWrap=folly::makeMoveWrapper(std::move(bundleRegistry)), + [unbundleWrap=folly::makeMoveWrapper(std::move(unbundle)), startupScript=folly::makeMoveWrapper(std::move(startupScript)), startupScriptSourceURL=std::move(startupScriptSourceURL)] (JSExecutor* executor) mutable { - auto bundleRegistry = bundleRegistryWrap.move(); - if (bundleRegistry) { - executor->setBundleRegistry(std::move(bundleRegistry)); + auto unbundle = unbundleWrap.move(); + if (unbundle) { + executor->setJSModulesUnbundle(std::move(unbundle)); } executor->loadApplicationScript(std::move(*startupScript), std::move(startupScriptSourceURL)); @@ -109,11 +109,11 @@ void NativeToJsBridge::loadApplication( } void NativeToJsBridge::loadApplicationSync( - std::unique_ptr bundleRegistry, + std::unique_ptr unbundle, std::unique_ptr startupScript, std::string startupScriptSourceURL) { - if (bundleRegistry) { - m_executor->setBundleRegistry(std::move(bundleRegistry)); + if (unbundle) { + m_executor->setJSModulesUnbundle(std::move(unbundle)); } m_executor->loadApplicationScript(std::move(startupScript), std::move(startupScriptSourceURL)); diff --git a/ReactCommon/cxxreact/NativeToJsBridge.h b/ReactCommon/cxxreact/NativeToJsBridge.h index dee12b6e3..fd581c743 100644 --- a/ReactCommon/cxxreact/NativeToJsBridge.h +++ b/ReactCommon/cxxreact/NativeToJsBridge.h @@ -18,10 +18,10 @@ namespace facebook { namespace react { struct InstanceCallback; +class JSModulesUnbundle; class JsToNativeBridge; class MessageQueueThread; class ModuleRegistry; -class RAMBundleRegistry; // This class manages calls from native code to JS. It also manages // executors and their threads. All functions here can be called from @@ -85,16 +85,16 @@ public: } /** - * Starts the JS application. If bundleRegistry is non-null, then it is + * Starts the JS application. If unbundle is non-null, then it is * used to fetch JavaScript modules as individual scripts. * Otherwise, the script is assumed to include all the modules. */ void loadApplication( - std::unique_ptr bundleRegistry, + std::unique_ptr unbundle, std::unique_ptr startupCode, std::string sourceURL); void loadApplicationSync( - std::unique_ptr bundleRegistry, + std::unique_ptr unbundle, std::unique_ptr startupCode, std::string sourceURL); diff --git a/ReactCommon/cxxreact/RAMBundleRegistry.cpp b/ReactCommon/cxxreact/RAMBundleRegistry.cpp index f291f71f1..2e4db7b11 100644 --- a/ReactCommon/cxxreact/RAMBundleRegistry.cpp +++ b/ReactCommon/cxxreact/RAMBundleRegistry.cpp @@ -12,10 +12,6 @@ RAMBundleRegistry::RAMBundleRegistry(std::unique_ptr mainBund } JSModulesUnbundle::Module RAMBundleRegistry::getModule(uint32_t bundleId, uint32_t moduleId) { - if (m_bundles.find(bundleId) == m_bundles.end()) { - m_bundles.emplace(bundleId, this->bundleById(bundleId)); - } - return getBundle(bundleId)->getModule(moduleId); } diff --git a/ReactCommon/cxxreact/RAMBundleRegistry.h b/ReactCommon/cxxreact/RAMBundleRegistry.h index 1d45c1e5e..f25856929 100644 --- a/ReactCommon/cxxreact/RAMBundleRegistry.h +++ b/ReactCommon/cxxreact/RAMBundleRegistry.h @@ -8,25 +8,16 @@ #include #include -#include namespace facebook { namespace react { -class RAMBundleRegistry : noncopyable { +class RAMBundleRegistry { public: constexpr static uint32_t MAIN_BUNDLE_ID = 0; explicit RAMBundleRegistry(std::unique_ptr mainBundle); - RAMBundleRegistry(RAMBundleRegistry&&) = default; - RAMBundleRegistry& operator=(RAMBundleRegistry&&) = default; - JSModulesUnbundle::Module getModule(uint32_t bundleId, uint32_t moduleId); - virtual ~RAMBundleRegistry() {}; -protected: - virtual std::unique_ptr bundleById(uint32_t index) const { - throw std::runtime_error("Please, override this method in a subclass to support multiple RAM bundles."); - } private: JSModulesUnbundle *getBundle(uint32_t bundleId) const;