Skip to content

Remove timeline frames experiment (enable by default) - #288

Merged
huntie merged 1 commit into
mainfrom
pr288
Nov 9, 2026
Merged

huntie merged 1 commit into
mainfrom
pr288

Conversation

@huntie

@huntie huntie commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Hard-enable the Performance panel frames and screenshots track for React Native targets. Paired with (and depends on) react/react-native#59686.

Changes

  • Remove ENABLE_TIMELINE_FRAMES and its gating in the Performance panel. The screenshots checkbox and the frames track are always present, and the screenshots setting defaults to on for React Native targets.
  • Remove the reload banner from FuseboxFeatureObserver. The unstable_frameRecordingEnabled protocol field stays, unread.

Stored enable-timeline-frames values are dropped by cleanUpStaleExperiments; a saved timeline-show-screenshots value is kept.

Test plan

  • npm run lint on the changed files, and npm run build for the full devtools_all_files target.
  • Served the build to RNTester through REACT_NATIVE_DEBUGGER_FRONTEND_PATH: the Performance panel opens with the "Screenshots" checkbox enabled and no reload banner.
Before After
Performance panel before, with the reload banner and no screenshots checkbox Performance panel after, with the Screenshots checkbox enabled and no banner
⚠️ Enabled experiment triggers banner and DevTools reload ✅ Feature (screenshots checkbox etc) enabled by default
  • This change maintains backwards compatibility with previous Local Storage data (if modifying settings, experiments, or other persisted client state).

Upstreaming plan

@meta-cla meta-cla Bot added the cla signed label Oct 30, 2026
@huntie
huntie requested a review from vzaidman October 30, 2026 18:12
@huntie
huntie marked this pull request as ready for review October 30, 2026 18:14
@huntie
huntie merged commit 3a03293 into main Nov 9, 2026
5 checks passed
@huntie
huntie deleted the pr288 branch November 9, 2026 13:13
meta-codesync Bot pushed a commit to react/react-native that referenced this pull request Nov 9, 2026
## Summary

Frame timings and screenshots in the React Native DevTools CDP backend have been on in canary since the flag was added. Enable them by default, matching the DevTools frontend, which no longer gates the Performance panel's frames track behind an experiment.

**Why now? / Launch support**

I always intended to follow up on this. The canary rollout earlier in the year followed significant hardening of this feature on both platforms, including active use in multiple product teams at Meta across various device classes — have been pretty confident this was prod ready for a while.

For (and Expo SDK 59), I'll have the cycles to support this (docs, any integration issues) through to launch.

Changelog:  
[General][Changed] - **React Native DevTools**: Frame timings and screenshots in the Performance panel are enabled by default

## Test Plan

- `node packages/react-native/scripts/featureflags/index.js --update` regenerated the six flag files; the diff has the same shape as 66b3ae6 ("Promote fuseboxWebSocketEventsEnabled to stable").
- Agent review of any commits on `main` since promotion to canary — nothing flagged.

**Sanity check: E2E**

With react/react-native-devtools-frontend#288 applied.

| iOS | Android |
| - | - |
| <img width="1676" height="937" alt="Screenshot 2026-10-30 at 18 30 58" src="https://github.com/user-attachments/assets/455eedf5-0c1c-4f0c-86ea-800fdcc69175" /> | <img width="1676" height="938" alt="Screenshot 2026-10-30 at 18 33 05" src="https://github.com/user-attachments/assets/e8c1500d-48e8-43c1-a3d7-4d72b2de3f1a" /> |

Differential Revision: D129345367

Pull Request resolved: #59686
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants