Skip to content

Commit 7499d7e

Browse files
committed
[DevTools] Add a Code Editor Sidebar Pane in the Chrome Sources Tab (facebook#33968)
This adds a "Code Editor" pane for the Chrome extension in the bottom right corner of the "Sources" panel. If you end up getting linked to the "Sources" panel from stack traces in console, performance tab, stacks in React Component tab like the one added in facebook#33954 basically everywhere there's a link to source code. Then going from there to open in a code editor should be more convenient. This adds a button to open the current file. <img width="1387" height="389" alt="Screenshot 2025-07-22 at 10 22 19 PM" src="https://github.com/user-attachments/assets/fe01f84c-83c2-4639-9b64-4af1a90c3f7d" /> This only makes sense in the extensions since in standalone it needs to always open by default in an editor. Unfortunately Firefox doesn't support extending the Sources panel. Chrome is also a bit buggy where it doesn't send a selection update event when you switch tabs in the Sources panel. Only when the actual cursor position changes. This means that the link can be lagging behind sometimes. We also have some general bugs where if React DevTools loses connection it can break the UI which includes this pane too. This has a small inline configuration too so that it's discoverable: <img width="559" height="143" alt="Screenshot 2025-07-22 at 10 22 42 PM" src="https://github.com/user-attachments/assets/1270bda8-ce10-4f9d-9fcb-080c0198366a" /> <img width="527" height="123" alt="Screenshot 2025-07-22 at 10 22 30 PM" src="https://github.com/user-attachments/assets/45848c95-afd8-495f-a7cf-eb2f46e698f2" /> Since we can't add a separate link to open-in-editor or open-in-sources everywhere I plan on adding an option to open in editor by default in a follow up. That option needs to be even more discoverable. I moved the configuration from the Components settings to the General settings since this is now a much more general features for opening links to resources in all types of panes. <img width="673" height="311" alt="Screenshot 2025-07-22 at 10 22 57 PM" src="https://github.com/user-attachments/assets/ea2c0871-942c-4b55-a362-025835d2c2bd" /> DiffTrain build for [edac0dd](facebook@edac0dd)
1 parent 9ec42ca commit 7499d7e

24 files changed

+87
-87
lines changed

compiled-rn/VERSION_NATIVE_FB

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19.2.0-native-fb-f6fb1a07-20250723
1+
19.2.0-native-fb-edac0dde-20250723

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<b20b185e4bde87acd67e8d08c5d7b8a4>>
10+
* @generated SignedSource<<87343f2cd6d22ca50c6dbb3330202cbd>>
1111
*/
1212

1313
"use strict";
@@ -404,5 +404,5 @@ __DEV__ &&
404404
exports.useFormStatus = function () {
405405
return resolveDispatcher().useHostTransitionStatus();
406406
};
407-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
407+
exports.version = "19.2.0-native-fb-edac0dde-20250723";
408408
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<a5c903403039fa5ac144802c21b77578>>
10+
* @generated SignedSource<<9c95b9e32da696550769c8f4262ee088>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
206+
exports.version = "19.2.0-native-fb-edac0dde-20250723";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<a5c903403039fa5ac144802c21b77578>>
10+
* @generated SignedSource<<9c95b9e32da696550769c8f4262ee088>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
206+
exports.version = "19.2.0-native-fb-edac0dde-20250723";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<869ec36921e0ad473a27157bc599b98a>>
10+
* @generated SignedSource<<3edd51fe3422ffd0b4b2006bcbe796f0>>
1111
*/
1212

1313
/*
@@ -29007,11 +29007,11 @@ __DEV__ &&
2900729007
};
2900829008
(function () {
2900929009
var isomorphicReactPackageVersion = React.version;
29010-
if ("19.2.0-native-fb-f6fb1a07-20250723" !== isomorphicReactPackageVersion)
29010+
if ("19.2.0-native-fb-edac0dde-20250723" !== isomorphicReactPackageVersion)
2901129011
throw Error(
2901229012
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2901329013
(isomorphicReactPackageVersion +
29014-
"\n - react-dom: 19.2.0-native-fb-f6fb1a07-20250723\nLearn more: https://react.dev/warnings/version-mismatch")
29014+
"\n - react-dom: 19.2.0-native-fb-edac0dde-20250723\nLearn more: https://react.dev/warnings/version-mismatch")
2901529015
);
2901629016
})();
2901729017
("function" === typeof Map &&
@@ -29048,10 +29048,10 @@ __DEV__ &&
2904829048
!(function () {
2904929049
var internals = {
2905029050
bundleType: 1,
29051-
version: "19.2.0-native-fb-f6fb1a07-20250723",
29051+
version: "19.2.0-native-fb-edac0dde-20250723",
2905229052
rendererPackageName: "react-dom",
2905329053
currentDispatcherRef: ReactSharedInternals,
29054-
reconcilerVersion: "19.2.0-native-fb-f6fb1a07-20250723"
29054+
reconcilerVersion: "19.2.0-native-fb-edac0dde-20250723"
2905529055
};
2905629056
internals.overrideHookState = overrideHookState;
2905729057
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -29189,5 +29189,5 @@ __DEV__ &&
2918929189
listenToAllSupportedEvents(container);
2919029190
return new ReactDOMHydrationRoot(initialChildren);
2919129191
};
29192-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
29192+
exports.version = "19.2.0-native-fb-edac0dde-20250723";
2919329193
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<d6733769a4df22fb62f704db8ad81b19>>
10+
* @generated SignedSource<<f3c31651b2d9e5cd23d1775d30691e66>>
1111
*/
1212

1313
/*
@@ -17123,14 +17123,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1712317123
};
1712417124
var isomorphicReactPackageVersion$jscomp$inline_2004 = React.version;
1712517125
if (
17126-
"19.2.0-native-fb-f6fb1a07-20250723" !==
17126+
"19.2.0-native-fb-edac0dde-20250723" !==
1712717127
isomorphicReactPackageVersion$jscomp$inline_2004
1712817128
)
1712917129
throw Error(
1713017130
formatProdErrorMessage(
1713117131
527,
1713217132
isomorphicReactPackageVersion$jscomp$inline_2004,
17133-
"19.2.0-native-fb-f6fb1a07-20250723"
17133+
"19.2.0-native-fb-edac0dde-20250723"
1713417134
)
1713517135
);
1713617136
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17152,10 +17152,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1715217152
};
1715317153
var internals$jscomp$inline_2523 = {
1715417154
bundleType: 0,
17155-
version: "19.2.0-native-fb-f6fb1a07-20250723",
17155+
version: "19.2.0-native-fb-edac0dde-20250723",
1715617156
rendererPackageName: "react-dom",
1715717157
currentDispatcherRef: ReactSharedInternals,
17158-
reconcilerVersion: "19.2.0-native-fb-f6fb1a07-20250723"
17158+
reconcilerVersion: "19.2.0-native-fb-edac0dde-20250723"
1715917159
};
1716017160
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1716117161
var hook$jscomp$inline_2524 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17253,4 +17253,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1725317253
listenToAllSupportedEvents(container);
1725417254
return new ReactDOMHydrationRoot(initialChildren);
1725517255
};
17256-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
17256+
exports.version = "19.2.0-native-fb-edac0dde-20250723";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<1faf471b209222037d76afad6d50ef29>>
10+
* @generated SignedSource<<e2f18c005429830c9fa80043d53b9f3c>>
1111
*/
1212

1313
/*
@@ -19081,14 +19081,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1908119081
};
1908219082
var isomorphicReactPackageVersion$jscomp$inline_2244 = React.version;
1908319083
if (
19084-
"19.2.0-native-fb-f6fb1a07-20250723" !==
19084+
"19.2.0-native-fb-edac0dde-20250723" !==
1908519085
isomorphicReactPackageVersion$jscomp$inline_2244
1908619086
)
1908719087
throw Error(
1908819088
formatProdErrorMessage(
1908919089
527,
1909019090
isomorphicReactPackageVersion$jscomp$inline_2244,
19091-
"19.2.0-native-fb-f6fb1a07-20250723"
19091+
"19.2.0-native-fb-edac0dde-20250723"
1909219092
)
1909319093
);
1909419094
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19110,10 +19110,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1911019110
};
1911119111
var internals$jscomp$inline_2251 = {
1911219112
bundleType: 0,
19113-
version: "19.2.0-native-fb-f6fb1a07-20250723",
19113+
version: "19.2.0-native-fb-edac0dde-20250723",
1911419114
rendererPackageName: "react-dom",
1911519115
currentDispatcherRef: ReactSharedInternals,
19116-
reconcilerVersion: "19.2.0-native-fb-f6fb1a07-20250723",
19116+
reconcilerVersion: "19.2.0-native-fb-edac0dde-20250723",
1911719117
getLaneLabelMap: function () {
1911819118
for (
1911919119
var map = new Map(), lane = 1, index$319 = 0;
@@ -19226,4 +19226,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1922619226
listenToAllSupportedEvents(container);
1922719227
return new ReactDOMHydrationRoot(initialChildren);
1922819228
};
19229-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
19229+
exports.version = "19.2.0-native-fb-edac0dde-20250723";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<3fcb77415d753f9861a08f285eb6486f>>
10+
* @generated SignedSource<<cc5651c15f37899ea1f7ed595e7f4ae6>>
1111
*/
1212

1313
/*
@@ -29063,11 +29063,11 @@ __DEV__ &&
2906329063
};
2906429064
(function () {
2906529065
var isomorphicReactPackageVersion = React.version;
29066-
if ("19.2.0-native-fb-f6fb1a07-20250723" !== isomorphicReactPackageVersion)
29066+
if ("19.2.0-native-fb-edac0dde-20250723" !== isomorphicReactPackageVersion)
2906729067
throw Error(
2906829068
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2906929069
(isomorphicReactPackageVersion +
29070-
"\n - react-dom: 19.2.0-native-fb-f6fb1a07-20250723\nLearn more: https://react.dev/warnings/version-mismatch")
29070+
"\n - react-dom: 19.2.0-native-fb-edac0dde-20250723\nLearn more: https://react.dev/warnings/version-mismatch")
2907129071
);
2907229072
})();
2907329073
("function" === typeof Map &&
@@ -29104,10 +29104,10 @@ __DEV__ &&
2910429104
!(function () {
2910529105
var internals = {
2910629106
bundleType: 1,
29107-
version: "19.2.0-native-fb-f6fb1a07-20250723",
29107+
version: "19.2.0-native-fb-edac0dde-20250723",
2910829108
rendererPackageName: "react-dom",
2910929109
currentDispatcherRef: ReactSharedInternals,
29110-
reconcilerVersion: "19.2.0-native-fb-f6fb1a07-20250723"
29110+
reconcilerVersion: "19.2.0-native-fb-edac0dde-20250723"
2911129111
};
2911229112
internals.overrideHookState = overrideHookState;
2911329113
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -29561,7 +29561,7 @@ __DEV__ &&
2956129561
exports.useFormStatus = function () {
2956229562
return resolveDispatcher().useHostTransitionStatus();
2956329563
};
29564-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
29564+
exports.version = "19.2.0-native-fb-edac0dde-20250723";
2956529565
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
2956629566
"function" ===
2956729567
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<d6d01c89f1351edc73eb1d7946704c39>>
10+
* @generated SignedSource<<d2c5b50e68483d4ee7451e756d9087da>>
1111
*/
1212

1313
/*
@@ -17134,14 +17134,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1713417134
};
1713517135
var isomorphicReactPackageVersion$jscomp$inline_2005 = React.version;
1713617136
if (
17137-
"19.2.0-native-fb-f6fb1a07-20250723" !==
17137+
"19.2.0-native-fb-edac0dde-20250723" !==
1713817138
isomorphicReactPackageVersion$jscomp$inline_2005
1713917139
)
1714017140
throw Error(
1714117141
formatProdErrorMessage(
1714217142
527,
1714317143
isomorphicReactPackageVersion$jscomp$inline_2005,
17144-
"19.2.0-native-fb-f6fb1a07-20250723"
17144+
"19.2.0-native-fb-edac0dde-20250723"
1714517145
)
1714617146
);
1714717147
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -17163,10 +17163,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1716317163
};
1716417164
var internals$jscomp$inline_2526 = {
1716517165
bundleType: 0,
17166-
version: "19.2.0-native-fb-f6fb1a07-20250723",
17166+
version: "19.2.0-native-fb-edac0dde-20250723",
1716717167
rendererPackageName: "react-dom",
1716817168
currentDispatcherRef: ReactSharedInternals,
17169-
reconcilerVersion: "19.2.0-native-fb-f6fb1a07-20250723"
17169+
reconcilerVersion: "19.2.0-native-fb-edac0dde-20250723"
1717017170
};
1717117171
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1717217172
var hook$jscomp$inline_2527 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17417,4 +17417,4 @@ exports.useFormState = function (action, initialState, permalink) {
1741717417
exports.useFormStatus = function () {
1741817418
return ReactSharedInternals.H.useHostTransitionStatus();
1741917419
};
17420-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
17420+
exports.version = "19.2.0-native-fb-edac0dde-20250723";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<70e933310e78afbaac8cb79049727603>>
10+
* @generated SignedSource<<982becd87572b8cf644a395ff6d296dc>>
1111
*/
1212

1313
/*
@@ -19096,14 +19096,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1909619096
};
1909719097
var isomorphicReactPackageVersion$jscomp$inline_2245 = React.version;
1909819098
if (
19099-
"19.2.0-native-fb-f6fb1a07-20250723" !==
19099+
"19.2.0-native-fb-edac0dde-20250723" !==
1910019100
isomorphicReactPackageVersion$jscomp$inline_2245
1910119101
)
1910219102
throw Error(
1910319103
formatProdErrorMessage(
1910419104
527,
1910519105
isomorphicReactPackageVersion$jscomp$inline_2245,
19106-
"19.2.0-native-fb-f6fb1a07-20250723"
19106+
"19.2.0-native-fb-edac0dde-20250723"
1910719107
)
1910819108
);
1910919109
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -19125,10 +19125,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1912519125
};
1912619126
var internals$jscomp$inline_2252 = {
1912719127
bundleType: 0,
19128-
version: "19.2.0-native-fb-f6fb1a07-20250723",
19128+
version: "19.2.0-native-fb-edac0dde-20250723",
1912919129
rendererPackageName: "react-dom",
1913019130
currentDispatcherRef: ReactSharedInternals,
19131-
reconcilerVersion: "19.2.0-native-fb-f6fb1a07-20250723",
19131+
reconcilerVersion: "19.2.0-native-fb-edac0dde-20250723",
1913219132
getLaneLabelMap: function () {
1913319133
for (
1913419134
var map = new Map(), lane = 1, index$319 = 0;
@@ -19394,7 +19394,7 @@ exports.useFormState = function (action, initialState, permalink) {
1939419394
exports.useFormStatus = function () {
1939519395
return ReactSharedInternals.H.useHostTransitionStatus();
1939619396
};
19397-
exports.version = "19.2.0-native-fb-f6fb1a07-20250723";
19397+
exports.version = "19.2.0-native-fb-edac0dde-20250723";
1939819398
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1939919399
"function" ===
1940019400
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)