first commit

This commit is contained in:
2026-03-10 16:18:05 +00:00
commit 11f9c069b5
31635 changed files with 3187747 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#include "InspectorFlagOverridesGuard.h"
#include <jsinspector-modern/InspectorFlags.h>
#include <react/featureflags/ReactNativeFeatureFlags.h>
#include <react/featureflags/ReactNativeFeatureFlagsDefaults.h>
#include <memory>
namespace facebook::react::jsinspector_modern {
/**
* Helper class that maps \c InspectorFlagOverrides to the shape of \c
* ReactNativeFeatureFlagsDefaults.
*/
class ReactNativeFeatureFlagsOverrides
: public ReactNativeFeatureFlagsDefaults {
public:
explicit ReactNativeFeatureFlagsOverrides(
const InspectorFlagOverrides& overrides)
: overrides_(overrides) {}
bool fuseboxEnabledRelease() override {
return overrides_.fuseboxEnabledRelease.value_or(
ReactNativeFeatureFlagsDefaults::fuseboxEnabledRelease());
}
bool fuseboxNetworkInspectionEnabled() override {
return overrides_.networkInspectionEnabled.value_or(
ReactNativeFeatureFlagsDefaults::fuseboxNetworkInspectionEnabled());
}
bool enableBridgelessArchitecture() override {
// NOTE: Network support is gated by (enableBridgelessArchitecture &&
// fuseboxNetworkInspectionEnabled).
return overrides_.networkInspectionEnabled.value_or(
ReactNativeFeatureFlagsDefaults::enableBridgelessArchitecture());
}
bool enableNetworkEventReporting() override {
return overrides_.enableNetworkEventReporting.value_or(
ReactNativeFeatureFlagsDefaults::enableNetworkEventReporting());
}
private:
InspectorFlagOverrides overrides_;
};
InspectorFlagOverridesGuard::InspectorFlagOverridesGuard(
const InspectorFlagOverrides& overrides) {
InspectorFlags::getInstance().dangerouslyResetFlags();
ReactNativeFeatureFlags::override(
std::make_unique<ReactNativeFeatureFlagsOverrides>(overrides));
}
InspectorFlagOverridesGuard::~InspectorFlagOverridesGuard() {
ReactNativeFeatureFlags::dangerouslyReset();
}
} // namespace facebook::react::jsinspector_modern

View File

@@ -0,0 +1,42 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#pragma once
#include <react/featureflags/ReactNativeFeatureFlagsDefaults.h>
#include <optional>
namespace facebook::react::jsinspector_modern {
/**
* Overridden \c InspectorFlags values for use in tests.
*/
struct InspectorFlagOverrides {
// NOTE: Keep these entries in sync with ReactNativeFeatureFlagsOverrides in
// the implementation file.
std::optional<bool> fuseboxEnabledRelease;
std::optional<bool> networkInspectionEnabled;
std::optional<bool> enableNetworkEventReporting;
};
/**
* A RAII helper to set up and tear down \c InspectorFlags (via \c
* ReactNativeFeatureFlags) with overrides for the lifetime of a test object.
*/
class InspectorFlagOverridesGuard {
public:
explicit InspectorFlagOverridesGuard(const InspectorFlagOverrides &overrides);
InspectorFlagOverridesGuard(const InspectorFlagOverridesGuard &) = delete;
InspectorFlagOverridesGuard(InspectorFlagOverridesGuard &&) = default;
InspectorFlagOverridesGuard &operator=(const InspectorFlagOverridesGuard &) = delete;
InspectorFlagOverridesGuard &operator=(InspectorFlagOverridesGuard &&) = default;
~InspectorFlagOverridesGuard();
};
} // namespace facebook::react::jsinspector_modern