Support path-only WebSocket URLs in hosted mode#4
Merged
motiz88 merged 1 commit intofacebook:mainfrom Feb 23, 2024
Merged
Conversation
huntie
approved these changes
Feb 23, 2024
Member
huntie
left a comment
There was a problem hiding this comment.
LGTM :)
Can I double check the Git submodule updates?
motiz88
added a commit
to motiz88/react-native
that referenced
this pull request
Feb 23, 2024
Differential Revision: D54107317
motiz88
added a commit
to motiz88/react-native
that referenced
this pull request
Feb 23, 2024
Summary: Changelog: [Internal] Uses the capability introduced in facebook/react-native-devtools-frontend#4 to avoid repeating the dev server's host:port in the `ws` / `wss` parameter we pass to the Chrome DevTools frontend. This gives us more flexibility to handle port forwarding and redirects outside of `dev-middleware`. This is mostly useful in Meta's internal VS Code remoting setup, but this particular change should work equally well in open source. Differential Revision: D54107316
Author
879f4f7 to
7352557
Compare
motiz88
added a commit
to motiz88/react-native
that referenced
this pull request
Feb 26, 2024
Summary: Changelog: [Internal] Uses the capability introduced in facebook/react-native-devtools-frontend#4 to avoid repeating the dev server's host:port in the `ws` / `wss` parameter we pass to the Chrome DevTools frontend. This gives us more flexibility to handle port forwarding and redirects outside of `dev-middleware`. This is mostly useful in Meta's internal VS Code remoting setup, but this particular change should work equally well in open source. Reviewed By: huntie Differential Revision: D54107316
facebook-github-bot
pushed a commit
to facebook/react-native
that referenced
this pull request
Feb 26, 2024
Summary: Changelog: [Internal] Uses the capability introduced in facebook/react-native-devtools-frontend#4 to avoid repeating the dev server's host:port in the `ws` / `wss` parameter we pass to the Chrome DevTools frontend. This gives us more flexibility to handle port forwarding and redirects outside of `dev-middleware`. This is mostly useful in Meta's internal VS Code remoting setup, but this particular change should work equally well in open source. Reviewed By: huntie Differential Revision: D54107316 fbshipit-source-id: 68d4dbf4849ca431274bfb0dc8a4e05981bdd5b5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
React Native currently uses the DevTools frontend in hosted mode, and specifically hosts the frontend on the same HTTP(S) server as the CDP WebSocket. Internally at Meta, that server is often running on a remote machine, so the need comes up to set up port tunnels and rewrite URLs accordingly.
To simplify the rewriting logic, it would be helpful to not have to repeat the host:port information inside the
ws/wssquery param, and instead have DevTools interpret the parameter as a path-absolute URL that's relative to the hosted mode server. We implement this here in a backwards-compatible way that could in theory be upstreamed todevtools-frontend.Test plan
wsandwssand observe (via error messages in the console) that DevTools is trying to connect to the expected full WebSocket URLs.Upstreaming plan
devtools-frontendrepo. I've reviewed the contribution guide.