fix: enable wasm trap handlers in all Node.js processes (#48788)

* fix: enable wasm trap handlers in all Node.js  processes

* fix: separate registrations to account for featurelist init
This commit is contained in:
Robo
2025-11-07 20:56:51 +09:00
committed by GitHub
parent 194ce1a1d6
commit ca0b46b413
5 changed files with 72 additions and 47 deletions

View File

@@ -11,6 +11,7 @@
#include "base/no_destructor.h"
#include "base/process/process.h"
#include "base/strings/utf_string_conversions.h"
#include "content/public/common/content_features.h"
#include "electron/mas.h"
#include "net/base/network_change_notifier.h"
#include "services/network/public/cpp/wrapper_shared_url_loader_factory.h"
@@ -22,6 +23,7 @@
#include "shell/common/gin_helper/dictionary.h"
#include "shell/common/node_bindings.h"
#include "shell/common/node_includes.h"
#include "shell/common/v8_util.h"
#include "shell/services/node/parent_port.h"
#if !IS_MAS_BUILD()
@@ -130,6 +132,11 @@ void NodeService::Initialize(
v8::Isolate* const isolate = js_env_->isolate();
v8::HandleScope scope{isolate};
// Initialize after setting up the V8 isolate.
if (base::FeatureList::IsEnabled(features::kWebAssemblyTrapHandler)) {
electron::SetUpWebAssemblyTrapHandler();
}
node_bindings_->Initialize(isolate, isolate->GetCurrentContext());
network_change_notifier_ = net::NetworkChangeNotifier::CreateIfNeeded(