diff --git a/CMakeLists.txt b/CMakeLists.txt
index bcb91ba1..98af4e9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -387,7 +387,9 @@
 include(DawnInitializeBuildType)
 include(DawnLibrary)
 
+# Set vars used as conditions in generated CMake build files
 set(IS_ASAN ${DAWN_ENABLE_ASAN})
+set(BUILD_WITH_CHROMIUM FALSE)
 
 if (NOT ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS} STREQUAL "")
   message(STATUS "Using provided LIB_FUZZING_ENGINE options: ${TINT_LIB_FUZZING_ENGINE_LINK_OPTIONS}")
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn
index 9aaa47b..109d2a1 100644
--- a/src/tint/BUILD.gn
+++ b/src/tint/BUILD.gn
@@ -122,6 +122,11 @@
   }
 
   if (tint_build_ir_fuzzer) {
+    assert(tint_build_ir_binary,
+           "tint_build_ir_fuzzer requires tint_build_ir_binary")
+    assert(
+        !is_asan || build_with_chromium,
+        "tint_build_ir_fuzzer: ASAN not yet supported in non-Chromium builds (b/345196552)")
     defines += [ "TINT_BUILD_IR_FUZZER=1" ]
   } else {
     defines += [ "TINT_BUILD_IR_FUZZER=0" ]
@@ -317,7 +322,7 @@
   }
 
   if (tint_build_ir_fuzzer) {
-    if (tint_build_cmds && tint_build_wgsl_reader && tint_build_ir_binary) {
+    if (tint_build_cmds && tint_build_wgsl_reader) {
       action("tint_generate_ir_corpus") {
         script = "${tint_src_dir}/cmd/fuzz/ir/generate_ir_corpus.py"
         sources = [ "${script}" ]
@@ -353,7 +358,7 @@
   if (tint_build_tintd) {
     deps += [ "${tint_src_dir}/cmd/tintd" ]
   }
-  if (tint_build_ir_fuzzer && tint_build_ir_binary) {
+  if (tint_build_ir_fuzzer) {
     if (tint_build_wgsl_reader) {
       deps += [ "${tint_src_dir}/cmd/fuzz/ir/as" ]
     }
@@ -370,7 +375,7 @@
     deps += [ "${tint_src_dir}/cmd/fuzz/wgsl" ]
   }
 
-  if (tint_build_ir_fuzzer && (!is_asan || build_with_chromium)) {
+  if (tint_build_ir_fuzzer) {
     deps += [ "${tint_src_dir}/cmd/fuzz/ir" ]
   }
 }
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index 3515ee4..e662a37 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -59,9 +59,10 @@
 endif()
 
 if (TINT_BUILD_IR_FUZZER AND NOT TINT_BUILD_IR_BINARY)
-  message(FATAL_ERROR "Building IR fuzzer 'TINT_BUILD_IR_FUZZER' is enabled, "
-                      "but building IR binary format 'TINT_BUILD_IR_BINARY' is "
-                      "not")
+  message(FATAL_ERROR "TINT_BUILD_IR_FUZZER requires TINT_BUILD_IR_BINARY")
+endif()
+if (TINT_BUILD_IR_FUZZER AND NOT (((NOT IS_ASAN) OR BUILD_WITH_CHROMIUM)))
+  message(FATAL_ERROR "TINT_BUILD_IR_FUZZER: ASAN not yet supported in non-Chromium builds (b/345196552)")
 endif()
 
 ################################################################################
diff --git a/src/tint/cmd/fuzz/ir/BUILD.bazel b/src/tint/cmd/fuzz/ir/BUILD.bazel
index 308c902..68cf24d 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.bazel
+++ b/src/tint/cmd/fuzz/ir/BUILD.bazel
@@ -38,16 +38,6 @@
 load("@bazel_skylib//lib:selects.bzl", "selects")
 
 alias(
-  name = "build_with_chromium",
-  actual = "//src/tint:build_with_chromium_true",
-)
-
-alias(
-  name = "_not_is_asan_",
-  actual = "//src/tint:is_asan_false",
-)
-
-alias(
   name = "tint_build_glsl_writer",
   actual = "//src/tint:tint_build_glsl_writer_true",
 )
@@ -88,26 +78,10 @@
 )
 
 selects.config_setting_group(
-    name = "_not_is_asan__or_build_with_chromium",
-    match_any = [
-        "_not_is_asan_",
-        "build_with_chromium",
-    ],
-)
-
-selects.config_setting_group(
     name = "tint_build_ir_binary_and_tint_build_ir_fuzzer",
     match_all = [
         ":tint_build_ir_binary",
         ":tint_build_ir_fuzzer",
     ],
 )
-selects.config_setting_group(
-    name = "tint_build_ir_binary_and_tint_build_ir_fuzzer_and___not_is_asan__or_build_with_chromium_",
-    match_all = [
-        ":tint_build_ir_binary",
-        ":tint_build_ir_fuzzer",
-        ":_not_is_asan__or_build_with_chromium",
-    ],
-)
 
diff --git a/src/tint/cmd/fuzz/ir/BUILD.cfg b/src/tint/cmd/fuzz/ir/BUILD.cfg
index 5b903ba..84ec9c5 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.cfg
+++ b/src/tint/cmd/fuzz/ir/BUILD.cfg
@@ -1,7 +1,6 @@
 {
     "fuzz_cmd": {
-        /* Fuzzer has known false positive with ASAN in standalone builds */
-        "Condition": "tint_build_ir_binary && tint_build_ir_fuzzer && (!is_asan || build_with_chromium)",
+        "Condition": "tint_build_ir_binary && tint_build_ir_fuzzer",
         /* The Tint fuzzer executable for IR-input. */
         "OutputName": "tint_ir_fuzzer",
         "AdditionalDependencies": {
diff --git a/src/tint/cmd/fuzz/ir/BUILD.cmake b/src/tint/cmd/fuzz/ir/BUILD.cmake
index edb4bd4..2e7c241 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.cmake
+++ b/src/tint/cmd/fuzz/ir/BUILD.cmake
@@ -37,11 +37,11 @@
 include(cmd/fuzz/ir/as/BUILD.cmake)
 include(cmd/fuzz/ir/dis/BUILD.cmake)
 
-if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND ((NOT IS_ASAN) OR BUILD_WITH_CHROMIUM))
+if(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER)
 ################################################################################
 # Target:    tint_cmd_fuzz_ir_fuzz_cmd
 # Kind:      fuzz_cmd
-# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND ((NOT IS_ASAN) OR BUILD_WITH_CHROMIUM)
+# Condition: TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER
 ################################################################################
 tint_add_target(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd
   cmd/fuzz/ir/main_fuzz.cc
@@ -131,7 +131,7 @@
 
 tint_target_set_output_name(tint_cmd_fuzz_ir_fuzz_cmd fuzz_cmd "tint_ir_fuzzer")
 
-endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER AND ((NOT IS_ASAN) OR BUILD_WITH_CHROMIUM))
+endif(TINT_BUILD_IR_BINARY AND TINT_BUILD_IR_FUZZER)
 ################################################################################
 # Target:    tint_cmd_fuzz_ir_fuzz
 # Kind:      fuzz
diff --git a/src/tint/cmd/fuzz/ir/BUILD.gn b/src/tint/cmd/fuzz/ir/BUILD.gn
index a2af4f9..679ca8d 100644
--- a/src/tint/cmd/fuzz/ir/BUILD.gn
+++ b/src/tint/cmd/fuzz/ir/BUILD.gn
@@ -80,8 +80,7 @@
     ]
   }
 }
-if (tint_build_ir_binary && tint_build_ir_fuzzer &&
-    (!is_asan || build_with_chromium)) {
+if (tint_build_ir_binary && tint_build_ir_fuzzer) {
   tint_fuzzer_test("ir") {
     output_name = "tint_ir_fuzzer"
     sources = [ "main_fuzz.cc" ]
