File tree Expand file tree Collapse file tree 3 files changed +17
-31
lines changed
packages/react-devtools-extensions/src Expand file tree Collapse file tree 3 files changed +17
-31
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -24,16 +24,20 @@ let lastDetectionResult;
24
24
// So instead, the hook will use postMessage() to pass message to us here.
25
25
// And when this happens, we'll send a message to the "background page".
26
26
window . addEventListener ( 'message' , function ( evt ) {
27
- if (
28
- evt . source === window &&
29
- evt . data &&
30
- evt . data . source === 'react-devtools-detector'
31
- ) {
27
+ if ( evt . source !== window || ! evt . data ) {
28
+ return ;
29
+ }
30
+ if ( evt . data . source === 'react-devtools-detector' ) {
32
31
lastDetectionResult = {
33
32
hasDetectedReact : true ,
34
33
reactBuildType : evt . data . reactBuildType ,
35
34
} ;
36
35
chrome . runtime . sendMessage ( lastDetectionResult ) ;
36
+ } else if ( evt . data . source === 'react-devtools-inject-backend' ) {
37
+ const script = document . createElement ( 'script' ) ;
38
+ script . src = chrome . runtime . getURL ( 'build/backend.js' ) ;
39
+ document . documentElement . appendChild ( script ) ;
40
+ script . parentNode . removeChild ( script ) ;
37
41
}
38
42
} ) ;
39
43
Original file line number Diff line number Diff line change @@ -4,7 +4,6 @@ import {createElement} from 'react';
4
4
import { unstable_createRoot as createRoot , flushSync } from 'react-dom' ;
5
5
import Bridge from 'react-devtools-shared/src/bridge' ;
6
6
import Store from 'react-devtools-shared/src/devtools/store' ;
7
- import inject from './inject' ;
8
7
import {
9
8
createViewElementSource ,
10
9
getBrowserName ,
@@ -135,7 +134,14 @@ function createPanelIfReactLoaded() {
135
134
136
135
// Initialize the backend only once the Store has been initialized.
137
136
// Otherwise the Store may miss important initial tree op codes.
138
- inject ( chrome . runtime . getURL ( 'build/backend.js' ) ) ;
137
+ chrome . devtools . inspectedWindow . eval (
138
+ `window.postMessage({ source: 'react-devtools-inject-backend' }, window.origin);` ,
139
+ function ( response , evalError ) {
140
+ if ( evalError ) {
141
+ console . error ( evalError ) ;
142
+ }
143
+ } ,
144
+ ) ;
139
145
140
146
const viewElementSourceFunction = createViewElementSource (
141
147
bridge ,
You can’t perform that action at this time.
0 commit comments