Skip to content

Commit 7752289

Browse files
huntiefacebook-github-bot
authored andcommitted
Promote fuseboxScreenshotCaptureEnabled to stable
Summary: This feature is fully implemented, stable, and isolated — enable for all. See also react/react-native-devtools-frontend#252. Changelog: [General][Added] - **React Native DevTools**: Users and agents can now capture app screenshots via the `Page.captureScreenshot` command Differential Revision: D111894234
1 parent cb0cf07 commit 7752289

6 files changed

Lines changed: 10 additions & 16 deletions

File tree

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

Lines changed: 2 additions & 2 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<<9b295106ef57d7fa85846c57bb74a090>>
7+
* @generated SignedSource<<b9af52e00c2ec40c932a9f3da1719efb>>
88
*/
99

1010
/**
@@ -141,7 +141,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
141141

142142
override fun fuseboxNetworkInspectionEnabled(): Boolean = true
143143

144-
override fun fuseboxScreenshotCaptureEnabled(): Boolean = false
144+
override fun fuseboxScreenshotCaptureEnabled(): Boolean = true
145145

146146
override fun optimizedAnimatedPropUpdates(): Boolean = false
147147

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

Lines changed: 1 addition & 3 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<<af67163b6d34bb714b783658501ca6e8>>
7+
* @generated SignedSource<<41f83a9921de88f659ddc22172344226>>
88
*/
99

1010
/**
@@ -31,8 +31,6 @@ public open class ReactNativeFeatureFlagsOverrides_RNOSS_Experimental_Android :
3131

3232
override fun fuseboxFrameRecordingEnabled(): Boolean = true
3333

34-
override fun fuseboxScreenshotCaptureEnabled(): Boolean = true
35-
3634
override fun preventShadowTreeCommitExhaustion(): Boolean = true
3735

3836
override fun useSharedAnimatedBackend(): Boolean = true

packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h

Lines changed: 2 additions & 2 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<<2c09412cdf8edaf4f7d6d90a446ce6fa>>
7+
* @generated SignedSource<<2c7b47ef5ae156d4e5396cf8b047f187>>
88
*/
99

1010
/**
@@ -264,7 +264,7 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
264264
}
265265

266266
bool fuseboxScreenshotCaptureEnabled() override {
267-
return false;
267+
return true;
268268
}
269269

270270
bool optimizedAnimatedPropUpdates() override {

packages/react-native/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSExperimental.h

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<<bcd31ae20312c38ff0bbc8fdeac5ce36>>
7+
* @generated SignedSource<<630f900c13eb68232717fc28528253e2>>
88
*/
99

1010
/**
@@ -43,10 +43,6 @@ class ReactNativeFeatureFlagsOverridesOSSExperimental : public ReactNativeFeatur
4343
return true;
4444
}
4545

46-
bool fuseboxScreenshotCaptureEnabled() override {
47-
return true;
48-
}
49-
5046
bool preventShadowTreeCommitExhaustion() override {
5147
return true;
5248
}

packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -680,15 +680,15 @@ const definitions: FeatureFlagDefinitions = {
680680
ossReleaseStage: 'none',
681681
},
682682
fuseboxScreenshotCaptureEnabled: {
683-
defaultValue: false,
683+
defaultValue: true,
684684
metadata: {
685685
dateAdded: '2026-04-01',
686686
description:
687687
'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.',
688688
expectedReleaseValue: true,
689689
purpose: 'experimentation',
690690
},
691-
ossReleaseStage: 'experimental',
691+
ossReleaseStage: 'stable',
692692
},
693693
optimizedAnimatedPropUpdates: {
694694
defaultValue: false,

packages/react-native/src/private/featureflags/ReactNativeFeatureFlags.js

Lines changed: 2 additions & 2 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<<71e307d568421d49e3943f58c4fcb163>>
7+
* @generated SignedSource<<411c2e601987e01db778a82b6237a407>>
88
* @flow strict
99
* @noformat
1010
*/
@@ -450,7 +450,7 @@ export const fuseboxNetworkInspectionEnabled: Getter<boolean> = createNativeFlag
450450
/**
451451
* 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.
452452
*/
453-
export const fuseboxScreenshotCaptureEnabled: Getter<boolean> = createNativeFlagGetter('fuseboxScreenshotCaptureEnabled', false);
453+
export const fuseboxScreenshotCaptureEnabled: Getter<boolean> = createNativeFlagGetter('fuseboxScreenshotCaptureEnabled', true);
454454
/**
455455
* When enabled, uses optimized platform-specific paths to apply animated props synchronously. On Android, this uses a batched int/double buffer protocol with a single JNI call. On iOS, this passes AnimatedProps directly through the delegate chain and applies them via cloneProps, avoiding the folly::dynamic round-trip.
456456
*/

0 commit comments

Comments
 (0)