Commit 96a3c35 Brian Vaughn
committed
1 parent e7d0053 commit 96a3c35 Copy full SHA for 96a3c35
File tree 2 files changed +22
-5
lines changed
packages/react-devtools-extensions/src
2 files changed +22
-5
lines changed Original file line number Diff line number Diff line change 6
6
7
7
'use strict' ;
8
8
9
+ let welcomeHasInitialized ;
10
+
9
11
function welcome ( event ) {
10
12
if (
11
13
event . source !== window ||
@@ -14,6 +16,21 @@ function welcome(event) {
14
16
return ;
15
17
}
16
18
19
+ // In some circumstances, this method is called more than once for a single welcome message.
20
+ // The exact circumstances of this are unclear, though it may have to do with 3rd part script event batching.
21
+ // Regardless, this can cause DevTools to add duplicate elements to the Store (and throw an error)
22
+ // or worse yet, choke up entirely and freeze the browser.
23
+ // The simplest solution is to ignore the duplicate events.
24
+ // See https://github.com/facebook/react/issues/24162
25
+ if ( welcomeHasInitialized ) {
26
+ console . warn (
27
+ 'React DevTools detected duplicate welcome "message" events from the content script.' ,
28
+ ) ;
29
+ return ;
30
+ }
31
+
32
+ welcomeHasInitialized = true ;
33
+
17
34
window . removeEventListener ( 'message' , welcome ) ;
18
35
19
36
setup ( window . __REACT_DEVTOOLS_GLOBAL_HOOK__ ) ;
Original file line number Diff line number Diff line change @@ -25,15 +25,15 @@ function handleMessageFromDevtools(message) {
25
25
) ;
26
26
}
27
27
28
- function handleMessageFromPage ( evt ) {
28
+ function handleMessageFromPage ( event ) {
29
29
if (
30
- evt . source === window &&
31
- evt . data &&
32
- evt . data . source === 'react-devtools-bridge'
30
+ event . source === window &&
31
+ event . data &&
32
+ event . data . source === 'react-devtools-bridge'
33
33
) {
34
34
backendInitialized = true ;
35
35
36
- port . postMessage ( evt . data . payload ) ;
36
+ port . postMessage ( event . data . payload ) ;
37
37
}
38
38
}
39
39
You can’t perform that action at this time.
0 commit comments