mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
* chore: bump node in DEPS to v16.4.2 * chore: update patches * ci: run main and remote woa tests separately * chore: bump node in DEPS to v16.5.0 * build: restore libplatform headers in distribution https://github.com/nodejs/node/pull/39288 * build: pass directory instead of list of files to js2c.py https://github.com/nodejs/node/pull/39069 * chore: various BoringSSL/OpenSSL upstreams - https://github.com/nodejs/node/pull/39136 - https://github.com/nodejs/node/pull/39138 - https://github.com/nodejs/node/pull/39054 * test: move debugger test case to parallel https://github.com/nodejs/node/pull/39300 * chore: fixup patch indices * build: pass directory instead of list of files to js2c.py https://github.com/nodejs/node/pull/39069 Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
82 lines
3.3 KiB
Diff
82 lines
3.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
Date: Tue, 22 Sep 2020 19:44:30 -0700
|
|
Subject: fix: allow preventing InitializeInspector in env
|
|
|
|
https://github.com/nodejs/node/commit/8c5ad1392f30cfe6b107e9bd85f4cb918ba04aab
|
|
made it such that env->InitializeInspector was called in CreateEnvironment
|
|
no matter what, which creates an issue for Electron, as the V8 inspector
|
|
already exists in the renderer process and therefore we only want to
|
|
initialize it in the browser process. This adds a new
|
|
EnvironmentFlags option which allows preventing that invocation.
|
|
|
|
diff --git a/src/api/environment.cc b/src/api/environment.cc
|
|
index de29d45adde76587f2a9cd50392ba45b8e24839e..09c0d22ff91856704f61024646c946a39baf53d8 100644
|
|
--- a/src/api/environment.cc
|
|
+++ b/src/api/environment.cc
|
|
@@ -341,12 +341,14 @@ Environment* CreateEnvironment(
|
|
Environment* env = new Environment(
|
|
isolate_data, context, args, exec_args, nullptr, flags, thread_id);
|
|
#if HAVE_INSPECTOR
|
|
- if (inspector_parent_handle) {
|
|
- env->InitializeInspector(
|
|
- std::move(static_cast<InspectorParentHandleImpl*>(
|
|
- inspector_parent_handle.get())->impl));
|
|
- } else {
|
|
- env->InitializeInspector({});
|
|
+ if (env->should_initialize_inspector()) {
|
|
+ if (inspector_parent_handle) {
|
|
+ env->InitializeInspector(
|
|
+ std::move(static_cast<InspectorParentHandleImpl*>(
|
|
+ inspector_parent_handle.get())->impl));
|
|
+ } else {
|
|
+ env->InitializeInspector({});
|
|
+ }
|
|
}
|
|
#endif
|
|
|
|
diff --git a/src/env-inl.h b/src/env-inl.h
|
|
index b3b1ea908253b9240cc37931f34b2a8c8c9fa3ab..dc37298aa0e13bb79030123f38070d0254691b28 100644
|
|
--- a/src/env-inl.h
|
|
+++ b/src/env-inl.h
|
|
@@ -877,6 +877,10 @@ inline bool Environment::tracks_unmanaged_fds() const {
|
|
return flags_ & EnvironmentFlags::kTrackUnmanagedFds;
|
|
}
|
|
|
|
+inline bool Environment::should_initialize_inspector() const {
|
|
+ return (flags_ & EnvironmentFlags::kNoInitializeInspector) == 0;
|
|
+}
|
|
+
|
|
bool Environment::filehandle_close_warning() const {
|
|
return emit_filehandle_warning_;
|
|
}
|
|
diff --git a/src/env.h b/src/env.h
|
|
index e1b89261fcb1e94220424aae2273db9fba010331..45210f074a0ca4d57f9fdc5019e8e82540b28b72 100644
|
|
--- a/src/env.h
|
|
+++ b/src/env.h
|
|
@@ -1199,6 +1199,7 @@ class Environment : public MemoryRetainer {
|
|
inline bool owns_process_state() const;
|
|
inline bool owns_inspector() const;
|
|
inline bool tracks_unmanaged_fds() const;
|
|
+ inline bool should_initialize_inspector() const;
|
|
inline uint64_t thread_id() const;
|
|
inline worker::Worker* worker_context() const;
|
|
Environment* worker_parent_env() const;
|
|
diff --git a/src/node.h b/src/node.h
|
|
index 41f79ef869128636ac04093919e8e5816b39bef9..691c16ba60b0ce8633555825e44c3ace96c5000f 100644
|
|
--- a/src/node.h
|
|
+++ b/src/node.h
|
|
@@ -405,7 +405,11 @@ enum Flags : uint64_t {
|
|
kNoRegisterESMLoader = 1 << 3,
|
|
// Set this flag to make Node.js track "raw" file descriptors, i.e. managed
|
|
// by fs.open() and fs.close(), and close them during FreeEnvironment().
|
|
- kTrackUnmanagedFds = 1 << 4
|
|
+ kTrackUnmanagedFds = 1 << 4,
|
|
+ // Controls whether or not the Environment should call InitializeInspector.
|
|
+ // This control is needed by embedders who may not want to initialize the V8
|
|
+ // inspector in situations where it already exists.
|
|
+ kNoInitializeInspector = 1 << 5
|
|
};
|
|
} // namespace EnvironmentFlags
|
|
|