    v8_component("v8") {
      sources = [
        "src/v8dll-main.cc",
-diff --git a/gni/v8.gni b/gni/v8.gni
-index ea628e0..1b521f8 100644
---- a/gni/v8.gni
-+++ b/gni/v8.gni
-@@ -4,6 +4,7 @@
- import("//build/config/sanitizers/sanitizers.gni")
- import("//build/config/v8_target_cpu.gni")
- import("//build/split_static_library.gni")
-+import("//chromiumcontent/config.gni")
+@@ -2681,6 +2711,13 @@ if (is_component_build) {
+     configs = [ ":internal_config" ]
  
- declare_args() {
-   # Set flags for tracking code coverage. Uses gcov with gcc and sanitizer
-@@ -139,6 +140,13 @@ template("v8_executable") {
+     public_configs = [ ":external_config" ]
++
++    # For Electron "static_library" keep V8 as a shared library. This is only
++    # needed so that other targets in Chromium build cleanly. Electron doesn't
++    # need the DLL.
++    if (is_electron_build && !is_component_build) {
++      static_component_type = "shared_library"
++    }
+   }
  
- template("v8_component") {
-   component(target_name) {
-+    if (is_electron_build && !is_component_build) {
-+      if (target_name == "v8_libbase" || target_name == "v8_libplatform") {
-+        static_component_type = "source_set"
-+      } else {
-+        static_component_type = component_electron
-+      }
-+    }
-     forward_variables_from(invoker, "*", [ "configs" ])
-     configs += invoker.configs
-     configs -= v8_remove_configs
+   v8_component("v8_for_testing") {
 diff --git a/src/inspector/BUILD.gn b/src/inspector/BUILD.gn
 index e6742c0..ef3876d 100644
 --- a/src/inspector/BUILD.gn

     deps = [
       ":v8_base",
       ":v8_builtins_setup",
@@ -2680,7 +2700,7 @@ group("v8_fuzzers") {
   ]
 }
 

     defines = [ "USING_V8_SHARED" ]
   }
   include_dirs = [
@@ -2581,6 +2609,8 @@ if (current_toolchain == v8_snapshot_toolchain) {
 
     configs = [ ":internal_config" ]
 
