diff --git a/shell/services/node/node_service.h b/shell/services/node/node_service.h index eae1bd2a5a8a..a7b87da8041c 100644 --- a/shell/services/node/node_service.h +++ b/shell/services/node/node_service.h @@ -61,6 +61,12 @@ class NodeService : public node::mojom::NodeService { void Initialize(node::mojom::NodeServiceParamsPtr params) override; private: + // This needs to be initialized first so that it can be destroyed last + // after the node::Environment is destroyed. This ensures that if + // there are crashes in the node::Environment destructor, they + // will be propagated to the exit handler. + mojo::Receiver receiver_{this}; + bool node_env_stopped_ = false; const std::unique_ptr node_bindings_; @@ -73,8 +79,6 @@ class NodeService : public node::mojom::NodeService { // depends-on: js_env_'s isolate std::shared_ptr node_env_; - - mojo::Receiver receiver_{this}; }; } // namespace electron