Skip to content

Fix __DEBUGGER_SESSION_OBSERVER__ for concurrent sessions - #54083

Closed
motiz88 wants to merge 5 commits into
react:mainfrom
motiz88:export-D84007326
Closed

Fix __DEBUGGER_SESSION_OBSERVER__ for concurrent sessions#54083
motiz88 wants to merge 5 commits into
react:mainfrom
motiz88:export-D84007326

Conversation

@motiz88

@motiz88 motiz88 commented Oct 7, 2025

Copy link
Copy Markdown
Contributor

Summary:
Changelog: [Internal]

Fixes a bug in __DEBUGGER_SESSION_OBSERVER__ where the wrong state could be reported if more than one session existed. Now we reuse the accurate domain status tracking mechanism added in D83847356.

Reviewed By: hoxyq

Differential Revision: D84007326

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Oct 7, 2025
@meta-codesync

meta-codesync Bot commented Oct 7, 2025

Copy link
Copy Markdown

@motiz88 has exported this pull request. If you are a Meta employee, you can view the originating Diff in D84007326.

…act#54050)

Summary:

Changelog: [Internal]

A naive approach to keeping track of request initiators inside the `NetworkHandler` singleton for CDP reporting purposes:

1. Expose a new `recordRequestInitiatorStack` method.
2. Keep the CDP-formatted stack trace (as a `folly::dynamic`) in a map keyed by request ID.
3. Destructively consume the stack trace during `onRequestWillBeSent`.

Reviewed By: huntie

Differential Revision: D83754143
Summary:

Changelog: [Internal]

Adds a minimal standards-compliant UUID v4 generator to `react/utils` for use elsewhere in React Native. We don't need UUID parsing, support for UUID versions other than 4, a UUID value type, or extremely high performance - which makes inlining this simple, portable implementation directly in our codebase acceptable.

Reviewed By: robhogan

Differential Revision: D84149720
…eact#54051)

Summary:

Adds the private, experimental `__NETWORK_REPORTER__.createDevToolsRequestId()` JavaScript method behind the Fusebox network inspection feature flag.

`createDevToolsRequestId()` returns a unique string ID for a network request, and records the current call stack as the request's [initiator](https://cdpstatus.reactnative.dev/devtools-protocol/tot/Network#type-Initiator). If the native networking layer passes the same request ID into the C++ `NetworkReporter::reportRequestStart` method, the corresponding CDP [`requestWillBeSent`](https://cdpstatus.reactnative.dev/devtools-protocol/tot/Network#event-requestWillBeSent) event will contain the stack trace.

Changelog: [Internal]

Reviewed By: robhogan, huntie

Differential Revision: D83238216
Summary:

Changelog: [Internal]

Followup from D83238216. 

Adds bookkeeping in `RuntimeTarget` to allow checking from the JS thread whether there is a session with the `Network` CDP enabled. We then use this in the implementation of `__NETWORK_REPORTER__.createDevToolsRequestId` as a more precise alternative to checking the `NetworkHandler` singleton's state.

This is a first step towards breaking up the `NetworkHandler` singleton, subsuming its responsibilities into the Target/Agent architecture of `jsinspector-modern` and fixing a variety of bugs in the process.

NOTE: The additions to `RuntimeTarget` are more general than just tracking the `Network` domain - I'll use them in an upcoming diff to fix a concrete bug related to concurrent session support in `DebuggerSessionObserver`.

Reviewed By: huntie

Differential Revision: D83847356
Summary:

Changelog: [Internal]

Fixes a bug in `__DEBUGGER_SESSION_OBSERVER__` where the wrong state could be reported if more than one session existed. Now we reuse the accurate domain status tracking mechanism added in D83847356.

Reviewed By: hoxyq

Differential Revision: D84007326
@meta-codesync meta-codesync Bot closed this in 24d0d44 Oct 9, 2025
@facebook-github-bot facebook-github-bot added the Merged This PR has been merged. label Oct 9, 2025
@meta-codesync

meta-codesync Bot commented Oct 9, 2025

Copy link
Copy Markdown

This pull request has been merged in 24d0d44.

@react-native-bot

Copy link
Copy Markdown
Collaborator

This pull request was successfully merged by @motiz88 in 24d0d44

When will my fix make it into a release? | How to file a pick request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged This PR has been merged. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants