Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions packages/react-native/React/Base/RCTBridge+Private.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@ RCT_EXTERN void RCTRegisterModule(Class);

@interface RCTBridge ()

#ifndef RCT_FIT_RM_OLD_RUNTIME
// Private designated initializer
- (instancetype)initWithDelegate:(id<RCTBridgeDelegate>)delegate
bundleURL:(NSURL *)bundleURL
moduleProvider:(RCTBridgeModuleListProvider)block
launchOptions:(NSDictionary *)launchOptions NS_DESIGNATED_INITIALIZER;

#endif // RCT_FIT_RM_OLD_RUNTIME

// Used for the profiler flow events between JS and native
@property (nonatomic, assign) int64_t flowID;
@property (nonatomic, assign) CFMutableDictionaryRef flowIDMap;
Expand Down Expand Up @@ -146,6 +149,8 @@ RCT_EXTERN void RCTRegisterModule(Class);
// TODO(cjhopman): this seems unsafe unless we require that it is only called on the main js queue.
@property (nonatomic, readonly) void *runtime;

#ifndef RCT_FIT_RM_OLD_RUNTIME
- (instancetype)initWithParentBridge:(RCTBridge *)bridge NS_DESIGNATED_INITIALIZER;
#endif // RCT_FIT_RM_OLD_RUNTIME

@end
108 changes: 108 additions & 0 deletions packages/react-native/React/Base/RCTBridge.mm
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ void RCTUIManagerSetDispatchAccessibilityManagerInitOntoMain(BOOL enabled)
kDispatchAccessibilityManagerInitOntoMain = enabled;
}

#ifndef RCT_FIT_RM_OLD_RUNTIME
class RCTBridgeHostTargetDelegate : public facebook::react::jsinspector_modern::HostTargetDelegate {
public:
RCTBridgeHostTargetDelegate(RCTBridge *bridge)
Expand Down Expand Up @@ -675,3 +676,110 @@ - (void)registerSegmentWithId:(NSUInteger)segmentId path:(NSString *)path
return _inspectorTarget.get();
}
@end
#else // RCT_FIT_RM_OLD_RUNTIME
@implementation RCTBridge
- (instancetype)initWithDelegate:(id<RCTBridgeDelegate>)delegate launchOptions:(NSDictionary *)launchOptions
{
return self;
}

- (instancetype)initWithBundleURL:(NSURL *)bundleURL
moduleProvider:(__strong RCTBridgeModuleListProvider)block
launchOptions:(NSDictionary *)launchOptions
{
return self;
}

- (void)enqueueJSCall:(NSString *)moduleDotMethod args:(NSArray *)args
{
}

- (void)enqueueJSCall:(NSString *)module
method:(NSString *)method
args:(NSArray *)args
completion:(__strong dispatch_block_t)completion
{
}

- (void)registerSegmentWithId:(NSUInteger)segmentId path:(NSString *)path
{
}

- (id)moduleForName:(NSString *)moduleName
{
return nil;
}

- (id)moduleForName:(NSString *)moduleName lazilyLoadIfNecessary:(BOOL)lazilyLoad
{
return nil;
}

- (id)moduleForClass:(Class)moduleClass
{
return nil;
}

- (void)setRCTTurboModuleRegistry:(id<RCTTurboModuleRegistry>)turboModuleRegistry
{
}

- (RCTBridgeModuleDecorator *)bridgeModuleDecorator
{
return nil;
}

- (NSArray *)modulesConformingToProtocol:(Protocol *)protocol
{
return @[];
}

- (BOOL)moduleIsInitialized:(Class)moduleClass
{
return NO;
}

- (void)reload __attribute__((deprecated("Use RCTReloadCommand instead")))
{
}

- (void)reloadWithReason:(NSString *)reason __attribute__((deprecated("Use RCTReloadCommand instead")))
{
}

- (void)onFastRefresh
{
}

- (void)requestReload __attribute__((deprecated("Use RCTReloadCommand instead")))
{
}

- (BOOL)isBatchActive
{
return NO;
}

- (void)setUp
{
}

- (void)enqueueCallback:(NSNumber *)cbID args:(NSArray *)args
{
}

+ (void)setCurrentBridge:(RCTBridge *)bridge
{
}

- (void)invalidate
{
}

+ (instancetype)currentBridge
{
return nil;
}

@end
#endif // RCT_FIT_RM_OLD_RUNTIME
2 changes: 2 additions & 0 deletions packages/react-native/React/Base/RCTBridgeDelegate.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
NS_ASSUME_NONNULL_BEGIN

@protocol RCTBridgeDelegate <NSObject>
#ifndef RCT_FIT_RM_OLD_RUNTIME

/**
* The location of the JavaScript source file. When running from the packager
Expand Down Expand Up @@ -69,6 +70,7 @@ NS_ASSUME_NONNULL_BEGIN
*/
- (NSDictionary<NSString *, Class> *)extraLazyModuleClassesForBridge:(RCTBridge *)bridge;

#endif // RCT_FIT_RM_OLD_RUNTIME
@end

NS_ASSUME_NONNULL_END
6 changes: 6 additions & 0 deletions packages/react-native/React/Base/RCTBridgeModule.h
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,9 @@ RCT_EXTERN_C_END
* A class that allows NativeModules and TurboModules to look up one another.
*/
@interface RCTModuleRegistry : NSObject
#ifndef RCT_FIT_RM_OLD_RUNTIME
- (void)setBridge:(RCTBridge *)bridge;
#endif // RCT_FIT_RM_OLD_RUNTIME
- (void)setTurboModuleRegistry:(id<RCTTurboModuleRegistry>)turboModuleRegistry;

- (id)moduleForName:(const char *)moduleName;
Expand All @@ -373,7 +375,9 @@ typedef void (^RCTViewRegistryUIBlock)(RCTViewRegistry *viewRegistry);
* A class that allows NativeModules to query for views, given React Tags.
*/
@interface RCTViewRegistry : NSObject
#ifndef RCT_FIT_RM_OLD_RUNTIME
- (void)setBridge:(RCTBridge *)bridge;
#endif // RCT_FIT_RM_OLD_RUNTIME
- (void)setBridgelessComponentViewProvider:(RCTBridgelessComponentViewProvider)bridgelessComponentViewProvider;

- (UIView *)viewForReactTag:(NSNumber *)reactTag;
Expand All @@ -391,7 +395,9 @@ typedef void (^RCTBridgelessJSModuleMethodInvoker)(
* as callable with React Native.
*/
@interface RCTCallableJSModules : NSObject
#ifndef RCT_FIT_RM_OLD_RUNTIME
- (void)setBridge:(RCTBridge *)bridge;
#endif // RCT_FIT_RM_OLD_RUNTIME
- (void)setBridgelessJSModuleMethodInvoker:(RCTBridgelessJSModuleMethodInvoker)bridgelessJSModuleMethodInvoker;

- (void)invokeModule:(NSString *)moduleName method:(NSString *)methodName withArgs:(NSArray *)args;
Expand Down
2 changes: 2 additions & 0 deletions packages/react-native/React/Base/RCTBridgeProxy.mm
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@ - (void)start
cmd:_cmd];
}

#ifndef RCT_FIT_RM_OLD_RUNTIME
- (void)registerModuleForFrameUpdates:(id<RCTBridgeModule>)module withModuleData:(RCTModuleData *)moduleData
{
[self logError:@"This method is not supported. Nooping" cmd:_cmd];
Expand All @@ -318,6 +319,7 @@ - (RCTModuleData *)moduleDataForName:(NSString *)moduleName
[self logError:@"This method is not supported. Returning nil." cmd:_cmd];
return nil;
}
#endif // RCT_FIT_RM_OLD_RUNTIME

- (void)registerAdditionalModuleClasses:(NSArray<Class> *)newModules
{
Expand Down
2 changes: 2 additions & 0 deletions packages/react-native/React/Base/RCTBundleManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ typedef void (^RCTBridgelessBundleURLSetter)(NSURL *bundleURL);
* A class that allows NativeModules/TurboModules to read/write the bundleURL, with or without the bridge.
*/
@interface RCTBundleManager : NSObject
#ifndef RCT_FIT_RM_OLD_RUNTIME
- (void)setBridge:(RCTBridge *)bridge;
#endif // RCT_FIT_RM_OLD_RUNTIME
- (void)setBridgelessBundleURLGetter:(RCTBridgelessBundleURLGetter)getter
andSetter:(RCTBridgelessBundleURLSetter)setter
andDefaultGetter:(RCTBridgelessBundleURLGetter)defaultGetter;
Expand Down
10 changes: 10 additions & 0 deletions packages/react-native/React/Base/RCTBundleManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,20 @@
#import "RCTBridge.h"

@implementation RCTBundleManager {
#ifndef RCT_FIT_RM_OLD_RUNTIME
__weak RCTBridge *_bridge;
#endif // RCT_FIT_RM_OLD_RUNTIME
RCTBridgelessBundleURLGetter _bridgelessBundleURLGetter;
RCTBridgelessBundleURLSetter _bridgelessBundleURLSetter;
RCTBridgelessBundleURLGetter _bridgelessBundleURLDefaultGetter;
}

#ifndef RCT_FIT_RM_OLD_RUNTIME
- (void)setBridge:(RCTBridge *)bridge
{
_bridge = bridge;
}
#endif // RCT_FIT_RM_OLD_RUNTIME

- (void)setBridgelessBundleURLGetter:(RCTBridgelessBundleURLGetter)getter
andSetter:(RCTBridgelessBundleURLSetter)setter
Expand All @@ -33,10 +37,12 @@ - (void)setBridgelessBundleURLGetter:(RCTBridgelessBundleURLGetter)getter

- (void)setBundleURL:(NSURL *)bundleURL
{
#ifndef RCT_FIT_RM_OLD_RUNTIME
if (_bridge) {
_bridge.bundleURL = bundleURL;
return;
}
#endif // RCT_FIT_RM_OLD_RUNTIME

RCTAssert(
_bridgelessBundleURLSetter != nil,
Expand All @@ -46,9 +52,11 @@ - (void)setBundleURL:(NSURL *)bundleURL

- (NSURL *)bundleURL
{
#ifndef RCT_FIT_RM_OLD_RUNTIME
if (_bridge) {
return _bridge.bundleURL;
}
#endif // RCT_FIT_RM_OLD_RUNTIME

RCTAssert(
_bridgelessBundleURLGetter != nil,
Expand All @@ -59,11 +67,13 @@ - (NSURL *)bundleURL

- (void)resetBundleURL
{
#ifndef RCT_FIT_RM_OLD_RUNTIME
RCTBridge *strongBridge = _bridge;
if (strongBridge) {
strongBridge.bundleURL = [strongBridge.delegate sourceURLForBridge:strongBridge];
return;
}
#endif // RCT_FIT_RM_OLD_RUNTIME

RCTAssert(
_bridgelessBundleURLDefaultGetter != nil,
Expand Down
2 changes: 2 additions & 0 deletions packages/react-native/React/Base/RCTCallInvokerModule.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
* LICENSE file in the root directory of this source tree.
*/

#import <Foundation/Foundation.h>

@class RCTCallInvoker;

/**
Expand Down
6 changes: 6 additions & 0 deletions packages/react-native/React/Base/RCTCallableJSModules.m
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,17 @@

@implementation RCTCallableJSModules {
RCTBridgelessJSModuleMethodInvoker _bridgelessJSModuleMethodInvoker;
#ifndef RCT_FIT_RM_OLD_RUNTIME
__weak RCTBridge *_bridge;
#endif // RCT_FIT_RM_OLD_RUNTIME
}

#ifndef RCT_FIT_RM_OLD_RUNTIME
- (void)setBridge:(RCTBridge *)bridge
{
_bridge = bridge;
}
#endif // RCT_FIT_RM_OLD_RUNTIME

- (void)setBridgelessJSModuleMethodInvoker:(RCTBridgelessJSModuleMethodInvoker)bridgelessJSModuleMethodInvoker
{
Expand All @@ -33,11 +37,13 @@ - (void)invokeModule:(NSString *)moduleName
withArgs:(NSArray *)args
onComplete:(dispatch_block_t)onComplete
{
#ifndef RCT_FIT_RM_OLD_RUNTIME
RCTBridge *bridge = _bridge;
if (bridge) {
[bridge enqueueJSCall:moduleName method:methodName args:args completion:onComplete];
return;
}
#endif // RCT_FIT_RM_OLD_RUNTIME

if (_bridgelessJSModuleMethodInvoker) {
_bridgelessJSModuleMethodInvoker(moduleName, methodName, args, onComplete);
Expand Down
2 changes: 2 additions & 0 deletions packages/react-native/React/Base/RCTJavaScriptExecutor.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
typedef void (^RCTJavaScriptCompleteBlock)(NSError *error);
typedef void (^RCTJavaScriptCallback)(id result, NSError *error);

#ifndef RCT_FIT_RM_OLD_RUNTIME
/**
* Abstracts away a JavaScript execution context - we may be running code in a
* web view (for debugging purposes), or may be running code in a `JSContext`.
Expand Down Expand Up @@ -78,3 +79,4 @@ typedef void (^RCTJavaScriptCallback)(id result, NSError *error);
- (void)executeAsyncBlockOnJavaScriptQueue:(dispatch_block_t)block;

@end
#endif // RCT_FIT_RM_OLD_RUNTIME
37 changes: 37 additions & 0 deletions packages/react-native/React/Base/RCTModuleData.mm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

#import "RCTModuleData.h"

#ifndef RCT_FIT_RM_OLD_RUNTIME

#import <objc/runtime.h>
#import <atomic>
#import <mutex>
Expand Down Expand Up @@ -485,3 +487,38 @@ - (NSString *)description
}

@end

#else // RCT_FIT_RM_OLD_RUNTIME
@implementation RCTModuleData

- (instancetype)initWithModuleClass:(Class)moduleClass
bridge:(RCTBridge *)bridge
moduleRegistry:(RCTModuleRegistry *)moduleRegistry
viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED
bundleManager:(RCTBundleManager *)bundleManager
callableJSModules:(RCTCallableJSModules *)callableJSModules
{
return self;
}

- (instancetype)initWithModuleInstance:(id<RCTBridgeModule>)instance
bridge:(RCTBridge *)bridge
moduleRegistry:(RCTModuleRegistry *)moduleRegistry
viewRegistry_DEPRECATED:(RCTViewRegistry *)viewRegistry_DEPRECATED
bundleManager:(RCTBundleManager *)bundleManager
callableJSModules:(RCTCallableJSModules *)callableJSModules
{
return self;
}

- (void)gatherConstants
{
}

- (void)invalidate
{
}

@end

#endif // RCT_FIT_RM_OLD_RUNTIME
1 change: 1 addition & 0 deletions packages/react-native/React/Base/RCTModuleMethod.mm
Original file line number Diff line number Diff line change
Expand Up @@ -476,6 +476,7 @@ - (SEL)selector
[self processMethodSignature];
RCT_PROFILE_END_EVENT(RCTProfileTagAlways, @"");
}

return _selector;
}

Expand Down
Loading
Loading