Skip to content

Commit

Permalink
(patch)[DevTools] bug fix: backend injection logic not working for un…
Browse files Browse the repository at this point in the history
…docked devtools window (#26665)

bugfix for #26492

This bug would cause users unable to use the devtools (component tree
empty).

The else-if logic is broken when user switch to undocked devtools mode
(separate window) because `sender.tab` would exist in that case.
<img width="314" alt="image"
src="https://user-images.githubusercontent.com/1001890/232930094-05a74445-9189-4d50-baf1-a0360b29ef7e.png">

Tested on Chrome with a local build
  • Loading branch information
mondaychen authored Apr 19, 2023
1 parent d8089f2 commit 96fd2fb
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion packages/react-devtools-extensions/src/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {

chrome.runtime.onMessage.addListener((request, sender) => {
const tab = sender.tab;
// sender.tab.id from content script points to the tab that injected the content script
if (tab) {
const id = tab.id;
// This is sent from the hook content script.
Expand Down Expand Up @@ -214,7 +215,10 @@ chrome.runtime.onMessage.addListener((request, sender) => {
break;
}
}
} else if (request.payload?.tabId) {
}
// sender.tab.id from devtools page may not exist, or point to the undocked devtools window
// so we use the payload to get the tab id
if (request.payload?.tabId) {
const tabId = request.payload?.tabId;
// This is sent from the devtools page when it is ready for injecting the backend
if (request.payload.type === 'react-devtools-inject-backend-manager') {
Expand Down

0 comments on commit 96fd2fb

Please sign in to comment.