Skip to content

Commit 9f7af3e

Browse files
huntiemeta-codesync[bot]
authored andcommitted
Clean up network inspection feature flags (#57577)
Summary: Pull Request resolved: #57577 Network Inspection has been Stage 4 / rolled out since 0.83. Circle back to remove feature flags from the codebase. **Changes** - Remove `enableNetworkEventReporting` and `fuseboxNetworkInspectionEnabled` flag definitions. - Remove all feature guards in code. - Update tests (add mocks). - (fbsource) Remove all overrides. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D111696522 fbshipit-source-id: 4c6ba9a6d5abf2770b9b485556602059d1c24b59
1 parent 3f8f5c2 commit 9f7af3e

46 files changed

Lines changed: 247 additions & 532 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/react-native/Libraries/Network/RCTNetworking.mm

Lines changed: 25 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#import <React/RCTUtils.h>
1616

1717
#import <React/RCTHTTPRequestHandler.h>
18-
#import <react/featureflags/ReactNativeFeatureFlags.h>
1918

2019
#import "RCTInspectorNetworkReporter.h"
2120
#import "RCTNetworkPlugins.h"
@@ -452,9 +451,7 @@ - (BOOL)canHandleRequest:(NSURLRequest *)request
452451
__weak RCTNetworkTask *weakTask = task;
453452
return ^{
454453
[weakTask cancel];
455-
if (facebook::react::ReactNativeFeatureFlags::enableNetworkEventReporting()) {
456-
[RCTInspectorNetworkReporter reportRequestFailed:devToolsRequestId cancelled:YES];
457-
}
454+
[RCTInspectorNetworkReporter reportRequestFailed:devToolsRequestId cancelled:YES];
458455
if (cancellationBlock) {
459456
cancellationBlock();
460457
}
@@ -574,19 +571,17 @@ - (void)sendData:(NSData *)data
574571
}
575572
}
576573

577-
if (facebook::react::ReactNativeFeatureFlags::enableNetworkEventReporting()) {
578-
id responseDataForPreview;
579-
if ([responseType isEqualToString:@"blob"]) {
580-
responseDataForPreview = data;
581-
} else if ([responseData isKindOfClass:[NSString class]]) {
582-
responseDataForPreview = responseData;
583-
}
584-
bool base64Encoded = [responseType isEqualToString:@"base64"] || [responseType isEqualToString:@"blob"];
585-
586-
[RCTInspectorNetworkReporter maybeStoreResponseBody:task.devToolsRequestId
587-
data:responseDataForPreview
588-
base64Encoded:base64Encoded];
574+
id responseDataForPreview;
575+
if ([responseType isEqualToString:@"blob"]) {
576+
responseDataForPreview = data;
577+
} else if ([responseData isKindOfClass:[NSString class]]) {
578+
responseDataForPreview = responseData;
589579
}
580+
bool base64Encoded = [responseType isEqualToString:@"base64"] || [responseType isEqualToString:@"blob"];
581+
582+
[RCTInspectorNetworkReporter maybeStoreResponseBody:task.devToolsRequestId
583+
data:responseDataForPreview
584+
base64Encoded:base64Encoded];
590585

591586
[self sendEventWithName:@"didReceiveNetworkData" body:@[ task.requestID, responseData ]];
592587
}
@@ -620,12 +615,10 @@ - (void)sendRequest:(NSURLRequest *)request
620615
id responseURL = response.URL ? response.URL.absoluteString : [NSNull null];
621616
NSArray<id> *responseJSON = @[ task.requestID, @(status), headers, responseURL ];
622617

623-
if (facebook::react::ReactNativeFeatureFlags::enableNetworkEventReporting()) {
624-
[RCTInspectorNetworkReporter reportResponseStart:task.devToolsRequestId
625-
response:response
626-
statusCode:status
627-
headers:headers];
628-
}
618+
[RCTInspectorNetworkReporter reportResponseStart:task.devToolsRequestId
619+
response:response
620+
statusCode:status
621+
headers:headers];
629622
[weakSelf sendEventWithName:@"didReceiveNetworkResponse" body:responseJSON];
630623
};
631624

@@ -660,10 +653,8 @@ - (void)sendRequest:(NSURLRequest *)request
660653
@(total)
661654
];
662655

663-
if (facebook::react::ReactNativeFeatureFlags::enableNetworkEventReporting()) {
664-
[RCTInspectorNetworkReporter reportDataReceived:task.devToolsRequestId data:data];
665-
[RCTInspectorNetworkReporter maybeStoreResponseBodyIncremental:task.devToolsRequestId data:responseString];
666-
}
656+
[RCTInspectorNetworkReporter reportDataReceived:task.devToolsRequestId data:data];
657+
[RCTInspectorNetworkReporter maybeStoreResponseBodyIncremental:task.devToolsRequestId data:responseString];
667658
[weakSelf sendEventWithName:@"didReceiveNetworkIncrementalData" body:responseJSON];
668659
};
669660
} else {
@@ -700,12 +691,10 @@ - (void)sendRequest:(NSURLRequest *)request
700691
NSArray *responseJSON =
701692
@[ task.requestID, RCTNullIfNil(error.localizedDescription), error.code == kCFURLErrorTimedOut ? @YES : @NO ];
702693

703-
if (facebook::react::ReactNativeFeatureFlags::enableNetworkEventReporting()) {
704-
if (error != nullptr) {
705-
[RCTInspectorNetworkReporter reportRequestFailed:task.devToolsRequestId cancelled:NO];
706-
} else {
707-
[RCTInspectorNetworkReporter reportResponseEnd:task.devToolsRequestId encodedDataLength:data.length];
708-
}
694+
if (error != nullptr) {
695+
[RCTInspectorNetworkReporter reportRequestFailed:task.devToolsRequestId cancelled:NO];
696+
} else {
697+
[RCTInspectorNetworkReporter reportResponseEnd:task.devToolsRequestId encodedDataLength:data.length];
709698
}
710699
[strongSelf sendEventWithName:@"didCompleteNetworkResponse" body:responseJSON];
711700
[strongSelf->_tasksByRequestID removeObjectForKey:task.requestID];
@@ -723,12 +712,10 @@ - (void)sendRequest:(NSURLRequest *)request
723712
}
724713
_tasksByRequestID[task.requestID] = task;
725714
responseSender(@[ task.requestID ]);
726-
if (facebook::react::ReactNativeFeatureFlags::enableNetworkEventReporting()) {
727-
[RCTInspectorNetworkReporter reportRequestStart:task.devToolsRequestId
728-
request:request
729-
encodedDataLength:task.response.expectedContentLength];
730-
[RCTInspectorNetworkReporter reportConnectionTiming:task.devToolsRequestId request:task.request];
731-
}
715+
[RCTInspectorNetworkReporter reportRequestStart:task.devToolsRequestId
716+
request:request
717+
encodedDataLength:task.response.expectedContentLength];
718+
[RCTInspectorNetworkReporter reportConnectionTiming:task.devToolsRequestId request:task.request];
732719
}
733720

734721
[task start];

packages/react-native/React/CoreModules/RCTInspectorWebSocketReporter.mm

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828

2929
/**
3030
* Returns whether WebSocket events should be reported for the given request
31-
* ID. Reporting requires the `enableNetworkEventReporting` and
32-
* `fuseboxWebSocketEventsEnabled` feature flags, and a connected CDP debugger
33-
* with the Network domain enabled (dev or profiling builds only).
31+
* ID. Reporting requires the `fuseboxWebSocketEventsEnabled` feature flag, and
32+
* a connected CDP debugger with the Network domain enabled (dev or profiling
33+
* builds only).
3434
*/
3535
BOOL isReportingEnabled(NSString *requestId)
3636
{
37-
return requestId != nil && ReactNativeFeatureFlags::enableNetworkEventReporting() &&
38-
ReactNativeFeatureFlags::fuseboxWebSocketEventsEnabled() && NetworkReporter::getInstance().isDebuggingEnabled();
37+
return requestId != nil && ReactNativeFeatureFlags::fuseboxWebSocketEventsEnabled() &&
38+
NetworkReporter::getInstance().isDebuggingEnabled();
3939
}
4040

4141
Headers convertNSDictionaryToHeaders(const NSDictionary<NSString *, NSString *> *headers)

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<df3f81d0083a8ebe9d0fbcb86e652405>>
7+
* @generated SignedSource<<c5ce707ba940ef24ca6c261fd9b2baf7>>
88
*/
99

1010
/**
@@ -264,12 +264,6 @@ public object ReactNativeFeatureFlags {
264264
@JvmStatic
265265
public fun enableNativeCSSParsing(): Boolean = accessor.enableNativeCSSParsing()
266266

267-
/**
268-
* Enable network event reporting hooks in each native platform through `NetworkReporter` (Web Perf APIs + CDP). This flag should be combined with `fuseboxNetworkInspectionEnabled` to enable Network CDP debugging.
269-
*/
270-
@JvmStatic
271-
public fun enableNetworkEventReporting(): Boolean = accessor.enableNetworkEventReporting()
272-
273267
/**
274268
* Enables caching text layout artifacts for later reuse
275269
*/
@@ -378,20 +372,14 @@ public object ReactNativeFeatureFlags {
378372
@JvmStatic
379373
public fun fuseboxFrameRecordingEnabled(): Boolean = accessor.fuseboxFrameRecordingEnabled()
380374

381-
/**
382-
* Enable network inspection support in the React Native DevTools CDP backend. This flag is global and should not be changed across React Host lifetimes.
383-
*/
384-
@JvmStatic
385-
public fun fuseboxNetworkInspectionEnabled(): Boolean = accessor.fuseboxNetworkInspectionEnabled()
386-
387375
/**
388376
* Enable Page.captureScreenshot CDP method support in the React Native DevTools CDP backend. This flag is global and should not be changed across React Host lifetimes.
389377
*/
390378
@JvmStatic
391379
public fun fuseboxScreenshotCaptureEnabled(): Boolean = accessor.fuseboxScreenshotCaptureEnabled()
392380

393381
/**
394-
* Enable reporting of WebSocket network events (`Network.webSocket*` CDP events) to the React Native DevTools CDP backend. Requires `fuseboxNetworkInspectionEnabled`.
382+
* Enable reporting of WebSocket network events (`Network.webSocket*` CDP events) to the React Native DevTools CDP backend.
395383
*/
396384
@JvmStatic
397385
public fun fuseboxWebSocketEventsEnabled(): Boolean = accessor.fuseboxWebSocketEventsEnabled()

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<c31110405f1c9cd5ae0627fb114585a6>>
7+
* @generated SignedSource<<628ede95c745280c1ceaa73c6dc45de0>>
88
*/
99

1010
/**
@@ -59,7 +59,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
5959
private var enableModuleArgumentNSNullConversionIOSCache: Boolean? = null
6060
private var enableMutationObserverByDefaultCache: Boolean? = null
6161
private var enableNativeCSSParsingCache: Boolean? = null
62-
private var enableNetworkEventReportingCache: Boolean? = null
6362
private var enablePreparedTextLayoutCache: Boolean? = null
6463
private var enablePropsUpdateReconciliationAndroidCache: Boolean? = null
6564
private var enableRuntimeSchedulerQueueClearingOnErrorCache: Boolean? = null
@@ -78,7 +77,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
7877
private var fuseboxAssertSingleHostStateCache: Boolean? = null
7978
private var fuseboxEnabledReleaseCache: Boolean? = null
8079
private var fuseboxFrameRecordingEnabledCache: Boolean? = null
81-
private var fuseboxNetworkInspectionEnabledCache: Boolean? = null
8280
private var fuseboxScreenshotCaptureEnabledCache: Boolean? = null
8381
private var fuseboxWebSocketEventsEnabledCache: Boolean? = null
8482
private var optimizedAnimatedPropUpdatesCache: Boolean? = null
@@ -459,15 +457,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
459457
return cached
460458
}
461459

462-
override fun enableNetworkEventReporting(): Boolean {
463-
var cached = enableNetworkEventReportingCache
464-
if (cached == null) {
465-
cached = ReactNativeFeatureFlagsCxxInterop.enableNetworkEventReporting()
466-
enableNetworkEventReportingCache = cached
467-
}
468-
return cached
469-
}
470-
471460
override fun enablePreparedTextLayout(): Boolean {
472461
var cached = enablePreparedTextLayoutCache
473462
if (cached == null) {
@@ -630,15 +619,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
630619
return cached
631620
}
632621

633-
override fun fuseboxNetworkInspectionEnabled(): Boolean {
634-
var cached = fuseboxNetworkInspectionEnabledCache
635-
if (cached == null) {
636-
cached = ReactNativeFeatureFlagsCxxInterop.fuseboxNetworkInspectionEnabled()
637-
fuseboxNetworkInspectionEnabledCache = cached
638-
}
639-
return cached
640-
}
641-
642622
override fun fuseboxScreenshotCaptureEnabled(): Boolean {
643623
var cached = fuseboxScreenshotCaptureEnabledCache
644624
if (cached == null) {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<87b76f5c2af82462dc66c7721cd66ac4>>
7+
* @generated SignedSource<<6a0e60fe118f3651dc76c895a37fbce2>>
88
*/
99

1010
/**
@@ -106,8 +106,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
106106

107107
@DoNotStrip @JvmStatic public external fun enableNativeCSSParsing(): Boolean
108108

109-
@DoNotStrip @JvmStatic public external fun enableNetworkEventReporting(): Boolean
110-
111109
@DoNotStrip @JvmStatic public external fun enablePreparedTextLayout(): Boolean
112110

113111
@DoNotStrip @JvmStatic public external fun enablePropsUpdateReconciliationAndroid(): Boolean
@@ -144,8 +142,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
144142

145143
@DoNotStrip @JvmStatic public external fun fuseboxFrameRecordingEnabled(): Boolean
146144

147-
@DoNotStrip @JvmStatic public external fun fuseboxNetworkInspectionEnabled(): Boolean
148-
149145
@DoNotStrip @JvmStatic public external fun fuseboxScreenshotCaptureEnabled(): Boolean
150146

151147
@DoNotStrip @JvmStatic public external fun fuseboxWebSocketEventsEnabled(): Boolean

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<8a117541421f413e517e1be1acf8be7d>>
7+
* @generated SignedSource<<37e483d52d12a735e646c8ac06acb62c>>
88
*/
99

1010
/**
@@ -101,8 +101,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
101101

102102
override fun enableNativeCSSParsing(): Boolean = false
103103

104-
override fun enableNetworkEventReporting(): Boolean = true
105-
106104
override fun enablePreparedTextLayout(): Boolean = false
107105

108106
override fun enablePropsUpdateReconciliationAndroid(): Boolean = false
@@ -139,8 +137,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
139137

140138
override fun fuseboxFrameRecordingEnabled(): Boolean = false
141139

142-
override fun fuseboxNetworkInspectionEnabled(): Boolean = true
143-
144140
override fun fuseboxScreenshotCaptureEnabled(): Boolean = true
145141

146142
override fun fuseboxWebSocketEventsEnabled(): Boolean = false

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<9a2806b3934d130010954a92a7b48e0f>>
7+
* @generated SignedSource<<5b7a6ca47ca43f473596e35dfced16e0>>
88
*/
99

1010
/**
@@ -63,7 +63,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
6363
private var enableModuleArgumentNSNullConversionIOSCache: Boolean? = null
6464
private var enableMutationObserverByDefaultCache: Boolean? = null
6565
private var enableNativeCSSParsingCache: Boolean? = null
66-
private var enableNetworkEventReportingCache: Boolean? = null
6766
private var enablePreparedTextLayoutCache: Boolean? = null
6867
private var enablePropsUpdateReconciliationAndroidCache: Boolean? = null
6968
private var enableRuntimeSchedulerQueueClearingOnErrorCache: Boolean? = null
@@ -82,7 +81,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
8281
private var fuseboxAssertSingleHostStateCache: Boolean? = null
8382
private var fuseboxEnabledReleaseCache: Boolean? = null
8483
private var fuseboxFrameRecordingEnabledCache: Boolean? = null
85-
private var fuseboxNetworkInspectionEnabledCache: Boolean? = null
8684
private var fuseboxScreenshotCaptureEnabledCache: Boolean? = null
8785
private var fuseboxWebSocketEventsEnabledCache: Boolean? = null
8886
private var optimizedAnimatedPropUpdatesCache: Boolean? = null
@@ -502,16 +500,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
502500
return cached
503501
}
504502

505-
override fun enableNetworkEventReporting(): Boolean {
506-
var cached = enableNetworkEventReportingCache
507-
if (cached == null) {
508-
cached = currentProvider.enableNetworkEventReporting()
509-
accessedFeatureFlags.add("enableNetworkEventReporting")
510-
enableNetworkEventReportingCache = cached
511-
}
512-
return cached
513-
}
514-
515503
override fun enablePreparedTextLayout(): Boolean {
516504
var cached = enablePreparedTextLayoutCache
517505
if (cached == null) {
@@ -692,16 +680,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
692680
return cached
693681
}
694682

695-
override fun fuseboxNetworkInspectionEnabled(): Boolean {
696-
var cached = fuseboxNetworkInspectionEnabledCache
697-
if (cached == null) {
698-
cached = currentProvider.fuseboxNetworkInspectionEnabled()
699-
accessedFeatureFlags.add("fuseboxNetworkInspectionEnabled")
700-
fuseboxNetworkInspectionEnabledCache = cached
701-
}
702-
return cached
703-
}
704-
705683
override fun fuseboxScreenshotCaptureEnabled(): Boolean {
706684
var cached = fuseboxScreenshotCaptureEnabledCache
707685
if (cached == null) {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* This source code is licensed under the MIT license found in the
55
* LICENSE file in the root directory of this source tree.
66
*
7-
* @generated SignedSource<<49c76b8072c1bd29135086c9e0a5da2f>>
7+
* @generated SignedSource<<ee254c53ae1b4bc03045926028e898e5>>
88
*/
99

1010
/**
@@ -101,8 +101,6 @@ public interface ReactNativeFeatureFlagsProvider {
101101

102102
@DoNotStrip public fun enableNativeCSSParsing(): Boolean
103103

104-
@DoNotStrip public fun enableNetworkEventReporting(): Boolean
105-
106104
@DoNotStrip public fun enablePreparedTextLayout(): Boolean
107105

108106
@DoNotStrip public fun enablePropsUpdateReconciliationAndroid(): Boolean
@@ -139,8 +137,6 @@ public interface ReactNativeFeatureFlagsProvider {
139137

140138
@DoNotStrip public fun fuseboxFrameRecordingEnabled(): Boolean
141139

142-
@DoNotStrip public fun fuseboxNetworkInspectionEnabled(): Boolean
143-
144140
@DoNotStrip public fun fuseboxScreenshotCaptureEnabled(): Boolean
145141

146142
@DoNotStrip public fun fuseboxWebSocketEventsEnabled(): Boolean

0 commit comments

Comments
 (0)