From b52917c380c6e5b33da6c3909c0048a3a6f78914 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 14 Feb 2025 04:02:19 -0600 Subject: [PATCH] refactor: use node::tracing::Agent() directly (35-x-y) (#45619) * refactor: use node::tracing::Agent() * chore: e patches all --------- Co-authored-by: Shelley Vohr --- patches/node/.patches | 1 - ...compilation_fails_if_not_using_a_new.patch | 2 +- ...ssert_module_in_the_renderer_process.patch | 2 +- ...se_tracing_tracingcontroller_instead.patch | 44 ------------------- ..._on_wrapper-descriptor-based_cppheap.patch | 4 +- .../node/support_v8_sandboxed_pointers.patch | 2 +- shell/browser/javascript_environment.cc | 2 +- shell/renderer/electron_renderer_client.cc | 6 ++- shell/renderer/web_worker_observer.cc | 6 ++- 9 files changed, 14 insertions(+), 55 deletions(-) delete mode 100644 patches/node/fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch diff --git a/patches/node/.patches b/patches/node/.patches index 6c93c758fcf4..881e3b572dbc 100644 --- a/patches/node/.patches +++ b/patches/node/.patches @@ -1,7 +1,6 @@ expose_get_builtin_module_function.patch build_add_gn_build_files.patch fix_add_default_values_for_variables_in_common_gypi.patch -fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch pass_all_globals_through_require.patch build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch refactor_allow_embedder_overriding_of_internal_fs_calls.patch diff --git a/patches/node/build_ensure_native_module_compilation_fails_if_not_using_a_new.patch b/patches/node/build_ensure_native_module_compilation_fails_if_not_using_a_new.patch index 4001cf3cb63e..91be0dca9d33 100644 --- a/patches/node/build_ensure_native_module_compilation_fails_if_not_using_a_new.patch +++ b/patches/node/build_ensure_native_module_compilation_fails_if_not_using_a_new.patch @@ -52,7 +52,7 @@ index d03db1970fd7a1629a7a7719a5ff267402ab4a66..ce055fb5dfc84c75c486b99f01fea6b9 o['variables']['v8_enable_javascript_promise_hooks'] = 1 o['variables']['v8_enable_lite_mode'] = 1 if options.v8_lite_mode else 0 diff --git a/src/node.h b/src/node.h -index 0fec9477fd0f2a3c2aa68284131c510b0da0e025..c16204ad2a4787eeffe61eedda254d3a5509df8c 100644 +index 60598f54114b2424f10706e57d8aa50c4634bcb0..40880ccaca694f28ae47676254b1c0cc36de0d93 100644 --- a/src/node.h +++ b/src/node.h @@ -22,6 +22,12 @@ diff --git a/patches/node/fix_assert_module_in_the_renderer_process.patch b/patches/node/fix_assert_module_in_the_renderer_process.patch index 8bceb9a241d2..43e1ae3a07c5 100644 --- a/patches/node/fix_assert_module_in_the_renderer_process.patch +++ b/patches/node/fix_assert_module_in_the_renderer_process.patch @@ -44,7 +44,7 @@ index 59b5a16f1309a5e4055bccfdb7a529045ad30402..bfdaf6211466a01b64b7942f7b16c480 let filename = call.getFileName(); const line = call.getLineNumber() - 1; diff --git a/src/api/environment.cc b/src/api/environment.cc -index f59abcb21d64b910d8d42eb23c03109f62558813..1b6613d1de8c89c8271066a652afd1024988362d 100644 +index a3c5697ef5b20a9dc43bfcd3513e703989f64d2d..837fdc8c79c6d80393b0c8ac9a18e4dd5e5a8dba 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -244,6 +244,9 @@ void SetIsolateErrorHandlers(v8::Isolate* isolate, const IsolateSettings& s) { diff --git a/patches/node/fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch b/patches/node/fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch deleted file mode 100644 index 5f005aef017d..000000000000 --- a/patches/node/fix_expose_tracing_agent_and_use_tracing_tracingcontroller_instead.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Samuel Attard -Date: Fri, 26 Oct 2018 15:35:13 +1100 -Subject: fix: expose tracing::Agent and use tracing::TracingController instead - of v8::TracingController - -This API is used by Electron to create Node's tracing controller. - -diff --git a/src/api/environment.cc b/src/api/environment.cc -index 77c20a4b6b9db414444974f68c5def8788386d2b..5fc1b6f2446d7c786024eb60800e2edab613dcd1 100644 ---- a/src/api/environment.cc -+++ b/src/api/environment.cc -@@ -564,6 +564,10 @@ MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env) { - return env->platform(); - } - -+node::tracing::Agent* CreateAgent() { -+ return new node::tracing::Agent(); -+} -+ - MultiIsolatePlatform* CreatePlatform( - int thread_pool_size, - node::tracing::TracingController* tracing_controller) { -diff --git a/src/node.h b/src/node.h -index 60598f54114b2424f10706e57d8aa50c4634bcb0..0fec9477fd0f2a3c2aa68284131c510b0da0e025 100644 ---- a/src/node.h -+++ b/src/node.h -@@ -133,6 +133,7 @@ struct SnapshotData; - - namespace tracing { - -+class Agent; - class TracingController; - - } -@@ -832,6 +833,8 @@ NODE_EXTERN void GetNodeReport(Environment* env, - NODE_EXTERN MultiIsolatePlatform* GetMultiIsolatePlatform(Environment* env); - NODE_EXTERN MultiIsolatePlatform* GetMultiIsolatePlatform(IsolateData* env); - -+NODE_EXTERN node::tracing::Agent* CreateAgent(); -+ - NODE_DEPRECATED("Use MultiIsolatePlatform::Create() instead", - NODE_EXTERN MultiIsolatePlatform* CreatePlatform( - int thread_pool_size, diff --git a/patches/node/src_remove_dependency_on_wrapper-descriptor-based_cppheap.patch b/patches/node/src_remove_dependency_on_wrapper-descriptor-based_cppheap.patch index ef2c934d36e7..cb7ae75ede89 100644 --- a/patches/node/src_remove_dependency_on_wrapper-descriptor-based_cppheap.patch +++ b/patches/node/src_remove_dependency_on_wrapper-descriptor-based_cppheap.patch @@ -161,10 +161,10 @@ index 49ca9c0042ccf22ad1fffa54f05fd443cbc681ba..945535d0dc40f1a32f7e3ecf7d50361e inline MultiIsolatePlatform* platform() const; inline const SnapshotData* snapshot_data() const; diff --git a/src/node.h b/src/node.h -index c16204ad2a4787eeffe61eedda254d3a5509df8c..c39f586e9c5e7e9db75d922d244ea8e4d6d56841 100644 +index 40880ccaca694f28ae47676254b1c0cc36de0d93..8e1114148bf5e961620726183f4979977dc14714 100644 --- a/src/node.h +++ b/src/node.h -@@ -1561,24 +1561,14 @@ void RegisterSignalHandler(int signal, +@@ -1558,24 +1558,14 @@ void RegisterSignalHandler(int signal, bool reset_handler = false); #endif // _WIN32 diff --git a/patches/node/support_v8_sandboxed_pointers.patch b/patches/node/support_v8_sandboxed_pointers.patch index e91f3172e3a3..e467a83290a6 100644 --- a/patches/node/support_v8_sandboxed_pointers.patch +++ b/patches/node/support_v8_sandboxed_pointers.patch @@ -7,7 +7,7 @@ This refactors several allocators to allocate within the V8 memory cage, allowing them to be compatible with the V8_SANDBOXED_POINTERS feature. diff --git a/src/api/environment.cc b/src/api/environment.cc -index 5fc1b6f2446d7c786024eb60800e2edab613dcd1..f59abcb21d64b910d8d42eb23c03109f62558813 100644 +index 77c20a4b6b9db414444974f68c5def8788386d2b..a3c5697ef5b20a9dc43bfcd3513e703989f64d2d 100644 --- a/src/api/environment.cc +++ b/src/api/environment.cc @@ -101,6 +101,14 @@ MaybeLocal PrepareStackTraceCallback(Local context, diff --git a/shell/browser/javascript_environment.cc b/shell/browser/javascript_environment.cc index 3661d4132f07..314562e5c297 100644 --- a/shell/browser/javascript_environment.cc +++ b/shell/browser/javascript_environment.cc @@ -90,7 +90,7 @@ v8::Isolate* JavascriptEnvironment::Initialize(uv_loop_t* event_loop, // The V8Platform of gin relies on Chromium's task schedule, which has not // been started at this point, so we have to rely on Node's V8Platform. - auto* tracing_agent = node::CreateAgent(); + auto* tracing_agent = new node::tracing::Agent(); auto* tracing_controller = tracing_agent->GetTracingController(); node::tracing::TraceEventHelper::SetAgent(tracing_agent); platform_ = node::MultiIsolatePlatform::Create( diff --git a/shell/renderer/electron_renderer_client.cc b/shell/renderer/electron_renderer_client.cc index 6e69d39c6dda..d22b829d9a59 100644 --- a/shell/renderer/electron_renderer_client.cc +++ b/shell/renderer/electron_renderer_client.cc @@ -92,8 +92,10 @@ void ElectronRendererClient::DidCreateScriptContext( } // Setup node tracing controller. - if (!node::tracing::TraceEventHelper::GetAgent()) - node::tracing::TraceEventHelper::SetAgent(node::CreateAgent()); + if (!node::tracing::TraceEventHelper::GetAgent()) { + auto* tracing_agent = new node::tracing::Agent(); + node::tracing::TraceEventHelper::SetAgent(tracing_agent); + } // Setup node environment for each window. v8::Maybe initialized = node::InitializeContext(renderer_context); diff --git a/shell/renderer/web_worker_observer.cc b/shell/renderer/web_worker_observer.cc index f157558fb7d4..44c2dc9edd0e 100644 --- a/shell/renderer/web_worker_observer.cc +++ b/shell/renderer/web_worker_observer.cc @@ -54,8 +54,10 @@ void WebWorkerObserver::WorkerScriptReadyForEvaluation( node_bindings_->PrepareEmbedThread(); // Setup node tracing controller. - if (!node::tracing::TraceEventHelper::GetAgent()) - node::tracing::TraceEventHelper::SetAgent(node::CreateAgent()); + if (!node::tracing::TraceEventHelper::GetAgent()) { + auto* tracing_agent = new node::tracing::Agent(); + node::tracing::TraceEventHelper::SetAgent(tracing_agent); + } // Setup node environment for each window. v8::Maybe initialized = node::InitializeContext(worker_context);