react-native 0.66.2 → 0.67.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (444) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/NativeAnimatedHelper.js +2 -2
  5. package/Libraries/Animated/components/AnimatedImage.js +3 -3
  6. package/Libraries/Animated/components/AnimatedScrollView.js +3 -3
  7. package/Libraries/Animated/components/AnimatedText.js +3 -3
  8. package/Libraries/Animated/components/AnimatedView.js +1 -3
  9. package/Libraries/Animated/createAnimatedComponent.js +3 -34
  10. package/Libraries/Components/Button.js +3 -0
  11. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  13. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollView.js +17 -16
  15. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  16. package/Libraries/Components/View/View.js +1 -1
  17. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  18. package/Libraries/Core/ExceptionsManager.js +45 -80
  19. package/Libraries/Core/ExtendedError.js +0 -1
  20. package/Libraries/Core/ReactNativeVersion.js +3 -3
  21. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  22. package/Libraries/Core/setUpGlobals.js +2 -4
  23. package/Libraries/Core/setUpTimers.js +2 -2
  24. package/Libraries/Image/Image.ios.js +6 -0
  25. package/Libraries/Image/ImageBackground.js +10 -8
  26. package/Libraries/Image/ImageProps.js +28 -0
  27. package/Libraries/Image/RCTImageView.mm +4 -0
  28. package/Libraries/LogBox/Data/LogBoxData.js +0 -1
  29. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  30. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  31. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  32. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  33. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  34. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  35. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  36. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  37. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +2 -1
  38. package/Libraries/NewAppScreen/components/logo.png +0 -0
  39. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  40. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  41. package/Libraries/Pressability/Pressability.js +13 -13
  42. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -1
  43. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  44. package/Libraries/ReactNative/AppRegistry.js +4 -2
  45. package/Libraries/Renderer/REVISION +1 -1
  46. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +1569 -875
  47. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +529 -319
  48. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +570 -362
  49. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +1592 -891
  50. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +521 -311
  51. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +562 -354
  52. package/Libraries/Share/Share.js +1 -1
  53. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  54. package/Libraries/Text/TextInput/Multiline/RCTUITextView.m +4 -2
  55. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  56. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  57. package/Libraries/Text/TextProps.js +1 -7
  58. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  59. package/Libraries/Utilities/HMRClient.js +1 -1
  60. package/README.md +1 -1
  61. package/React/Base/RCTBridge+Private.h +8 -0
  62. package/React/Base/RCTBridge.h +4 -0
  63. package/React/Base/RCTBridge.m +19 -7
  64. package/React/Base/RCTBridgeModule.h +2 -11
  65. package/React/Base/RCTBundleURLProvider.h +1 -1
  66. package/React/Base/RCTBundleURLProvider.mm +5 -3
  67. package/React/Base/RCTConstants.h +0 -6
  68. package/React/Base/RCTConstants.m +0 -15
  69. package/React/Base/RCTConvert.h +1 -1
  70. package/React/Base/RCTDefines.h +12 -3
  71. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  72. package/React/Base/RCTJSThread.h +29 -0
  73. package/React/Base/RCTJSThread.m +19 -0
  74. package/React/Base/RCTRootView.h +15 -0
  75. package/React/Base/RCTRootView.m +15 -0
  76. package/React/Base/RCTTouchHandler.m +1 -9
  77. package/React/Base/RCTUtils.h +3 -0
  78. package/React/Base/RCTUtils.m +14 -7
  79. package/React/Base/RCTVersion.m +3 -3
  80. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  81. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  82. package/React/CoreModules/RCTAccessibilityManager+Internal.h +24 -0
  83. package/React/CoreModules/RCTAccessibilityManager.mm +18 -3
  84. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  85. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  86. package/React/CoreModules/RCTDevSettings.mm +6 -6
  87. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  88. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  89. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  90. package/React/CoreModules/RCTExceptionsManager.mm +11 -24
  91. package/React/CoreModules/RCTLogBox.mm +0 -1
  92. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  93. package/React/CoreModules/RCTRedBox.mm +1 -5
  94. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  95. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  96. package/React/DevSupport/RCTPackagerConnection.mm +9 -5
  97. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +11 -3
  98. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +0 -3
  99. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +16 -0
  100. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  101. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
  102. package/React/Fabric/Mounting/RCTMountingManager.mm +15 -1
  103. package/React/Fabric/RCTScheduler.mm +12 -5
  104. package/React/Fabric/RCTSurfacePresenter.mm +0 -4
  105. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  106. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -3
  107. package/React/React-RCTFabric.podspec +0 -1
  108. package/React/Views/RCTFont.mm +54 -38
  109. package/React/Views/RCTView.m +1 -6
  110. package/React/Views/RCTViewManager.m +3 -2
  111. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  112. package/React/Views/ScrollView/RCTScrollView.m +5 -15
  113. package/React/Views/ScrollView/RCTScrollViewManager.m +0 -7
  114. package/React/Views/UIView+React.m +2 -11
  115. package/React-Core.podspec +0 -1
  116. package/ReactAndroid/build.gradle +11 -5
  117. package/ReactAndroid/gradle.properties +1 -1
  118. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  119. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  120. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/BUCK +2 -1
  121. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutor.java +14 -8
  122. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +0 -1
  123. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +63 -26
  124. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +50 -2
  125. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +31 -0
  126. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +17 -1
  127. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +2 -0
  128. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +13 -2
  129. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +1 -0
  130. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  131. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  132. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  133. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegate.java +40 -0
  134. package/ReactAndroid/src/main/java/com/facebook/react/common/SurfaceDelegateFactory.java +24 -0
  135. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +0 -6
  136. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +16 -0
  137. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -0
  138. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgeDevSupportManager.java +5 -2
  139. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +102 -0
  140. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +35 -11
  141. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +5 -72
  142. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java +12 -0
  143. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxDialogSurfaceDelegate.java +92 -0
  144. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/LogBoxModule.java +27 -42
  145. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/DevSupportManager.java +14 -0
  146. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +5 -4
  147. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +3 -7
  148. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +41 -2
  149. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +8 -3
  150. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.java +43 -9
  151. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  152. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.cpp +69 -0
  153. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/AsyncEventBeatV2.h +40 -0
  154. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +2 -6
  155. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +84 -32
  156. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +4 -2
  157. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.cpp +20 -2
  158. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/EventEmitterWrapper.h +2 -1
  159. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +9 -1
  160. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +19 -4
  161. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/IntBufferBatchMountItem.java +6 -2
  162. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/BUCK +2 -1
  163. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/JSCExecutor.java +6 -1
  164. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/BUCK +0 -6
  165. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/BUCK +4 -1
  166. package/ReactAndroid/src/main/java/com/facebook/react/modules/clipboard/ClipboardModule.java +9 -8
  167. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ExceptionsManagerModule.java +7 -19
  168. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  169. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  170. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  171. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  172. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  173. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  174. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +3 -3
  175. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +8 -8
  176. package/ReactAndroid/src/main/java/com/facebook/react/processing/ReactPropertyProcessor.java +1 -1
  177. package/ReactAndroid/src/main/java/com/facebook/react/reactperflogger/jni/BUCK +0 -6
  178. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  179. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  180. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/BUCK +0 -12
  181. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.java +1 -1
  182. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +75 -10
  183. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +19 -22
  184. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventCategoryDef.java +42 -0
  185. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventDispatcherImpl.java +7 -1
  186. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  187. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTEventEmitter.java +7 -0
  188. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/RCTModernEventEmitter.java +2 -1
  189. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +17 -9
  190. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +43 -8
  191. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEventType.java +15 -16
  192. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +108 -19
  193. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +0 -6
  194. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +79 -4
  195. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.java +5 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +94 -3
  197. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.java +21 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +5 -0
  199. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +16 -0
  201. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +9 -1
  202. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  203. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +25 -6
  204. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +25 -5
  205. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  206. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  207. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +19 -0
  208. package/ReactAndroid/src/main/jni/react/jni/Android.mk +3 -2
  209. package/ReactAndroid/src/main/jni/react/jni/BUCK +4 -5
  210. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +49 -7
  211. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +15 -2
  212. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  213. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  214. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  215. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  216. package/ReactAndroid/src/main/jni/react/perftests/BUCK +0 -4
  217. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +6 -6
  218. package/ReactAndroid/src/test/java/com/facebook/react/RootViewTest.java +43 -0
  219. package/ReactAndroid/src/test/java/com/facebook/react/modules/clipboard/ClipboardModuleTest.java +3 -1
  220. package/ReactCommon/React-Fabric.podspec +9 -1
  221. package/ReactCommon/better/BUCK +0 -6
  222. package/ReactCommon/callinvoker/BUCK +2 -8
  223. package/ReactCommon/cxxreact/BUCK +1 -16
  224. package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
  225. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  226. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  227. package/ReactCommon/jsi/BUCK +0 -9
  228. package/ReactCommon/jsinspector/BUCK +0 -5
  229. package/ReactCommon/logger/BUCK +0 -5
  230. package/ReactCommon/react/config/BUCK +0 -6
  231. package/ReactCommon/react/debug/BUCK +0 -6
  232. package/ReactCommon/react/nativemodule/core/BUCK +0 -5
  233. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +14 -31
  234. package/ReactCommon/react/nativemodule/samples/BUCK +0 -7
  235. package/ReactCommon/react/renderer/animations/BUCK +1 -4
  236. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  237. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -26
  238. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  239. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +912 -1147
  240. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  241. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  242. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  243. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +3 -3
  244. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  245. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  246. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  247. package/ReactCommon/react/renderer/attributedstring/BUCK +0 -6
  248. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  249. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  250. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +1 -1
  251. package/ReactCommon/react/renderer/attributedstring/conversions.h +58 -3
  252. package/ReactCommon/react/renderer/attributedstring/primitives.h +18 -1
  253. package/ReactCommon/react/renderer/componentregistry/BUCK +0 -6
  254. package/ReactCommon/react/renderer/componentregistry/native/BUCK +0 -6
  255. package/ReactCommon/react/renderer/components/image/BUCK +0 -6
  256. package/ReactCommon/react/renderer/components/image/ImageComponentDescriptor.h +0 -2
  257. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +0 -6
  258. package/ReactCommon/react/renderer/components/inputaccessory/InputAccessoryComponentDescriptor.h +0 -4
  259. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +0 -6
  260. package/ReactCommon/react/renderer/components/modal/BUCK +0 -6
  261. package/ReactCommon/react/renderer/components/modal/ModalHostViewComponentDescriptor.h +0 -5
  262. package/ReactCommon/react/renderer/components/progressbar/BUCK +0 -6
  263. package/ReactCommon/react/renderer/components/progressbar/android/react/renderer/components/progressbar/AndroidProgressBarComponentDescriptor.h +0 -3
  264. package/ReactCommon/react/renderer/components/root/BUCK +0 -6
  265. package/ReactCommon/react/renderer/components/safeareaview/BUCK +0 -6
  266. package/ReactCommon/react/renderer/components/scrollview/BUCK +0 -6
  267. package/ReactCommon/react/renderer/components/slider/BUCK +0 -6
  268. package/ReactCommon/react/renderer/components/slider/SliderComponentDescriptor.h +0 -3
  269. package/ReactCommon/react/renderer/components/switch/BUCK +0 -6
  270. package/ReactCommon/react/renderer/components/switch/androidswitch/react/renderer/components/androidswitch/AndroidSwitchComponentDescriptor.h +0 -3
  271. package/ReactCommon/react/renderer/components/text/BUCK +0 -6
  272. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -20
  273. package/ReactCommon/react/renderer/components/textinput/BUCK +0 -6
  274. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputComponentDescriptor.h +0 -3
  275. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +2 -0
  276. package/ReactCommon/react/renderer/components/textinput/iostextinput/BUCK +0 -6
  277. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputComponentDescriptor.h +0 -3
  278. package/ReactCommon/react/renderer/components/unimplementedview/BUCK +0 -6
  279. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +0 -4
  280. package/ReactCommon/react/renderer/components/view/Android.mk +1 -1
  281. package/ReactCommon/react/renderer/components/view/BUCK +0 -6
  282. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  283. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -23
  284. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -3
  285. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +3 -3
  286. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  287. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
  288. package/ReactCommon/react/renderer/core/BUCK +2 -6
  289. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +14 -9
  290. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +1 -10
  291. package/ReactCommon/react/renderer/core/EventEmitter.cpp +9 -4
  292. package/ReactCommon/react/renderer/core/EventEmitter.h +2 -1
  293. package/ReactCommon/react/renderer/core/Props.h +1 -0
  294. package/ReactCommon/react/renderer/core/PropsParserContext.h +3 -2
  295. package/ReactCommon/react/renderer/core/RawEvent.h +7 -5
  296. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  297. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  298. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  299. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  300. package/ReactCommon/react/renderer/debug/BUCK +0 -6
  301. package/ReactCommon/react/renderer/element/BUCK +0 -6
  302. package/ReactCommon/react/renderer/graphics/Android.mk +1 -1
  303. package/ReactCommon/react/renderer/graphics/BUCK +0 -6
  304. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +0 -1
  305. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  306. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  307. package/ReactCommon/react/renderer/imagemanager/BUCK +0 -6
  308. package/ReactCommon/react/renderer/leakchecker/BUCK +0 -6
  309. package/ReactCommon/react/renderer/mapbuffer/BUCK +0 -6
  310. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  311. package/ReactCommon/react/renderer/mounting/BUCK +0 -6
  312. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  313. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  314. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  315. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  316. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -7
  317. package/ReactCommon/react/renderer/runtimescheduler/ErrorUtils.h +36 -0
  318. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +28 -20
  319. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +4 -2
  320. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -3
  321. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  322. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +32 -0
  323. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +36 -0
  324. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  325. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -3
  326. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +4 -2
  327. package/ReactCommon/react/renderer/runtimescheduler/Task.h +4 -2
  328. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  329. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +26 -1
  330. package/ReactCommon/react/renderer/runtimescheduler/tests/StubErrorUtils.h +72 -0
  331. package/ReactCommon/react/renderer/scheduler/BUCK +0 -6
  332. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +1 -4
  333. package/ReactCommon/react/renderer/scheduler/Scheduler.h +1 -1
  334. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +4 -4
  335. package/ReactCommon/react/renderer/telemetry/BUCK +0 -6
  336. package/ReactCommon/react/renderer/templateprocessor/BUCK +0 -6
  337. package/ReactCommon/react/renderer/textlayoutmanager/BUCK +0 -6
  338. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  339. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +19 -0
  340. package/ReactCommon/react/renderer/timeline/BUCK +6 -12
  341. package/ReactCommon/react/renderer/uimanager/BUCK +0 -6
  342. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  343. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +2 -2
  344. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +1 -1
  345. package/ReactCommon/react/test_utils/BUCK +3 -6
  346. package/ReactCommon/react/{renderer/core/Constants.h → test_utils/MockSurfaceHandler.h} +9 -7
  347. package/ReactCommon/react/utils/BUCK +0 -6
  348. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  349. package/ReactCommon/reactperflogger/BUCK +0 -4
  350. package/ReactCommon/runtimeexecutor/BUCK +0 -6
  351. package/ReactCommon/yoga/BUCK +1 -5
  352. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.aar → 0.67.0-rc.3/react-native-0.67.0-rc.3.aar} +0 -0
  353. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.md5 +1 -0
  354. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha1 +1 -0
  355. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha256 +1 -0
  356. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.aar.sha512 +1 -0
  357. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.module → 0.67.0-rc.3/react-native-0.67.0-rc.3.module} +16 -17
  358. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.md5 +1 -0
  359. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha1 +1 -0
  360. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha256 +1 -0
  361. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.module.sha512 +1 -0
  362. package/android/com/facebook/react/react-native/{0.66.2/react-native-0.66.2.pom → 0.67.0-rc.3/react-native-0.67.0-rc.3.pom} +2 -2
  363. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.md5 +1 -0
  364. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha1 +1 -0
  365. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha256 +1 -0
  366. package/android/com/facebook/react/react-native/0.67.0-rc.3/react-native-0.67.0-rc.3.pom.sha512 +1 -0
  367. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  368. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  369. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  370. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  371. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  372. package/flow/global.js +45 -0
  373. package/index.js +15 -10
  374. package/jest/mockModal.js +31 -0
  375. package/jest/setup.js +5 -3
  376. package/package.json +8 -9
  377. package/react.gradle +53 -18
  378. package/scripts/find-node.sh +13 -0
  379. package/scripts/generate-specs-cli.js +18 -0
  380. package/scripts/ios-configure-glog.sh +4 -0
  381. package/scripts/react-native-xcode.sh +6 -6
  382. package/scripts/react_native_pods.rb +200 -57
  383. package/template/Gemfile +6 -0
  384. package/template/Gemfile.lock +100 -0
  385. package/template/_bundle/config +2 -0
  386. package/template/_flowconfig +1 -1
  387. package/template/_ruby-version +1 -0
  388. package/template/android/app/build.gradle +1 -1
  389. package/template/android/app/src/main/res/drawable/rn_edit_text_material.xml +36 -0
  390. package/template/android/app/src/main/res/values/styles.xml +1 -0
  391. package/template/android/build.gradle +7 -3
  392. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  393. package/template/android/gradle.properties +1 -1
  394. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +0 -2
  395. package/template/package.json +1 -1
  396. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  397. package/third-party-podspecs/glog.podspec +0 -1
  398. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  399. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  400. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  401. package/Libraries/Components/StaticContainer.react.js +0 -51
  402. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  403. package/Libraries/Interaction/InteractionMixin.js +0 -54
  404. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  405. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  406. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  407. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  408. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  409. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  410. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  411. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  412. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  413. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  414. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  415. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  416. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  417. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  418. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  419. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerDelegate.java +0 -57
  420. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidViewPagerManagerInterface.java +0 -23
  421. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/BUCK +0 -19
  422. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerDelegate.java +0 -62
  423. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/DatePickerManagerInterface.java +0 -25
  424. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +0 -33
  425. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerInterface.java +0 -17
  426. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +0 -51
  427. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerInterface.java +0 -21
  428. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +0 -63
  429. package/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerInterface.java +0 -24
  430. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.md5 +0 -1
  431. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha1 +0 -1
  432. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha256 +0 -1
  433. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.aar.sha512 +0 -1
  434. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.md5 +0 -1
  435. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha1 +0 -1
  436. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha256 +0 -1
  437. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.module.sha512 +0 -1
  438. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.md5 +0 -1
  439. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha1 +0 -1
  440. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha256 +0 -1
  441. package/android/com/facebook/react/react-native/0.66.2/react-native-0.66.2.pom.sha512 +0 -1
  442. package/scripts/generate-specs.sh +0 -99
  443. package/template/_editorconfig +0 -3
  444. package/template/_gitattributes +0 -3
@@ -7,6 +7,7 @@
7
7
 
8
8
  #include "Binding.h"
9
9
  #include "AsyncEventBeat.h"
10
+ #include "AsyncEventBeatV2.h"
10
11
  #include "EventEmitterWrapper.h"
11
12
  #include "ReactNativeConfigHolder.h"
12
13
  #include "StateWrapperImpl.h"
@@ -242,8 +243,9 @@ Binding::getInspectorDataForInstance(
242
243
  }
243
244
 
244
245
  EventEmitterWrapper *cEventEmitter = cthis(eventEmitterWrapper);
245
- InspectorData data =
246
- scheduler->getInspectorDataForInstance(cEventEmitter->eventEmitter);
246
+ InspectorData data = scheduler->getInspectorDataForInstance(
247
+ enableEventEmitterRawPointer_ ? *cEventEmitter->eventEmitterPointer
248
+ : *cEventEmitter->eventEmitter);
247
249
 
248
250
  folly::dynamic result = folly::dynamic::object;
249
251
  result["fileName"] = data.fileName;
@@ -493,9 +495,9 @@ bool isMapBufferSerializationEnabled() {
493
495
 
494
496
  void Binding::installFabricUIManager(
495
497
  jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutorHolder,
498
+ jni::alias_ref<JRuntimeScheduler::javaobject> runtimeSchedulerHolder,
496
499
  jni::alias_ref<jobject> javaUIManager,
497
500
  EventBeatManager *eventBeatManager,
498
- jni::alias_ref<JavaMessageQueueThread::javaobject> jsMessageQueueThread,
499
501
  ComponentFactory *componentsRegistry,
500
502
  jni::alias_ref<jobject> reactNativeConfig) {
501
503
  SystraceSection s("FabricUIManagerBinding::installFabricUIManager");
@@ -506,6 +508,12 @@ void Binding::installFabricUIManager(
506
508
  enableFabricLogs_ =
507
509
  config->getBool("react_fabric:enabled_android_fabric_logs");
508
510
 
511
+ disableRevisionCheckForPreallocation_ =
512
+ config->getBool("react_fabric:disable_revision_check_for_preallocation");
513
+
514
+ enableEventEmitterRawPointer_ =
515
+ config->getBool("react_fabric:enable_event_emitter_wrapper_raw_pointer");
516
+
509
517
  if (enableFabricLogs_) {
510
518
  LOG(WARNING) << "Binding::installFabricUIManager() was called (address: "
511
519
  << this << ").";
@@ -523,26 +531,54 @@ void Binding::installFabricUIManager(
523
531
  ContextContainer::Shared contextContainer =
524
532
  std::make_shared<ContextContainer>();
525
533
 
526
- auto sharedJSMessageQueueThread =
527
- std::make_shared<JMessageQueueThread>(jsMessageQueueThread);
528
534
  auto runtimeExecutor = runtimeExecutorHolder->cthis()->get();
529
535
 
536
+ if (runtimeSchedulerHolder) {
537
+ auto runtimeScheduler = runtimeSchedulerHolder->cthis()->get().lock();
538
+ if (runtimeScheduler) {
539
+ runtimeScheduler->setEnableYielding(config->getBool(
540
+ "react_native_new_architecture:runtimescheduler_enable_yielding_android"));
541
+ runtimeExecutor =
542
+ [runtimeScheduler](
543
+ std::function<void(jsi::Runtime & runtime)> &&callback) {
544
+ runtimeScheduler->scheduleWork(std::move(callback));
545
+ };
546
+ }
547
+ }
548
+
549
+ auto enableV2AsynchronousEventBeat =
550
+ config->getBool("react_fabric:enable_asynchronous_event_beat_v2_android");
551
+
530
552
  // TODO: T31905686 Create synchronous Event Beat
531
553
  jni::global_ref<jobject> localJavaUIManager = javaUIManager_;
532
554
  EventBeat::Factory synchronousBeatFactory =
533
- [eventBeatManager, runtimeExecutor, localJavaUIManager](
534
- EventBeat::SharedOwnerBox const &ownerBox)
555
+ [eventBeatManager,
556
+ runtimeExecutor,
557
+ localJavaUIManager,
558
+ enableV2AsynchronousEventBeat](EventBeat::SharedOwnerBox const &ownerBox)
535
559
  -> std::unique_ptr<EventBeat> {
536
- return std::make_unique<AsyncEventBeat>(
537
- ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
560
+ if (enableV2AsynchronousEventBeat) {
561
+ return std::make_unique<AsyncEventBeatV2>(
562
+ ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
563
+ } else {
564
+ return std::make_unique<AsyncEventBeat>(
565
+ ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
566
+ }
538
567
  };
539
568
 
540
569
  EventBeat::Factory asynchronousBeatFactory =
541
- [eventBeatManager, runtimeExecutor, localJavaUIManager](
542
- EventBeat::SharedOwnerBox const &ownerBox)
570
+ [eventBeatManager,
571
+ runtimeExecutor,
572
+ localJavaUIManager,
573
+ enableV2AsynchronousEventBeat](EventBeat::SharedOwnerBox const &ownerBox)
543
574
  -> std::unique_ptr<EventBeat> {
544
- return std::make_unique<AsyncEventBeat>(
545
- ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
575
+ if (enableV2AsynchronousEventBeat) {
576
+ return std::make_unique<AsyncEventBeatV2>(
577
+ ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
578
+ } else {
579
+ return std::make_unique<AsyncEventBeat>(
580
+ ownerBox, eventBeatManager, runtimeExecutor, localJavaUIManager);
581
+ }
546
582
  };
547
583
 
548
584
  contextContainer->insert("ReactNativeConfig", config);
@@ -573,8 +609,8 @@ void Binding::installFabricUIManager(
573
609
  toolbox.backgroundExecutor = backgroundExecutor_->get();
574
610
  }
575
611
 
576
- animationDriver_ =
577
- std::make_shared<LayoutAnimationDriver>(runtimeExecutor, this);
612
+ animationDriver_ = std::make_shared<LayoutAnimationDriver>(
613
+ runtimeExecutor, contextContainer, this);
578
614
  scheduler_ = std::make_shared<Scheduler>(
579
615
  toolbox, (animationDriver_ ? animationDriver_.get() : nullptr), this);
580
616
  }
@@ -610,16 +646,19 @@ inline local_ref<ReadableArray::javaobject> castReadableArray(
610
646
 
611
647
  // TODO: this method will be removed when binding for components are code-gen
612
648
  local_ref<JString> getPlatformComponentName(const ShadowView &shadowView) {
613
- local_ref<JString> componentName;
614
- auto newViewProps =
615
- std::dynamic_pointer_cast<const ScrollViewProps>(shadowView.props);
649
+ static std::string scrollViewComponentName = std::string("ScrollView");
616
650
 
617
- if (newViewProps &&
618
- newViewProps->getProbablyMoreHorizontalThanVertical_DEPRECATED()) {
619
- componentName = make_jstring("AndroidHorizontalScrollView");
620
- } else {
621
- componentName = make_jstring(shadowView.componentName);
651
+ local_ref<JString> componentName;
652
+ if (scrollViewComponentName.compare(shadowView.componentName) == 0) {
653
+ auto newViewProps =
654
+ std::static_pointer_cast<const ScrollViewProps>(shadowView.props);
655
+ if (newViewProps->getProbablyMoreHorizontalThanVertical_DEPRECATED()) {
656
+ componentName = make_jstring("AndroidHorizontalScrollView");
657
+ return componentName;
658
+ }
622
659
  }
660
+
661
+ componentName = make_jstring(shadowView.componentName);
623
662
  return componentName;
624
663
  }
625
664
 
@@ -885,8 +924,11 @@ void Binding::schedulerDidFinishTransaction(
885
924
  mountItem.newChildShadowView.eventEmitter;
886
925
  auto javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
887
926
  EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
888
- cEventEmitter->eventEmitter = eventEmitter;
889
-
927
+ if (enableEventEmitterRawPointer_) {
928
+ cEventEmitter->eventEmitterPointer = eventEmitter.get();
929
+ } else {
930
+ cEventEmitter->eventEmitter = eventEmitter;
931
+ }
890
932
  temp[0] = mountItem.newChildShadowView.tag;
891
933
  temp[1] = isLayoutable;
892
934
  env->SetIntArrayRegion(intBufferArray, intBufferPosition, 2, temp);
@@ -1036,7 +1078,11 @@ void Binding::schedulerDidFinishTransaction(
1036
1078
  // Do not hold a reference to javaEventEmitter from the C++ side.
1037
1079
  auto javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
1038
1080
  EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
1039
- cEventEmitter->eventEmitter = eventEmitter;
1081
+ if (enableEventEmitterRawPointer_) {
1082
+ cEventEmitter->eventEmitterPointer = eventEmitter.get();
1083
+ } else {
1084
+ cEventEmitter->eventEmitter = eventEmitter;
1085
+ }
1040
1086
 
1041
1087
  (*objBufferArray)[objBufferPosition++] = javaEventEmitter.get();
1042
1088
  }
@@ -1163,7 +1209,11 @@ void Binding::preallocateShadowView(
1163
1209
  if (eventEmitter != nullptr) {
1164
1210
  javaEventEmitter = EventEmitterWrapper::newObjectJavaArgs();
1165
1211
  EventEmitterWrapper *cEventEmitter = cthis(javaEventEmitter);
1166
- cEventEmitter->eventEmitter = eventEmitter;
1212
+ if (enableEventEmitterRawPointer_) {
1213
+ cEventEmitter->eventEmitterPointer = eventEmitter.get();
1214
+ } else {
1215
+ cEventEmitter->eventEmitter = eventEmitter;
1216
+ }
1167
1217
  }
1168
1218
  }
1169
1219
 
@@ -1210,11 +1260,13 @@ void Binding::schedulerDidCloneShadowNode(
1210
1260
  // 1. The revision is exactly 1
1211
1261
  // 2. At revision 0 (the old node), View Preallocation would have been skipped
1212
1262
 
1213
- if (newShadowNode.getProps()->revision != 1) {
1214
- return;
1215
- }
1216
- if (oldShadowNode.getProps()->revision != 0) {
1217
- return;
1263
+ if (!disableRevisionCheckForPreallocation_) {
1264
+ if (newShadowNode.getProps()->revision != 1) {
1265
+ return;
1266
+ }
1267
+ if (oldShadowNode.getProps()->revision != 0) {
1268
+ return;
1269
+ }
1218
1270
  }
1219
1271
 
1220
1272
  // If the new node is concrete and the old wasn't, we can preallocate
@@ -8,8 +8,8 @@
8
8
  #pragma once
9
9
 
10
10
  #include <fbjni/fbjni.h>
11
- #include <react/jni/JMessageQueueThread.h>
12
11
  #include <react/jni/JRuntimeExecutor.h>
12
+ #include <react/jni/JRuntimeScheduler.h>
13
13
  #include <react/jni/ReadableNativeMap.h>
14
14
  #include <react/renderer/animations/LayoutAnimationDriver.h>
15
15
  #include <react/renderer/scheduler/Scheduler.h>
@@ -105,9 +105,9 @@ class Binding : public jni::HybridClass<Binding>,
105
105
 
106
106
  void installFabricUIManager(
107
107
  jni::alias_ref<JRuntimeExecutor::javaobject> runtimeExecutorHolder,
108
+ jni::alias_ref<JRuntimeScheduler::javaobject> runtimeSchedulerHolder,
108
109
  jni::alias_ref<jobject> javaUIManager,
109
110
  EventBeatManager *eventBeatManager,
110
- jni::alias_ref<JavaMessageQueueThread::javaobject> jsMessageQueueThread,
111
111
  ComponentFactory *componentsRegistry,
112
112
  jni::alias_ref<jobject> reactNativeConfig);
113
113
 
@@ -199,6 +199,8 @@ class Binding : public jni::HybridClass<Binding>,
199
199
  bool disablePreallocateViews_{false};
200
200
  bool enableFabricLogs_{false};
201
201
  bool enableEarlyEventEmitterUpdate_{false};
202
+ bool disableRevisionCheckForPreallocation_{false};
203
+ bool enableEventEmitterRawPointer_{false};
202
204
  };
203
205
 
204
206
  } // namespace react
@@ -20,13 +20,26 @@ EventEmitterWrapper::initHybrid(jni::alias_ref<jclass>) {
20
20
 
21
21
  void EventEmitterWrapper::invokeEvent(
22
22
  std::string eventName,
23
- NativeMap *payload) {
23
+ NativeMap *payload,
24
+ int category) {
25
+ if (eventEmitterPointer) {
26
+ eventEmitterPointer->dispatchEvent(
27
+ std::move(eventName),
28
+ payload->consume(),
29
+ EventPriority::AsynchronousBatched,
30
+ static_cast<RawEvent::Category>(category));
31
+ return;
32
+ }
33
+
24
34
  // It is marginal, but possible for this to be constructed without a valid
25
35
  // EventEmitter. In those cases, make sure we noop/blackhole events instead of
26
36
  // crashing.
27
37
  if (eventEmitter != nullptr) {
28
38
  eventEmitter->dispatchEvent(
29
- eventName, payload->consume(), EventPriority::AsynchronousBatched);
39
+ eventName,
40
+ payload->consume(),
41
+ EventPriority::AsynchronousBatched,
42
+ static_cast<RawEvent::Category>(category));
30
43
  }
31
44
  }
32
45
 
@@ -34,6 +47,11 @@ void EventEmitterWrapper::invokeUniqueEvent(
34
47
  std::string eventName,
35
48
  NativeMap *payload,
36
49
  int customCoalesceKey) {
50
+ if (eventEmitterPointer) {
51
+ eventEmitterPointer->dispatchUniqueEvent(
52
+ std::move(eventName), payload->consume());
53
+ return;
54
+ }
37
55
  // TODO: customCoalesceKey currently unused
38
56
  // It is marginal, but possible for this to be constructed without a valid
39
57
  // EventEmitter. In those cases, make sure we noop/blackhole events instead of
@@ -24,8 +24,9 @@ class EventEmitterWrapper : public jni::HybridClass<EventEmitterWrapper> {
24
24
  static void registerNatives();
25
25
 
26
26
  SharedEventEmitter eventEmitter;
27
+ EventEmitter const *eventEmitterPointer;
27
28
 
28
- void invokeEvent(std::string eventName, NativeMap *params);
29
+ void invokeEvent(std::string eventName, NativeMap *params, int category);
29
30
  void invokeUniqueEvent(
30
31
  std::string eventName,
31
32
  NativeMap *params,
@@ -13,6 +13,7 @@ import static com.facebook.react.fabric.FabricUIManager.ENABLE_FABRIC_LOGS;
13
13
  import static com.facebook.react.fabric.FabricUIManager.IS_DEVELOPMENT_ENVIRONMENT;
14
14
 
15
15
  import android.os.SystemClock;
16
+ import android.view.View;
16
17
  import androidx.annotation.AnyThread;
17
18
  import androidx.annotation.NonNull;
18
19
  import androidx.annotation.Nullable;
@@ -274,10 +275,17 @@ public class MountItemDispatcher {
274
275
  executeOrEnqueue(mountItem);
275
276
  } catch (Throwable e) {
276
277
  // If there's an exception, we want to log diagnostics in prod and rethrow.
277
- FLog.e(TAG, "dispatchMountItems: caught exception, displaying all MountItems", e);
278
+ FLog.e(TAG, "dispatchMountItems: caught exception, displaying mount state", e);
278
279
  for (MountItem m : mountItemsToDispatch) {
279
280
  printMountItem(m, "dispatchMountItems: mountItem");
280
281
  }
282
+ if (mountItem.getSurfaceId() != View.NO_ID) {
283
+ SurfaceMountingManager surfaceManager =
284
+ mMountingManager.getSurfaceManager(mountItem.getSurfaceId());
285
+ if (surfaceManager != null) {
286
+ surfaceManager.printSurfaceState();
287
+ }
288
+ }
281
289
 
282
290
  if (ReactIgnorableMountingException.isIgnorable(e)) {
283
291
  ReactSoftExceptionLogger.logSoftException(TAG, e);
@@ -910,10 +910,6 @@ public class SurfaceMountingManager {
910
910
  // We treat this as a perf problem and not a logical error. View Preallocation or unexpected
911
911
  // changes to Differ or C++ Binding could cause some redundant Create instructions.
912
912
  if (getNullableViewState(reactTag) != null) {
913
- ReactSoftExceptionLogger.logSoftException(
914
- TAG,
915
- new IllegalStateException(
916
- "Cannot Preallocate view with tag [" + reactTag + "], already exists."));
917
913
  return;
918
914
  }
919
915
 
@@ -963,6 +959,25 @@ public class SurfaceMountingManager {
963
959
  return (ViewGroupManager<ViewGroup>) viewState.mViewManager;
964
960
  }
965
961
 
962
+ public void printSurfaceState() {
963
+ FLog.e(TAG, "Views created for surface {%d}:", getSurfaceId());
964
+ for (ViewState viewState : mTagToViewState.values()) {
965
+ String viewManagerName =
966
+ viewState.mViewManager != null ? viewState.mViewManager.getName() : null;
967
+ @Nullable View view = viewState.mView;
968
+ @Nullable View parent = view != null ? (View) view.getParent() : null;
969
+ @Nullable Integer parentTag = parent != null ? parent.getId() : null;
970
+
971
+ FLog.e(
972
+ TAG,
973
+ "<%s id=%d parentTag=%s isRoot=%b />",
974
+ viewManagerName,
975
+ viewState.mReactTag,
976
+ parentTag,
977
+ viewState.mIsRoot);
978
+ }
979
+ }
980
+
966
981
  /**
967
982
  * This class holds view state for react tags. Objects of this class are stored into the {@link
968
983
  * #mTagToViewState}, and they should be updated in the same thread.
@@ -226,8 +226,12 @@ public class IntBufferBatchMountItem implements MountItem {
226
226
  : "<hidden>";
227
227
  s.append(String.format("UPDATE PROPS [%d]: %s\n", mIntBuffer[i++], propsString));
228
228
  } else if (type == INSTRUCTION_UPDATE_STATE) {
229
- j += 1;
230
- s.append(String.format("UPDATE STATE [%d]\n", mIntBuffer[i++]));
229
+ StateWrapper state = castToState(mObjBuffer[j++]);
230
+ String stateString =
231
+ IS_DEVELOPMENT_ENVIRONMENT
232
+ ? (state != null ? state.getStateData().toString() : "<null>")
233
+ : "<hidden>";
234
+ s.append(String.format("UPDATE STATE [%d]: %s\n", mIntBuffer[i++], stateString));
231
235
  } else if (type == INSTRUCTION_UPDATE_LAYOUT) {
232
236
  s.append(
233
237
  String.format(
@@ -20,7 +20,8 @@ rn_xplat_cxx_library(
20
20
  srcs = glob(["*.cpp"]),
21
21
  headers = glob(["*.h"]),
22
22
  header_namespace = "",
23
- compiler_flags = ["-fexceptions"],
23
+ compiler_flags_enable_exceptions = True, # TODO: is this necessary?
24
+ compiler_flags_enable_rtti = True, # TODO: is this necessary?
24
25
  fbandroid_allow_jni_merging = True,
25
26
  platforms = ANDROID,
26
27
  soname = "libjscexecutor.$(ext)",
@@ -14,8 +14,13 @@ import com.facebook.react.bridge.ReadableNativeMap;
14
14
  import com.facebook.soloader.SoLoader;
15
15
 
16
16
  @DoNotStrip
17
- /* package */ class JSCExecutor extends JavaScriptExecutor {
17
+ /* package */ public class JSCExecutor extends JavaScriptExecutor {
18
+
18
19
  static {
20
+ loadLibrary();
21
+ }
22
+
23
+ public static void loadLibrary() throws UnsatisfiedLinkError {
19
24
  SoLoader.loadLibrary("jscexecutor");
20
25
  }
21
26
 
@@ -5,12 +5,6 @@ rn_xplat_cxx_library(
5
5
  srcs = glob(["*.cpp"]),
6
6
  headers = glob(["*.h"]),
7
7
  header_namespace = "",
8
- compiler_flags = [
9
- "-fexceptions",
10
- "-frtti",
11
- "-std=c++17",
12
- "-Wall",
13
- ],
14
8
  labels = ["supermodule:xplat/default/public.react_native.infra"],
15
9
  platforms = ANDROID,
16
10
  soname = "libreactnativeblob.$(ext)",
@@ -1,4 +1,4 @@
1
- load("//tools/build_defs/oss:rn_defs.bzl", "react_native_dep", "react_native_target", "rn_android_library")
1
+ load("//tools/build_defs/oss:rn_defs.bzl", "react_native_dep", "react_native_root_target", "react_native_target", "rn_android_library")
2
2
 
3
3
  rn_android_library(
4
4
  name = "clipboard",
@@ -16,4 +16,7 @@ rn_android_library(
16
16
  react_native_target("java/com/facebook/react/common:common"),
17
17
  react_native_target("java/com/facebook/react/module/annotations:annotations"),
18
18
  ],
19
+ exported_deps = [
20
+ react_native_root_target(":FBReactNativeSpec"),
21
+ ],
19
22
  )
@@ -9,17 +9,16 @@ package com.facebook.react.modules.clipboard;
9
9
 
10
10
  import android.content.ClipData;
11
11
  import android.content.ClipboardManager;
12
- import android.content.Context;
13
- import com.facebook.react.bridge.ContextBaseJavaModule;
12
+ import com.facebook.fbreact.specs.NativeClipboardSpec;
14
13
  import com.facebook.react.bridge.Promise;
15
- import com.facebook.react.bridge.ReactMethod;
14
+ import com.facebook.react.bridge.ReactApplicationContext;
16
15
  import com.facebook.react.module.annotations.ReactModule;
17
16
 
18
17
  /** A module that allows JS to get/set clipboard contents. */
19
18
  @ReactModule(name = ClipboardModule.NAME)
20
- public class ClipboardModule extends ContextBaseJavaModule {
19
+ public class ClipboardModule extends NativeClipboardSpec {
21
20
 
22
- public ClipboardModule(Context context) {
21
+ public ClipboardModule(ReactApplicationContext context) {
23
22
  super(context);
24
23
  }
25
24
 
@@ -31,10 +30,12 @@ public class ClipboardModule extends ContextBaseJavaModule {
31
30
  }
32
31
 
33
32
  private ClipboardManager getClipboardService() {
34
- return (ClipboardManager) getContext().getSystemService(getContext().CLIPBOARD_SERVICE);
33
+ return (ClipboardManager)
34
+ getReactApplicationContext()
35
+ .getSystemService(getReactApplicationContext().CLIPBOARD_SERVICE);
35
36
  }
36
37
 
37
- @ReactMethod
38
+ @Override
38
39
  public void getString(Promise promise) {
39
40
  try {
40
41
  ClipboardManager clipboard = getClipboardService();
@@ -50,7 +51,7 @@ public class ClipboardModule extends ContextBaseJavaModule {
50
51
  }
51
52
  }
52
53
 
53
- @ReactMethod
54
+ @Override
54
55
  public void setString(String text) {
55
56
  ClipData clipdata = ClipData.newPlainText(null, text);
56
57
  ClipboardManager clipboard = getClipboardService();
@@ -65,28 +65,16 @@ public class ExceptionsManagerModule extends NativeExceptionsManagerSpec {
65
65
  public void reportException(ReadableMap data) {
66
66
  String message = data.hasKey("message") ? data.getString("message") : "";
67
67
  ReadableArray stack = data.hasKey("stack") ? data.getArray("stack") : Arguments.createArray();
68
- int id = data.hasKey("id") ? data.getInt("id") : -1;
69
68
  boolean isFatal = data.hasKey("isFatal") ? data.getBoolean("isFatal") : false;
70
69
 
71
- if (mDevSupportManager.getDevSupportEnabled()) {
72
- boolean suppressRedBox = false;
73
- if (data.getMap("extraData") != null && data.getMap("extraData").hasKey("suppressRedBox")) {
74
- suppressRedBox = data.getMap("extraData").getBoolean("suppressRedBox");
75
- }
76
-
77
- if (!suppressRedBox) {
78
- mDevSupportManager.showNewJSError(message, stack, id);
79
- }
70
+ String extraDataAsJson = ExceptionDataHelper.getExtraDataAsJson(data);
71
+ if (isFatal) {
72
+ throw new JavascriptException(JSStackTrace.format(message, stack))
73
+ .setExtraDataAsJson(extraDataAsJson);
80
74
  } else {
81
- String extraDataAsJson = ExceptionDataHelper.getExtraDataAsJson(data);
82
- if (isFatal) {
83
- throw new JavascriptException(JSStackTrace.format(message, stack))
84
- .setExtraDataAsJson(extraDataAsJson);
85
- } else {
86
- FLog.e(ReactConstants.TAG, JSStackTrace.format(message, stack));
87
- if (extraDataAsJson != null) {
88
- FLog.d(ReactConstants.TAG, "extraData: %s", extraDataAsJson);
89
- }
75
+ FLog.e(ReactConstants.TAG, JSStackTrace.format(message, stack));
76
+ if (extraDataAsJson != null) {
77
+ FLog.d(ReactConstants.TAG, "extraData: %s", extraDataAsJson);
90
78
  }
91
79
  }
92
80
  }
@@ -10,7 +10,7 @@ package com.facebook.react.modules.core;
10
10
  import com.facebook.react.bridge.WritableArray;
11
11
 
12
12
  /** An interface used by {@link JavaTimerManager} to access and call JS timers from Java. */
13
- public interface JavaScriptTimerManager {
13
+ public interface JavaScriptTimerExecutor {
14
14
 
15
15
  /**
16
16
  * Calls the JS callback(s) associated with the timer ID(s). Also unregisters the callback if the
@@ -81,7 +81,7 @@ public class JavaTimerManager {
81
81
  }
82
82
 
83
83
  if (mTimersToCall != null) {
84
- mJavaScriptTimerManager.callTimers(mTimersToCall);
84
+ mJavaScriptTimerExecutor.callTimers(mTimersToCall);
85
85
  mTimersToCall = null;
86
86
  }
87
87
 
@@ -139,7 +139,7 @@ public class JavaTimerManager {
139
139
  }
140
140
 
141
141
  if (sendIdleEvents) {
142
- mJavaScriptTimerManager.callIdleCallbacks(absoluteFrameStartTime);
142
+ mJavaScriptTimerExecutor.callIdleCallbacks(absoluteFrameStartTime);
143
143
  }
144
144
 
145
145
  mCurrentIdleCallbackRunnable = null;
@@ -151,7 +151,7 @@ public class JavaTimerManager {
151
151
  }
152
152
 
153
153
  private final ReactApplicationContext mReactApplicationContext;
154
- private final JavaScriptTimerManager mJavaScriptTimerManager;
154
+ private final JavaScriptTimerExecutor mJavaScriptTimerExecutor;
155
155
  private final ReactChoreographer mReactChoreographer;
156
156
  private final DevSupportManager mDevSupportManager;
157
157
  private final Object mTimerGuard = new Object();
@@ -169,11 +169,11 @@ public class JavaTimerManager {
169
169
 
170
170
  public JavaTimerManager(
171
171
  ReactApplicationContext reactContext,
172
- JavaScriptTimerManager javaScriptTimerManager,
172
+ JavaScriptTimerExecutor javaScriptTimerManager,
173
173
  ReactChoreographer reactChoreographer,
174
174
  DevSupportManager devSupportManager) {
175
175
  mReactApplicationContext = reactContext;
176
- mJavaScriptTimerManager = javaScriptTimerManager;
176
+ mJavaScriptTimerExecutor = javaScriptTimerManager;
177
177
  mReactChoreographer = reactChoreographer;
178
178
  mDevSupportManager = devSupportManager;
179
179
 
@@ -327,7 +327,7 @@ public class JavaTimerManager {
327
327
  if (mDevSupportManager.getDevSupportEnabled()) {
328
328
  long driftTime = Math.abs(remoteTime - deviceTime);
329
329
  if (driftTime > 60000) {
330
- mJavaScriptTimerManager.emitTimeDriftWarning(
330
+ mJavaScriptTimerExecutor.emitTimeDriftWarning(
331
331
  "Debugger and device times have drifted by more than 60s. Please correct this by "
332
332
  + "running adb shell \"date `date +%m%d%H%M%Y.%S`\" on your debugger machine.");
333
333
  }
@@ -338,7 +338,7 @@ public class JavaTimerManager {
338
338
  if (duration == 0 && !repeat) {
339
339
  WritableArray timerToCall = Arguments.createArray();
340
340
  timerToCall.pushInt(callbackID);
341
- mJavaScriptTimerManager.callTimers(timerToCall);
341
+ mJavaScriptTimerExecutor.callTimers(timerToCall);
342
342
  return;
343
343
  }
344
344
 
@@ -22,7 +22,7 @@ import com.facebook.react.module.annotations.ReactModule;
22
22
  public final class TimingModule extends NativeTimingSpec
23
23
  implements LifecycleEventListener, HeadlessJsTaskEventListener {
24
24
 
25
- public class BridgeTimerManager implements JavaScriptTimerManager {
25
+ public class BridgeTimerExecutor implements JavaScriptTimerExecutor {
26
26
  @Override
27
27
  public void callTimers(WritableArray timerIDs) {
28
28
  ReactApplicationContext reactApplicationContext = getReactApplicationContextIfActiveOrWarn();
@@ -61,7 +61,7 @@ public final class TimingModule extends NativeTimingSpec
61
61
  mJavaTimerManager =
62
62
  new JavaTimerManager(
63
63
  reactContext,
64
- new BridgeTimerManager(),
64
+ new BridgeTimerExecutor(),
65
65
  ReactChoreographer.getInstance(),
66
66
  devSupportManager);
67
67
  }
@@ -8,6 +8,7 @@
8
8
  package com.facebook.react.modules.i18nmanager;
9
9
 
10
10
  import android.content.Context;
11
+ import android.os.Build;
11
12
  import com.facebook.fbreact.specs.NativeI18nManagerSpec;
12
13
  import com.facebook.react.bridge.NativeModule;
13
14
  import com.facebook.react.bridge.ReactApplicationContext;
@@ -36,7 +37,12 @@ public class I18nManagerModule extends NativeI18nManagerSpec {
36
37
  @Override
37
38
  public Map<String, Object> getTypedExportedConstants() {
38
39
  final Context context = getReactApplicationContext();
39
- final Locale locale = context.getResources().getConfiguration().locale;
40
+ final Locale locale;
41
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
42
+ locale = context.getResources().getConfiguration().getLocales().get(0);
43
+ } else {
44
+ locale = context.getResources().getConfiguration().locale;
45
+ }
40
46
 
41
47
  final Map<String, Object> constants = MapBuilder.newHashMap();
42
48
  constants.put("isRTL", sharedI18nUtilInstance.isRTL(context));