react/packages/react-devtools-extensions
Ruslan Lesiutin 67a05d03e3
fix[devtools]: fixed duplicated backend activation with multiple renderers (#26807)
## Summary
Initially reported in https://github.com/facebook/react/issues/26797.
Was not able to reproduce the exact same problem, but found this case:

1. Open corresponding codepen from the issue in debug mode
2. Open components tab of the extension
3. Refresh the page

Received multiple errors:
- Warning in the Console tab: Invalid renderer id "2".
- Error in the Components tab: Uncaught Error: Cannot add node "3"
because a node with that id is already in the Store.

This problem has occurred after landing a fix in
https://github.com/facebook/react/pull/26779. Looks like Chrome is
keeping the injected scripts (the backend in this case) and we start
backend twice.
2023-05-12 14:59:53 +01:00
..
.circleci Reorganized things again into packages 2019-08-13 11:37:25 -07:00
chrome React DevTools 4.27.6 -> 4.27.7 (#26780) 2023-05-04 18:22:47 +01:00
edge React DevTools 4.27.6 -> 4.27.7 (#26780) 2023-05-04 18:22:47 +01:00
firefox React DevTools 4.27.6 -> 4.27.7 (#26780) 2023-05-04 18:22:47 +01:00
flow-typed Flow upgrade to 0.205.1 (#26796) 2023-05-09 10:45:50 -04:00
icons Optimized DevTools extension images 2021-08-02 09:32:46 -04:00
popups Upgrade prettier (#26081) 2023-01-31 08:25:05 -05:00
src fix[devtools]: fixed duplicated backend activation with multiple renderers (#26807) 2023-05-12 14:59:53 +01:00
README.md Include install command for devtools-extension build instructions (#25053) 2022-10-05 11:27:09 -04:00
build.js Prevent errors/crashing when multiple installs of DevTools are present (#22517) 2021-10-14 17:15:31 -04:00
deploy.chrome.html Fixed a bunch of Lint issues 2019-08-13 21:59:07 -07:00
deploy.edge.html React developer tools extension for Microsoft Edge (#18041) 2020-02-18 09:40:30 -08:00
deploy.firefox.html Fixed a bunch of Lint issues 2019-08-13 21:59:07 -07:00
deploy.html make link https (#19147) 2020-06-30 12:43:52 +01:00
deploy.js Use .slice() for all substring-ing (#26677) 2023-04-19 14:26:01 -07:00
improveImages.mjs [DevTools] Optimize Images yarn command (part 2) (#21968) 2021-08-02 09:32:17 -04:00
main.html Fixed a bunch of Lint issues 2019-08-13 21:59:07 -07:00
package.json Update Rollup to 3.x (#26442) 2023-03-24 18:08:41 +00:00
panel.html Fixed a bunch of Lint issues 2019-08-13 21:59:07 -07:00
utils.js [Codemod] Update copyright header to Meta (#25315) 2022-10-18 11:19:24 -04:00
webpack.backend.js [DevTools] use backend manager to support multiple backends in extension (#26615) 2023-04-18 12:02:42 -04:00
webpack.config.js [DevTools] use backend manager to support multiple backends in extension (#26615) 2023-04-18 12:02:42 -04:00

README.md

This is the source code for the React DevTools browser extension.

Installation

The easiest way to install this extension is as a browser add-on:

Local development

You can also build and install this extension from source.

Prerequisite steps

DevTools depends on local versions of several NPM packages1 also in this workspace. You'll need to either build or download those packages first.

1 Note that at this time, an experimental build is required because DevTools depends on the createRoot API.

To install all necessary dependencies, run the following command from the root of the repository:

yarn install

Build from source

To build dependencies from source, run the following command from the root of the repository:

yarn build-for-devtools

Download from CI

To use the latest build from CI, run the following commands starting from the root of the repository:

cd scripts/release
yarn install
./download-experimental-build.js

Build steps

Once the above packages have been built or downloaded, you can build the extension by running:

cd packages/react-devtools-extensions/

yarn build:chrome # => packages/react-devtools-extensions/chrome/build
yarn run test:chrome # Test Chrome extension

yarn build:firefox # => packages/react-devtools-extensions/firefox/build
yarn run test:firefox # Test Firefox extension

yarn build:edge # => packages/react-devtools-extensions/edge/build
yarn run test:edge # Test Edge extension