diff --git a/base/debug/stack_trace_posix.cc b/base/debug/stack_trace_posix.cc
index f3f05da..b954b97 100644
--- a/base/debug/stack_trace_posix.cc
+++ b/base/debug/stack_trace_posix.cc
@@ -39,7 +39,6 @@
 #include "base/debug/proc_maps_linux.h"
 #endif
 
-#include "base/cfi_buildflags.h"
 #include "base/debug/debugger.h"
 #include "base/files/scoped_file.h"
 #include "base/logging.h"
@@ -321,16 +320,6 @@
   }
   PrintToStderr("\n");
 
-#if BUILDFLAG(CFI_ENFORCEMENT_TRAP)
-  if (signal == SIGILL && info->si_code == ILL_ILLOPN) {
-    PrintToStderr(
-        "CFI: Most likely a control flow integrity violation; for more "
-        "information see:\n");
-    PrintToStderr(
-        "https://www.chromium.org/developers/testing/control-flow-integrity\n");
-  }
-#endif  // BUILDFLAG(CFI_ENFORCEMENT_TRAP)
-
   debug::StackTrace().Print();
 
 #if defined(OS_LINUX)
diff --git a/base/memory/protected_memory_cfi.h b/base/memory/protected_memory_cfi.h
index a90023b..44f4654 100644
--- a/base/memory/protected_memory_cfi.h
+++ b/base/memory/protected_memory_cfi.h
@@ -13,16 +13,11 @@
 
 #include <utility>
 
-#include "base/cfi_buildflags.h"
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/protected_memory.h"
 #include "build/build_config.h"
 
-#if BUILDFLAG(CFI_ICALL_CHECK) && !PROTECTED_MEMORY_ENABLED
-#error "CFI-icall enabled for platform without protected memory support"
-#endif  // BUILDFLAG(CFI_ICALL_CHECK) && !PROTECTED_MEMORY_ENABLED
-
 namespace base {
 namespace internal {
 
diff --git a/base/memory/protected_memory_unittest.cc b/base/memory/protected_memory_unittest.cc
index b7daed3..5601f45 100644
--- a/base/memory/protected_memory_unittest.cc
+++ b/base/memory/protected_memory_unittest.cc
@@ -3,7 +3,6 @@
 // found in the LICENSE file.
 
 #include "base/memory/protected_memory.h"
-#include "base/cfi_buildflags.h"
 #include "base/memory/protected_memory_cfi.h"
 #include "base/synchronization/lock.h"
 #include "base/test/gtest_util.h"
@@ -100,11 +99,7 @@
       &icall_pm1, BadIcall(reinterpret_cast<int (*)(int)>(&bad_icall)));
 
   EXPECT_EQ(UnsanitizedCfiCall(icall_pm1, &BadIcall::fp)(1), 5);
-#if !BUILDFLAG(CFI_ICALL_CHECK)
   EXPECT_EQ(icall_pm1->fp(1), 5);
-#elif BUILDFLAG(CFI_ENFORCEMENT_TRAP) || BUILDFLAG(CFI_ENFORCEMENT_DIAGNOSTIC)
-  EXPECT_DEATH({ icall_pm1->fp(1); }, "");
-#endif
 }
 
 PROTECTED_MEMORY_SECTION ProtectedMemory<int (*)(int)> icall_pm2;
@@ -114,11 +109,7 @@
       &icall_pm2, reinterpret_cast<int (*)(int)>(&bad_icall));
 
   EXPECT_EQ(UnsanitizedCfiCall(icall_pm2)(1), 5);
-#if !BUILDFLAG(CFI_ICALL_CHECK)
   EXPECT_EQ((*icall_pm2)(1), 5);
-#elif BUILDFLAG(CFI_ENFORCEMENT_TRAP) || BUILDFLAG(CFI_ENFORCEMENT_DIAGNOSTIC)
-  EXPECT_DEATH({ (*icall_pm2)(1); }, "");
-#endif
 }
 
 #endif  // defined(GTEST_HAS_DEATH_TEST) && !defined(OS_ANDROID)
diff --git a/base/tools_sanity_unittest.cc b/base/tools_sanity_unittest.cc
index 98c30df..42d45f4 100644
--- a/base/tools_sanity_unittest.cc
+++ b/base/tools_sanity_unittest.cc
@@ -9,7 +9,6 @@
 #include <stddef.h>
 
 #include "base/atomicops.h"
-#include "base/cfi_buildflags.h"
 #include "base/debug/asan_invalid_access.h"
 #include "base/debug/profiler.h"
 #include "base/third_party/dynamic_annotations/dynamic_annotations.h"
@@ -332,20 +331,6 @@
   EXPECT_EQ(kMagicValue, shared);
 }
 
-#if BUILDFLAG(CFI_ENFORCEMENT_TRAP)
-#if defined(OS_WIN)
-#define CFI_ERROR_MSG "EXCEPTION_ILLEGAL_INSTRUCTION"
-#elif defined(OS_ANDROID)
-// TODO(pcc): Produce proper stack dumps on Android and test for the correct
-// si_code here.
-#define CFI_ERROR_MSG "^$"
-#else
-#define CFI_ERROR_MSG "ILL_ILLOPN"
-#endif
-#elif BUILDFLAG(CFI_ENFORCEMENT_DIAGNOSTIC)
-#define CFI_ERROR_MSG "runtime error: control flow integrity check"
-#endif  // BUILDFLAG(CFI_ENFORCEMENT_TRAP || CFI_ENFORCEMENT_DIAGNOSTIC)
-
 #if defined(CFI_ERROR_MSG)
 class A {
  public:
@@ -389,27 +374,6 @@
                CFI_ERROR_MSG);
 }
 
-// TODO(pcc): remove CFI_CAST_CHECK, see https://crbug.com/626794.
-#if BUILDFLAG(CFI_CAST_CHECK)
-TEST(ToolsSanityTest, BadDerivedCast) {
-  A a;
-  EXPECT_DEATH((void)(B*)&a, CFI_ERROR_MSG);
-}
-
-TEST(ToolsSanityTest, BadUnrelatedCast) {
-  class A {
-    virtual void f() {}
-  };
-
-  class B {
-    virtual void f() {}
-  };
-
-  A a;
-  EXPECT_DEATH((void)(B*)&a, CFI_ERROR_MSG);
-}
-#endif  // BUILDFLAG(CFI_CAST_CHECK)
-
 #endif  // CFI_ERROR_MSG
 
 #undef CFI_ERROR_MSG
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
index 602f43d..9a134a5 100755
--- a/tools/gn/bootstrap/bootstrap.py
+++ b/tools/gn/bootstrap/bootstrap.py
@@ -226,14 +226,6 @@
   root_gen_dir = os.path.join(tempdir, 'gen')
   mkdir_p(root_gen_dir)
 
-  write_buildflag_header_manually(root_gen_dir, 'base/cfi_buildflags.h',
-      {
-          'CFI_CAST_CHECK': 'false',
-          'CFI_ICALL_CHECK': 'false',
-          'CFI_ENFORCEMENT_TRAP': 'false',
-          'CFI_ENFORCEMENT_DIAGNOSTIC': 'false'
-      })
-
   write_build_date_header(root_gen_dir)
 
   if is_mac:
