commit e5c4de590f3cb8bafe94f65c2884fd04dedc9db5
parent ffc380878c697f68eb9be108a6ba15924f9b2d31
Author: Alexandre Poirot <poirot.alex@gmail.com>
Date: Tue, 7 Oct 2025 22:22:11 +0000
Bug 1991698 - [devtools] Drop application panel actions as soon as the panel starts destroying. r=devtools-reviewers,nchevobbe
Differential Revision: https://phabricator.services.mozilla.com/D267189
Diffstat:
2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/devtools/client/application/initializer.js b/devtools/client/application/initializer.js
@@ -26,6 +26,9 @@ const {
bindActionCreators,
} = require("resource://devtools/client/shared/vendor/redux.js");
const {
+ START_IGNORE_ACTION,
+} = require("resource://devtools/client/shared/redux/middleware/ignore.js");
+const {
l10n,
} = require("resource://devtools/client/application/src/modules/l10n.js");
@@ -132,6 +135,9 @@ window.Application = {
},
destroy() {
+ // Prevents any further action from being dispatched
+ this.store.dispatch(START_IGNORE_ACTION);
+
this.workersListener.removeListener();
this._commands.resourceCommand.unwatchResources(
diff --git a/devtools/client/application/src/create-store.js b/devtools/client/application/src/create-store.js
@@ -5,6 +5,9 @@
"use strict";
const {
+ ignore,
+} = require("resource://devtools/client/shared/redux/middleware/ignore.js");
+const {
thunk,
} = require("resource://devtools/client/shared/redux/middleware/thunk.js");
const eventTelemetryMiddleware = require("resource://devtools/client/application/src/middleware/event-telemetry.js");
@@ -40,6 +43,7 @@ function configureStore(telemetry) {
};
const middleware = applyMiddleware(
+ ignore,
thunk(),
eventTelemetryMiddleware(telemetry)
);