diff --git a/React/CoreModules/BUCK b/React/CoreModules/BUCK index 982bef44c77..6876b0a58cf 100644 --- a/React/CoreModules/BUCK +++ b/React/CoreModules/BUCK @@ -84,6 +84,9 @@ rn_apple_library( ) + react_module_plugin_providers( name = "AppState", native_class_func = "RCTAppStateCls", + ) + react_module_plugin_providers( + name = "PerfMonitor", + native_class_func = "RCTPerfMonitorCls", ), plugins_header = "FBCoreModulesPlugins.h", preprocessor_flags = OBJC_ARC_PREPROCESSOR_FLAGS + get_debug_preprocessor_flags() + rn_extra_build_flags() + [ diff --git a/React/CoreModules/CoreModulesPlugins.h b/React/CoreModules/CoreModulesPlugins.h index fd33cfd0941..91170fa918d 100644 --- a/React/CoreModules/CoreModulesPlugins.h +++ b/React/CoreModules/CoreModulesPlugins.h @@ -44,6 +44,7 @@ Class RCTTimingCls(void) __attribute__((used)); Class RCTStatusBarManagerCls(void) __attribute__((used)); Class RCTKeyboardObserverCls(void) __attribute__((used)); Class RCTAppStateCls(void) __attribute__((used)); +Class RCTPerfMonitorCls(void) __attribute__((used)); #ifdef __cplusplus } diff --git a/React/CoreModules/CoreModulesPlugins.mm b/React/CoreModules/CoreModulesPlugins.mm index 09f65753f12..6f12cfe2e39 100644 --- a/React/CoreModules/CoreModulesPlugins.mm +++ b/React/CoreModules/CoreModulesPlugins.mm @@ -33,6 +33,7 @@ Class RCTCoreModulesClassProvider(const char *name) { {"StatusBarManager", RCTStatusBarManagerCls}, {"KeyboardObserver", RCTKeyboardObserverCls}, {"AppState", RCTAppStateCls}, + {"PerfMonitor", RCTPerfMonitorCls}, }; auto p = sCoreModuleClassMap.find(name); diff --git a/React/Profiler/RCTFPSGraph.h b/React/CoreModules/RCTFPSGraph.h similarity index 100% rename from React/Profiler/RCTFPSGraph.h rename to React/CoreModules/RCTFPSGraph.h diff --git a/React/Profiler/RCTFPSGraph.m b/React/CoreModules/RCTFPSGraph.m similarity index 98% rename from React/Profiler/RCTFPSGraph.m rename to React/CoreModules/RCTFPSGraph.m index 66256c9a402..c936e89ea62 100644 --- a/React/Profiler/RCTFPSGraph.m +++ b/React/CoreModules/RCTFPSGraph.m @@ -7,7 +7,7 @@ #import "RCTFPSGraph.h" -#import "RCTAssert.h" +#import #if RCT_DEV diff --git a/React/Profiler/RCTPerfMonitor.m b/React/CoreModules/RCTPerfMonitor.mm similarity index 93% rename from React/Profiler/RCTPerfMonitor.m rename to React/CoreModules/RCTPerfMonitor.mm index a1c52bf456e..3f710ae1333 100644 --- a/React/Profiler/RCTPerfMonitor.m +++ b/React/CoreModules/RCTPerfMonitor.mm @@ -5,7 +5,9 @@ * LICENSE file in the root directory of this source tree. */ -#import "RCTDefines.h" +#import + +#import "CoreModulesPlugins.h" #if RCT_DEV @@ -13,19 +15,21 @@ #import -#import "RCTBridge.h" -#import "RCTDevSettings.h" -#import "RCTFPSGraph.h" -#import "RCTInvalidating.h" -#import "RCTJavaScriptExecutor.h" -#import "RCTPerformanceLogger.h" -#import "RCTRootView.h" -#import "RCTUIManager.h" -#import "RCTBridge+Private.h" -#import "RCTUtils.h" +#import -#if __has_include("RCTDevMenu.h") -#import "RCTDevMenu.h" +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +#if __has_include() +#import #endif static NSString *const RCTPerfMonitorCellIdentifier = @"RCTPerfMonitorCellIdentifier"; @@ -46,7 +50,7 @@ static BOOL RCTJSCSetOption(const char *option) * * JSC::Options::setOptions - JavaScriptCore/runtime/Options.h */ - setOption = dlsym(RTLD_DEFAULT, "_ZN3JSC7Options9setOptionEPKc"); + setOption = reinterpret_cast(dlsym(RTLD_DEFAULT, "_ZN3JSC7Options9setOptionEPKc")); if (RCT_DEBUG && setOption == NULL) { RCTLogWarn(@"The symbol used to enable JSC runtime options is not available in this iOS version"); @@ -68,13 +72,13 @@ static vm_size_t RCTGetResidentMemorySize(void) kern_return_t kernelReturn = task_info(mach_task_self(), TASK_VM_INFO, (task_info_t) &vmInfo, &count); if(kernelReturn == KERN_SUCCESS) { memoryUsageInByte = (vm_size_t) vmInfo.phys_footprint; - } + } return memoryUsageInByte; } -@interface RCTPerfMonitor : NSObject +@interface RCTPerfMonitor : NSObject -#if __has_include("RCTDevMenu.h") +#if __has_include() @property (nonatomic, strong, readonly) RCTDevMenuItem *devMenuItem; #endif @property (nonatomic, strong, readonly) UIPanGestureRecognizer *gestureRecognizer; @@ -91,7 +95,7 @@ static vm_size_t RCTGetResidentMemorySize(void) @end @implementation RCTPerfMonitor { -#if __has_include("RCTDevMenu.h") +#if __has_include() RCTDevMenuItem *_devMenuItem; #endif UIPanGestureRecognizer *_gestureRecognizer; @@ -140,7 +144,7 @@ RCT_EXPORT_MODULE() { _bridge = bridge; -#if __has_include("RCTDevMenu.h") +#if __has_include() [_bridge.devMenu addItem:self.devMenuItem]; #endif } @@ -150,7 +154,7 @@ RCT_EXPORT_MODULE() [self hide]; } -#if __has_include("RCTDevMenu.h") +#if __has_include() - (RCTDevMenuItem *)devMenuItem { if (!_devMenuItem) { @@ -576,3 +580,11 @@ heightForRowAtIndexPath:(__unused NSIndexPath *)indexPath @end #endif + +Class RCTPerfMonitorCls(void) { +#if RCT_DEV + return RCTPerfMonitor.class; +#else + return nil; +#endif +}