| # Copyright 2016 The PDFium Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | import("../../pdfium.gni") | 
 |  | 
 | config("fuzzer_config") { | 
 |   configs = [ | 
 |     "../..:pdfium_strict_config", | 
 |     "../..:pdfium_noshorten_config", | 
 |   ] | 
 |   defines = [ | 
 |     "PNG_PREFIX", | 
 |     "PNG_USE_READ_MACROS", | 
 |   ] | 
 |   include_dirs = [ "../.." ] | 
 | } | 
 |  | 
 | # All possible "pdfium_fuzzer"s. | 
 | fuzzer_list = [ | 
 |   "pdf_cmap_fuzzer", | 
 |   "pdf_codec_a85_fuzzer", | 
 |   "pdf_codec_fax_fuzzer", | 
 |   "pdf_codec_icc_fuzzer", | 
 |   "pdf_codec_jbig2_fuzzer", | 
 |   "pdf_codec_rle_fuzzer", | 
 |   "pdf_font_fuzzer", | 
 |   "pdf_hint_table_fuzzer", | 
 |   "pdf_jpx_fuzzer", | 
 |   "pdf_psengine_fuzzer", | 
 |   "pdf_scanlinecompositor_fuzzer", | 
 |   "pdf_streamparser_fuzzer", | 
 |   "pdf_xml_fuzzer", | 
 |   "pdfium_fuzzer", | 
 | ] | 
 | if (pdf_enable_v8) { | 
 |   fuzzer_list += [ | 
 |     "pdf_cjs_util_fuzzer", | 
 |     "pdf_fx_date_helpers_fuzzer", | 
 |   ] | 
 |   if (pdf_enable_xfa) { | 
 |     fuzzer_list += [ | 
 |       "pdf_bidi_fuzzer", | 
 |       "pdf_cfgas_stringformatter_fuzzer", | 
 |       "pdf_cfx_barcode_fuzzer", | 
 |       "pdf_codec_jpeg_fuzzer", | 
 |       "pdf_css_fuzzer", | 
 |       "pdf_formcalc_context_fuzzer", | 
 |       "pdf_formcalc_fuzzer", | 
 |       "pdf_formcalc_translate_fuzzer", | 
 |       "pdfium_xfa_fuzzer", | 
 |       "pdfium_xfa_lpm_fuzzer", | 
 |     ] | 
 |     if (pdf_enable_xfa_bmp) { | 
 |       fuzzer_list += [ "pdf_codec_bmp_fuzzer" ] | 
 |     } | 
 |     if (pdf_enable_xfa_gif) { | 
 |       fuzzer_list += [ | 
 |         "pdf_codec_gif_fuzzer", | 
 |         "pdf_lzw_fuzzer", | 
 |       ] | 
 |     } | 
 |     if (pdf_enable_xfa_png) { | 
 |       fuzzer_list += [ "pdf_codec_png_fuzzer" ] | 
 |     } | 
 |     if (pdf_enable_xfa_tiff) { | 
 |       fuzzer_list += [ "pdf_codec_tiff_fuzzer" ] | 
 |     } | 
 |   } | 
 | } | 
 | if (is_clang) { | 
 |   # Fuzzers that use FuzzedDataProvider can only be built with Clang. | 
 |   fuzzer_list += [ | 
 |     "pdf_cpdf_tounicodemap_fuzzer", | 
 |     "pdf_nametree_fuzzer", | 
 |   ] | 
 |   if (pdf_enable_xfa) { | 
 |     fuzzer_list += [ | 
 |       "pdf_xfa_fdp_fuzzer", | 
 |       "pdf_xfa_raw_fuzzer", | 
 |       "pdf_xfa_xdp_fdp_fuzzer", | 
 |     ] | 
 |   } | 
 | } | 
 |  | 
 | # Note that this only compiles all the fuzzers, to prevent compile breakages. | 
 | # It does not link and create fuzzer executables. That is done in Chromium. | 
 | group("fuzzers") { | 
 |   testonly = true | 
 |   deps = [] | 
 |   foreach(fuzzer, fuzzer_list) { | 
 |     deps += [ ":${fuzzer}_src" ] | 
 |   } | 
 |  | 
 |   if (is_component_build) { | 
 |     deps += [ ":fuzzer_impls" ] | 
 |   } | 
 | } | 
 |  | 
 | source_set("fuzzer_pdf_templates") { | 
 |   sources = [ "pdf_fuzzer_templates.h" ] | 
 | } | 
 |  | 
 | source_set("fuzzer_init") { | 
 |   testonly = true | 
 |   sources = [ "pdf_fuzzer_init.cc" ] | 
 |   include_dirs = [ "../.." ] | 
 |   deps = [ | 
 |     "../../:pdfium_public_headers", | 
 |     "../../fpdfsdk", | 
 |   ] | 
 | } | 
 |  | 
 | if (pdf_enable_xfa) { | 
 |   assert(pdf_enable_v8) | 
 |   source_set("fuzzer_xfa_process_state") { | 
 |     testonly = !is_component_build | 
 |     sources = [ | 
 |       "xfa_process_state.cc", | 
 |       "xfa_process_state.h", | 
 |     ] | 
 |     configs += [ ":fuzzer_config" ] | 
 |     deps = [ | 
 |       "../../fxjs:gc", | 
 |       "//v8", | 
 |     ] | 
 |   } | 
 | } | 
 |  | 
 | source_set("fuzzer_init_public") { | 
 |   testonly = true | 
 |   sources = [ "pdf_fuzzer_init_public.cc" ] | 
 |   include_dirs = [ "../.." ] | 
 |   deps = [ | 
 |     ":fuzzer_utils", | 
 |     "../../:pdfium_public_headers", | 
 |     "../../fpdfsdk", | 
 |   ] | 
 |   if (pdf_enable_v8) { | 
 |     configs += [ "//v8:external_startup_data" ] | 
 |     deps += [ | 
 |       "../:test_support", | 
 |       "../../fxjs", | 
 |       "//v8", | 
 |       "//v8:v8_libplatform", | 
 |     ] | 
 |     if (pdf_enable_xfa) { | 
 |       deps += [ ":fuzzer_xfa_process_state" ] | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | if (is_component_build) { | 
 |   group("fuzzer_impls") { | 
 |     deps = [] | 
 |     foreach(fuzzer, fuzzer_list) { | 
 |       deps += [ ":${fuzzer}_impl" ] | 
 |     } | 
 |     if (pdf_enable_xfa) { | 
 |       deps += [ ":fuzzer_xfa_process_state" ] | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | source_set("fuzzer_helper") { | 
 |   testonly = !is_component_build | 
 |   sources = [ | 
 |     "pdfium_fuzzer_helper.cc", | 
 |     "pdfium_fuzzer_helper.h", | 
 |   ] | 
 |   configs += [ ":fuzzer_config" ] | 
 |   deps = [ | 
 |     "../../:pdfium_public_headers", | 
 |     "../../fpdfsdk", | 
 |     "../../third_party:pdfium_base", | 
 |   ] | 
 | } | 
 |  | 
 | source_set("fuzzer_utils") { | 
 |   # In component builds, the pdfium target (which is not testonly) depends on | 
 |   # the fuzzer sources, which may depend on this target, so add testonly only in | 
 |   # non-component builds. | 
 |   testonly = !is_component_build | 
 |   sources = [ | 
 |     "pdfium_fuzzer_util.cc", | 
 |     "pdfium_fuzzer_util.h", | 
 |   ] | 
 |   deps = [ "../../:pdfium_public_headers" ] | 
 |   include_dirs = [ "../.." ] | 
 | } | 
 |  | 
 | template("pdfium_fuzzer") { | 
 |   is_public = defined(invoker.public_fuzzer) && invoker.public_fuzzer | 
 |   if (is_public) { | 
 |     init_dep = ":fuzzer_init_public" | 
 |   } else { | 
 |     init_dep = ":fuzzer_init" | 
 |   } | 
 |   if (is_component_build) { | 
 |     # In component builds, fuzzers are split into "_impl" and "_src" targets. | 
 |     # The "_impl" target exports the fuzzer implementation. The "_src" target | 
 |     # is a thin wrapper that imports the fuzzer from PDFium; this gets linked | 
 |     # into the real fuzzer executable. The real fuzzer target has to depend on | 
 |     # both the "_impl" and "_src" targets. | 
 |     # In static builds, there's only a single "_src" target that contains the | 
 |     # implementation and statically links in PDFium. | 
 |  | 
 |     impl_name = target_name + "_impl" | 
 |     template_target_name = target_name | 
 |     source_set("${target_name}_src") { | 
 |       testonly = true | 
 |       sources = [ "component_fuzzer_template.cc" ] | 
 |       deps = [ | 
 |         "../../:pdfium_public_headers", | 
 |         init_dep, | 
 |       ] | 
 |       configs += [ ":fuzzer_config" ] | 
 |       defines = [ "FUZZER_IMPL=${template_target_name}" ] | 
 |     } | 
 |   } else { | 
 |     impl_name = target_name + "_src" | 
 |   } | 
 |   source_set(impl_name) { | 
 |     sources = invoker.sources | 
 |     deps = [] | 
 |     if (defined(invoker.deps)) { | 
 |       deps += invoker.deps | 
 |     } | 
 |     configs += [ ":fuzzer_config" ] | 
 |     if (is_component_build) { | 
 |       # |export| should be consistent with FPDF_EXPORT In public/fpdfview.h. | 
 |       if (is_win) { | 
 |         export = "__declspec(dllexport)" | 
 |       } else { | 
 |         export = "__attribute__((visibility(\"default\")))" | 
 |       } | 
 |       defines = [ "LLVMFuzzerTestOneInput=${export} ${template_target_name}" ] | 
 |       deps += [ "../../:pdfium_public_headers" ] | 
 |     } else { | 
 |       testonly = true | 
 |       deps += [ | 
 |         "../../:pdfium", | 
 |         init_dep, | 
 |       ] | 
 |     } | 
 |     if (is_public && pdf_enable_xfa) { | 
 |       deps += [ ":fuzzer_xfa_process_state" ] | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | if (pdf_enable_v8) { | 
 |   pdfium_fuzzer("pdf_cjs_util_fuzzer") { | 
 |     sources = [ "pdf_cjs_util_fuzzer.cc" ] | 
 |     deps = [ | 
 |       "../../core/fxcrt", | 
 |       "../../fpdfsdk", | 
 |       "../../fxjs", | 
 |     ] | 
 |   } | 
 |   pdfium_fuzzer("pdf_fx_date_helpers_fuzzer") { | 
 |     sources = [ "pdf_fx_date_helpers_fuzzer.cc" ] | 
 |     deps = [ | 
 |       "../../core/fxcrt", | 
 |       "../../fpdfsdk", | 
 |       "../../fxjs", | 
 |     ] | 
 |   } | 
 |  | 
 |   if (pdf_enable_xfa) { | 
 |     pdfium_fuzzer("pdf_bidi_fuzzer") { | 
 |       sources = [ "pdf_bidi_fuzzer.cc" ] | 
 |       deps = [ | 
 |         "../../:freetype_common", | 
 |         "../../core/fxcrt", | 
 |         "../../core/fxge", | 
 |         "../../xfa/fgas/font", | 
 |         "../../xfa/fgas/layout", | 
 |         "//third_party/icu:icuuc", | 
 |       ] | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdf_cfgas_stringformatter_fuzzer") { | 
 |       sources = [ "pdf_cfgas_stringformatter_fuzzer.cc" ] | 
 |       deps = [ | 
 |         ":fuzzer_utils", | 
 |         "../../core/fxcrt", | 
 |         "../../fpdfsdk", | 
 |         "../../fxjs:gc", | 
 |         "../../xfa/fgas/crt", | 
 |         "../../xfa/fxfa", | 
 |         "../../xfa/fxfa/parser", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdf_cfx_barcode_fuzzer") { | 
 |       sources = [ "pdf_cfx_barcode_fuzzer.cc" ] | 
 |       deps = [ | 
 |         "../../core/fxcrt", | 
 |         "../../fxbarcode", | 
 |         "//third_party/icu:icuuc", | 
 |       ] | 
 |     } | 
 |  | 
 |     if (pdf_enable_xfa_bmp) { | 
 |       pdfium_fuzzer("pdf_codec_bmp_fuzzer") { | 
 |         sources = [ | 
 |           "pdf_codec_bmp_fuzzer.cc", | 
 |           "xfa_codec_fuzzer.h", | 
 |         ] | 
 |         deps = [ | 
 |           "../../core/fxcodec", | 
 |           "../../core/fxcrt", | 
 |           "../../core/fxge", | 
 |           "../../third_party:pdfium_base", | 
 |         ] | 
 |       } | 
 |     } | 
 |  | 
 |     if (pdf_enable_xfa_gif) { | 
 |       pdfium_fuzzer("pdf_codec_gif_fuzzer") { | 
 |         sources = [ | 
 |           "pdf_codec_gif_fuzzer.cc", | 
 |           "xfa_codec_fuzzer.h", | 
 |         ] | 
 |         deps = [ | 
 |           "../../core/fxcodec", | 
 |           "../../core/fxcrt", | 
 |           "../../core/fxge", | 
 |           "../../third_party:pdfium_base", | 
 |         ] | 
 |       } | 
 |  | 
 |       pdfium_fuzzer("pdf_lzw_fuzzer") { | 
 |         sources = [ "pdf_lzw_fuzzer.cc" ] | 
 |         deps = [ | 
 |           "../../core/fxcodec", | 
 |           "../../third_party:pdfium_base", | 
 |         ] | 
 |       } | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdf_codec_jpeg_fuzzer") { | 
 |       sources = [ | 
 |         "pdf_codec_jpeg_fuzzer.cc", | 
 |         "xfa_codec_fuzzer.h", | 
 |       ] | 
 |       deps = [ | 
 |         "../../core/fxcodec", | 
 |         "../../core/fxcrt", | 
 |         "../../core/fxge", | 
 |         "../../third_party:pdfium_base", | 
 |       ] | 
 |     } | 
 |  | 
 |     if (pdf_enable_xfa_png) { | 
 |       pdfium_fuzzer("pdf_codec_png_fuzzer") { | 
 |         sources = [ | 
 |           "pdf_codec_png_fuzzer.cc", | 
 |           "xfa_codec_fuzzer.h", | 
 |         ] | 
 |         deps = [ | 
 |           "../../core/fxcodec", | 
 |           "../../core/fxcrt", | 
 |           "../../core/fxge", | 
 |           "../../third_party:pdfium_base", | 
 |         ] | 
 |       } | 
 |     } | 
 |  | 
 |     if (pdf_enable_xfa_tiff) { | 
 |       pdfium_fuzzer("pdf_codec_tiff_fuzzer") { | 
 |         sources = [ | 
 |           "pdf_codec_tiff_fuzzer.cc", | 
 |           "xfa_codec_fuzzer.h", | 
 |         ] | 
 |         deps = [ | 
 |           "../../core/fxcodec", | 
 |           "../../core/fxcrt", | 
 |           "../../core/fxge", | 
 |           "../../third_party:pdfium_base", | 
 |         ] | 
 |       } | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdf_css_fuzzer") { | 
 |       sources = [ "pdf_css_fuzzer.cc" ] | 
 |       deps = [ | 
 |         "../../core/fxcrt", | 
 |         "../../core/fxcrt/css", | 
 |       ] | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdf_formcalc_translate_fuzzer") { | 
 |       sources = [ "pdf_formcalc_translate_fuzzer.cc" ] | 
 |       deps = [ | 
 |         ":fuzzer_utils", | 
 |         "../../core/fxcrt", | 
 |         "../../fpdfsdk", | 
 |         "../../fxjs", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdf_formcalc_context_fuzzer") { | 
 |       sources = [ "pdf_formcalc_context_fuzzer.cc" ] | 
 |       deps = [ | 
 |         ":fuzzer_helper", | 
 |         "../../:pdfium_public_headers", | 
 |         "../../core/fxcrt", | 
 |         "../../fpdfsdk", | 
 |         "../../fpdfsdk/fpdfxfa", | 
 |         "../../fxjs", | 
 |         "../../xfa/fxfa", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdf_formcalc_fuzzer") { | 
 |       sources = [ "pdf_formcalc_fuzzer.cc" ] | 
 |       deps = [ | 
 |         ":fuzzer_utils", | 
 |         "../../core/fxcrt", | 
 |         "../../fxjs:gc", | 
 |         "../../xfa/fxfa/formcalc", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdfium_xfa_fuzzer") { | 
 |       sources = [ "pdfium_xfa_fuzzer.cc" ] | 
 |       deps = [ | 
 |         ":fuzzer_helper", | 
 |         "../../:pdfium_public_headers", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |  | 
 |     pdfium_fuzzer("pdfium_xfa_lpm_fuzzer") { | 
 |       sources = [ | 
 |         "pdfium_xfa_lpm_fuzz_stub.cc", | 
 |         "pdfium_xfa_lpm_fuzz_stub.h", | 
 |       ] | 
 |       deps = [ | 
 |         ":fuzzer_helper", | 
 |         "../../:pdfium_public_headers", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | if (is_clang) { | 
 |   pdfium_fuzzer("pdf_cpdf_tounicodemap_fuzzer") { | 
 |     sources = [ "pdf_cpdf_tounicodemap_fuzzer.cc" ] | 
 |     deps = [ | 
 |       "../../core/fpdfapi/font", | 
 |       "../../core/fpdfapi/parser", | 
 |       "../../core/fxcrt", | 
 |     ] | 
 |   } | 
 |  | 
 |   pdfium_fuzzer("pdf_nametree_fuzzer") { | 
 |     sources = [ "pdf_nametree_fuzzer.cc" ] | 
 |     deps = [ | 
 |       "../../core/fpdfapi/page", | 
 |       "../../core/fpdfapi/parser", | 
 |       "../../core/fpdfdoc", | 
 |       "../../third_party:pdfium_base", | 
 |     ] | 
 |   } | 
 |   if (pdf_enable_xfa) { | 
 |     pdfium_fuzzer("pdf_xfa_fdp_fuzzer") { | 
 |       sources = [ "pdf_xfa_fdp_fuzzer.cc" ] | 
 |       deps = [ | 
 |         ":fuzzer_helper", | 
 |         ":fuzzer_pdf_templates", | 
 |         "../../third_party:pdfium_base", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |     pdfium_fuzzer("pdf_xfa_raw_fuzzer") { | 
 |       sources = [ "pdf_xfa_raw_fuzzer.cc" ] | 
 |       deps = [ | 
 |         ":fuzzer_helper", | 
 |         ":fuzzer_pdf_templates", | 
 |         "../../third_party:pdfium_base", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |     pdfium_fuzzer("pdf_xfa_xdp_fdp_fuzzer") { | 
 |       sources = [ "pdf_xfa_xdp_fdp_fuzzer.cc" ] | 
 |       deps = [ | 
 |         ":fuzzer_helper", | 
 |         ":fuzzer_pdf_templates", | 
 |       ] | 
 |       public_fuzzer = true | 
 |     } | 
 |   } | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_cmap_fuzzer") { | 
 |   sources = [ "pdf_cmap_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../:freetype_common", | 
 |     "../../core/fpdfapi/font", | 
 |     "../../core/fxcrt", | 
 |     "../../third_party:pdfium_base", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_codec_a85_fuzzer") { | 
 |   sources = [ "pdf_codec_a85_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../core/fxcodec", | 
 |     "../../core/fxcrt", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_codec_fax_fuzzer") { | 
 |   sources = [ "pdf_codec_fax_fuzzer.cc" ] | 
 |   deps = [ | 
 |     ":fuzzer_utils", | 
 |     "../../core/fxcodec", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_codec_icc_fuzzer") { | 
 |   sources = [ "pdf_codec_icc_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../core/fxcodec", | 
 |     "../../third_party:pdfium_base", | 
 |     "../../third_party/:lcms2", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_codec_jbig2_fuzzer") { | 
 |   sources = [ "pdf_codec_jbig2_fuzzer.cc" ] | 
 |   deps = [ | 
 |     ":fuzzer_utils", | 
 |     "../../core/fpdfapi/parser", | 
 |     "../../core/fxcodec", | 
 |     "../../core/fxcrt", | 
 |     "../../core/fxge", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_codec_rle_fuzzer") { | 
 |   sources = [ "pdf_codec_rle_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../core/fxcodec", | 
 |     "../../core/fxcrt", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_font_fuzzer") { | 
 |   sources = [ "pdf_font_fuzzer.cc" ] | 
 |   deps = [ "../../:pdfium_public_headers" ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_hint_table_fuzzer") { | 
 |   sources = [ "pdf_hint_table_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../core/fpdfapi/parser", | 
 |     "../../core/fxcrt", | 
 |     "../../third_party:pdfium_base", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_jpx_fuzzer") { | 
 |   sources = [ "pdf_jpx_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../core/fpdfapi/page", | 
 |     "../../core/fxcodec", | 
 |     "../../core/fxcrt", | 
 |     "../../core/fxge", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_psengine_fuzzer") { | 
 |   sources = [ "pdf_psengine_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../core/fpdfapi/page", | 
 |     "../../third_party:pdfium_base", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_scanlinecompositor_fuzzer") { | 
 |   sources = [ "pdf_scanlinecompositor_fuzzer.cc" ] | 
 |   deps = [ | 
 |     ":fuzzer_utils", | 
 |     "../../core/fxcrt", | 
 |     "../../core/fxge", | 
 |     "../../third_party:pdfium_base", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_streamparser_fuzzer") { | 
 |   sources = [ "pdf_streamparser_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../core/fpdfapi/page", | 
 |     "../../core/fpdfapi/parser", | 
 |     "../../third_party:pdfium_base", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdf_xml_fuzzer") { | 
 |   sources = [ "pdf_xml_fuzzer.cc" ] | 
 |   deps = [ | 
 |     "../../core/fxcrt", | 
 |     "../../third_party:pdfium_base", | 
 |   ] | 
 | } | 
 |  | 
 | pdfium_fuzzer("pdfium_fuzzer") { | 
 |   sources = [ "pdfium_fuzzer.cc" ] | 
 |   deps = [ ":fuzzer_helper" ] | 
 |   public_fuzzer = true | 
 | } |