react-native 0.85.1 → 0.85.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 (114) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +1 -1
  2. package/Libraries/Utilities/HMRClient.js +28 -1
  3. package/React/Base/RCTVersion.m +1 -1
  4. package/React/CoreModules/RCTDevLoadingView.mm +17 -0
  5. package/React/CoreModules/RCTJscSafeUrl+Internal.h +23 -0
  6. package/React/CoreModules/RCTJscSafeUrl.mm +38 -0
  7. package/React/CoreModules/RCTRedBox+Internal.h +42 -0
  8. package/React/CoreModules/RCTRedBox.mm +30 -454
  9. package/React/CoreModules/RCTRedBox2AnsiParser+Internal.h +22 -0
  10. package/React/CoreModules/RCTRedBox2AnsiParser.mm +55 -0
  11. package/React/CoreModules/RCTRedBox2Controller+Internal.h +34 -0
  12. package/React/CoreModules/RCTRedBox2Controller.mm +764 -0
  13. package/React/CoreModules/RCTRedBox2ErrorParser+Internal.h +46 -0
  14. package/React/CoreModules/RCTRedBox2ErrorParser.mm +57 -0
  15. package/React/CoreModules/RCTRedBoxController+Internal.h +31 -0
  16. package/React/CoreModules/RCTRedBoxController.mm +447 -0
  17. package/React/CoreModules/RCTRedBoxHMRClient+Internal.h +26 -0
  18. package/React/CoreModules/RCTRedBoxHMRClient.mm +125 -0
  19. package/React/CoreModules/React-CoreModules.podspec +1 -0
  20. package/React/DevSupport/RCTFrameTimingsObserver.h +24 -0
  21. package/React/DevSupport/RCTFrameTimingsObserver.mm +298 -0
  22. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +40 -0
  23. package/ReactAndroid/gradle.properties +1 -1
  24. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +4 -0
  25. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +1 -1
  26. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +127 -26
  27. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +31 -1
  28. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +51 -1
  29. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +11 -1
  30. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +11 -1
  31. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +56 -1
  32. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +11 -1
  33. package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +39 -0
  34. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  35. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +50 -10
  36. package/ReactAndroid/src/main/jni/CMakeLists.txt +7 -0
  37. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +22 -0
  38. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +2 -0
  39. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +71 -1
  40. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +16 -1
  41. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +14 -0
  42. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +18 -4
  43. package/ReactCommon/React-Fabric.podspec +6 -0
  44. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  45. package/ReactCommon/jsinspector-modern/HostAgent.cpp +36 -0
  46. package/ReactCommon/jsinspector-modern/HostTarget.cpp +7 -1
  47. package/ReactCommon/jsinspector-modern/HostTarget.h +25 -0
  48. package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +1 -1
  49. package/ReactCommon/jsinspector-modern/HostTargetTracing.h +4 -4
  50. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +12 -0
  51. package/ReactCommon/jsinspector-modern/InspectorFlags.h +12 -0
  52. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +1 -1
  53. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +19 -0
  54. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +7 -0
  55. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +33 -0
  56. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +6 -0
  57. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +12 -0
  58. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +3 -2
  59. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +1 -0
  60. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +1 -1
  61. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +1 -1
  62. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +10 -0
  63. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +3 -1
  64. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
  65. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +7 -3
  66. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +52 -29
  67. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h +6 -6
  68. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracerSection.h +113 -0
  69. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -0
  70. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +12 -5
  71. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +3 -1
  72. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +42 -0
  73. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h +7 -0
  74. package/ReactCommon/react/debug/CMakeLists.txt +2 -1
  75. package/ReactCommon/react/debug/React-debug.podspec +7 -1
  76. package/ReactCommon/react/debug/redbox/AnsiParser.cpp +139 -0
  77. package/ReactCommon/react/debug/redbox/AnsiParser.h +35 -0
  78. package/ReactCommon/react/debug/redbox/JscSafeUrl.cpp +179 -0
  79. package/ReactCommon/react/debug/redbox/JscSafeUrl.h +27 -0
  80. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.cpp +171 -0
  81. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.h +40 -0
  82. package/ReactCommon/react/debug/redbox/tests/AnsiParserTest.cpp +97 -0
  83. package/ReactCommon/react/debug/redbox/tests/JscSafeUrlTest.cpp +173 -0
  84. package/ReactCommon/react/debug/redbox/tests/RedBoxErrorParserTest.cpp +107 -0
  85. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +21 -1
  86. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +26 -1
  87. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +135 -45
  88. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +12 -2
  89. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +21 -1
  90. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +46 -1
  91. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +6 -1
  92. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  93. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  94. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
  95. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +26 -1
  96. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +11 -1
  97. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +4 -0
  98. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +66 -0
  99. package/ReactCommon/react/performance/timeline/PerformanceObserver.cpp +18 -6
  100. package/ReactCommon/react/performance/timeline/PerformanceObserver.h +2 -0
  101. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +4 -1
  102. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +58 -25
  103. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +9 -0
  104. package/ReactCommon/react/renderer/animationbackend/AnimationChoreographer.h +5 -0
  105. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationBackend.h +1 -0
  106. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +115 -0
  107. package/ReactCommon/{jsinspector-modern → react/utils}/Base64.h +2 -2
  108. package/package.json +11 -11
  109. package/scripts/cocoapods/utils.rb +1 -0
  110. package/scripts/react_native_pods.rb +1 -0
  111. package/scripts/replace-rncore-version.js +72 -15
  112. package/src/private/featureflags/ReactNativeFeatureFlags.js +26 -1
  113. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +6 -1
  114. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
@@ -28,7 +28,7 @@
28
28
  export default class ReactNativeVersion {
29
29
  static major: number = 0;
30
30
  static minor: number = 85;
31
- static patch: number = 1;
31
+ static patch: number = 3;
32
32
  static prerelease: string | null = null;
33
33
 
34
34
  static getVersionString(): string {
@@ -212,6 +212,7 @@ Error: ${e.message}`;
212
212
  });
213
213
 
214
214
  let pendingUpdatesCount = 0;
215
+ let lastMarkerChangeId: string | null = null;
215
216
  client.on('update-start', ({isInitialUpdate}) => {
216
217
  pendingUpdatesCount++;
217
218
  currentCompileErrorMessage = null;
@@ -229,10 +230,15 @@ Error: ${e.message}`;
229
230
  }
230
231
  });
231
232
 
232
- client.on('update-done', () => {
233
+ client.on('update-done', body => {
233
234
  pendingUpdatesCount--;
234
235
  if (pendingUpdatesCount === 0) {
235
236
  DevLoadingView.hide();
237
+ const changeId = body?.changeId;
238
+ if (changeId != null && changeId !== lastMarkerChangeId) {
239
+ lastMarkerChangeId = changeId;
240
+ emitFastRefreshCompleteEvents();
241
+ }
236
242
  }
237
243
  });
238
244
 
@@ -379,4 +385,25 @@ function showCompileError() {
379
385
  throw error;
380
386
  }
381
387
 
388
+ function emitFastRefreshCompleteEvents() {
389
+ // Add marker entry in performance timeline
390
+ performance.mark('Fast Refresh - Update done', {
391
+ detail: {
392
+ devtools: {
393
+ dataType: 'marker',
394
+ color: 'primary',
395
+ tooltipText: 'Fast Refresh \u269b',
396
+ },
397
+ },
398
+ });
399
+
400
+ // Notify CDP clients via internal binding
401
+ if (
402
+ // $FlowFixMe[prop-missing] - Injected by RuntimeTarget
403
+ typeof globalThis.__notifyFastRefreshComplete === 'function'
404
+ ) {
405
+ globalThis.__notifyFastRefreshComplete();
406
+ }
407
+ }
408
+
382
409
  export default HMRClient;
@@ -23,7 +23,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(85),
26
- RCTVersionPatch: @(1),
26
+ RCTVersionPatch: @(3),
27
27
  RCTVersionPrerelease: [NSNull null],
28
28
  };
29
29
  });
@@ -51,10 +51,27 @@ RCT_EXPORT_MODULE()
51
51
  selector:@selector(hide)
52
52
  name:RCTJavaScriptDidFailToLoadNotification
53
53
  object:nil];
54
+ [[NSNotificationCenter defaultCenter] addObserver:self
55
+ selector:@selector(hide)
56
+ name:@"RCTInstanceDidLoadBundle"
57
+ object:nil];
54
58
  }
55
59
  return self;
56
60
  }
57
61
 
62
+ - (void)dealloc
63
+ {
64
+ [self clearInitialMessageDelay];
65
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
66
+ UIWindow *window = _window;
67
+ _window = nil;
68
+ if (window) {
69
+ RCTExecuteOnMainQueue(^{
70
+ window.hidden = YES;
71
+ });
72
+ }
73
+ }
74
+
58
75
  + (void)setEnabled:(BOOL)enabled
59
76
  {
60
77
  RCTDevLoadingViewSetEnabled(enabled);
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import <Foundation/Foundation.h>
9
+
10
+ /**
11
+ * Converts between standard URLs and JSC-safe URLs.
12
+ *
13
+ * JSC (JavaScriptCore) strips query strings from source URLs in stack traces
14
+ * as of iOS 16.4. Metro works around this by encoding the query string into
15
+ * the URL path. These methods convert between the two formats.
16
+ */
17
+ @interface RCTJscSafeUrl : NSObject
18
+
19
+ + (nonnull NSString *)normalUrlFromJscSafeUrl:(nonnull NSString *)url;
20
+ + (nonnull NSString *)jscSafeUrlFromNormalUrl:(nonnull NSString *)url;
21
+ + (BOOL)isJscSafeUrl:(nonnull NSString *)url;
22
+
23
+ @end
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import "RCTJscSafeUrl+Internal.h"
9
+
10
+ #import <React/RCTDefines.h>
11
+ #import <react/debug/redbox/JscSafeUrl.h>
12
+
13
+ #if RCT_DEV_MENU
14
+
15
+ using facebook::react::unstable_redbox::isJscSafeUrl;
16
+ using facebook::react::unstable_redbox::toJscSafeUrl;
17
+ using facebook::react::unstable_redbox::toNormalUrl;
18
+
19
+ @implementation RCTJscSafeUrl
20
+
21
+ + (NSString *)normalUrlFromJscSafeUrl:(NSString *)url
22
+ {
23
+ return [NSString stringWithUTF8String:toNormalUrl(url.UTF8String).c_str()];
24
+ }
25
+
26
+ + (NSString *)jscSafeUrlFromNormalUrl:(NSString *)url
27
+ {
28
+ return [NSString stringWithUTF8String:toJscSafeUrl(url.UTF8String).c_str()];
29
+ }
30
+
31
+ + (BOOL)isJscSafeUrl:(NSString *)url
32
+ {
33
+ return isJscSafeUrl(url.UTF8String);
34
+ }
35
+
36
+ @end
37
+
38
+ #endif
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import <React/RCTDefines.h>
9
+ #import <UIKit/UIKit.h>
10
+
11
+ #if RCT_DEV_MENU
12
+
13
+ @class RCTJSStackFrame;
14
+
15
+ @protocol RCTRedBoxControllerActionDelegate <NSObject>
16
+
17
+ - (void)redBoxController:(UIViewController *)redBoxController openStackFrameInEditor:(RCTJSStackFrame *)stackFrame;
18
+ - (void)reloadFromRedBoxController:(UIViewController *)redBoxController;
19
+ - (void)loadExtraDataViewController;
20
+
21
+ @end
22
+
23
+ @protocol RCTRedBoxControlling <NSObject>
24
+
25
+ @property (nonatomic, weak) id<RCTRedBoxControllerActionDelegate> actionDelegate;
26
+
27
+ - (void)showErrorMessage:(NSString *)message
28
+ withStack:(NSArray<RCTJSStackFrame *> *)stack
29
+ isUpdate:(BOOL)isUpdate
30
+ errorCookie:(int)errorCookie;
31
+
32
+ - (void)dismiss;
33
+
34
+ @end
35
+
36
+ @protocol RCTRedBox2Controlling <RCTRedBoxControlling>
37
+
38
+ @property (nonatomic, strong, nullable) NSURL *bundleURL;
39
+
40
+ @end
41
+
42
+ #endif