Skip to content

Commit

Permalink
Dev Tools: Relax constraint on passing extensionId for backend init (f…
Browse files Browse the repository at this point in the history
  • Loading branch information
Juan authored and zhengjitf committed Apr 15, 2022
1 parent 732832d commit 571ce0a
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
8 changes: 5 additions & 3 deletions packages/react-devtools-extensions/src/backend.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Running module factories is intentionally delayed until we know the hook exists.
// This is to avoid issues like: https://github.com/facebook/react-devtools/issues/1039

/** @flow */
// @flow strict-local

'use strict';

Expand All @@ -13,15 +13,16 @@ function welcome(event) {
) {
return;
}
const extensionId = event.data.extensionId;

window.removeEventListener('message', welcome);

setup(window.__REACT_DEVTOOLS_GLOBAL_HOOK__);
setup(window.__REACT_DEVTOOLS_GLOBAL_HOOK__, extensionId);
}

window.addEventListener('message', welcome);

function setup(hook) {
function setup(hook, extensionId) {
if (hook == null) {
// DevTools didn't get injected into this page (maybe b'c of the contentType).
return;
Expand Down Expand Up @@ -55,6 +56,7 @@ function setup(hook) {
{
source: 'react-devtools-bridge',
payload: {event, payload},
extensionId,
},
'*',
transferable,
Expand Down
5 changes: 5 additions & 0 deletions packages/react-devtools-extensions/src/contentScript.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

'use strict';

import {CURRENT_EXTENSION_ID} from './constants';

let backendDisconnected: boolean = false;
let backendInitialized: boolean = false;

Expand All @@ -10,6 +12,7 @@ function sayHelloToBackend() {
{
source: 'react-devtools-content-script',
hello: true,
extensionId: CURRENT_EXTENSION_ID,
},
'*',
);
Expand All @@ -20,6 +23,7 @@ function handleMessageFromDevtools(message) {
{
source: 'react-devtools-content-script',
payload: message,
extensionId: CURRENT_EXTENSION_ID,
},
'*',
);
Expand Down Expand Up @@ -49,6 +53,7 @@ function handleDisconnect() {
type: 'event',
event: 'shutdown',
},
extensionId: CURRENT_EXTENSION_ID,
},
'*',
);
Expand Down
4 changes: 3 additions & 1 deletion packages/react-devtools-extensions/src/injectGlobalHook.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,14 @@ window.addEventListener('message', function onMessage({data, source}) {
if (source !== window || !data) {
return;
}
if (data.extensionId !== CURRENT_EXTENSION_ID) {
if (data.extensionId != null && data.extensionId !== CURRENT_EXTENSION_ID) {
if (__DEBUG__) {
console.log(
`[injectGlobalHook] Received message '${data.source}' from different extension instance. Skipping message.`,
{
currentExtension: EXTENSION_INSTALLATION_TYPE,
currentExtensionId: CURRENT_EXTENSION_ID,
providedExtensionId: data.extensionId,
},
);
}
Expand Down

0 comments on commit 571ce0a

Please sign in to comment.