diff --git a/core/fpdfapi/page/BUILD.gn b/core/fpdfapi/page/BUILD.gn
index 5478f83..10384d7 100644
--- a/core/fpdfapi/page/BUILD.gn
+++ b/core/fpdfapi/page/BUILD.gn
@@ -102,10 +102,7 @@
     "../font",
     "../parser",
   ]
-  allow_circular_includes_from = [
-    "../font",
-    "../parser",
-  ]
+  allow_circular_includes_from = [ "../font" ]
   if (pdf_use_skia || pdf_use_skia_paths) {
     allow_circular_includes_from += [ "../../fxge" ]
   }
diff --git a/core/fpdfapi/page/cpdf_docpagedata.cpp b/core/fpdfapi/page/cpdf_docpagedata.cpp
index 8fe9250..9ad7df8 100644
--- a/core/fpdfapi/page/cpdf_docpagedata.cpp
+++ b/core/fpdfapi/page/cpdf_docpagedata.cpp
@@ -176,6 +176,10 @@
   m_FontMap.clear();
 }
 
+void CPDF_DocPageData::ClearStockFont() {
+  CPDF_PageModule::GetInstance()->ClearStockFont(GetDocument());
+}
+
 void CPDF_DocPageData::Clear(bool bForceRelease) {
   m_bForceClear = bForceRelease;
 
diff --git a/core/fpdfapi/page/cpdf_docpagedata.h b/core/fpdfapi/page/cpdf_docpagedata.h
index 674aa1f..5b73f3f 100644
--- a/core/fpdfapi/page/cpdf_docpagedata.h
+++ b/core/fpdfapi/page/cpdf_docpagedata.h
@@ -35,6 +35,9 @@
   CPDF_DocPageData();
   ~CPDF_DocPageData() override;
 
+  // CPDF_Document::PageDataIface:
+  void ClearStockFont() override;
+
   void Clear(bool bRelease);
   bool IsForceClear() const { return m_bForceClear; }
 
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp
index 8447a41..67e2058 100644
--- a/core/fpdfapi/parser/cpdf_document.cpp
+++ b/core/fpdfapi/parser/cpdf_document.cpp
@@ -11,7 +11,6 @@
 #include <vector>
 
 #include "build/build_config.h"
-#include "core/fpdfapi/page/cpdf_pagemodule.h"
 #include "core/fpdfapi/parser/cpdf_array.h"
 #include "core/fpdfapi/parser/cpdf_dictionary.h"
 #include "core/fpdfapi/parser/cpdf_linearized_header.h"
@@ -66,7 +65,7 @@
                              std::unique_ptr<PageDataIface> pPageData)
     : m_pDocRender(std::move(pRenderData)),
       m_pDocPage(std::move(pPageData)),
-      m_StockFontClearer(this) {
+      m_StockFontClearer(m_pDocPage.get()) {
   m_pDocRender->SetDocument(this);
   m_pDocPage->SetDocument(this);
 }
@@ -475,11 +474,12 @@
   m_PageList.erase(m_PageList.begin() + iPage);
 }
 
-CPDF_Document::StockFontClearer::StockFontClearer(CPDF_Document* pDoc)
-    : m_pDoc(pDoc) {}
+CPDF_Document::StockFontClearer::StockFontClearer(
+    CPDF_Document::PageDataIface* pPageData)
+    : m_pPageData(pPageData) {}
 
 CPDF_Document::StockFontClearer::~StockFontClearer() {
-  CPDF_PageModule::GetInstance()->ClearStockFont(m_pDoc.Get());
+  m_pPageData->ClearStockFont();
 }
 
 CPDF_Document::PageDataIface::PageDataIface() = default;
diff --git a/core/fpdfapi/parser/cpdf_document.h b/core/fpdfapi/parser/cpdf_document.h
index 4fadc4f..b5b355f 100644
--- a/core/fpdfapi/parser/cpdf_document.h
+++ b/core/fpdfapi/parser/cpdf_document.h
@@ -58,6 +58,8 @@
     PageDataIface();
     virtual ~PageDataIface();
 
+    virtual void ClearStockFont() = 0;
+
     void SetDocument(CPDF_Document* pDoc) { m_pDoc = pDoc; }
     CPDF_Document* GetDocument() const { return m_pDoc.Get(); }
 
@@ -136,11 +138,11 @@
  protected:
   class StockFontClearer {
    public:
-    explicit StockFontClearer(CPDF_Document* pDoc);
+    explicit StockFontClearer(CPDF_Document::PageDataIface* pPageData);
     ~StockFontClearer();
 
    private:
-    UnownedPtr<CPDF_Document> const m_pDoc;
+    UnownedPtr<CPDF_Document::PageDataIface> const m_pPageData;
   };
 
   // Retrieve page count information by getting count value from the tree nodes
