mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2024-11-24 10:33:58 +03:00
Fix: only send data to extension if DevTools are open (#1735)
* Fix: only send data to extension if DevTools are open * Create odd-apples-argue.md
This commit is contained in:
parent
b3e8f209fd
commit
abd03a70c7
5
.changeset/odd-apples-argue.md
Normal file
5
.changeset/odd-apples-argue.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
'remotedev-redux-devtools-extension': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix: only send data to extension if DevTools are open
|
|
@ -249,6 +249,7 @@ const chunks: {
|
||||||
>;
|
>;
|
||||||
} = {};
|
} = {};
|
||||||
let monitors = 0;
|
let monitors = 0;
|
||||||
|
let isMonitored = false;
|
||||||
|
|
||||||
const getId = (sender: chrome.runtime.MessageSender, name?: string) =>
|
const getId = (sender: chrome.runtime.MessageSender, name?: string) =>
|
||||||
sender.tab ? sender.tab.id! : name || sender.id!;
|
sender.tab ? sender.tab.id! : name || sender.id!;
|
||||||
|
@ -262,12 +263,7 @@ type MonitorAction<S, A extends Action<string>> =
|
||||||
// Chrome message limit is 64 MB, but we're using 32 MB to include other object's parts
|
// Chrome message limit is 64 MB, but we're using 32 MB to include other object's parts
|
||||||
const maxChromeMsgSize = 32 * 1024 * 1024;
|
const maxChromeMsgSize = 32 * 1024 * 1024;
|
||||||
|
|
||||||
// TODO Clean up args
|
function toMonitors<S, A extends Action<string>>(action: MonitorAction<S, A>) {
|
||||||
function toMonitors<S, A extends Action<string>>(
|
|
||||||
action: MonitorAction<S, A>,
|
|
||||||
tabId?: string | number,
|
|
||||||
verbose?: boolean,
|
|
||||||
) {
|
|
||||||
for (const port of [
|
for (const port of [
|
||||||
...Object.values(connections.monitor),
|
...Object.values(connections.monitor),
|
||||||
...Object.values(connections.panel),
|
...Object.values(connections.panel),
|
||||||
|
@ -417,6 +413,7 @@ function toAllTabs(msg: TabMessage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function monitorInstances(shouldMonitor: boolean, id?: string) {
|
function monitorInstances(shouldMonitor: boolean, id?: string) {
|
||||||
|
if (!id && isMonitored === shouldMonitor) return;
|
||||||
const action = {
|
const action = {
|
||||||
type: shouldMonitor ? ('START' as const) : ('STOP' as const),
|
type: shouldMonitor ? ('START' as const) : ('STOP' as const),
|
||||||
};
|
};
|
||||||
|
@ -425,6 +422,7 @@ function monitorInstances(shouldMonitor: boolean, id?: string) {
|
||||||
} else {
|
} else {
|
||||||
toAllTabs(action);
|
toAllTabs(action);
|
||||||
}
|
}
|
||||||
|
isMonitored = shouldMonitor;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getReducerError() {
|
function getReducerError() {
|
||||||
|
@ -499,7 +497,7 @@ function messaging<S, A extends Action<string>>(
|
||||||
}
|
}
|
||||||
if (request.type === 'ERROR') {
|
if (request.type === 'ERROR') {
|
||||||
if (request.payload) {
|
if (request.payload) {
|
||||||
toMonitors(request, tabId);
|
toMonitors(request);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!request.message) return;
|
if (!request.message) return;
|
||||||
|
@ -541,11 +539,7 @@ function messaging<S, A extends Action<string>>(
|
||||||
}
|
}
|
||||||
store.dispatch(action);
|
store.dispatch(action);
|
||||||
|
|
||||||
if (request.type === 'EXPORT') {
|
toMonitors(action);
|
||||||
toMonitors(action, tabId, true);
|
|
||||||
} else {
|
|
||||||
toMonitors(action, tabId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function disconnect(
|
function disconnect(
|
||||||
|
@ -587,7 +581,7 @@ function onConnect<S, A extends Action<string>>(port: chrome.runtime.Port) {
|
||||||
chrome.action.enable(id);
|
chrome.action.enable(id);
|
||||||
chrome.action.setIcon({ tabId: id, path: 'img/logo/38x38.png' });
|
chrome.action.setIcon({ tabId: id, path: 'img/logo/38x38.png' });
|
||||||
}
|
}
|
||||||
port.postMessage({ type: 'START' });
|
if (isMonitored) port.postMessage({ type: 'START' });
|
||||||
|
|
||||||
const state = store.getState();
|
const state = store.getState();
|
||||||
if (state.instances.persisted) {
|
if (state.instances.persisted) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user