diff --git a/testing/fuzzers/BUILD.gn b/testing/fuzzers/BUILD.gn
index 854b51d..81f5100 100644
--- a/testing/fuzzers/BUILD.gn
+++ b/testing/fuzzers/BUILD.gn
@@ -86,6 +86,22 @@
   deps = [ "../../:pdfium_public_headers" ]
 }
 
+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" ]
@@ -102,7 +118,7 @@
       "//v8:v8_libplatform",
     ]
     if (pdf_enable_xfa) {
-      deps += [ "../../fxjs:gc" ]
+      deps += [ ":fuzzer_xfa_process_state" ]
     }
   }
 }
@@ -113,6 +129,9 @@
     foreach(fuzzer, fuzzer_list) {
       deps += [ ":${fuzzer}_impl" ]
     }
+    if (pdf_enable_xfa) {
+      deps += [ ":fuzzer_xfa_process_state" ]
+    }
   }
 }
 
@@ -143,7 +162,8 @@
 }
 
 template("pdfium_fuzzer") {
-  if (defined(invoker.public_fuzzer) && invoker.public_fuzzer) {
+  is_public = defined(invoker.public_fuzzer) && invoker.public_fuzzer
+  if (is_public) {
     init_dep = ":fuzzer_init_public"
   } else {
     init_dep = ":fuzzer_init"
@@ -198,6 +218,9 @@
         init_dep,
       ]
     }
+    if (is_public && pdf_enable_xfa) {
+      deps += [ ":fuzzer_xfa_process_state" ]
+    }
   }
 }
 
diff --git a/testing/fuzzers/pdf_fm2js_fuzzer.cc b/testing/fuzzers/pdf_fm2js_fuzzer.cc
index fcb2071..26fdfd3 100644
--- a/testing/fuzzers/pdf_fm2js_fuzzer.cc
+++ b/testing/fuzzers/pdf_fm2js_fuzzer.cc
@@ -9,11 +9,11 @@
 #include "core/fxcrt/fx_safe_types.h"
 #include "core/fxcrt/fx_string.h"
 #include "fxjs/xfa/cfxjse_formcalc_context.h"
-#include "testing/fuzzers/pdf_fuzzer_init_public.h"
 #include "testing/fuzzers/pdfium_fuzzer_util.h"
+#include "testing/fuzzers/xfa_process_state.h"
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  auto* state = static_cast<PDFFuzzerPublic*>(FPDF_GetFuzzerPerProcessState());
+  auto* state = static_cast<XFAProcessState*>(FPDF_GetFuzzerPerProcessState());
   WideString input = WideString::FromUTF8(ByteStringView(data, size));
   CFXJSE_FormCalcContext::Translate(state->GetHeap(), input.AsStringView());
   state->MaybeForceGCAndPump();
diff --git a/testing/fuzzers/pdf_formcalc_fuzzer.cc b/testing/fuzzers/pdf_formcalc_fuzzer.cc
index 8e73d13..d116648 100644
--- a/testing/fuzzers/pdf_formcalc_fuzzer.cc
+++ b/testing/fuzzers/pdf_formcalc_fuzzer.cc
@@ -4,13 +4,13 @@
 
 #include "core/fxcrt/cfx_widetextbuf.h"
 #include "core/fxcrt/fx_string.h"
-#include "testing/fuzzers/pdf_fuzzer_init_public.h"
 #include "testing/fuzzers/pdfium_fuzzer_util.h"
+#include "testing/fuzzers/xfa_process_state.h"
 #include "third_party/base/logging.h"
 #include "xfa/fxfa/fm2js/cxfa_fmparser.h"
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
-  auto* state = static_cast<PDFFuzzerPublic*>(FPDF_GetFuzzerPerProcessState());
+  auto* state = static_cast<XFAProcessState*>(FPDF_GetFuzzerPerProcessState());
   WideString input = WideString::FromUTF8(ByteStringView(data, size));
   CXFA_FMParser parser(state->GetHeap(), input.AsStringView());
   parser.Parse();
diff --git a/testing/fuzzers/pdf_fuzzer_init_public.cc b/testing/fuzzers/pdf_fuzzer_init_public.cc
index 002ffa0..eabd2d3 100644
--- a/testing/fuzzers/pdf_fuzzer_init_public.cc
+++ b/testing/fuzzers/pdf_fuzzer_init_public.cc
@@ -11,6 +11,9 @@
 #ifdef PDF_ENABLE_V8
 #include "testing/free_deleter.h"
 #include "testing/v8_initializer.h"
+#ifdef PDF_ENABLE_XFA
+#include "testing/fuzzers/xfa_process_state.h"
+#endif  // PDF_ENABLE_XFA
 #endif  // PDF_ENABLE_V8
 
 #ifdef _WIN32
@@ -57,7 +60,7 @@
 
 }  // namespace
 
-PDFFuzzerPublic::PDFFuzzerPublic() {
+PDFFuzzerInitPublic::PDFFuzzerInitPublic() {
 #ifdef PDF_ENABLE_V8
 #ifdef V8_USE_EXTERNAL_STARTUP_DATA
   platform_ = InitializeV8ForPDFiumWithStartupData(
@@ -71,7 +74,6 @@
   create_params.array_buffer_allocator = allocator_.get();
   isolate_.reset(v8::Isolate::New(create_params));
   FXGC_Initialize(platform_.get(), isolate_.get());
-  heap_ = FXGC_CreateHeap();
 #endif  // PDF_ENABLE_XFA
 #endif  // PDF_ENABLE_V8
 
@@ -91,30 +93,12 @@
   unsupport_info_.version = 1;
   unsupport_info_.FSDK_UnSupport_Handler = [](UNSUPPORT_INFO*, int) {};
   FSDK_SetUnSpObjProcessHandler(&unsupport_info_);
-}
 
-#ifdef PDF_ENABLE_V8
 #ifdef PDF_ENABLE_XFA
-cppgc::Heap* PDFFuzzerPublic::GetHeap() const {
-  return heap_.get();
-}
-
-void PDFFuzzerPublic::MaybeForceGCAndPump() {
-  if (++iterations_ > 1000) {
-    FXGC_ForceGarbageCollection(heap_.get());
-    iterations_ = 0;
-  }
-  while (v8::platform::PumpMessageLoop(platform_.get(), isolate_.get()))
-    continue;
-}
-#endif  // PDF_ENABLE_XFA
-#endif  // PDF_ENABLE_V8
-
-PDFFuzzerPublic::~PDFFuzzerPublic() = default;
-
-PDFFuzzerInitPublic::PDFFuzzerInitPublic()
-    : context_(std::make_unique<PDFFuzzerPublic>()) {
-  FPDF_SetFuzzerPerProcessState(context_.get());
+  xfa_process_state_ =
+      std::make_unique<XFAProcessState>(platform_.get(), isolate_.get());
+  FPDF_SetFuzzerPerProcessState(xfa_process_state_.get());
+#endif
 }
 
 PDFFuzzerInitPublic::~PDFFuzzerInitPublic() {
diff --git a/testing/fuzzers/pdf_fuzzer_init_public.h b/testing/fuzzers/pdf_fuzzer_init_public.h
index 7711548..93690bb 100644
--- a/testing/fuzzers/pdf_fuzzer_init_public.h
+++ b/testing/fuzzers/pdf_fuzzer_init_public.h
@@ -14,25 +14,15 @@
 #include "fxjs/cfx_v8.h"
 #include "v8/include/v8-platform.h"
 #include "v8/include/v8.h"
-#ifdef PDF_ENABLE_XFA
-#include "fxjs/gc/heap.h"
-#endif  // PDF_ENABLE_XFA
 #endif  // PDF_ENABLE_V8
 
-// Context for all runs of the fuzzer.
-class PDFFuzzerPublic {
+class XFAProcessState;
+
+// Initializes the library once for all runs of the fuzzer.
+class PDFFuzzerInitPublic {
  public:
-  PDFFuzzerPublic();
-  virtual ~PDFFuzzerPublic();
-
-#ifdef PDF_ENABLE_V8
-#ifdef PDF_ENABLE_XFA
-  // Virtualize to avoid linker issues in component builds. This results
-  // in an indirect function callback to code in a higher layer.
-  virtual cppgc::Heap* GetHeap() const;
-  virtual void MaybeForceGCAndPump();
-#endif  // PDF_ENABLE_XFA
-#endif  // PDF_ENABLE_V8
+  PDFFuzzerInitPublic();
+  ~PDFFuzzerInitPublic();
 
  private:
   FPDF_LIBRARY_CONFIG config_;
@@ -43,20 +33,9 @@
   std::unique_ptr<v8::ArrayBuffer::Allocator> allocator_;
   std::unique_ptr<v8::Isolate, CFX_V8IsolateDeleter> isolate_;
 #ifdef PDF_ENABLE_XFA
-  uint32_t iterations_ = 0;
-  FXGCScopedHeap heap_;
+  std::unique_ptr<XFAProcessState> xfa_process_state_;
 #endif  // PDF_ENABLE_XFA
 #endif  // PDF_ENABLE_V8
 };
 
-// Initializes the library once for all runs of the fuzzer.
-class PDFFuzzerInitPublic {
- public:
-  PDFFuzzerInitPublic();
-  ~PDFFuzzerInitPublic();
-
- private:
-  std::unique_ptr<PDFFuzzerPublic> context_;
-};
-
 #endif  // TESTING_FUZZERS_PDF_FUZZER_INIT_PUBLIC_H_
diff --git a/testing/fuzzers/xfa_process_state.cc b/testing/fuzzers/xfa_process_state.cc
new file mode 100644
index 0000000..0a8cf52
--- /dev/null
+++ b/testing/fuzzers/xfa_process_state.cc
@@ -0,0 +1,23 @@
+// Copyright 2020 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.
+
+#include "testing/fuzzers/xfa_process_state.h"
+
+XFAProcessState::XFAProcessState(v8::Platform* platform, v8::Isolate* isolate)
+    : platform_(platform), isolate_(isolate) {}
+
+XFAProcessState::~XFAProcessState() = default;
+
+cppgc::Heap* XFAProcessState::GetHeap() const {
+  return heap_.get();
+}
+
+void XFAProcessState::MaybeForceGCAndPump() {
+  if (++iterations_ > 1000) {
+    FXGC_ForceGarbageCollection(heap_.get());
+    iterations_ = 0;
+  }
+  while (v8::platform::PumpMessageLoop(platform_, isolate_))
+    continue;
+}
diff --git a/testing/fuzzers/xfa_process_state.h b/testing/fuzzers/xfa_process_state.h
new file mode 100644
index 0000000..2636511
--- /dev/null
+++ b/testing/fuzzers/xfa_process_state.h
@@ -0,0 +1,34 @@
+// Copyright 2020 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.
+
+#ifndef TESTING_FUZZERS_XFA_PROCESS_STATE_H_
+#define TESTING_FUZZERS_XFA_PROCESS_STATE_H_
+
+#if !defined(PDF_ENABLE_XFA)
+#error "XFA only"
+#endif
+
+#include "fxjs/gc/heap.h"
+
+namespace v8 {
+class Isolate;
+class Platform;
+}  // namespace v8
+
+class XFAProcessState {
+ public:
+  XFAProcessState(v8::Platform* platform, v8::Isolate* isolate);
+  ~XFAProcessState();
+
+  cppgc::Heap* GetHeap() const;
+  void MaybeForceGCAndPump();
+
+ private:
+  v8::Platform* const platform_;
+  v8::Isolate* const isolate_;
+  int iterations_ = 0;
+  FXGCScopedHeap heap_;
+};
+
+#endif  // TESTING_FUZZERS_XFA_PROCESS_STATE_H_
