Use ReactFeatureFlags to enable mapBuffer in C++

Summary:
This diff refactors the way we are populating the 'MapBufferSerializationEnabled' context cointainer key to use ReactFeatureFlags instead of MobileConfig.

This is necessary to make sure we always use a consistent value between C++ and Java. e.g. to prevent SEV like S230730 set different values in java and c++ code

changelog: [internal] internal

Reviewed By: JoshuaGross

Differential Revision: D28360679

fbshipit-source-id: baef9d53f84de25c5671483dcd995674bfa61984
This commit is contained in:
David Vacca
2021-05-11 12:56:19 -07:00
committed by Facebook GitHub Bot
parent 0f4cdc9d29
commit e3367354cc
2 changed files with 13 additions and 3 deletions
@@ -462,6 +462,9 @@ void Binding::installFabricUIManager(
jni::alias_ref<jobject> reactNativeConfig) {
SystraceSection s("FabricUIManagerBinding::installFabricUIManager");
static const auto reactFeatureFlagsJavaDescriptor =
jni::findClassStatic(Binding::ReactFeatureFlagsJavaDescriptor);
std::shared_ptr<const ReactNativeConfig> config =
std::make_shared<const ReactNativeConfigHolder>(reactNativeConfig);
@@ -530,10 +533,14 @@ void Binding::installFabricUIManager(
// Keep reference to config object and cache some feature flags here
reactNativeConfig_ = config;
static const auto mapBufferSerializationEnabledField =
reactFeatureFlagsJavaDescriptor->getStaticField<jboolean>(
"mapBufferSerializationEnabled");
bool mapBufferSerializationEnabled =
reactFeatureFlagsJavaDescriptor->getStaticFieldValue(
mapBufferSerializationEnabledField);
contextContainer->insert(
"MapBufferSerializationEnabled",
reactNativeConfig_->getBool(
"react_fabric:enable_mapbuffer_serialization_android"));
"MapBufferSerializationEnabled", mapBufferSerializationEnabled);
disablePreallocateViews_ = reactNativeConfig_->getBool(
"react_fabric:disabled_view_preallocation_android");
@@ -76,6 +76,9 @@ class Binding : public jni::HybridClass<Binding>,
constexpr static auto UIManagerJavaDescriptor =
"com/facebook/react/fabric/FabricUIManager";
constexpr static auto ReactFeatureFlagsJavaDescriptor =
"com/facebook/react/config/ReactFeatureFlags";
static void registerNatives();
private: