diff --git a/base/win/scoped_handle_test_dll.cc b/base/win/scoped_handle_test_dll.cc
index 75484aa..e17d6fd 100644
--- a/base/win/scoped_handle_test_dll.cc
+++ b/base/win/scoped_handle_test_dll.cc
@@ -102,17 +102,10 @@
 
   HMODULE main_module = ::GetModuleHandle(NULL);
 
-#if BUILDFLAG(SINGLE_MODULE_MODE_HANDLE_VERIFIER)
-  // In a component build ActiveVerifier will always be created inside base.dll
-  // as the code always lives there.
-  if (verifier_module == my_module || verifier_module == main_module)
-    return false;
-#else
   // In a non-component build, ActiveVerifier should always be created in the
   // version of base linked with the main executable.
   if (verifier_module == my_module || verifier_module != main_module)
     return false;
-#endif
   return true;
 }
 
diff --git a/base/win/scoped_handle_verifier.cc b/base/win/scoped_handle_verifier.cc
index 191a240..6a73677 100644
--- a/base/win/scoped_handle_verifier.cc
+++ b/base/win/scoped_handle_verifier.cc
@@ -90,10 +90,6 @@
 
 // static
 void ScopedHandleVerifier::InstallVerifier() {
-#if BUILDFLAG(SINGLE_MODULE_MODE_HANDLE_VERIFIER)
-  // Component build has one Active Verifier per module.
-  ThreadSafeAssignOrCreateScopedHandleVerifier(nullptr, true);
-#else
   // If you are reading this, wondering why your process seems deadlocked, take
   // a look at your DllMain code and remove things that should not be done
   // there, like doing whatever gave you that nice windows handle you are trying
@@ -125,7 +121,6 @@
   DCHECK(main_module_verifier);
 
   ThreadSafeAssignOrCreateScopedHandleVerifier(main_module_verifier, false);
-#endif
 }
 
 bool ScopedHandleVerifier::CloseHandle(HANDLE handle) {
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
index 9a134a5..f2caac7 100755
--- a/tools/gn/bootstrap/bootstrap.py
+++ b/tools/gn/bootstrap/bootstrap.py
@@ -192,28 +192,6 @@
       os.path.join(SRC_ROOT, source),
   ])
 
-def write_buildflag_header_manually(root_gen_dir, header, flags):
-  mkdir_p(os.path.join(root_gen_dir, os.path.dirname(header)))
-
-  # Don't use tempfile.NamedTemporaryFile() here.
-  # It doesn't work correctly on Windows.
-  # see: http://bugs.python.org/issue14243
-  temp_path = os.path.join(root_gen_dir, header + '.tmp')
-  with open(temp_path, 'w') as f:
-    f.write('--flags')
-    for name,value in flags.items():
-      f.write(' ' + name + '=' + value)
-
-  check_call([
-      sys.executable,
-      os.path.join(SRC_ROOT, 'build', 'write_buildflag_header.py'),
-      '--output', header,
-      '--gen-dir', root_gen_dir,
-      '--definitions', temp_path,
-  ])
-
-  os.remove(temp_path)
-
 def write_build_date_header(root_gen_dir):
   check_call([
        sys.executable,
@@ -240,10 +218,6 @@
     ])
 
   if is_win:
-    write_buildflag_header_manually(root_gen_dir,
-                                    'base/win/base_win_buildflags.h',
-        {'SINGLE_MODULE_MODE_HANDLE_VERIFIER': 'true'})
-
     write_compiled_message(root_gen_dir,
         'base/trace_event/etw_manifest/chrome_events_win.man')
 
