mirror of
https://github.com/electron/electron.git
synced 2026-02-19 03:14:51 -05:00
feat: enable WASM trap handlers in all Node.js processes (#48983)
fix: enable WASM trap handlers in all Node.js processes ``` Original reason for revert: Some apps started throwing exception on startup https://github.com/electron/electron/issues/48956 ``` We now move the trap handler registeration before any user script execution. Add a fuse to support disabling the feature is application needs to run in memory constrained environments.
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/process/process.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "electron/fuses.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,15 @@ void NodeService::Initialize(
|
||||
v8::Isolate* const isolate = js_env_->isolate();
|
||||
v8::HandleScope scope{isolate};
|
||||
|
||||
// Enable trap handlers before user script execution.
|
||||
#if ((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)) && \
|
||||
defined(ARCH_CPU_X86_64)) || \
|
||||
((BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC)) && defined(ARCH_CPU_ARM64))
|
||||
if (electron::fuses::IsWasmTrapHandlersEnabled()) {
|
||||
electron::SetUpWebAssemblyTrapHandler();
|
||||
}
|
||||
#endif
|
||||
|
||||
node_bindings_->Initialize(isolate, isolate->GetCurrentContext());
|
||||
|
||||
network_change_notifier_ = net::NetworkChangeNotifier::CreateIfNeeded(
|
||||
|
||||
Reference in New Issue
Block a user