From 9180d4eb82fb70a0fd396b15660c2ac6770183c9 Mon Sep 17 00:00:00 2001 From: Adam Ernst Date: Mon, 20 Nov 2017 18:12:13 -0800 Subject: [PATCH] Make RCTPackagerConnection a singleton Reviewed By: fromcelticpark Differential Revision: D6361741 fbshipit-source-id: 96e92dff5dd3d7aa1f7555442b0eba90e7dbf47c --- .../WebSocket/RCTReconnectingWebSocket.h | 27 +- .../WebSocket/RCTReconnectingWebSocket.m | 23 +- React/Base/RCTBridge+Private.h | 10 + React/Base/RCTBridge.m | 10 - React/Base/RCTBundleURLProvider.h | 5 - React/Base/RCTBundleURLProvider.m | 6 - React/Base/RCTJSEnvironment.h | 29 -- React/CxxBridge/RCTCxxBridge.mm | 5 - React/DevSupport/RCTPackagerClient.h | 8 +- React/DevSupport/RCTPackagerClient.m | 6 +- React/DevSupport/RCTPackagerConnection.h | 63 +++- React/DevSupport/RCTPackagerConnection.m | 196 ------------ React/DevSupport/RCTPackagerConnection.mm | 285 ++++++++++++++++++ .../RCTPackagerConnectionBridgeConfig.h | 26 -- .../RCTPackagerConnectionBridgeConfig.m | 67 ---- .../DevSupport/RCTPackagerConnectionConfig.h | 27 -- React/DevSupport/RCTReloadPackagerMethod.h | 28 -- React/DevSupport/RCTReloadPackagerMethod.m | 47 --- .../RCTSamplingProfilerPackagerMethod.h | 22 -- .../RCTSamplingProfilerPackagerMethod.mm | 59 ---- React/Modules/RCTDevSettings.h | 4 +- React/Modules/RCTDevSettings.mm | 83 +++-- React/React.xcodeproj/project.pbxproj | 64 +--- React/ReactLegacy.xcodeproj/project.pbxproj | 64 +--- 24 files changed, 449 insertions(+), 715 deletions(-) delete mode 100644 React/Base/RCTJSEnvironment.h delete mode 100644 React/DevSupport/RCTPackagerConnection.m create mode 100644 React/DevSupport/RCTPackagerConnection.mm delete mode 100644 React/DevSupport/RCTPackagerConnectionBridgeConfig.h delete mode 100644 React/DevSupport/RCTPackagerConnectionBridgeConfig.m delete mode 100644 React/DevSupport/RCTPackagerConnectionConfig.h delete mode 100644 React/DevSupport/RCTReloadPackagerMethod.h delete mode 100644 React/DevSupport/RCTReloadPackagerMethod.m delete mode 100644 React/DevSupport/RCTSamplingProfilerPackagerMethod.h delete mode 100644 React/DevSupport/RCTSamplingProfilerPackagerMethod.mm diff --git a/Libraries/WebSocket/RCTReconnectingWebSocket.h b/Libraries/WebSocket/RCTReconnectingWebSocket.h index 559fa6350..7eb8fabb7 100644 --- a/Libraries/WebSocket/RCTReconnectingWebSocket.h +++ b/Libraries/WebSocket/RCTReconnectingWebSocket.h @@ -11,28 +11,29 @@ #if RCT_DEV // Only supported in dev mode -@class RCTSRWebSocket; - -@protocol RCTWebSocketProtocolDelegate - -- (void)webSocketDidOpen:(RCTSRWebSocket *)webSocket; - -- (void)webSocket:(RCTSRWebSocket *)webSocket didReceiveMessage:(id)message; - -- (void)webSocket:(RCTSRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean; +@class RCTReconnectingWebSocket; +@protocol RCTReconnectingWebSocketDelegate +- (void)reconnectingWebSocketDidOpen:(RCTReconnectingWebSocket *)webSocket; +- (void)reconnectingWebSocket:(RCTReconnectingWebSocket *)webSocket didReceiveMessage:(id)message; +/** Sent when the socket has closed due to error or clean shutdown. An automatic reconnect will start shortly. */ +- (void)reconnectingWebSocketDidClose:(RCTReconnectingWebSocket *)webSocket; @end @interface RCTReconnectingWebSocket : NSObject -- (instancetype)initWithURL:(NSURL *)url; -@property (nonatomic, weak) id delegate; -/** @brief Must be set before -start to have effect */ -@property (nonatomic, strong) dispatch_queue_t delegateDispatchQueue; +/** Delegate will be messaged on the given queue (required). */ +- (instancetype)initWithURL:(NSURL *)url queue:(dispatch_queue_t)queue; + +@property (nonatomic, weak) id delegate; - (void)send:(id)data; - (void)start; - (void)stop; +- (instancetype)initWithURL:(NSURL *)url __deprecated_msg("Use initWithURL:queue: instead"); +/** @brief Must be set before -start to have effect */ +@property (nonatomic, strong) dispatch_queue_t delegateDispatchQueue __deprecated_msg("Use initWithURL:queue: instead"); + @end #endif diff --git a/Libraries/WebSocket/RCTReconnectingWebSocket.m b/Libraries/WebSocket/RCTReconnectingWebSocket.m index f6ab409ca..899120e8e 100644 --- a/Libraries/WebSocket/RCTReconnectingWebSocket.m +++ b/Libraries/WebSocket/RCTReconnectingWebSocket.m @@ -58,8 +58,6 @@ static void my_os_log_error_impl(void *dso, os_log_t log, os_log_type_t type, co RCTSRWebSocket *_socket; } -@synthesize delegate = _delegate; - + (void)load { static dispatch_once_t onceToken; @@ -75,14 +73,20 @@ static void my_os_log_error_impl(void *dso, os_log_t log, os_log_type_t type, co }); } -- (instancetype)initWithURL:(NSURL *)url +- (instancetype)initWithURL:(NSURL *)url queue:(dispatch_queue_t)queue { if (self = [super init]) { _url = url; + _delegateDispatchQueue = queue; } return self; } +- (instancetype)initWithURL:(NSURL *)url +{ + return [self initWithURL:url queue:dispatch_get_main_queue()]; +} + - (void)send:(id)data { [_socket send:data]; @@ -93,9 +97,7 @@ static void my_os_log_error_impl(void *dso, os_log_t log, os_log_type_t type, co [self stop]; _socket = [[RCTSRWebSocket alloc] initWithURL:_url]; _socket.delegate = self; - if (_delegateDispatchQueue) { - [_socket setDelegateDispatchQueue:_delegateDispatchQueue]; - } + [_socket setDelegateDispatchQueue:_delegateDispatchQueue]; [_socket open]; } @@ -108,9 +110,7 @@ static void my_os_log_error_impl(void *dso, os_log_t log, os_log_type_t type, co - (void)webSocket:(RCTSRWebSocket *)webSocket didReceiveMessage:(id)message { - if (_delegate) { - [_delegate webSocket:webSocket didReceiveMessage:message]; - } + [_delegate reconnectingWebSocket:self didReceiveMessage:message]; } - (void)reconnect @@ -126,17 +126,18 @@ static void my_os_log_error_impl(void *dso, os_log_t log, os_log_type_t type, co - (void)webSocketDidOpen:(RCTSRWebSocket *)webSocket { - [self.delegate webSocketDidOpen:webSocket]; + [_delegate reconnectingWebSocketDidOpen:self]; } - (void)webSocket:(RCTSRWebSocket *)webSocket didFailWithError:(NSError *)error { + [_delegate reconnectingWebSocketDidClose:self]; [self reconnect]; } - (void)webSocket:(RCTSRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean { - [self.delegate webSocket:webSocket didCloseWithCode:code reason:reason wasClean:wasClean]; + [_delegate reconnectingWebSocketDidClose:self]; [self reconnect]; } diff --git a/React/Base/RCTBridge+Private.h b/React/Base/RCTBridge+Private.h index ec7dde92f..343d998db 100644 --- a/React/Base/RCTBridge+Private.h +++ b/React/Base/RCTBridge+Private.h @@ -7,6 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ +#import #import #import @@ -158,6 +159,15 @@ RCT_EXTERN void RCTVerifyAllModulesExported(NSArray *extraModules); @end +@interface RCTBridge (JavaScriptCore) + +/** + * The raw JSGlobalContextRef used by the bridge. + */ +@property (nonatomic, readonly, assign) JSGlobalContextRef jsContextRef; + +@end + @interface RCTBatchedBridge : RCTBridge @property (nonatomic, weak, readonly) RCTBridge *parentBridge; diff --git a/React/Base/RCTBridge.m b/React/Base/RCTBridge.m index 33d8c977a..13329f272 100644 --- a/React/Base/RCTBridge.m +++ b/React/Base/RCTBridge.m @@ -17,7 +17,6 @@ #if RCT_ENABLE_INSPECTOR #import "RCTInspectorDevServerHelper.h" #endif -#import "RCTJSEnvironment.h" #import "RCTLog.h" #import "RCTModuleData.h" #import "RCTPerformanceLogger.h" @@ -403,15 +402,6 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init) [self.batchedBridge registerSegmentWithId:segmentId path:path]; } -@end - -@implementation RCTBridge (JavaScriptCore) - -- (JSContext *)jsContext -{ - return [self.batchedBridge jsContext]; -} - - (JSGlobalContextRef)jsContextRef { return [self.batchedBridge jsContextRef]; diff --git a/React/Base/RCTBundleURLProvider.h b/React/Base/RCTBundleURLProvider.h index efc9be73b..7a2562e41 100644 --- a/React/Base/RCTBundleURLProvider.h +++ b/React/Base/RCTBundleURLProvider.h @@ -59,11 +59,6 @@ extern const NSUInteger kRCTBundleURLProviderDefaultPort; resourceExtension:(NSString *)extension offlineBundle:(NSBundle *)offlineBundle; -/** - * Returns the URL of the packager server. - */ -- (NSURL *)packagerServerURL; - /** * The IP address or hostname of the packager. */ diff --git a/React/Base/RCTBundleURLProvider.m b/React/Base/RCTBundleURLProvider.m index e6daa3020..39eb34abc 100644 --- a/React/Base/RCTBundleURLProvider.m +++ b/React/Base/RCTBundleURLProvider.m @@ -111,12 +111,6 @@ static NSURL *serverRootWithHost(NSString *host) return nil; } -- (NSURL *)packagerServerURL -{ - NSString *const host = [self packagerServerHost]; - return host ? serverRootWithHost(host) : nil; -} - - (NSURL *)jsBundleURLForBundleRoot:(NSString *)bundleRoot fallbackResource:(NSString *)resourceName fallbackExtension:(NSString *)extension { NSString *packagerServerHost = [self packagerServerHost]; diff --git a/React/Base/RCTJSEnvironment.h b/React/Base/RCTJSEnvironment.h deleted file mode 100644 index a135f62a5..000000000 --- a/React/Base/RCTJSEnvironment.h +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -#import - -@protocol RCTJSEnvironment - -/** - * The JSContext used by the bridge. - */ -@property (nonatomic, readonly, strong) JSContext *jsContext; -/** - * The raw JSGlobalContextRef used by the bridge. - */ -@property (nonatomic, readonly, assign) JSGlobalContextRef jsContextRef; - -@end - -@interface RCTBridge (RCTJSEnvironment) - -@end diff --git a/React/CxxBridge/RCTCxxBridge.mm b/React/CxxBridge/RCTCxxBridge.mm index e87196886..937c0997a 100644 --- a/React/CxxBridge/RCTCxxBridge.mm +++ b/React/CxxBridge/RCTCxxBridge.mm @@ -188,11 +188,6 @@ struct RCTInstanceCallback : public InstanceCallback { } } -- (JSContext *)jsContext -{ - return contextForGlobalContextRef([self jsContextRef]); -} - - (JSGlobalContextRef)jsContextRef { return (JSGlobalContextRef)(self->_reactInstance ? self->_reactInstance->getJavaScriptContext() : nullptr); diff --git a/React/DevSupport/RCTPackagerClient.h b/React/DevSupport/RCTPackagerClient.h index 4b070aa9b..3b5e38c87 100644 --- a/React/DevSupport/RCTPackagerClient.h +++ b/React/DevSupport/RCTPackagerClient.h @@ -12,14 +12,14 @@ #if RCT_DEV // Only supported in dev mode @class RCTPackagerClientResponder; -@class RCTSRWebSocket; +@class RCTReconnectingWebSocket; extern const int RCT_PACKAGER_CLIENT_PROTOCOL_VERSION; @protocol RCTPackagerClientMethod -- (void)handleRequest:(id)params withResponder:(RCTPackagerClientResponder *)responder; -- (void)handleNotification:(id)params; +- (void)handleRequest:(NSDictionary *)params withResponder:(RCTPackagerClientResponder *)responder; +- (void)handleNotification:(NSDictionary *)params; @optional @@ -30,7 +30,7 @@ extern const int RCT_PACKAGER_CLIENT_PROTOCOL_VERSION; @interface RCTPackagerClientResponder : NSObject -- (instancetype)initWithId:(id)msgId socket:(RCTSRWebSocket *)socket; +- (instancetype)initWithId:(id)msgId socket:(RCTReconnectingWebSocket *)socket; - (void)respondWithResult:(id)result; - (void)respondWithError:(id)error; diff --git a/React/DevSupport/RCTPackagerClient.m b/React/DevSupport/RCTPackagerClient.m index f38617bd0..e0befe33d 100644 --- a/React/DevSupport/RCTPackagerClient.m +++ b/React/DevSupport/RCTPackagerClient.m @@ -10,7 +10,7 @@ #import "RCTPackagerClient.h" #import -#import +#import #import #if RCT_DEV // Only supported in dev mode @@ -19,10 +19,10 @@ const int RCT_PACKAGER_CLIENT_PROTOCOL_VERSION = 2; @implementation RCTPackagerClientResponder { id _msgId; - __weak RCTSRWebSocket *_socket; + __weak RCTReconnectingWebSocket *_socket; } -- (instancetype)initWithId:(id)msgId socket:(RCTSRWebSocket *)socket +- (instancetype)initWithId:(id)msgId socket:(RCTReconnectingWebSocket *)socket { if (self = [super init]) { _msgId = msgId; diff --git a/React/DevSupport/RCTPackagerConnection.h b/React/DevSupport/RCTPackagerConnection.h index ed8c951bb..155dd4515 100644 --- a/React/DevSupport/RCTPackagerConnection.h +++ b/React/DevSupport/RCTPackagerConnection.h @@ -15,27 +15,62 @@ NS_ASSUME_NONNULL_BEGIN -@class RCTBridge; @protocol RCTPackagerClientMethod; -@protocol RCTPackagerConnectionConfig; +@class RCTPackagerClientResponder; -/** - * Encapsulates connection to React Native packager. - * Dispatches messages from websocket to message handlers that must implement - * protocol. - * Message dispatch is performed on the main queue, unless message handler - * provides its own queue by overriding "methodQueue" method. - */ +typedef uint32_t RCTHandlerToken; +typedef void (^RCTNotificationHandler)(NSDictionary *); +typedef void (^RCTRequestHandler)(NSDictionary *, RCTPackagerClientResponder *); +typedef void (^RCTConnectedHandler)(void); + +/** Encapsulates singleton connection to React Native packager. */ @interface RCTPackagerConnection : NSObject -+ (void)checkDefaultConnectionWithCallback:(void (^)(BOOL isRunning))callback - queue:(dispatch_queue_t)queue; ++ (instancetype)sharedPackagerConnection; -+ (instancetype)connectionForBridge:(RCTBridge *)bridge; -- (instancetype)initWithConfig:(id)config; -- (void)addHandler:(id)handler forMethod:(NSString *)name; +/** + * Registers a handler for a notification broadcast from the packager. An + * example is "reload" - an instruction to reload from the packager. + * If multiple notification handlers are registered for the same method, they + * will all be invoked sequentially. + */ +- (RCTHandlerToken)addNotificationHandler:(RCTNotificationHandler)handler + queue:(dispatch_queue_t)queue + forMethod:(NSString *)method; + +/** + * Registers a handler for a request from the packager. An example is + * pokeSamplingProfiler; it asks for profile data from the client. + * Only one handler can be registered for a given method; calling this + * displaces any previous request handler registered for that method. + */ +- (RCTHandlerToken)addRequestHandler:(RCTRequestHandler)handler + queue:(dispatch_queue_t)queue + forMethod:(NSString *)method; + +/** + * Registers a handler that runs at most once, when the connection to the + * packager has been established. The handler will be dispatched immediately + * if the connection is already established. + */ +- (RCTHandlerToken)addConnectedHandler:(RCTConnectedHandler)handler + queue:(dispatch_queue_t)queue; + +/** Removes a handler. Silently does nothing if the token is not valid. */ +- (void)removeHandler:(RCTHandlerToken)token; + +/** Disconnects and removes all handlers. */ - (void)stop; +/** + * Historically no distinction was made between notification and request + * handlers. If you use this method, it will be registered as *both* a + * notification handler *and* a request handler. You should migrate to the + * new block-based API instead. + */ +- (void)addHandler:(id)handler + forMethod:(NSString *)method __deprecated_msg("Use addRequestHandler or addNotificationHandler instead"); + @end NS_ASSUME_NONNULL_END diff --git a/React/DevSupport/RCTPackagerConnection.m b/React/DevSupport/RCTPackagerConnection.m deleted file mode 100644 index 5b16bb9a2..000000000 --- a/React/DevSupport/RCTPackagerConnection.m +++ /dev/null @@ -1,196 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "RCTPackagerConnection.h" - -#import - -#import -#import -#import -#import -#import -#import -#import -#import -#import - -#import "RCTPackagerConnectionBridgeConfig.h" -#import "RCTReloadPackagerMethod.h" -#import "RCTSamplingProfilerPackagerMethod.h" - -#if RCT_DEV - -static dispatch_queue_t RCTPackagerConnectionQueue() -{ - static dispatch_queue_t queue; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - queue = dispatch_queue_create("com.facebook.RCTPackagerConnectionQueue", DISPATCH_QUEUE_SERIAL); - }); - return queue; -}; - -@interface RCTPackagerConnection () -@end - -@implementation RCTPackagerConnection { - NSURL *_packagerURL; - RCTReconnectingWebSocket *_socket; - NSMutableDictionary> *_handlers; -} - -+ (void)checkDefaultConnectionWithCallback:(void (^)(BOOL isRunning))callback - queue:(dispatch_queue_t)queue -{ - RCTBundleURLProvider *const settings = [RCTBundleURLProvider sharedSettings]; - NSURLComponents *components = [NSURLComponents new]; - components.scheme = @"http"; - components.host = settings.jsLocation ?: @"localhost"; - components.port = @(kRCTBundleURLProviderDefaultPort); - components.path = @"/status"; - [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:components.URL] - queue:[NSOperationQueue mainQueue] - completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { - NSString *const status = data != nil - ? [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] - : nil; - BOOL isRunning = [status isEqualToString:@"packager-status:running"]; - - dispatch_async(queue, ^{ - callback(isRunning); - }); - }]; -} - -+ (instancetype)connectionForBridge:(RCTBridge *)bridge -{ - RCTPackagerConnectionBridgeConfig *config = [[RCTPackagerConnectionBridgeConfig alloc] initWithBridge:bridge]; - return [[[self class] alloc] initWithConfig:config]; -} - -- (instancetype)initWithConfig:(id)config -{ - if (self = [super init]) { - _packagerURL = [config packagerURL]; - _handlers = [[config defaultPackagerMethods] mutableCopy]; - [self connect]; - } - return self; -} - -- (void)connect -{ - RCTAssertMainQueue(); - - NSURL *url = _packagerURL; - if (!url) { - return; - } - - // The jsPackagerClient is a static map that holds different packager clients per the packagerURL - // In case many instances of DevMenu are created, the latest instance that use the same URL as - // previous instances will override given packager client's method handlers - static NSMutableDictionary *socketConnections = nil; - if (socketConnections == nil) { - socketConnections = [NSMutableDictionary new]; - } - - NSString *key = [url absoluteString]; - _socket = socketConnections[key]; - if (!_socket) { - _socket = [[RCTReconnectingWebSocket alloc] initWithURL:url]; - _socket.delegateDispatchQueue = RCTPackagerConnectionQueue(); - [_socket start]; - socketConnections[key] = _socket; - } - - _socket.delegate = self; -} - -- (void)stop -{ - [_socket stop]; -} - - -- (void)addHandler:(id)handler forMethod:(NSString *)name -{ - @synchronized(self) { - _handlers[name] = handler; - } -} - -- (id)handlerForMethod:(NSString *)name -{ - @synchronized(self) { - return _handlers[name]; - } -} - -static BOOL isSupportedVersion(NSNumber *version) -{ - NSArray *const kSupportedVersions = @[ @(RCT_PACKAGER_CLIENT_PROTOCOL_VERSION) ]; - return [kSupportedVersions containsObject:version]; -} - -#pragma mark - RCTWebSocketProtocolDelegate - -- (void)webSocket:(RCTSRWebSocket *)webSocket didReceiveMessage:(id)message -{ - NSError *error = nil; - NSDictionary *msg = RCTJSONParse(message, &error); - - if (error) { - RCTLogError(@"%@ failed to parse message with error %@\n\n%@\n", [self class], error, msg); - return; - } - - if (!isSupportedVersion(msg[@"version"])) { - RCTLogError(@"%@ received message with not supported version %@", [self class], msg[@"version"]); - return; - } - - id methodHandler = [self handlerForMethod:msg[@"method"]]; - if (!methodHandler) { - if (msg[@"id"]) { - NSString *errorMsg = [NSString stringWithFormat:@"%@ no handler found for method %@", [self class], msg[@"method"]]; - RCTLogError(errorMsg, msg[@"method"]); - [[[RCTPackagerClientResponder alloc] initWithId:msg[@"id"] - socket:webSocket] respondWithError:errorMsg]; - } - return; // If it was a broadcast then we ignore it gracefully - } - - dispatch_queue_t methodQueue = [methodHandler respondsToSelector:@selector(methodQueue)] - ? [methodHandler methodQueue] - : dispatch_get_main_queue(); - - dispatch_async(methodQueue, ^{ - if (msg[@"id"]) { - [methodHandler handleRequest:msg[@"params"] - withResponder:[[RCTPackagerClientResponder alloc] initWithId:msg[@"id"] - socket:webSocket]]; - } else { - [methodHandler handleNotification:msg[@"params"]]; - } - }); -} - -- (void)webSocketDidOpen:(RCTSRWebSocket *)webSocket -{ -} - -- (void)webSocket:(RCTSRWebSocket *)webSocket didCloseWithCode:(NSInteger)code reason:(NSString *)reason wasClean:(BOOL)wasClean -{ -} - -@end - -#endif diff --git a/React/DevSupport/RCTPackagerConnection.mm b/React/DevSupport/RCTPackagerConnection.mm new file mode 100644 index 000000000..572c14faa --- /dev/null +++ b/React/DevSupport/RCTPackagerConnection.mm @@ -0,0 +1,285 @@ +/** + * Copyright (c) 2015-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +#import "RCTPackagerConnection.h" + +#import +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#if RCT_DEV +@interface RCTPackagerConnection () +@end + +template +struct Registration { + NSString *method; + Handler handler; + dispatch_queue_t queue; + uint32_t token; +}; + +@implementation RCTPackagerConnection { + std::mutex _mutex; // protects all ivars + RCTReconnectingWebSocket *_socket; + BOOL _socketConnected; + NSString *_jsLocationForSocket; + id _bundleURLChangeObserver; + uint32_t _nextToken; + std::vector> _notificationRegistrations; + std::vector> _requestRegistrations; + std::vector> _connectedRegistrations; +} + ++ (instancetype)sharedPackagerConnection +{ + static RCTPackagerConnection *connection; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + connection = [RCTPackagerConnection new]; + }); + return connection; +} + +- (instancetype)init +{ + if (self = [super init]) { + _nextToken = 1; // Prevent randomly erasing a handler if you pass a bogus 0 token + _jsLocationForSocket = [RCTBundleURLProvider sharedSettings].jsLocation; + _socket = socketForLocation(_jsLocationForSocket); + _socket.delegate = self; + [_socket start]; + + RCTPackagerConnection *const __weak weakSelf = self; + _bundleURLChangeObserver = + [[NSNotificationCenter defaultCenter] + addObserverForName:RCTBundleURLProviderUpdatedNotification + object:nil + queue:[NSOperationQueue mainQueue] + usingBlock:^(NSNotification *_Nonnull note) { + [weakSelf bundleURLSettingsChanged]; + }]; + } + return self; +} + +static RCTReconnectingWebSocket *socketForLocation(NSString *const jsLocation) +{ + NSURLComponents *const components = [NSURLComponents new]; + components.host = jsLocation ?: @"localhost"; + components.scheme = @"http"; + components.port = @(kRCTBundleURLProviderDefaultPort); + components.path = @"/message"; + components.queryItems = @[[NSURLQueryItem queryItemWithName:@"role" value:@"ios"]]; + static dispatch_queue_t queue; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + queue = dispatch_queue_create("com.facebook.RCTPackagerConnectionQueue", DISPATCH_QUEUE_SERIAL); + }); + return [[RCTReconnectingWebSocket alloc] initWithURL:components.URL queue:queue]; +} + +- (void)stop +{ + std::lock_guard l(_mutex); + if (_socket == nil) { + // Already stopped + return; + } + [[NSNotificationCenter defaultCenter] removeObserver:_bundleURLChangeObserver]; + _bundleURLChangeObserver = nil; + _socketConnected = NO; + [_socket stop]; + _socket = nil; + _notificationRegistrations.clear(); + _requestRegistrations.clear(); +} + +- (void)bundleURLSettingsChanged +{ + std::lock_guard l(_mutex); + if (_socket == nil) { + return; // already stopped + } + + NSString *const jsLocation = [RCTBundleURLProvider sharedSettings].jsLocation; + if ([jsLocation isEqual:_jsLocationForSocket]) { + return; // unchanged + } + + _socket.delegate = nil; + [_socket stop]; + _jsLocationForSocket = jsLocation; + _socket = socketForLocation(jsLocation); + _socket.delegate = self; + [_socket start]; +} + +- (RCTHandlerToken)addNotificationHandler:(RCTNotificationHandler)handler queue:(dispatch_queue_t)queue forMethod:(NSString *)method +{ + std::lock_guard l(_mutex); + const auto token = _nextToken++; + _notificationRegistrations.push_back({method, handler, queue, token}); + return token; +} + +- (RCTHandlerToken)addRequestHandler:(RCTRequestHandler)handler queue:(dispatch_queue_t)queue forMethod:(NSString *)method +{ + std::lock_guard l(_mutex); + const auto token = _nextToken++; + _requestRegistrations.push_back({method, handler, queue, token}); + return token; +} + +- (RCTHandlerToken)addConnectedHandler:(RCTConnectedHandler)handler queue:(dispatch_queue_t)queue +{ + std::lock_guard l(_mutex); + if (_socketConnected) { + dispatch_async(queue, ^{ + handler(); + }); + return 0; // _nextToken starts at 1, so 0 is a no-op token + } else { + const auto token = _nextToken++; + _connectedRegistrations.push_back({nil, handler, queue, token}); + return token; + } +} + +- (void)removeHandler:(RCTHandlerToken)token +{ + std::lock_guard l(_mutex); + eraseRegistrationsWithToken(_notificationRegistrations, token); + eraseRegistrationsWithToken(_requestRegistrations, token); + eraseRegistrationsWithToken(_connectedRegistrations, token); +} + +template +static void eraseRegistrationsWithToken(std::vector> ®istrations, RCTHandlerToken token) +{ + registrations.erase(std::remove_if(registrations.begin(), registrations.end(), + [&token](const auto ®) { return reg.token == token; }), + registrations.end()); +} + +- (void)addHandler:(id)handler forMethod:(NSString *)method +{ + dispatch_queue_t queue = [handler respondsToSelector:@selector(methodQueue)] + ? [handler methodQueue] : dispatch_get_main_queue(); + + [self addNotificationHandler:^(NSDictionary *notification) { + [handler handleNotification:notification]; + } queue:queue forMethod:method]; + [self addRequestHandler:^(NSDictionary *request, RCTPackagerClientResponder *responder) { + [handler handleRequest:request withResponder:responder]; + } queue:queue forMethod:method]; +} + +static BOOL isSupportedVersion(NSNumber *version) +{ + NSArray *const kSupportedVersions = @[ @(RCT_PACKAGER_CLIENT_PROTOCOL_VERSION) ]; + return [kSupportedVersions containsObject:version]; +} + +#pragma mark - RCTReconnectingWebSocketDelegate + +- (void)reconnectingWebSocketDidOpen:(RCTReconnectingWebSocket *)webSocket +{ + std::vector> registrations; + { + std::lock_guard l(_mutex); + _socketConnected = YES; + registrations = _connectedRegistrations; + _connectedRegistrations.clear(); + } + for (const auto ®istration : registrations) { + // Beware: don't capture the reference to handler in a dispatched block! + RCTConnectedHandler handler = registration.handler; + dispatch_async(registration.queue, ^{ handler(); }); + } +} + +- (void)reconnectingWebSocket:(RCTReconnectingWebSocket *)webSocket didReceiveMessage:(id)message +{ + NSError *error = nil; + NSDictionary *msg = RCTJSONParse(message, &error); + + if (error) { + RCTLogError(@"%@ failed to parse message with error %@\n\n%@\n", [self class], error, msg); + return; + } + + if (!isSupportedVersion(msg[@"version"])) { + RCTLogError(@"%@ received message with not supported version %@", [self class], msg[@"version"]); + return; + } + + NSString *const method = msg[@"method"]; + NSDictionary *const params = msg[@"params"]; + id messageId = msg[@"id"]; + + if (messageId) { // Request + const std::vector> registrations(registrationsWithMethod(_mutex, _requestRegistrations, method)); + if (registrations.empty()) { + RCTLogError(@"No handler found for packager method %@", msg[@"method"]); + [[[RCTPackagerClientResponder alloc] initWithId:messageId + socket:webSocket] + respondWithError: + [NSString stringWithFormat:@"No handler found for packager method %@", msg[@"method"]]]; + } else { + // If there are multiple matching request registrations, only one can win; + // otherwise the packager would get multiple responses. Choose the last one. + RCTRequestHandler handler = registrations.back().handler; + dispatch_async(registrations.back().queue, ^{ + handler(params, [[RCTPackagerClientResponder alloc] initWithId:messageId socket:webSocket]); + }); + } + } else { // Notification + const std::vector> registrations(registrationsWithMethod(_mutex, _notificationRegistrations, method)); + for (const auto ®istration : registrations) { + // Beware: don't capture the reference to handler in a dispatched block! + RCTNotificationHandler handler = registration.handler; + dispatch_async(registration.queue, ^{ handler(params); }); + } + } +} + +- (void)reconnectingWebSocketDidClose:(RCTReconnectingWebSocket *)webSocket +{ + std::lock_guard l(_mutex); + _socketConnected = NO; +} + +template +static std::vector> registrationsWithMethod(std::mutex &mutex, const std::vector> ®istrations, NSString *method) +{ + std::lock_guard l(mutex); // Scope lock acquisition to prevent deadlock when calling out + std::vector> matches; + for (const auto ® : registrations) { + if ([reg.method isEqual:method]) { + matches.push_back(reg); + } + } + return matches; +} + +@end + +#endif diff --git a/React/DevSupport/RCTPackagerConnectionBridgeConfig.h b/React/DevSupport/RCTPackagerConnectionBridgeConfig.h deleted file mode 100644 index afd02d51c..000000000 --- a/React/DevSupport/RCTPackagerConnectionBridgeConfig.h +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "RCTPackagerConnectionConfig.h" - -#if RCT_DEV // Only supported in dev mode - -NS_ASSUME_NONNULL_BEGIN - -@class RCTBridge; - -@interface RCTPackagerConnectionBridgeConfig : NSObject - -- (instancetype)initWithBridge:(RCTBridge *)bridge; - -@end - -NS_ASSUME_NONNULL_END - -#endif diff --git a/React/DevSupport/RCTPackagerConnectionBridgeConfig.m b/React/DevSupport/RCTPackagerConnectionBridgeConfig.m deleted file mode 100644 index 97d78f00b..000000000 --- a/React/DevSupport/RCTPackagerConnectionBridgeConfig.m +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "RCTPackagerConnectionBridgeConfig.h" - -#import - -#import -#import - -#import "RCTJSEnvironment.h" -#import "RCTReloadPackagerMethod.h" -#import "RCTSamplingProfilerPackagerMethod.h" - -#if RCT_DEV // Only supported in dev mode - -@implementation RCTPackagerConnectionBridgeConfig { - id _jsEnvironment; - RCTReloadPackagerMethodBlock _reloadCommand; - NSURL *_sourceURL; -} - -- (instancetype)initWithBridge:(RCTBridge *)bridge -{ - if (self = [super init]) { - _jsEnvironment = bridge; - _sourceURL = [bridge.bundleURL copy]; - __weak RCTBridge *weakBridge = bridge; - _reloadCommand = ^(id params) { - if (params != (id)kCFNull && [params[@"debug"] boolValue]) { - weakBridge.executorClass = objc_lookUpClass("RCTWebSocketExecutor"); - } - [weakBridge reload]; - }; - } - return self; -} - -- (NSURL *)packagerURL -{ - NSURLComponents *components = [NSURLComponents new]; - NSString *host = [_sourceURL host]; - components.host = host ?: @"localhost"; - components.scheme = host ? [_sourceURL scheme] : @"http"; - components.port = [_sourceURL port] ?: @(kRCTBundleURLProviderDefaultPort); - components.path = @"/message"; - components.queryItems = @[[NSURLQueryItem queryItemWithName:@"role" value:@"ios-rn-rctdevmenu"]]; - return components.URL; -} - -- (NSDictionary> *)defaultPackagerMethods -{ - return @{ - @"reload": [[RCTReloadPackagerMethod alloc] initWithReloadCommand:_reloadCommand callbackQueue:dispatch_get_main_queue()], - @"pokeSamplingProfiler": [[RCTSamplingProfilerPackagerMethod alloc] initWithJSEnvironment:_jsEnvironment] - }; -} - -@end - -#endif diff --git a/React/DevSupport/RCTPackagerConnectionConfig.h b/React/DevSupport/RCTPackagerConnectionConfig.h deleted file mode 100644 index 090bede5f..000000000 --- a/React/DevSupport/RCTPackagerConnectionConfig.h +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -#if RCT_DEV // Only supported in dev mode - -NS_ASSUME_NONNULL_BEGIN - -@protocol RCTPackagerClientMethod; - -@protocol RCTPackagerConnectionConfig - -@property (nonatomic, copy, readonly) NSURL *packagerURL; -@property (nonatomic, copy, readonly) NSDictionary> *defaultPackagerMethods; - -@end - -NS_ASSUME_NONNULL_END - -#endif diff --git a/React/DevSupport/RCTReloadPackagerMethod.h b/React/DevSupport/RCTReloadPackagerMethod.h deleted file mode 100644 index d19fa6553..000000000 --- a/React/DevSupport/RCTReloadPackagerMethod.h +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -@class RCTBridge; - -#if RCT_DEV // Only supported in dev mode - -NS_ASSUME_NONNULL_BEGIN - -typedef void (^RCTReloadPackagerMethodBlock)(id); - -@interface RCTReloadPackagerMethod : NSObject - -- (instancetype)initWithReloadCommand:(RCTReloadPackagerMethodBlock)block callbackQueue:(dispatch_queue_t)callbackQueue; - -@end - -NS_ASSUME_NONNULL_END - -#endif diff --git a/React/DevSupport/RCTReloadPackagerMethod.m b/React/DevSupport/RCTReloadPackagerMethod.m deleted file mode 100644 index 317daec42..000000000 --- a/React/DevSupport/RCTReloadPackagerMethod.m +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "RCTReloadPackagerMethod.h" - -#import "RCTBridge.h" - -#if RCT_DEV // Only supported in dev mode - -@implementation RCTReloadPackagerMethod { - RCTReloadPackagerMethodBlock _block; - dispatch_queue_t _callbackQueue; -} - -- (instancetype)initWithReloadCommand:(RCTReloadPackagerMethodBlock)block callbackQueue:(dispatch_queue_t)callbackQueue -{ - if (self = [super init]) { - _block = [block copy]; - _callbackQueue = callbackQueue; - } - return self; -} - -- (void)handleRequest:(__unused id)params withResponder:(RCTPackagerClientResponder *)responder -{ - [responder respondWithError:[NSString stringWithFormat: @"%@ does not support onRequest", [self class]]]; -} - -- (void)handleNotification:(id)params -{ - _block(params); -} - -- (dispatch_queue_t)methodQueue -{ - return _callbackQueue; -} - -@end - -#endif diff --git a/React/DevSupport/RCTSamplingProfilerPackagerMethod.h b/React/DevSupport/RCTSamplingProfilerPackagerMethod.h deleted file mode 100644 index 8ffff9bdd..000000000 --- a/React/DevSupport/RCTSamplingProfilerPackagerMethod.h +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -@protocol RCTJSEnvironment; - -#if RCT_DEV // Only supported in dev mode - -@interface RCTSamplingProfilerPackagerMethod : NSObject - -- (instancetype)initWithJSEnvironment:(id)jsEnvironment; - -@end - -#endif diff --git a/React/DevSupport/RCTSamplingProfilerPackagerMethod.mm b/React/DevSupport/RCTSamplingProfilerPackagerMethod.mm deleted file mode 100644 index a8bde1fbf..000000000 --- a/React/DevSupport/RCTSamplingProfilerPackagerMethod.mm +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "RCTSamplingProfilerPackagerMethod.h" - -#import - -#import - -#import "RCTJSEnvironment.h" -#import "RCTLog.h" - -#if RCT_DEV // Only supported in dev mode - -@implementation RCTSamplingProfilerPackagerMethod { - __weak id _jsEnvironment; -} - -- (instancetype)initWithJSEnvironment:(id)jsEnvironment -{ - if (self = [super init]) { - _jsEnvironment = jsEnvironment; - } - return self; -} - -- (void)handleRequest:(__unused id)params withResponder:(RCTPackagerClientResponder *)responder -{ - JSGlobalContextRef globalContext = _jsEnvironment.jsContextRef; - if (!JSC_JSSamplingProfilerEnabled(globalContext)) { - [responder respondWithError:@"The JSSamplingProfiler is disabled. See 'iOS specific setup' section here https://fburl.com/u4lw7xeq for some help"]; - return; - } - - // JSPokeSamplingProfiler() toggles the profiling process - JSValueRef jsResult = JSC_JSPokeSamplingProfiler(globalContext); - if (JSC_JSValueGetType(globalContext, jsResult) == kJSTypeNull) { - [responder respondWithResult:@"started"]; - } else { - JSContext *context = _jsEnvironment.jsContext; - NSString *results = [[JSC_JSValue(globalContext) valueWithJSValueRef:jsResult inContext:context] toObject]; - [responder respondWithResult:results]; - } -} - -- (void)handleNotification:(__unused id)params -{ - RCTLogError(@"%@ does not implement onNotification", [self class]); -} - -@end - -#endif diff --git a/React/Modules/RCTDevSettings.h b/React/Modules/RCTDevSettings.h index a0e3afc3a..e3b2a8b15 100644 --- a/React/Modules/RCTDevSettings.h +++ b/React/Modules/RCTDevSettings.h @@ -93,9 +93,7 @@ @property (nonatomic, assign) BOOL isPerfMonitorShown; #if RCT_DEV - -- (void)addHandler:(id)handler forPackagerMethod:(NSString *)name; - +- (void)addHandler:(id)handler forPackagerMethod:(NSString *)name __deprecated_msg("Use RCTPackagerConnection directly instead"); #endif @end diff --git a/React/Modules/RCTDevSettings.mm b/React/Modules/RCTDevSettings.mm index 964b3dca9..f8e79f84f 100644 --- a/React/Modules/RCTDevSettings.mm +++ b/React/Modules/RCTDevSettings.mm @@ -19,8 +19,8 @@ #import "RCTBridgeModule.h" #import "RCTEventDispatcher.h" #import "RCTJSCSamplingProfiler.h" -#import "RCTJSEnvironment.h" #import "RCTLog.h" +#import "RCTPackagerClient.h" #import "RCTProfile.h" #import "RCTUtils.h" @@ -111,9 +111,9 @@ static NSString *const kRCTDevSettingsUserDefaultsKey = @"RCTDevMenu"; NSURLSessionDataTask *_liveReloadUpdateTask; NSURL *_liveReloadURL; BOOL _isJSLoaded; - #if ENABLE_PACKAGER_CONNECTION - RCTPackagerConnection *_packagerConnection; + RCTHandlerToken _reloadToken; + RCTHandlerToken _pokeSamplingProfilerToken; #endif } @@ -165,7 +165,28 @@ RCT_EXPORT_MODULE() { RCTAssert(_bridge == nil, @"RCTDevSettings module should not be reused"); _bridge = bridge; - [self _configurePackagerConnection]; + +#if ENABLE_PACKAGER_CONNECTION + RCTBridge *__weak weakBridge = bridge; + _reloadToken = + [[RCTPackagerConnection sharedPackagerConnection] + addNotificationHandler:^(id params) { + if (params != (id)kCFNull && [params[@"debug"] boolValue]) { + weakBridge.executorClass = objc_lookUpClass("RCTWebSocketExecutor"); + } + [weakBridge reload]; + } + queue:dispatch_get_main_queue() + forMethod:@"reload"]; + + _pokeSamplingProfilerToken = + [[RCTPackagerConnection sharedPackagerConnection] + addRequestHandler:^(NSDictionary *params, RCTPackagerClientResponder *responder) { + pokeSamplingProfiler(weakBridge, responder); + } + queue:dispatch_get_main_queue() + forMethod:@"pokeSamplingProfiler"]; +#endif #if RCT_ENABLE_INSPECTOR // we need this dispatch back to the main thread because even though this @@ -182,6 +203,30 @@ RCT_EXPORT_MODULE() #endif } +static void pokeSamplingProfiler(RCTBridge *const bridge, RCTPackagerClientResponder *const responder) +{ + if (!bridge) { + [responder respondWithError:@"The bridge is nil. Try again."]; + return; + } + + JSGlobalContextRef globalContext = bridge.jsContextRef; + if (!JSC_JSSamplingProfilerEnabled(globalContext)) { + [responder respondWithError:@"The JSSamplingProfiler is disabled. See 'iOS specific setup' section here https://fburl.com/u4lw7xeq for some help"]; + return; + } + + // JSPokeSamplingProfiler() toggles the profiling process + JSValueRef jsResult = JSC_JSPokeSamplingProfiler(globalContext); + if (JSC_JSValueGetType(globalContext, jsResult) == kJSTypeNull) { + [responder respondWithResult:@"started"]; + } else { + JSContext *context = [JSC_JSContext(globalContext) contextWithJSGlobalContextRef:globalContext]; + NSString *results = [[JSC_JSValue(globalContext) valueWithJSValueRef:jsResult inContext:context] toObject]; + [responder respondWithResult:results]; + } +} + - (dispatch_queue_t)methodQueue { return dispatch_get_main_queue(); @@ -190,6 +235,10 @@ RCT_EXPORT_MODULE() - (void)invalidate { [_liveReloadUpdateTask cancel]; +#if ENABLE_PACKAGER_CONNECTION + [[RCTPackagerConnection sharedPackagerConnection] removeHandler:_reloadToken]; + [[RCTPackagerConnection sharedPackagerConnection] removeHandler:_pokeSamplingProfilerToken]; +#endif [[NSNotificationCenter defaultCenter] removeObserver:self]; } @@ -338,12 +387,12 @@ RCT_EXPORT_METHOD(toggleElementInspector) - (void)toggleJSCSamplingProfiler { - JSContext *context = _bridge.jsContext; - JSGlobalContextRef globalContext = context.JSGlobalContextRef; + JSGlobalContextRef globalContext = _bridge.jsContextRef; // JSPokeSamplingProfiler() toggles the profiling process JSValueRef jsResult = JSC_JSPokeSamplingProfiler(globalContext); if (JSC_JSValueGetType(globalContext, jsResult) != kJSTypeNull) { + JSContext *context = [JSC_JSContext(globalContext) contextWithJSGlobalContextRef:globalContext]; NSString *results = [[JSC_JSValue(globalContext) valueWithJSValueRef:jsResult inContext:context] toObject]; RCTJSCSamplingProfiler *profilerModule = [_bridge moduleForClass:[RCTJSCSamplingProfiler class]]; [profilerModule operationCompletedWithResults:results]; @@ -394,33 +443,19 @@ RCT_EXPORT_METHOD(toggleElementInspector) } } -#if ENABLE_PACKAGER_CONNECTION +#if RCT_DEV - (void)addHandler:(id)handler forPackagerMethod:(NSString *)name { - RCTAssert(_packagerConnection, @"Expected packager connection"); - [_packagerConnection addHandler:handler forMethod:name]; +#if ENABLE_PACKAGER_CONNECTION + [[RCTPackagerConnection sharedPackagerConnection] addHandler:handler forMethod:name]; +#endif } -#elif RCT_DEV - -- (void)addHandler:(id)handler forPackagerMethod:(NSString *)name {} - #endif #pragma mark - Internal -- (void)_configurePackagerConnection -{ -#if ENABLE_PACKAGER_CONNECTION - if (_packagerConnection) { - return; - } - - _packagerConnection = [RCTPackagerConnection connectionForBridge:_bridge]; -#endif -} - /** * Query the data source for all possible settings and make sure we're doing the right * thing for the state of each setting. diff --git a/React/React.xcodeproj/project.pbxproj b/React/React.xcodeproj/project.pbxproj index b64ab270c..9756d7fd4 100644 --- a/React/React.xcodeproj/project.pbxproj +++ b/React/React.xcodeproj/project.pbxproj @@ -548,16 +548,8 @@ 3D7BFD181EA8E351008DFB7A /* RCTPackagerClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD0C1EA8E351008DFB7A /* RCTPackagerClient.m */; }; 3D7BFD1D1EA8E351008DFB7A /* RCTPackagerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFD0F1EA8E351008DFB7A /* RCTPackagerConnection.h */; }; 3D7BFD1E1EA8E351008DFB7A /* RCTPackagerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFD0F1EA8E351008DFB7A /* RCTPackagerConnection.h */; }; - 3D7BFD1F1EA8E351008DFB7A /* RCTPackagerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD101EA8E351008DFB7A /* RCTPackagerConnection.m */; }; - 3D7BFD201EA8E351008DFB7A /* RCTPackagerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD101EA8E351008DFB7A /* RCTPackagerConnection.m */; }; - 3D7BFD211EA8E351008DFB7A /* RCTReloadPackagerMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFD111EA8E351008DFB7A /* RCTReloadPackagerMethod.h */; }; - 3D7BFD221EA8E351008DFB7A /* RCTReloadPackagerMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFD111EA8E351008DFB7A /* RCTReloadPackagerMethod.h */; }; - 3D7BFD231EA8E351008DFB7A /* RCTReloadPackagerMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD121EA8E351008DFB7A /* RCTReloadPackagerMethod.m */; }; - 3D7BFD241EA8E351008DFB7A /* RCTReloadPackagerMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD121EA8E351008DFB7A /* RCTReloadPackagerMethod.m */; }; - 3D7BFD251EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFD131EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.h */; }; - 3D7BFD261EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFD131EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.h */; }; - 3D7BFD271EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD141EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm */; }; - 3D7BFD281EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD141EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm */; }; + 3D7BFD1F1EA8E351008DFB7A /* RCTPackagerConnection.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD101EA8E351008DFB7A /* RCTPackagerConnection.mm */; }; + 3D7BFD201EA8E351008DFB7A /* RCTPackagerConnection.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFD101EA8E351008DFB7A /* RCTPackagerConnection.mm */; }; 3D7BFD291EA8E37B008DFB7A /* RCTDevSettings.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 130E3D861E6A082100ACE484 /* RCTDevSettings.h */; }; 3D7BFD2D1EA8E3FA008DFB7A /* RCTReconnectingWebSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFD2B1EA8E3FA008DFB7A /* RCTReconnectingWebSocket.h */; }; 3D7BFD2E1EA8E3FA008DFB7A /* RCTReconnectingWebSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFD2B1EA8E3FA008DFB7A /* RCTReconnectingWebSocket.h */; }; @@ -1151,19 +1143,9 @@ C606692F1F3CC60500E67165 /* RCTModuleMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = C606692D1F3CC60500E67165 /* RCTModuleMethod.mm */; }; C60669361F3CCF1B00E67165 /* RCTManagedPointer.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669351F3CCF1B00E67165 /* RCTManagedPointer.mm */; }; C60669371F3CCF1B00E67165 /* RCTManagedPointer.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669351F3CCF1B00E67165 /* RCTManagedPointer.mm */; }; - C6194AAC1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AA91EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h */; }; - C6194AAD1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AA91EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h */; }; - C6194AAE1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C6194AAA1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m */; }; - C6194AAF1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C6194AAA1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m */; }; - C6194AB01EF156280034D062 /* RCTPackagerConnectionConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AAB1EF156280034D062 /* RCTPackagerConnectionConfig.h */; }; - 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 */; }; - C6827DFC1EF1801B00D66BEF /* RCTJSEnvironment.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; }; C6D3801A1F71D76100621378 /* RAMBundleRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D380181F71D75B00621378 /* RAMBundleRegistry.h */; }; C6D3801B1F71D76200621378 /* RAMBundleRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D380181F71D75B00621378 /* RAMBundleRegistry.h */; }; C6D3801C1F71D76700621378 /* RAMBundleRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6D380191F71D75B00621378 /* RAMBundleRegistry.cpp */; }; @@ -1307,7 +1289,6 @@ 3D0E37901F1CC5E100DCAC9F /* RCTWebSocketModule.h in Copy Headers */, 5960C1BF1F0804F50066FD5B /* RCTLayoutAnimation.h in Copy Headers */, 5960C1C01F0804F50066FD5B /* RCTLayoutAnimationGroup.h in Copy Headers */, - C6827DFC1EF1801B00D66BEF /* RCTJSEnvironment.h in Copy Headers */, 59EB6DC01EBD70130072A5E7 /* RCTUIManagerObserverCoordinator.h in Copy Headers */, 59B1EBCA1EBD47520047B19B /* RCTShadowView+Layout.h in Copy Headers */, 3D0B84271EC0B45400B2BD8E /* RCTLinkingManager.h in Copy Headers */, @@ -1530,7 +1511,6 @@ 3D0E378F1F1CC5CF00DCAC9F /* RCTWebSocketModule.h in Copy Headers */, 5960C1BD1F0804DF0066FD5B /* RCTLayoutAnimation.h in Copy Headers */, 5960C1BE1F0804DF0066FD5B /* RCTLayoutAnimationGroup.h in Copy Headers */, - C6827DFB1EF1800E00D66BEF /* RCTJSEnvironment.h in Copy Headers */, 59EB6DBF1EBD6FFC0072A5E7 /* RCTUIManagerObserverCoordinator.h in Copy Headers */, 59B1EBC91EBD46250047B19B /* RCTShadowView+Layout.h in Copy Headers */, 3D383D1F1EBD27A8005632C8 /* RCTBridge+Private.h in Copy Headers */, @@ -2017,11 +1997,7 @@ 3D7BFD0B1EA8E351008DFB7A /* RCTPackagerClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerClient.h; sourceTree = ""; }; 3D7BFD0C1EA8E351008DFB7A /* RCTPackagerClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPackagerClient.m; sourceTree = ""; }; 3D7BFD0F1EA8E351008DFB7A /* RCTPackagerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnection.h; sourceTree = ""; }; - 3D7BFD101EA8E351008DFB7A /* RCTPackagerConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPackagerConnection.m; sourceTree = ""; }; - 3D7BFD111EA8E351008DFB7A /* RCTReloadPackagerMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTReloadPackagerMethod.h; sourceTree = ""; }; - 3D7BFD121EA8E351008DFB7A /* RCTReloadPackagerMethod.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTReloadPackagerMethod.m; sourceTree = ""; }; - 3D7BFD131EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSamplingProfilerPackagerMethod.h; sourceTree = ""; }; - 3D7BFD141EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTSamplingProfilerPackagerMethod.mm; sourceTree = ""; }; + 3D7BFD101EA8E351008DFB7A /* RCTPackagerConnection.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTPackagerConnection.mm; sourceTree = ""; }; 3D7BFD2B1EA8E3FA008DFB7A /* RCTReconnectingWebSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTReconnectingWebSocket.h; path = WebSocket/RCTReconnectingWebSocket.h; sourceTree = ""; }; 3D7BFD2C1EA8E3FA008DFB7A /* RCTSRWebSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTSRWebSocket.h; path = WebSocket/RCTSRWebSocket.h; sourceTree = ""; }; 3D92B0A71E03699D0018521A /* CxxModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CxxModule.h; sourceTree = ""; }; @@ -2183,11 +2159,7 @@ C60128AA1F3D1258009DF9FF /* RCTCxxConvert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTCxxConvert.m; sourceTree = ""; }; C606692D1F3CC60500E67165 /* RCTModuleMethod.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTModuleMethod.mm; sourceTree = ""; }; C60669351F3CCF1B00E67165 /* RCTManagedPointer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTManagedPointer.mm; sourceTree = ""; }; - C6194AA91EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnectionBridgeConfig.h; sourceTree = ""; }; - C6194AAA1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPackagerConnectionBridgeConfig.m; sourceTree = ""; }; - C6194AAB1EF156280034D062 /* RCTPackagerConnectionConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnectionConfig.h; sourceTree = ""; }; C654505D1F3BD9280090799B /* RCTManagedPointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTManagedPointer.h; sourceTree = ""; }; - C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSEnvironment.h; sourceTree = ""; }; C6D380181F71D75B00621378 /* RAMBundleRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RAMBundleRegistry.h; sourceTree = ""; }; C6D380191F71D75B00621378 /* RAMBundleRegistry.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RAMBundleRegistry.cpp; sourceTree = ""; }; CF2731BE1E7B8DE40044CA4F /* RCTDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDeviceInfo.h; sourceTree = ""; }; @@ -2644,14 +2616,7 @@ 3D7BFD0B1EA8E351008DFB7A /* RCTPackagerClient.h */, 3D7BFD0C1EA8E351008DFB7A /* RCTPackagerClient.m */, 3D7BFD0F1EA8E351008DFB7A /* RCTPackagerConnection.h */, - 3D7BFD101EA8E351008DFB7A /* RCTPackagerConnection.m */, - C6194AA91EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h */, - C6194AAA1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m */, - C6194AAB1EF156280034D062 /* RCTPackagerConnectionConfig.h */, - 3D7BFD111EA8E351008DFB7A /* RCTReloadPackagerMethod.h */, - 3D7BFD121EA8E351008DFB7A /* RCTReloadPackagerMethod.m */, - 3D7BFD131EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.h */, - 3D7BFD141EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm */, + 3D7BFD101EA8E351008DFB7A /* RCTPackagerConnection.mm */, ); path = DevSupport; sourceTree = ""; @@ -2810,7 +2775,6 @@ AC70D2E81DE489E4002E6351 /* RCTJavaScriptLoader.mm */, 135A9BF91E7B0EAE00587AEB /* RCTJSCErrorHandling.h */, 135A9BFA1E7B0EAE00587AEB /* RCTJSCErrorHandling.mm */, - C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */, 008341F51D1DB34400876D9A /* RCTJSStackFrame.h */, 008341F41D1DB34400876D9A /* RCTJSStackFrame.m */, 13A1F71C1A75392D00D3D453 /* RCTKeyCommands.h */, @@ -2969,7 +2933,6 @@ 3D302F261DF828F800D6DDAE /* RCTResizeMode.h in Headers */, 3D302F271DF828F800D6DDAE /* RCTLinkingManager.h in Headers */, 3D7BFD161EA8E351008DFB7A /* RCTPackagerClient.h in Headers */, - C6827DF71EF17CCC00D66BEF /* RCTJSEnvironment.h in Headers */, 3D302F281DF828F800D6DDAE /* RCTNetworking.h in Headers */, 3D302F291DF828F800D6DDAE /* RCTNetworkTask.h in Headers */, 3D7BFD2E1EA8E3FA008DFB7A /* RCTReconnectingWebSocket.h in Headers */, @@ -3002,7 +2965,6 @@ 3D302F3E1DF828F800D6DDAE /* RCTKeyCommands.h in Headers */, 135A9C031E7B0F6100587AEB /* RCTJSCErrorHandling.h in Headers */, 599FAA411FB274980058CCF6 /* RCTSurfaceRootShadowViewDelegate.h in Headers */, - 3D7BFD261EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.h in Headers */, 3D302F3F1DF828F800D6DDAE /* RCTLog.h in Headers */, 599FAA431FB274980058CCF6 /* RCTSurfaceRootView.h in Headers */, 3D302F401DF828F800D6DDAE /* RCTModuleData.h in Headers */, @@ -3020,7 +2982,6 @@ 3D302F4B1DF828F800D6DDAE /* RCTTouchEvent.h in Headers */, 59D031F21F8353D3008361F0 /* RCTSafeAreaView.h in Headers */, 3D302F4C1DF828F800D6DDAE /* RCTTouchHandler.h in Headers */, - 3D7BFD221EA8E351008DFB7A /* RCTReloadPackagerMethod.h in Headers */, 3D302F4D1DF828F800D6DDAE /* RCTURLRequestDelegate.h in Headers */, 3D302F4E1DF828F800D6DDAE /* RCTURLRequestHandler.h in Headers */, 59500D441F71C63F00B122B7 /* RCTUIManagerUtils.h in Headers */, @@ -3045,7 +3006,6 @@ 3D302F5E1DF828F800D6DDAE /* RCTI18nManager.h in Headers */, 3D302F5F1DF828F800D6DDAE /* RCTI18nUtil.h in Headers */, 3D302F601DF828F800D6DDAE /* RCTKeyboardObserver.h in Headers */, - C6194AB11EF156280034D062 /* RCTPackagerConnectionConfig.h in Headers */, 3D302F611DF828F800D6DDAE /* RCTRedBox.h in Headers */, 3D302F621DF828F800D6DDAE /* RCTSourceCode.h in Headers */, 3D302F631DF828F800D6DDAE /* RCTStatusBarManager.h in Headers */, @@ -3078,7 +3038,6 @@ 130443DD1E401AF500D93A67 /* RCTConvert+Transform.h in Headers */, 134D63C41F1FEC65008872B5 /* RCTCxxBridgeDelegate.h in Headers */, 3D302F801DF828F800D6DDAE /* RCTNavItem.h in Headers */, - C6194AAD1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */, 3D302F811DF828F800D6DDAE /* RCTNavItemManager.h in Headers */, 135A9C061E7B0F7800587AEB /* RCTJSCHelpers.h in Headers */, 3D302F841DF828F800D6DDAE /* RCTPointerEvents.h in Headers */, @@ -3275,7 +3234,6 @@ 13F880381E296D2800C3C7A1 /* JSCWrapper.h in Headers */, 3D80DA221DF820620028D040 /* RCTBridge+Private.h in Headers */, 599FAA461FB274980058CCF6 /* RCTSurfaceStage.h in Headers */, - 3D7BFD211EA8E351008DFB7A /* RCTReloadPackagerMethod.h in Headers */, 599FAA361FB274980058CCF6 /* RCTSurface.h in Headers */, 3D80DA231DF820620028D040 /* RCTBridgeDelegate.h in Headers */, 3D80DA241DF820620028D040 /* RCTBridgeMethod.h in Headers */, @@ -3297,7 +3255,6 @@ 3D80DA2E1DF820620028D040 /* RCTImageSource.h in Headers */, 3D80DA2F1DF820620028D040 /* RCTInvalidating.h in Headers */, 598FD1971F817336006C54CB /* RCTModalManager.h in Headers */, - 3D7BFD251EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.h in Headers */, 599FAA3A1FB274980058CCF6 /* RCTSurfaceDelegate.h in Headers */, 9936F3381F5F2F480010BF04 /* PrivateDataBase.h in Headers */, 3D80DA301DF820620028D040 /* RCTJavaScriptExecutor.h in Headers */, @@ -3343,7 +3300,6 @@ 3D80DA511DF820620028D040 /* RCTEventEmitter.h in Headers */, 59A7B9FD1E577DBF0068EDBF /* RCTRootContentView.h in Headers */, 3D80DA521DF820620028D040 /* RCTExceptionsManager.h in Headers */, - C6194AAC1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */, 3D80DA531DF820620028D040 /* RCTI18nManager.h in Headers */, 3D7BFD2F1EA8E3FA008DFB7A /* RCTSRWebSocket.h in Headers */, 3D80DA541DF820620028D040 /* RCTI18nUtil.h in Headers */, @@ -3360,7 +3316,6 @@ 3D80DA601DF820620028D040 /* RCTActivityIndicatorViewManager.h in Headers */, 59500D431F71C63F00B122B7 /* RCTUIManagerUtils.h in Headers */, 5960C1B91F0804A00066FD5B /* RCTLayoutAnimationGroup.h in Headers */, - C6194AB01EF156280034D062 /* RCTPackagerConnectionConfig.h in Headers */, CF2731C01E7B8DE40044CA4F /* RCTDeviceInfo.h in Headers */, 3D80DA611DF820620028D040 /* RCTAnimationType.h in Headers */, 3D0E378A1F1CC40000DCAC9F /* RCTWebSocketModule.h in Headers */, @@ -3402,7 +3357,6 @@ 3D80DA7F1DF820620028D040 /* RCTScrollView.h in Headers */, 3D80DA801DF820620028D040 /* RCTScrollViewManager.h in Headers */, 3D80DA811DF820620028D040 /* RCTSegmentedControl.h in Headers */, - C6827DF61EF17CCC00D66BEF /* RCTJSEnvironment.h in Headers */, 599FAA3C1FB274980058CCF6 /* RCTSurfaceRootShadowView.h in Headers */, 3D80DA821DF820620028D040 /* RCTSegmentedControlManager.h in Headers */, 3D80DA831DF820620028D040 /* RCTShadowView.h in Headers */, @@ -3913,7 +3867,6 @@ 3D80D91B1DF6F8200028D040 /* RCTPlatform.m in Sources */, 2DD0EFE11DA84F2800B0C975 /* RCTStatusBarManager.m in Sources */, 2D3B5EC91D9B095C00451313 /* RCTBorderDrawing.m in Sources */, - C6194AAF1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */, 66CD94B81F1045E700CB3C7C /* RCTMaskedViewManager.m in Sources */, 2D3B5E991D9B089A00451313 /* RCTDisplayLink.m in Sources */, 2D3B5EA11D9B08B600451313 /* RCTModuleData.mm in Sources */, @@ -3938,7 +3891,7 @@ 13134C9F1E296B2A00B9F3CB /* RCTCxxModule.mm in Sources */, 2D3B5EE31D9B09B700451313 /* RCTSegmentedControl.m in Sources */, 130443A41E3FEAC600D93A67 /* RCTFollyConvert.mm in Sources */, - 3D7BFD201EA8E351008DFB7A /* RCTPackagerConnection.m in Sources */, + 3D7BFD201EA8E351008DFB7A /* RCTPackagerConnection.mm in Sources */, 5960C1B81F0804A00066FD5B /* RCTLayoutAnimation.m in Sources */, 2D3B5EB71D9B091800451313 /* RCTRedBox.m in Sources */, 3D7AA9C61E548CDD001955CF /* NSDataBigString.mm in Sources */, @@ -3954,7 +3907,6 @@ 2D3B5EED1D9B09D700451313 /* RCTTabBarManager.m in Sources */, 2D3B5EEF1D9B09DC00451313 /* RCTViewManager.m in Sources */, 13134C971E296B2A00B9F3CB /* RCTObjcExecutor.mm in Sources */, - 3D7BFD241EA8E351008DFB7A /* RCTReloadPackagerMethod.m in Sources */, 2D3B5EE11D9B09B000451313 /* RCTScrollView.m in Sources */, 130E3D8B1E6A083900ACE484 /* RCTDevSettings.mm in Sources */, 2D3B5ED81D9B098A00451313 /* RCTNavigatorManager.m in Sources */, @@ -4019,7 +3971,6 @@ 2D3B5EC51D9B094D00451313 /* RCTProfileTrampoline-i386.S in Sources */, 657734951EE8356100A0E9EA /* RCTInspectorPackagerConnection.m in Sources */, 2D3B5EC41D9B094B00451313 /* RCTProfileTrampoline-arm64.S in Sources */, - 3D7BFD281EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm in Sources */, 2D3B5EBB1D9B092300451313 /* RCTI18nManager.m in Sources */, 2D3B5EBE1D9B092D00451313 /* RCTUIManager.m in Sources */, C60128AE1F3D1258009DF9FF /* RCTCxxConvert.m in Sources */, @@ -4187,7 +4138,6 @@ 13134C861E296B2A00B9F3CB /* RCTCxxBridge.mm in Sources */, 13B07FEF1A69327A00A75B9A /* RCTAlertManager.m in Sources */, 599FAA4C1FB274980058CCF6 /* RCTSurfaceView.mm in Sources */, - 3D7BFD231EA8E351008DFB7A /* RCTReloadPackagerMethod.m in Sources */, 352DCFF01D19F4C20056D623 /* RCTI18nUtil.m in Sources */, 66CD94B71F1045E700CB3C7C /* RCTMaskedViewManager.m in Sources */, 008341F61D1DB34400876D9A /* RCTJSStackFrame.m in Sources */, @@ -4198,7 +4148,6 @@ 830A229E1A66C68A008503DA /* RCTRootView.m in Sources */, 13B07FF01A69327A00A75B9A /* RCTExceptionsManager.m in Sources */, 13A0C28A1B74F71200B29F6F /* RCTDevMenu.m in Sources */, - 3D7BFD271EA8E351008DFB7A /* RCTSamplingProfilerPackagerMethod.mm in Sources */, 13BCE8091C99CB9D00DD7AAD /* RCTRootShadowView.m in Sources */, 006FC4141D9B20820057AAAD /* RCTMultipartDataTask.m in Sources */, 13CC8A821B17642100940AE7 /* RCTBorderDrawing.m in Sources */, @@ -4268,7 +4217,7 @@ 13D9FEEE1CDCD93000158BD7 /* RCTKeyboardObserver.m in Sources */, 135A9C001E7B0EE600587AEB /* RCTJSCHelpers.mm in Sources */, B233E6EA1D2D845D00BC68BA /* RCTI18nManager.m in Sources */, - 3D7BFD1F1EA8E351008DFB7A /* RCTPackagerConnection.m in Sources */, + 3D7BFD1F1EA8E351008DFB7A /* RCTPackagerConnection.mm in Sources */, 13456E931ADAD2DE009F94A7 /* RCTConvert+CoreLocation.m in Sources */, 137327E91AA5CF210034F82E /* RCTTabBarItemManager.m in Sources */, 13A1F71E1A75392D00D3D453 /* RCTKeyCommands.m in Sources */, @@ -4280,7 +4229,6 @@ 590D7BFF1EBD458B00D8A370 /* RCTShadowView+Layout.m in Sources */, 66CD94B31F1045E700CB3C7C /* RCTMaskedView.m in Sources */, 13C156061AB1A2840079392D /* RCTWebViewManager.m in Sources */, - C6194AAE1EF156280034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */, 58114A161AAE854800E7D092 /* RCTPicker.m in Sources */, 137327E81AA5CF210034F82E /* RCTTabBarItem.m in Sources */, 83A1FE8C1B62640A00BE0E65 /* RCTModalHostView.m in Sources */, diff --git a/React/ReactLegacy.xcodeproj/project.pbxproj b/React/ReactLegacy.xcodeproj/project.pbxproj index 8b8f8fb3d..8f953a5ff 100644 --- a/React/ReactLegacy.xcodeproj/project.pbxproj +++ b/React/ReactLegacy.xcodeproj/project.pbxproj @@ -430,8 +430,8 @@ 3D7749441DC1065C007EC8D8 /* RCTPlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7749431DC1065C007EC8D8 /* RCTPlatform.m */; }; 3D7BFCE71EA8E1F4008DFB7A /* RCTPackagerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFCE51EA8E1F4008DFB7A /* RCTPackagerConnection.h */; }; 3D7BFCE81EA8E1F4008DFB7A /* RCTPackagerConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D7BFCE51EA8E1F4008DFB7A /* RCTPackagerConnection.h */; }; - 3D7BFCE91EA8E1F4008DFB7A /* RCTPackagerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFCE61EA8E1F4008DFB7A /* RCTPackagerConnection.m */; }; - 3D7BFCEA1EA8E1F4008DFB7A /* RCTPackagerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFCE61EA8E1F4008DFB7A /* RCTPackagerConnection.m */; }; + 3D7BFCE91EA8E1F4008DFB7A /* RCTPackagerConnection.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFCE61EA8E1F4008DFB7A /* RCTPackagerConnection.mm */; }; + 3D7BFCEA1EA8E1F4008DFB7A /* RCTPackagerConnection.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D7BFCE61EA8E1F4008DFB7A /* RCTPackagerConnection.mm */; }; 3D7BFCEB1EA8E23A008DFB7A /* RCTDevSettings.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = B505583C1E43DFB900F71A00 /* RCTDevSettings.h */; }; 3D80D9171DF6F7A80028D040 /* JSBundleType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AC70D2EB1DE48A22002E6351 /* JSBundleType.cpp */; }; 3D80D9181DF6F7A80028D040 /* JSBundleType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AC70D2EB1DE48A22002E6351 /* JSBundleType.cpp */; }; @@ -742,14 +742,6 @@ A12E9E251E5DEB4D0029001B /* RCTPackagerClient.m in Sources */ = {isa = PBXBuildFile; fileRef = A12E9E181E5DEA350029001B /* RCTPackagerClient.m */; }; A12E9E2A1E5DEB860029001B /* RCTReconnectingWebSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = A12E9E281E5DEB860029001B /* RCTReconnectingWebSocket.h */; }; A12E9E2B1E5DEB860029001B /* RCTSRWebSocket.h in Headers */ = {isa = PBXBuildFile; fileRef = A12E9E291E5DEB860029001B /* RCTSRWebSocket.h */; }; - A12E9E5A1E5DF8600029001B /* RCTReloadPackagerMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = A12E9E581E5DF8600029001B /* RCTReloadPackagerMethod.h */; }; - A12E9E5B1E5DF8600029001B /* RCTReloadPackagerMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = A12E9E591E5DF8600029001B /* RCTReloadPackagerMethod.m */; }; - A12E9E5C1E5DF86F0029001B /* RCTReloadPackagerMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = A12E9E581E5DF8600029001B /* RCTReloadPackagerMethod.h */; }; - A12E9E5D1E5DF8720029001B /* RCTReloadPackagerMethod.m in Sources */ = {isa = PBXBuildFile; fileRef = A12E9E591E5DF8600029001B /* RCTReloadPackagerMethod.m */; }; - A12E9E8E1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = A12E9E8C1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.h */; }; - A12E9E8F1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = A12E9E8D1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.mm */; }; - A12E9E901E5DFA6E0029001B /* RCTSamplingProfilerPackagerMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = A12E9E8D1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.mm */; }; - A12E9E911E5DFA720029001B /* RCTSamplingProfilerPackagerMethod.h in Headers */ = {isa = PBXBuildFile; fileRef = A12E9E8C1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.h */; }; A2440AA21DF8D854006E7BFC /* RCTReloadCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = A2440AA01DF8D854006E7BFC /* RCTReloadCommand.h */; }; A2440AA31DF8D854006E7BFC /* RCTReloadCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = A2440AA11DF8D854006E7BFC /* RCTReloadCommand.m */; }; A2440AA41DF8D865006E7BFC /* RCTReloadCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = A2440AA01DF8D854006E7BFC /* RCTReloadCommand.h */; }; @@ -770,18 +762,8 @@ C60669321F3CC7BD00E67165 /* RCTModuleMethod.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669301F3CC7BD00E67165 /* RCTModuleMethod.mm */; }; C60669391F3CCF3F00E67165 /* RCTManagedPointer.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669381F3CCF3F00E67165 /* RCTManagedPointer.mm */; }; C606693A1F3CCF3F00E67165 /* RCTManagedPointer.mm in Sources */ = {isa = PBXBuildFile; fileRef = C60669381F3CCF3F00E67165 /* RCTManagedPointer.mm */; }; - C6194AB51EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AB21EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h */; }; - C6194AB61EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AB21EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h */; }; - C6194AB71EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C6194AB31EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m */; }; - C6194AB81EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = C6194AB31EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m */; }; - C6194AB91EF1569C0034D062 /* RCTPackagerConnectionConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AB41EF1569C0034D062 /* RCTPackagerConnectionConfig.h */; }; - C6194ABA1EF1569C0034D062 /* RCTPackagerConnectionConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = C6194AB41EF1569C0034D062 /* RCTPackagerConnectionConfig.h */; }; C65450611F3BD94C0090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C65450601F3BD94C0090799B /* RCTManagedPointer.h */; }; C65450621F3BD94C0090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C65450601F3BD94C0090799B /* RCTManagedPointer.h */; }; - C6827DF91EF17DC100D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */; }; - C6827DFA1EF17DC100D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */; }; - C6827DFD1EF1803F00D66BEF /* RCTJSEnvironment.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */; }; - C6827DFE1EF1804600D66BEF /* RCTJSEnvironment.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */; }; C6FC33521F70494E00643E54 /* RCTShadowView+Internal.m in Sources */ = {isa = PBXBuildFile; fileRef = C6FC33511F7048A800643E54 /* RCTShadowView+Internal.m */; }; C6FC33531F70494F00643E54 /* RCTShadowView+Internal.m in Sources */ = {isa = PBXBuildFile; fileRef = C6FC33511F7048A800643E54 /* RCTShadowView+Internal.m */; }; C6FC33541F70495200643E54 /* RCTShadowView+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C6FC33501F7048A800643E54 /* RCTShadowView+Internal.h */; }; @@ -853,7 +835,6 @@ dstSubfolderSpec = 16; files = ( 59DA56301F71C73F00D9EADA /* RCTUIManagerUtils.h in Copy Headers */, - C6827DFE1EF1804600D66BEF /* RCTJSEnvironment.h in Copy Headers */, 598C22DB1EDCBF82009AF445 /* RCTUIManagerObserverCoordinator.h in Copy Headers */, 5954055C1EC03A8E00766D3C /* RCTShadowView+Layout.h in Copy Headers */, 2D7B05391E9D82080032604E /* RCTBridge+Private.h in Copy Headers */, @@ -1016,7 +997,6 @@ dstSubfolderSpec = 16; files = ( 59DA562F1F71C73400D9EADA /* RCTUIManagerUtils.h in Copy Headers */, - C6827DFD1EF1803F00D66BEF /* RCTJSEnvironment.h in Copy Headers */, 598C22DA1EDCBF61009AF445 /* RCTUIManagerObserverCoordinator.h in Copy Headers */, 5954055B1EC03A7F00766D3C /* RCTShadowView+Layout.h in Copy Headers */, 3D7BFCEB1EA8E23A008DFB7A /* RCTDevSettings.h in Copy Headers */, @@ -1368,7 +1348,7 @@ 3D7A27DD1DE32541002E3F95 /* JSCWrapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCWrapper.cpp; sourceTree = ""; }; 3D7A27DE1DE32541002E3F95 /* JSCWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCWrapper.h; sourceTree = ""; }; 3D7BFCE51EA8E1F4008DFB7A /* RCTPackagerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnection.h; sourceTree = ""; }; - 3D7BFCE61EA8E1F4008DFB7A /* RCTPackagerConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPackagerConnection.m; sourceTree = ""; }; + 3D7BFCE61EA8E1F4008DFB7A /* RCTPackagerConnection.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTPackagerConnection.mm; sourceTree = ""; }; 3EDCA8A21D3591E700450C31 /* RCTErrorCustomizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTErrorCustomizer.h; sourceTree = ""; }; 3EDCA8A31D3591E700450C31 /* RCTErrorInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTErrorInfo.h; sourceTree = ""; }; 3EDCA8A41D3591E700450C31 /* RCTErrorInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTErrorInfo.m; sourceTree = ""; }; @@ -1431,10 +1411,6 @@ A12E9E181E5DEA350029001B /* RCTPackagerClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPackagerClient.m; sourceTree = ""; }; A12E9E281E5DEB860029001B /* RCTReconnectingWebSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTReconnectingWebSocket.h; path = WebSocket/RCTReconnectingWebSocket.h; sourceTree = ""; }; A12E9E291E5DEB860029001B /* RCTSRWebSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RCTSRWebSocket.h; path = WebSocket/RCTSRWebSocket.h; sourceTree = ""; }; - A12E9E581E5DF8600029001B /* RCTReloadPackagerMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTReloadPackagerMethod.h; sourceTree = ""; }; - A12E9E591E5DF8600029001B /* RCTReloadPackagerMethod.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTReloadPackagerMethod.m; sourceTree = ""; }; - A12E9E8C1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTSamplingProfilerPackagerMethod.h; sourceTree = ""; }; - A12E9E8D1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTSamplingProfilerPackagerMethod.mm; sourceTree = ""; }; A2440AA01DF8D854006E7BFC /* RCTReloadCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTReloadCommand.h; sourceTree = ""; }; A2440AA11DF8D854006E7BFC /* RCTReloadCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTReloadCommand.m; sourceTree = ""; }; AC70D2E81DE489E4002E6351 /* RCTJavaScriptLoader.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTJavaScriptLoader.mm; sourceTree = ""; }; @@ -1452,11 +1428,7 @@ C60128B01F3D128C009DF9FF /* RCTCxxConvert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTCxxConvert.m; sourceTree = ""; }; C60669301F3CC7BD00E67165 /* RCTModuleMethod.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTModuleMethod.mm; sourceTree = ""; }; C60669381F3CCF3F00E67165 /* RCTManagedPointer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RCTManagedPointer.mm; sourceTree = ""; }; - C6194AB21EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnectionBridgeConfig.h; sourceTree = ""; }; - C6194AB31EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPackagerConnectionBridgeConfig.m; sourceTree = ""; }; - C6194AB41EF1569C0034D062 /* RCTPackagerConnectionConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPackagerConnectionConfig.h; sourceTree = ""; }; C65450601F3BD94C0090799B /* RCTManagedPointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTManagedPointer.h; sourceTree = ""; }; - C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSEnvironment.h; sourceTree = ""; }; C6FC33501F7048A800643E54 /* RCTShadowView+Internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RCTShadowView+Internal.h"; sourceTree = ""; }; C6FC33511F7048A800643E54 /* RCTShadowView+Internal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "RCTShadowView+Internal.m"; sourceTree = ""; }; CF85BC301E79EC6B00F1EF3B /* RCTDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDeviceInfo.h; sourceTree = ""; }; @@ -1845,7 +1817,6 @@ AC70D2E81DE489E4002E6351 /* RCTJavaScriptLoader.mm */, 139324FC1E70B069009FD7E0 /* RCTJSCErrorHandling.h */, 139324FD1E70B069009FD7E0 /* RCTJSCErrorHandling.mm */, - C6827DF81EF17DC100D66BEF /* RCTJSEnvironment.h */, 008341F51D1DB34400876D9A /* RCTJSStackFrame.h */, 008341F41D1DB34400876D9A /* RCTJSStackFrame.m */, 13A1F71C1A75392D00D3D453 /* RCTKeyCommands.h */, @@ -1901,14 +1872,7 @@ A12E9E171E5DEA350029001B /* RCTPackagerClient.h */, A12E9E181E5DEA350029001B /* RCTPackagerClient.m */, 3D7BFCE51EA8E1F4008DFB7A /* RCTPackagerConnection.h */, - 3D7BFCE61EA8E1F4008DFB7A /* RCTPackagerConnection.m */, - C6194AB21EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h */, - C6194AB31EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m */, - C6194AB41EF1569C0034D062 /* RCTPackagerConnectionConfig.h */, - A12E9E581E5DF8600029001B /* RCTReloadPackagerMethod.h */, - A12E9E591E5DF8600029001B /* RCTReloadPackagerMethod.m */, - A12E9E8C1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.h */, - A12E9E8D1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.mm */, + 3D7BFCE61EA8E1F4008DFB7A /* RCTPackagerConnection.mm */, ); path = DevSupport; sourceTree = ""; @@ -1947,7 +1911,6 @@ 3D302F251DF828F800D6DDAE /* RCTImageStoreManager.h in Headers */, 3D302F261DF828F800D6DDAE /* RCTResizeMode.h in Headers */, 3D302F271DF828F800D6DDAE /* RCTLinkingManager.h in Headers */, - C6194AB61EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */, 3D302F281DF828F800D6DDAE /* RCTNetworking.h in Headers */, 3D302F291DF828F800D6DDAE /* RCTNetworkTask.h in Headers */, 3D7BFCE81EA8E1F4008DFB7A /* RCTPackagerConnection.h in Headers */, @@ -1968,7 +1931,6 @@ 3D4153741F2770A3005B8EFE /* RCTMaskedViewManager.h in Headers */, 3D302F351DF828F800D6DDAE /* RCTErrorCustomizer.h in Headers */, 3D302F361DF828F800D6DDAE /* RCTErrorInfo.h in Headers */, - A12E9E911E5DFA720029001B /* RCTSamplingProfilerPackagerMethod.h in Headers */, 3D302F371DF828F800D6DDAE /* RCTEventDispatcher.h in Headers */, 3D302F381DF828F800D6DDAE /* RCTFrameUpdate.h in Headers */, 598C22D71EDCBEE1009AF445 /* RCTUIManagerObserverCoordinator.h in Headers */, @@ -1979,7 +1941,6 @@ 3D302F3A1DF828F800D6DDAE /* RCTInvalidating.h in Headers */, 3D302F3B1DF828F800D6DDAE /* RCTJavaScriptExecutor.h in Headers */, 3D302F3C1DF828F800D6DDAE /* RCTJavaScriptLoader.h in Headers */, - C6194ABA1EF1569C0034D062 /* RCTPackagerConnectionConfig.h in Headers */, 3D302F3D1DF828F800D6DDAE /* RCTJSStackFrame.h in Headers */, 3D302F3E1DF828F800D6DDAE /* RCTKeyCommands.h in Headers */, 3D302F3F1DF828F800D6DDAE /* RCTLog.h in Headers */, @@ -2006,7 +1967,6 @@ 3D302F561DF828F800D6DDAE /* RCTAlertManager.h in Headers */, 3D302F571DF828F800D6DDAE /* RCTAppState.h in Headers */, 3D302F581DF828F800D6DDAE /* RCTAsyncLocalStorage.h in Headers */, - A12E9E5C1E5DF86F0029001B /* RCTReloadPackagerMethod.h in Headers */, 3D302F591DF828F800D6DDAE /* RCTClipboard.h in Headers */, 3D302F5A1DF828F800D6DDAE /* RCTDevLoadingView.h in Headers */, 3D302F5B1DF828F800D6DDAE /* RCTDevMenu.h in Headers */, @@ -2035,7 +1995,6 @@ 3D302F6E1DF828F800D6DDAE /* RCTBorderDrawing.h in Headers */, 3D302F6F1DF828F800D6DDAE /* RCTBorderStyle.h in Headers */, 3D302F701DF828F800D6DDAE /* RCTComponent.h in Headers */, - C6827DFA1EF17DC100D66BEF /* RCTJSEnvironment.h in Headers */, 3D302F711DF828F800D6DDAE /* RCTComponentData.h in Headers */, 3D302F721DF828F800D6DDAE /* RCTConvert+CoreLocation.h in Headers */, 3D302F761DF828F800D6DDAE /* RCTFont.h in Headers */, @@ -2144,7 +2103,6 @@ buildActionMask = 2147483647; files = ( 3D80DA191DF820620028D040 /* RCTImageLoader.h in Headers */, - A12E9E8E1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.h in Headers */, 3D80DA1A1DF820620028D040 /* RCTImageStoreManager.h in Headers */, 3D80DA1B1DF820620028D040 /* RCTResizeMode.h in Headers */, C65450611F3BD94C0090799B /* RCTManagedPointer.h in Headers */, @@ -2173,7 +2131,6 @@ 3D80DA2E1DF820620028D040 /* RCTImageSource.h in Headers */, 3D80DA2F1DF820620028D040 /* RCTInvalidating.h in Headers */, 3D80DA301DF820620028D040 /* RCTJavaScriptExecutor.h in Headers */, - A12E9E5A1E5DF8600029001B /* RCTReloadPackagerMethod.h in Headers */, A12E9E2A1E5DEB860029001B /* RCTReconnectingWebSocket.h in Headers */, 3D80DA311DF820620028D040 /* RCTJavaScriptLoader.h in Headers */, 3D80DA321DF820620028D040 /* RCTJSStackFrame.h in Headers */, @@ -2193,7 +2150,6 @@ 3D80DA3E1DF820620028D040 /* RCTRootViewDelegate.h in Headers */, 3D80DA3F1DF820620028D040 /* RCTRootViewInternal.h in Headers */, 3D80DA401DF820620028D040 /* RCTTouchEvent.h in Headers */, - C6194AB91EF1569C0034D062 /* RCTPackagerConnectionConfig.h in Headers */, 3D80DA411DF820620028D040 /* RCTTouchHandler.h in Headers */, 3D80DA421DF820620028D040 /* RCTURLRequestDelegate.h in Headers */, 3D80DA431DF820620028D040 /* RCTURLRequestHandler.h in Headers */, @@ -2207,7 +2163,6 @@ 3D80DA4E1DF820620028D040 /* RCTClipboard.h in Headers */, 3D80DA4F1DF820620028D040 /* RCTDevLoadingView.h in Headers */, 3D80DA501DF820620028D040 /* RCTDevMenu.h in Headers */, - C6827DF91EF17DC100D66BEF /* RCTJSEnvironment.h in Headers */, 3D80DA511DF820620028D040 /* RCTEventEmitter.h in Headers */, 3D41536B1F277087005B8EFE /* RCTMaskedView.h in Headers */, 3D80DA521DF820620028D040 /* RCTExceptionsManager.h in Headers */, @@ -2231,7 +2186,6 @@ 3D80DA621DF820620028D040 /* RCTAutoInsetsProtocol.h in Headers */, 3D4153711F277092005B8EFE /* RCTConvert+Transform.h in Headers */, 3D80DA631DF820620028D040 /* RCTBorderDrawing.h in Headers */, - C6194AB51EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.h in Headers */, 3D80DA641DF820620028D040 /* RCTBorderStyle.h in Headers */, 3D80DA651DF820620028D040 /* RCTComponent.h in Headers */, 3D80DA661DF820620028D040 /* RCTComponentData.h in Headers */, @@ -2559,9 +2513,8 @@ 2D3B5E991D9B089A00451313 /* RCTDisplayLink.m in Sources */, 2D3B5EA11D9B08B600451313 /* RCTModuleData.mm in Sources */, 2D3B5EEA1D9B09CD00451313 /* RCTTabBar.m in Sources */, - 3D7BFCEA1EA8E1F4008DFB7A /* RCTPackagerConnection.m in Sources */, + 3D7BFCEA1EA8E1F4008DFB7A /* RCTPackagerConnection.mm in Sources */, 2D3B5EAE1D9B08F800451313 /* RCTEventEmitter.m in Sources */, - A12E9E901E5DFA6E0029001B /* RCTSamplingProfilerPackagerMethod.mm in Sources */, C606693A1F3CCF3F00E67165 /* RCTManagedPointer.mm in Sources */, 2D3B5ECA1D9B095F00451313 /* RCTComponentData.m in Sources */, 2D3B5EA31D9B08BE00451313 /* RCTParserUtils.m in Sources */, @@ -2575,7 +2528,6 @@ 3D4153571F276EE1005B8EFE /* RCTLayoutAnimation.m in Sources */, 59DA562E1F71C6C700D9EADA /* RCTUIManagerUtils.m in Sources */, 2D3B5E971D9B089000451313 /* RCTBridge.m in Sources */, - C6194AB81EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */, 2D3B5E9B1D9B08A000451313 /* RCTFrameUpdate.m in Sources */, 2D3B5EE41D9B09BB00451313 /* RCTSegmentedControlManager.m in Sources */, 2D3B5EE31D9B09B700451313 /* RCTSegmentedControl.m in Sources */, @@ -2624,7 +2576,6 @@ C6FC33531F70494F00643E54 /* RCTShadowView+Internal.m in Sources */, 2D3B5EC61D9B095000451313 /* RCTProfileTrampoline-x86_64.S in Sources */, 594AD5D41E46D87500B07237 /* RCTScrollContentViewManager.m in Sources */, - A12E9E5D1E5DF8720029001B /* RCTReloadPackagerMethod.m in Sources */, 3D5AC71A1E0056E0000F9153 /* RCTTVNavigationEventEmitter.m in Sources */, 2D3B5EA61D9B08CA00451313 /* RCTTouchEvent.m in Sources */, 5954055A1EC03A1700766D3C /* RCTShadowView+Layout.m in Sources */, @@ -2726,14 +2677,12 @@ 133CAE8E1B8E5CFD00F6AD92 /* RCTDatePicker.m in Sources */, 14C2CA761B3AC64F00E6CBB2 /* RCTFrameUpdate.m in Sources */, 13B07FEF1A69327A00A75B9A /* RCTAlertManager.m in Sources */, - C6194AB71EF1569C0034D062 /* RCTPackagerConnectionBridgeConfig.m in Sources */, 352DCFF01D19F4C20056D623 /* RCTI18nUtil.m in Sources */, 008341F61D1DB34400876D9A /* RCTJSStackFrame.m in Sources */, 83CBBACC1A6023D300E9B192 /* RCTConvert.m in Sources */, 131B6AF41AF1093D00FFC3E0 /* RCTSegmentedControl.m in Sources */, 830A229E1A66C68A008503DA /* RCTRootView.m in Sources */, 13B07FF01A69327A00A75B9A /* RCTExceptionsManager.m in Sources */, - A12E9E8F1E5DFA620029001B /* RCTSamplingProfilerPackagerMethod.mm in Sources */, 13BCE8091C99CB9D00DD7AAD /* RCTRootShadowView.m in Sources */, 595405591EC03A1700766D3C /* RCTShadowView+Layout.m in Sources */, 006FC4141D9B20820057AAAD /* RCTMultipartDataTask.m in Sources */, @@ -2752,7 +2701,7 @@ 14F3620E1AABD06A001CE568 /* RCTSwitchManager.m in Sources */, 13B080201A69489C00A75B9A /* RCTActivityIndicatorViewManager.m in Sources */, 13E067561A70F44B002CDEE1 /* RCTViewManager.m in Sources */, - 3D7BFCE91EA8E1F4008DFB7A /* RCTPackagerConnection.m in Sources */, + 3D7BFCE91EA8E1F4008DFB7A /* RCTPackagerConnection.mm in Sources */, 13BB3D021BECD54500932C10 /* RCTImageSource.m in Sources */, 58C571C11AA56C1900CDF9C8 /* RCTDatePickerManager.m in Sources */, 1450FF8A1BCFF28A00208362 /* RCTProfileTrampoline-x86_64.S in Sources */, @@ -2822,7 +2771,6 @@ 13B0801C1A69489C00A75B9A /* RCTNavItem.m in Sources */, 83CBBA691A601EF300E9B192 /* RCTEventDispatcher.m in Sources */, 3D41536E1F277087005B8EFE /* RCTMaskedViewManager.m in Sources */, - A12E9E5B1E5DF8600029001B /* RCTReloadPackagerMethod.m in Sources */, 83A1FE8F1B62643A00BE0E65 /* RCTModalHostViewManager.m in Sources */, 13E0674A1A70F434002CDEE1 /* RCTUIManager.m in Sources */, 391E86A41C623EC800009732 /* RCTTouchEvent.m in Sources */,