react-native-tvos 0.76.5-0 → 0.76.6-0
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.
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Pressability/Pressability.js +2 -2
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +1 -1
- package/React/Base/RCTConvert.mm +3 -1
- package/React/Base/RCTVersion.m +1 -1
- package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +4 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -9
- package/ReactAndroid/cmake-utils/ReactNative-application.cmake +18 -3
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +1 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +1 -0
- package/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +17 -19
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +1 -15
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +1 -4
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +1 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +1 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +47 -65
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +2 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +1 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +1 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +1 -6
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +1 -3
- package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +2 -0
- package/package.json +8 -8
- package/scripts/cocoapods/utils.rb +6 -6
- package/scripts/codegen/generate-artifacts-executor.js +6 -6
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +1 -6
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +1 -2
- package/types/public/ReactNativeTVTypes.d.ts +9 -7
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import {View} from '../View/View';
|
|
21
21
|
import {AccessibilityProps} from '../View/ViewAccessibility';
|
|
22
22
|
import {ViewProps} from '../View/ViewPropTypes';
|
|
23
|
-
import {TVParallaxProperties} from '../../../types/
|
|
23
|
+
import {TVParallaxProperties} from '../../../types/index';
|
|
24
24
|
|
|
25
25
|
export interface PressableStateCallbackType {
|
|
26
26
|
readonly pressed: boolean;
|
|
@@ -440,7 +440,7 @@ export default class Pressability {
|
|
|
440
440
|
_createEventHandlers(): EventHandlers {
|
|
441
441
|
const tvPressEventHandlers = {
|
|
442
442
|
onPressIn: (evt: any): void => {
|
|
443
|
-
if (this._config.disabled ===
|
|
443
|
+
if (this._config.disabled === true) {
|
|
444
444
|
return;
|
|
445
445
|
}
|
|
446
446
|
|
|
@@ -461,7 +461,7 @@ export default class Pressability {
|
|
|
461
461
|
}, delayLongPress + delayPressIn);
|
|
462
462
|
},
|
|
463
463
|
onPressOut: (evt: any): void => {
|
|
464
|
-
if (this._config.disabled ===
|
|
464
|
+
if (this._config.disabled === true) {
|
|
465
465
|
return;
|
|
466
466
|
}
|
|
467
467
|
this._cancelLongPressDelayTimeout();
|
|
@@ -461,7 +461,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
|
|
|
461
461
|
_maxLength.integerValue - (NSInteger)backedTextInputView.attributedText.string.length + (NSInteger)range.length,
|
|
462
462
|
0);
|
|
463
463
|
|
|
464
|
-
if (text.length >
|
|
464
|
+
if (text.length > allowedLength) {
|
|
465
465
|
// If we typed/pasted more than one character, limit the text inputted.
|
|
466
466
|
if (text.length > 1) {
|
|
467
467
|
if (allowedLength > 0) {
|
package/React/Base/RCTConvert.mm
CHANGED
|
@@ -528,17 +528,19 @@ RCT_ENUM_CONVERTER(
|
|
|
528
528
|
}),
|
|
529
529
|
NSNotFound,
|
|
530
530
|
unsignedIntegerValue)
|
|
531
|
+
#endif
|
|
531
532
|
RCT_ENUM_CONVERTER(
|
|
532
533
|
UIModalPresentationStyle,
|
|
533
534
|
(@{
|
|
534
535
|
@"fullScreen" : @(UIModalPresentationFullScreen),
|
|
536
|
+
#if !TARGET_OS_TV
|
|
535
537
|
@"pageSheet" : @(UIModalPresentationPageSheet),
|
|
536
538
|
@"formSheet" : @(UIModalPresentationFormSheet),
|
|
539
|
+
#endif
|
|
537
540
|
@"overFullScreen" : @(UIModalPresentationOverFullScreen),
|
|
538
541
|
}),
|
|
539
542
|
UIModalPresentationFullScreen,
|
|
540
543
|
integerValue)
|
|
541
|
-
#endif
|
|
542
544
|
|
|
543
545
|
RCT_ENUM_CONVERTER(
|
|
544
546
|
UIViewContentMode,
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -99,9 +99,11 @@ static NSSet<NSNumber *> *returnKeyTypesSet;
|
|
|
99
99
|
NSMutableDictionary<NSAttributedStringKey, id> *defaultAttributes =
|
|
100
100
|
[_backedTextInputView.defaultTextAttributes mutableCopy];
|
|
101
101
|
|
|
102
|
+
#if !TARGET_OS_MACCATALYST
|
|
102
103
|
RCTWeakEventEmitterWrapper *eventEmitterWrapper = [RCTWeakEventEmitterWrapper new];
|
|
103
104
|
eventEmitterWrapper.eventEmitter = _eventEmitter;
|
|
104
105
|
defaultAttributes[RCTAttributedStringEventEmitterKey] = eventEmitterWrapper;
|
|
106
|
+
#endif
|
|
105
107
|
|
|
106
108
|
_backedTextInputView.defaultTextAttributes = defaultAttributes;
|
|
107
109
|
}
|
|
@@ -261,8 +263,10 @@ static NSSet<NSNumber *> *returnKeyTypesSet;
|
|
|
261
263
|
if (newTextInputProps.textAttributes != oldTextInputProps.textAttributes) {
|
|
262
264
|
NSMutableDictionary<NSAttributedStringKey, id> *defaultAttributes =
|
|
263
265
|
RCTNSTextAttributesFromTextAttributes(newTextInputProps.getEffectiveTextAttributes(RCTFontSizeMultiplier()));
|
|
266
|
+
#if !TARGET_OS_MACCATALYST
|
|
264
267
|
defaultAttributes[RCTAttributedStringEventEmitterKey] =
|
|
265
268
|
_backedTextInputView.defaultTextAttributes[RCTAttributedStringEventEmitterKey];
|
|
269
|
+
#endif
|
|
266
270
|
_backedTextInputView.defaultTextAttributes = defaultAttributes;
|
|
267
271
|
}
|
|
268
272
|
|
|
@@ -1656,15 +1656,10 @@ static RCTBorderStyle RCTBorderStyleFromBorderStyle(BorderStyle borderStyle)
|
|
|
1656
1656
|
}
|
|
1657
1657
|
|
|
1658
1658
|
// clipping
|
|
1659
|
+
self.currentContainerView.layer.mask = nil;
|
|
1659
1660
|
if (self.currentContainerView.clipsToBounds) {
|
|
1660
1661
|
BOOL clipToPaddingBox = ReactNativeFeatureFlags::enableIOSViewClipToPaddingBox();
|
|
1661
|
-
if (clipToPaddingBox) {
|
|
1662
|
-
CALayer *maskLayer = [self createMaskLayer:RCTCGRectFromRect(_layoutMetrics.getPaddingFrame())
|
|
1663
|
-
cornerInsets:RCTGetCornerInsets(
|
|
1664
|
-
RCTCornerRadiiFromBorderRadii(borderMetrics.borderRadii),
|
|
1665
|
-
RCTUIEdgeInsetsFromEdgeInsets(borderMetrics.borderWidths))];
|
|
1666
|
-
self.currentContainerView.layer.mask = maskLayer;
|
|
1667
|
-
} else {
|
|
1662
|
+
if (!clipToPaddingBox) {
|
|
1668
1663
|
if (borderMetrics.borderRadii.isUniform()) {
|
|
1669
1664
|
self.currentContainerView.layer.cornerRadius = borderMetrics.borderRadii.topLeft.horizontal;
|
|
1670
1665
|
} else {
|
|
@@ -1686,9 +1681,17 @@ static RCTBorderStyle RCTBorderStyleFromBorderStyle(BorderStyle borderStyle)
|
|
|
1686
1681
|
subview.layer.mask = [self createMaskLayer:subview.bounds cornerInsets:cornerInsets];
|
|
1687
1682
|
}
|
|
1688
1683
|
}
|
|
1684
|
+
} else if (
|
|
1685
|
+
!borderMetrics.borderWidths.isUniform() || borderMetrics.borderWidths.left != 0 ||
|
|
1686
|
+
!borderMetrics.borderRadii.isUniform()) {
|
|
1687
|
+
CALayer *maskLayer = [self createMaskLayer:RCTCGRectFromRect(_layoutMetrics.getPaddingFrame())
|
|
1688
|
+
cornerInsets:RCTGetCornerInsets(
|
|
1689
|
+
RCTCornerRadiiFromBorderRadii(borderMetrics.borderRadii),
|
|
1690
|
+
RCTUIEdgeInsetsFromEdgeInsets(borderMetrics.borderWidths))];
|
|
1691
|
+
self.currentContainerView.layer.mask = maskLayer;
|
|
1692
|
+
} else {
|
|
1693
|
+
self.currentContainerView.layer.cornerRadius = borderMetrics.borderRadii.topLeft.horizontal;
|
|
1689
1694
|
}
|
|
1690
|
-
} else {
|
|
1691
|
-
self.currentContainerView.layer.mask = nil;
|
|
1692
1695
|
}
|
|
1693
1696
|
}
|
|
1694
1697
|
|
|
@@ -34,9 +34,24 @@ set(BUILD_DIR ${PROJECT_BUILD_DIR})
|
|
|
34
34
|
file(TO_CMAKE_PATH "${BUILD_DIR}" BUILD_DIR)
|
|
35
35
|
file(TO_CMAKE_PATH "${REACT_ANDROID_DIR}" REACT_ANDROID_DIR)
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
if (PROJECT_ROOT_DIR)
|
|
38
|
+
# This empty `if` is just to silence a CMake warning and make sure the `PROJECT_ROOT_DIR`
|
|
39
|
+
# variable is defined if user need to access it.
|
|
40
|
+
endif ()
|
|
41
|
+
|
|
42
|
+
file(GLOB override_cpp_SRC CONFIGURE_DEPENDS *.cpp)
|
|
43
|
+
# We check if the user is providing a custom OnLoad.cpp file. If so, we pick that
|
|
44
|
+
# for compilation. Otherwise we fallback to using the `default-app-setup/OnLoad.cpp`
|
|
45
|
+
# file instead.
|
|
46
|
+
if(override_cpp_SRC)
|
|
47
|
+
file(GLOB input_SRC CONFIGURE_DEPENDS
|
|
48
|
+
*.cpp
|
|
49
|
+
${BUILD_DIR}/generated/autolinking/src/main/jni/*.cpp)
|
|
50
|
+
else()
|
|
51
|
+
file(GLOB input_SRC CONFIGURE_DEPENDS
|
|
52
|
+
${REACT_ANDROID_DIR}/cmake-utils/default-app-setup/*.cpp
|
|
53
|
+
${BUILD_DIR}/generated/autolinking/src/main/jni/*.cpp)
|
|
54
|
+
endif()
|
|
40
55
|
|
|
41
56
|
add_library(${CMAKE_PROJECT_NAME} SHARED ${input_SRC})
|
|
42
57
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<89491eb63a7ca59b17419ed4432a4f88>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -34,12 +34,6 @@ public object ReactNativeFeatureFlags {
|
|
|
34
34
|
@JvmStatic
|
|
35
35
|
public fun commonTestFlag(): Boolean = accessor.commonTestFlag()
|
|
36
36
|
|
|
37
|
-
/**
|
|
38
|
-
* Adds support for recursively processing commits that mount synchronously (Android only).
|
|
39
|
-
*/
|
|
40
|
-
@JvmStatic
|
|
41
|
-
public fun allowRecursiveCommitsWithSynchronousMountOnAndroid(): Boolean = accessor.allowRecursiveCommitsWithSynchronousMountOnAndroid()
|
|
42
|
-
|
|
43
37
|
/**
|
|
44
38
|
* When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.
|
|
45
39
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<9f741ec3df7cd5ecd8d5c3c099c86aba>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -21,7 +21,6 @@ package com.facebook.react.internal.featureflags
|
|
|
21
21
|
|
|
22
22
|
public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccessor {
|
|
23
23
|
private var commonTestFlagCache: Boolean? = null
|
|
24
|
-
private var allowRecursiveCommitsWithSynchronousMountOnAndroidCache: Boolean? = null
|
|
25
24
|
private var batchRenderingUpdatesInEventLoopCache: Boolean? = null
|
|
26
25
|
private var completeReactInstanceCreationOnBgThreadOnAndroidCache: Boolean? = null
|
|
27
26
|
private var destroyFabricSurfacesInReactInstanceManagerCache: Boolean? = null
|
|
@@ -78,15 +77,6 @@ public class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAccesso
|
|
|
78
77
|
return cached
|
|
79
78
|
}
|
|
80
79
|
|
|
81
|
-
override fun allowRecursiveCommitsWithSynchronousMountOnAndroid(): Boolean {
|
|
82
|
-
var cached = allowRecursiveCommitsWithSynchronousMountOnAndroidCache
|
|
83
|
-
if (cached == null) {
|
|
84
|
-
cached = ReactNativeFeatureFlagsCxxInterop.allowRecursiveCommitsWithSynchronousMountOnAndroid()
|
|
85
|
-
allowRecursiveCommitsWithSynchronousMountOnAndroidCache = cached
|
|
86
|
-
}
|
|
87
|
-
return cached
|
|
88
|
-
}
|
|
89
|
-
|
|
90
80
|
override fun batchRenderingUpdatesInEventLoop(): Boolean {
|
|
91
81
|
var cached = batchRenderingUpdatesInEventLoopCache
|
|
92
82
|
if (cached == null) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<774337b6aee6f528b0852704271ed96f>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -30,8 +30,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
30
30
|
|
|
31
31
|
@DoNotStrip @JvmStatic public external fun commonTestFlag(): Boolean
|
|
32
32
|
|
|
33
|
-
@DoNotStrip @JvmStatic public external fun allowRecursiveCommitsWithSynchronousMountOnAndroid(): Boolean
|
|
34
|
-
|
|
35
33
|
@DoNotStrip @JvmStatic public external fun batchRenderingUpdatesInEventLoop(): Boolean
|
|
36
34
|
|
|
37
35
|
@DoNotStrip @JvmStatic public external fun completeReactInstanceCreationOnBgThreadOnAndroid(): Boolean
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<43c4ba7a6c4f5a12ada181c081f91bfc>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -25,8 +25,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
25
25
|
|
|
26
26
|
override fun commonTestFlag(): Boolean = false
|
|
27
27
|
|
|
28
|
-
override fun allowRecursiveCommitsWithSynchronousMountOnAndroid(): Boolean = false
|
|
29
|
-
|
|
30
28
|
override fun batchRenderingUpdatesInEventLoop(): Boolean = false
|
|
31
29
|
|
|
32
30
|
override fun completeReactInstanceCreationOnBgThreadOnAndroid(): Boolean = false
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<0ca6ebf7ef1418d721b6f183f89b96a2>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -25,7 +25,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces
|
|
|
25
25
|
private val accessedFeatureFlags = mutableSetOf<String>()
|
|
26
26
|
|
|
27
27
|
private var commonTestFlagCache: Boolean? = null
|
|
28
|
-
private var allowRecursiveCommitsWithSynchronousMountOnAndroidCache: Boolean? = null
|
|
29
28
|
private var batchRenderingUpdatesInEventLoopCache: Boolean? = null
|
|
30
29
|
private var completeReactInstanceCreationOnBgThreadOnAndroidCache: Boolean? = null
|
|
31
30
|
private var destroyFabricSurfacesInReactInstanceManagerCache: Boolean? = null
|
|
@@ -83,16 +82,6 @@ public class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcces
|
|
|
83
82
|
return cached
|
|
84
83
|
}
|
|
85
84
|
|
|
86
|
-
override fun allowRecursiveCommitsWithSynchronousMountOnAndroid(): Boolean {
|
|
87
|
-
var cached = allowRecursiveCommitsWithSynchronousMountOnAndroidCache
|
|
88
|
-
if (cached == null) {
|
|
89
|
-
cached = currentProvider.allowRecursiveCommitsWithSynchronousMountOnAndroid()
|
|
90
|
-
accessedFeatureFlags.add("allowRecursiveCommitsWithSynchronousMountOnAndroid")
|
|
91
|
-
allowRecursiveCommitsWithSynchronousMountOnAndroidCache = cached
|
|
92
|
-
}
|
|
93
|
-
return cached
|
|
94
|
-
}
|
|
95
|
-
|
|
96
85
|
override fun batchRenderingUpdatesInEventLoop(): Boolean {
|
|
97
86
|
var cached = batchRenderingUpdatesInEventLoopCache
|
|
98
87
|
if (cached == null) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<94e1e69be22ec978859e3f242610f21b>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -25,8 +25,6 @@ import com.facebook.proguard.annotations.DoNotStrip
|
|
|
25
25
|
public interface ReactNativeFeatureFlagsProvider {
|
|
26
26
|
@DoNotStrip public fun commonTestFlag(): Boolean
|
|
27
27
|
|
|
28
|
-
@DoNotStrip public fun allowRecursiveCommitsWithSynchronousMountOnAndroid(): Boolean
|
|
29
|
-
|
|
30
28
|
@DoNotStrip public fun batchRenderingUpdatesInEventLoop(): Boolean
|
|
31
29
|
|
|
32
30
|
@DoNotStrip public fun completeReactInstanceCreationOnBgThreadOnAndroid(): Boolean
|
|
@@ -501,27 +501,25 @@ void Binding::schedulerShouldRenderTransactions(
|
|
|
501
501
|
return;
|
|
502
502
|
}
|
|
503
503
|
|
|
504
|
-
if (ReactNativeFeatureFlags::
|
|
505
|
-
allowRecursiveCommitsWithSynchronousMountOnAndroid()) {
|
|
506
|
-
std::vector<MountingTransaction> pendingTransactions;
|
|
507
|
-
|
|
508
|
-
{
|
|
509
|
-
// Retain the lock to access the pending transactions but not to execute
|
|
510
|
-
// the mount operations because that method can call into this method
|
|
511
|
-
// again.
|
|
512
|
-
std::unique_lock<std::mutex> lock(pendingTransactionsMutex_);
|
|
513
|
-
pendingTransactions_.swap(pendingTransactions);
|
|
514
|
-
}
|
|
515
504
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
505
|
+
std::vector<MountingTransaction> pendingTransactions;
|
|
506
|
+
|
|
507
|
+
{
|
|
508
|
+
// Retain the lock to access the pending transactions but not to execute
|
|
509
|
+
// the mount operations because that method can call into this method
|
|
510
|
+
// again.
|
|
511
|
+
//
|
|
512
|
+
// This can be re-entrant when mounting manager triggers state updates
|
|
513
|
+
// synchronously (this can happen when committing from the UI thread).
|
|
514
|
+
// This is safe because we're already combining all the transactions for the
|
|
515
|
+
// same surface ID in a single transaction in the pending transactions list,
|
|
516
|
+
// so operations won't run out of order.
|
|
520
517
|
std::unique_lock<std::mutex> lock(pendingTransactionsMutex_);
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
518
|
+
pendingTransactions_.swap(pendingTransactions);
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
for (auto& transaction : pendingTransactions) {
|
|
522
|
+
mountingManager->executeMount(transaction);
|
|
525
523
|
}
|
|
526
524
|
}
|
|
527
525
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<68e5d4ce0ed3c237eeababaa04821101>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -45,12 +45,6 @@ class ReactNativeFeatureFlagsProviderHolder
|
|
|
45
45
|
return method(javaProvider_);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
bool allowRecursiveCommitsWithSynchronousMountOnAndroid() override {
|
|
49
|
-
static const auto method =
|
|
50
|
-
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("allowRecursiveCommitsWithSynchronousMountOnAndroid");
|
|
51
|
-
return method(javaProvider_);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
48
|
bool batchRenderingUpdatesInEventLoop() override {
|
|
55
49
|
static const auto method =
|
|
56
50
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("batchRenderingUpdatesInEventLoop");
|
|
@@ -336,11 +330,6 @@ bool JReactNativeFeatureFlagsCxxInterop::commonTestFlag(
|
|
|
336
330
|
return ReactNativeFeatureFlags::commonTestFlag();
|
|
337
331
|
}
|
|
338
332
|
|
|
339
|
-
bool JReactNativeFeatureFlagsCxxInterop::allowRecursiveCommitsWithSynchronousMountOnAndroid(
|
|
340
|
-
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
341
|
-
return ReactNativeFeatureFlags::allowRecursiveCommitsWithSynchronousMountOnAndroid();
|
|
342
|
-
}
|
|
343
|
-
|
|
344
333
|
bool JReactNativeFeatureFlagsCxxInterop::batchRenderingUpdatesInEventLoop(
|
|
345
334
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
346
335
|
return ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop();
|
|
@@ -591,9 +580,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
591
580
|
makeNativeMethod(
|
|
592
581
|
"commonTestFlag",
|
|
593
582
|
JReactNativeFeatureFlagsCxxInterop::commonTestFlag),
|
|
594
|
-
makeNativeMethod(
|
|
595
|
-
"allowRecursiveCommitsWithSynchronousMountOnAndroid",
|
|
596
|
-
JReactNativeFeatureFlagsCxxInterop::allowRecursiveCommitsWithSynchronousMountOnAndroid),
|
|
597
583
|
makeNativeMethod(
|
|
598
584
|
"batchRenderingUpdatesInEventLoop",
|
|
599
585
|
JReactNativeFeatureFlagsCxxInterop::batchRenderingUpdatesInEventLoop),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<bba5d2a290f39b6572db7f90b67e8469>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -33,9 +33,6 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
33
33
|
static bool commonTestFlag(
|
|
34
34
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
35
35
|
|
|
36
|
-
static bool allowRecursiveCommitsWithSynchronousMountOnAndroid(
|
|
37
|
-
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
38
|
-
|
|
39
36
|
static bool batchRenderingUpdatesInEventLoop(
|
|
40
37
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
41
38
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<5c4ae3a29f0191428284e0c660353edf>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -25,10 +25,6 @@ bool ReactNativeFeatureFlags::commonTestFlag() {
|
|
|
25
25
|
return getAccessor().commonTestFlag();
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
bool ReactNativeFeatureFlags::allowRecursiveCommitsWithSynchronousMountOnAndroid() {
|
|
29
|
-
return getAccessor().allowRecursiveCommitsWithSynchronousMountOnAndroid();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
28
|
bool ReactNativeFeatureFlags::batchRenderingUpdatesInEventLoop() {
|
|
33
29
|
return getAccessor().batchRenderingUpdatesInEventLoop();
|
|
34
30
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<8c40f45357799de60f939b510f1d2ae5>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -42,11 +42,6 @@ class ReactNativeFeatureFlags {
|
|
|
42
42
|
*/
|
|
43
43
|
RN_EXPORT static bool commonTestFlag();
|
|
44
44
|
|
|
45
|
-
/**
|
|
46
|
-
* Adds support for recursively processing commits that mount synchronously (Android only).
|
|
47
|
-
*/
|
|
48
|
-
RN_EXPORT static bool allowRecursiveCommitsWithSynchronousMountOnAndroid();
|
|
49
|
-
|
|
50
45
|
/**
|
|
51
46
|
* When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.
|
|
52
47
|
*/
|