From 64d56f34b779de94f251f4b443463cbfe790912d Mon Sep 17 00:00:00 2001 From: Alex Kotliarskyi Date: Fri, 5 Feb 2016 15:16:16 -0800 Subject: [PATCH] Improve Chrome debugger Summary: `debugger.html` contained a ton of hacky code that was needed to ensure we have a clean JS runtime every time a client RN app connects. That was needed because we used the page's global environment as runtime. Some time ago WebWorker support was added and now we run RN code inside an isolated WebWorker instance, and we can safely get rid of all these hacks. This has a bunch of nice side-effects: debug reload works faster, `console.log`s are preserved, `debuggerWorker.js` selection doesn't change. Made sure the debugging (breakpoints, etc.) still works as before. Small demo ![](http://g.recordit.co/FPdVHLHPUW.gif) Closes https://github.com/facebook/react-native/pull/5715 Reviewed By: svcscm Differential Revision: D2906602 Pulled By: frantic fb-gh-sync-id: 1a6ab9a5655d7c32ddd23619564e59c377b53a35 --- Libraries/WebSocket/RCTWebSocketExecutor.m | 2 +- .../react/devsupport/DevServerHelper.java | 2 +- local-cli/server/util/debugger.html | 105 +++++++++--------- local-cli/server/util/webSocketProxy.js | 80 ++++++------- 4 files changed, 96 insertions(+), 93 deletions(-) diff --git a/Libraries/WebSocket/RCTWebSocketExecutor.m b/Libraries/WebSocket/RCTWebSocketExecutor.m index 2ee409f33..de26e8a91 100644 --- a/Libraries/WebSocket/RCTWebSocketExecutor.m +++ b/Libraries/WebSocket/RCTWebSocketExecutor.m @@ -51,7 +51,7 @@ RCT_EXPORT_MODULE() if (!_url) { NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults]; NSInteger port = [standardDefaults integerForKey:@"websocket-executor-port"] ?: 8081; - NSString *URLString = [NSString stringWithFormat:@"http://localhost:%zd/debugger-proxy", port]; + NSString *URLString = [NSString stringWithFormat:@"http://localhost:%zd/debugger-proxy?role=client", port]; _url = [RCTConvert NSURL:URLString]; } diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java index 515cab3a5..79a71b242 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java @@ -62,7 +62,7 @@ public class DevServerHelper { "http://%s/launch-chrome-devtools"; private static final String ONCHANGE_ENDPOINT_URL_FORMAT = "http://%s/onchange"; - private static final String WEBSOCKET_PROXY_URL_FORMAT = "ws://%s/debugger-proxy"; + private static final String WEBSOCKET_PROXY_URL_FORMAT = "ws://%s/debugger-proxy?role=client"; private static final String PACKAGER_STATUS_URL_FORMAT = "http://%s/status"; private static final String PACKAGER_OK_STATUS = "packager-status:running"; diff --git a/local-cli/server/util/debugger.html b/local-cli/server/util/debugger.html index 3d1c5947e..878574260 100644 --- a/local-cli/server/util/debugger.html +++ b/local-cli/server/util/debugger.html @@ -17,83 +17,82 @@