Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<c9be40b9d016463d1531057598a6aa88>>
* @generated SignedSource<<1eca66b21554b00725f2a9be894a0db9>>
*/

/**
Expand Down Expand Up @@ -294,6 +294,12 @@ public object ReactNativeFeatureFlags {
@JvmStatic
public fun enablePropsUpdateReconciliationAndroid(): Boolean = accessor.enablePropsUpdateReconciliationAndroid()

/**
* Gates a defensive guard around Scheduler::uiManagerDidDispatchCommand and uiManagerDidFinishTransaction that prevents queued rendering-update lambdas from dereferencing the SchedulerDelegate after it has been destroyed (use-after-free).
*/
@JvmStatic
public fun enableSchedulerDelegateInvalidation(): Boolean = accessor.enableSchedulerDelegateInvalidation()

/**
* When enabled, it will use SwiftUI for filter effects like blur on iOS.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<d07f1b96cf6e0a1798f86fc9f61caf73>>
* @generated SignedSource<<76d977ea53cb2a37fc2ea8549e31cebd>>
*/

/**
Expand Down Expand Up @@ -64,6 +64,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
private var enableNetworkEventReportingCache: Boolean? = null
private var enablePreparedTextLayoutCache: Boolean? = null
private var enablePropsUpdateReconciliationAndroidCache: Boolean? = null
private var enableSchedulerDelegateInvalidationCache: Boolean? = null
private var enableSwiftUIBasedFiltersCache: Boolean? = null
private var enableViewCullingCache: Boolean? = null
private var enableViewRecyclingCache: Boolean? = null
Expand Down Expand Up @@ -508,6 +509,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
return cached
}

override fun enableSchedulerDelegateInvalidation(): Boolean {
var cached = enableSchedulerDelegateInvalidationCache
if (cached == null) {
cached = ReactNativeFeatureFlagsCxxInterop.enableSchedulerDelegateInvalidation()
enableSchedulerDelegateInvalidationCache = cached
}
return cached
}

override fun enableSwiftUIBasedFilters(): Boolean {
var cached = enableSwiftUIBasedFiltersCache
if (cached == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<d9aa2a16720aa9fd4378c0c14e4f8ffa>>
* @generated SignedSource<<a737810bf0211590401c2afb464aaf37>>
*/

/**
Expand Down Expand Up @@ -116,6 +116,8 @@ public object ReactNativeFeatureFlagsCxxInterop {

@DoNotStrip @JvmStatic public external fun enablePropsUpdateReconciliationAndroid(): Boolean

@DoNotStrip @JvmStatic public external fun enableSchedulerDelegateInvalidation(): Boolean

@DoNotStrip @JvmStatic public external fun enableSwiftUIBasedFilters(): Boolean

@DoNotStrip @JvmStatic public external fun enableViewCulling(): Boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<54a4f6d01a052e5ab19b15652d5ab1a5>>
* @generated SignedSource<<9e5b3192d1bec953c116d959ad63283d>>
*/

/**
Expand Down Expand Up @@ -111,6 +111,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi

override fun enablePropsUpdateReconciliationAndroid(): Boolean = false

override fun enableSchedulerDelegateInvalidation(): Boolean = false

override fun enableSwiftUIBasedFilters(): Boolean = false

override fun enableViewCulling(): Boolean = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<4d09d820304f454bc3850da89087caec>>
* @generated SignedSource<<378d6a8de497d26ebbbf55885be27a21>>
*/

/**
Expand Down Expand Up @@ -68,6 +68,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
private var enableNetworkEventReportingCache: Boolean? = null
private var enablePreparedTextLayoutCache: Boolean? = null
private var enablePropsUpdateReconciliationAndroidCache: Boolean? = null
private var enableSchedulerDelegateInvalidationCache: Boolean? = null
private var enableSwiftUIBasedFiltersCache: Boolean? = null
private var enableViewCullingCache: Boolean? = null
private var enableViewRecyclingCache: Boolean? = null
Expand Down Expand Up @@ -556,6 +557,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
return cached
}

override fun enableSchedulerDelegateInvalidation(): Boolean {
var cached = enableSchedulerDelegateInvalidationCache
if (cached == null) {
cached = currentProvider.enableSchedulerDelegateInvalidation()
accessedFeatureFlags.add("enableSchedulerDelegateInvalidation")
enableSchedulerDelegateInvalidationCache = cached
}
return cached
}

override fun enableSwiftUIBasedFilters(): Boolean {
var cached = enableSwiftUIBasedFiltersCache
if (cached == null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<187ac62197545fbce9d537527b4aed3b>>
* @generated SignedSource<<6a5fd95dffcab319acb765aa25a33d8d>>
*/

/**
Expand All @@ -27,6 +27,8 @@ public open class ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android :

override fun enableAccessibilityOrder(): Boolean = true

override fun enableSchedulerDelegateInvalidation(): Boolean = true

override fun enableSwiftUIBasedFilters(): Boolean = true

override fun preventShadowTreeCommitExhaustion(): Boolean = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<592acf445c4b4e56651cd6afb57e46fa>>
* @generated SignedSource<<42e555a40da280b24f84e3ee5b45051d>>
*/

/**
Expand Down Expand Up @@ -111,6 +111,8 @@ public interface ReactNativeFeatureFlagsProvider {

@DoNotStrip public fun enablePropsUpdateReconciliationAndroid(): Boolean

@DoNotStrip public fun enableSchedulerDelegateInvalidation(): Boolean

@DoNotStrip public fun enableSwiftUIBasedFilters(): Boolean

@DoNotStrip public fun enableViewCulling(): Boolean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<55e4d6d6dc930b4ccf3e20cb77f7a042>>
* @generated SignedSource<<d9ed25122f1ff64122bfc83f8e5e9545>>
*/

/**
Expand Down Expand Up @@ -303,6 +303,12 @@ class ReactNativeFeatureFlagsJavaProvider
return method(javaProvider_);
}

bool enableSchedulerDelegateInvalidation() override {
static const auto method =
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableSchedulerDelegateInvalidation");
return method(javaProvider_);
}

bool enableSwiftUIBasedFilters() override {
static const auto method =
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableSwiftUIBasedFilters");
Expand Down Expand Up @@ -809,6 +815,11 @@ bool JReactNativeFeatureFlagsCxxInterop::enablePropsUpdateReconciliationAndroid(
return ReactNativeFeatureFlags::enablePropsUpdateReconciliationAndroid();
}

bool JReactNativeFeatureFlagsCxxInterop::enableSchedulerDelegateInvalidation(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
return ReactNativeFeatureFlags::enableSchedulerDelegateInvalidation();
}

bool JReactNativeFeatureFlagsCxxInterop::enableSwiftUIBasedFilters(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
return ReactNativeFeatureFlags::enableSwiftUIBasedFilters();
Expand Down Expand Up @@ -1207,6 +1218,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
makeNativeMethod(
"enablePropsUpdateReconciliationAndroid",
JReactNativeFeatureFlagsCxxInterop::enablePropsUpdateReconciliationAndroid),
makeNativeMethod(
"enableSchedulerDelegateInvalidation",
JReactNativeFeatureFlagsCxxInterop::enableSchedulerDelegateInvalidation),
makeNativeMethod(
"enableSwiftUIBasedFilters",
JReactNativeFeatureFlagsCxxInterop::enableSwiftUIBasedFilters),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<f1db4e44d0b5d3daa11aec0e6a83e09f>>
* @generated SignedSource<<d87a80a2a88acb2187ea20b8181a7588>>
*/

/**
Expand Down Expand Up @@ -162,6 +162,9 @@ class JReactNativeFeatureFlagsCxxInterop
static bool enablePropsUpdateReconciliationAndroid(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);

static bool enableSchedulerDelegateInvalidation(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);

static bool enableSwiftUIBasedFilters(
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<16024bed6914b4b74d4a50de142e872a>>
* @generated SignedSource<<ad7a835ef9cbe3a9a6121ac127038668>>
*/

/**
Expand Down Expand Up @@ -202,6 +202,10 @@ bool ReactNativeFeatureFlags::enablePropsUpdateReconciliationAndroid() {
return getAccessor().enablePropsUpdateReconciliationAndroid();
}

bool ReactNativeFeatureFlags::enableSchedulerDelegateInvalidation() {
return getAccessor().enableSchedulerDelegateInvalidation();
}

bool ReactNativeFeatureFlags::enableSwiftUIBasedFilters() {
return getAccessor().enableSwiftUIBasedFilters();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @generated SignedSource<<33ffe2572bbaeba64d2167dbac4bb0ab>>
* @generated SignedSource<<8b4288e3f5a8b26951150a3c75ad4356>>
*/

/**
Expand Down Expand Up @@ -259,6 +259,11 @@ class ReactNativeFeatureFlags {
*/
RN_EXPORT static bool enablePropsUpdateReconciliationAndroid();

/**
* Gates a defensive guard around Scheduler::uiManagerDidDispatchCommand and uiManagerDidFinishTransaction that prevents queued rendering-update lambdas from dereferencing the SchedulerDelegate after it has been destroyed (use-after-free).
*/
RN_EXPORT static bool enableSchedulerDelegateInvalidation();

/**
* When enabled, it will use SwiftUI for filter effects like blur on iOS.
*/
Expand Down
Loading
Loading