compile everything with -fsanitize=fuzzer.

Bug:  69150303
Change-Id: I4f2b65796168ca05355aad3d6af755d6e8368334
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index ba42365..bce1986 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -134,9 +134,5 @@
 }
 
 config("fuzzer_config") {
-  cflags = [ "-fsanitize=fuzzer" ]
-  ldflags = [
-    "-fsanitize=fuzzer",
-    "-fsanitize-coverage=trace-pc-guard",
-  ]
+  ldflags = [ "-fsanitize=fuzzer" ]
 }
diff --git a/gn/perfetto.gni b/gn/perfetto.gni
index d000a5d..6b94451 100644
--- a/gn/perfetto.gni
+++ b/gn/perfetto.gni
@@ -17,7 +17,6 @@
 declare_args() {
   # The Android blueprint file generator overrides this to true.
   build_with_android = false
-  use_libfuzzer = false
 }
 
 if (!build_with_chromium) {
diff --git a/gn/standalone/sanitizers/BUILD.gn b/gn/standalone/sanitizers/BUILD.gn
index 0fec24a..3d7eeef 100644
--- a/gn/standalone/sanitizers/BUILD.gn
+++ b/gn/standalone/sanitizers/BUILD.gn
@@ -86,6 +86,9 @@
     ]
     defines += [ "UNDEFINED_SANITIZER" ]
   }
+  if (use_libfuzzer) {
+    cflags += [ "-fsanitize=fuzzer" ]
+  }
 }
 
 config("sanitizer_options_link_helper") {
diff --git a/gn/standalone/sanitizers/vars.gni b/gn/standalone/sanitizers/vars.gni
index 7ad54ab..d1f2760 100644
--- a/gn/standalone/sanitizers/vars.gni
+++ b/gn/standalone/sanitizers/vars.gni
@@ -27,10 +27,14 @@
 
   # Undefined Behaviour Sanitizer.
   is_ubsan = false
+
+  # # Compile for fuzzing with LLVM LibFuzzer.
+  use_libfuzzer = false
 }
 
 declare_args() {
-  using_sanitizer = is_asan || is_lsan || is_tsan || is_msan || is_ubsan
+  using_sanitizer =
+      is_asan || is_lsan || is_tsan || is_msan || is_ubsan || use_libfuzzer
 }
 
 assert(!using_sanitizer || is_clang, "is_*san requires is_clang=true'")
diff --git a/src/ipc/BUILD.gn b/src/ipc/BUILD.gn
index 878a039..8eda6b0 100644
--- a/src/ipc/BUILD.gn
+++ b/src/ipc/BUILD.gn
@@ -16,6 +16,13 @@
 import("../../gn/ipc_library.gni")
 import("../../gn/proto_library.gni")
 
+# For use_libfuzzer.
+if (!build_with_chromium) {
+  import("//gn/standalone/sanitizers/vars.gni")
+} else {
+  import("//build/config/sanitizers/sanitizers.gni")
+}
+
 source_set("ipc") {
   public_configs = [ "../../gn:default_config" ]
   public_deps = [
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 8870555..5672e5e 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -15,6 +15,13 @@
 import("../gn/perfetto.gni")
 import("//build_overrides/build.gni")
 
+# For use_libfuzzer.
+if (!build_with_chromium) {
+  import("//gn/standalone/sanitizers/vars.gni")
+} else {
+  import("//build/config/sanitizers/sanitizers.gni")
+}
+
 source_set("end_to_end_integrationtests") {
   testonly = true
   deps = [