diff --git a/xfa/fxfa/BUILD.gn b/xfa/fxfa/BUILD.gn
index 53a8dc0..d4d4d7b 100644
--- a/xfa/fxfa/BUILD.gn
+++ b/xfa/fxfa/BUILD.gn
@@ -71,8 +71,6 @@
     "cxfa_fwltheme.h",
     "cxfa_imagerenderer.cpp",
     "cxfa_imagerenderer.h",
-    "cxfa_loadercontext.cpp",
-    "cxfa_loadercontext.h",
     "cxfa_pieceline.cpp",
     "cxfa_pieceline.h",
     "cxfa_readynodeiterator.cpp",
diff --git a/xfa/fxfa/cxfa_loadercontext.cpp b/xfa/fxfa/cxfa_loadercontext.cpp
deleted file mode 100644
index 5f66050..0000000
--- a/xfa/fxfa/cxfa_loadercontext.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2017 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.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fxfa/cxfa_loadercontext.h"
-
-#include "core/fxcrt/css/cfx_csscomputedstyle.h"
-
-CXFA_LoaderContext::CXFA_LoaderContext() = default;
-
-CXFA_LoaderContext::~CXFA_LoaderContext() = default;
diff --git a/xfa/fxfa/cxfa_loadercontext.h b/xfa/fxfa/cxfa_loadercontext.h
deleted file mode 100644
index ddcb909..0000000
--- a/xfa/fxfa/cxfa_loadercontext.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2017 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.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FXFA_CXFA_LOADERCONTEXT_H_
-#define XFA_FXFA_CXFA_LOADERCONTEXT_H_
-
-#include <vector>
-
-#include "core/fxcrt/fx_system.h"
-#include "core/fxcrt/retain_ptr.h"
-#include "core/fxcrt/unowned_ptr.h"
-
-class CFX_CSSComputedStyle;
-class CFX_XMLNode;
-class CXFA_Node;
-
-struct CXFA_BlockHeight {
-  size_t szBlockIndex;
-  float fHeight;
-};
-
-struct CXFA_LoaderContext {
-  CXFA_LoaderContext();
-  ~CXFA_LoaderContext();
-
-  bool bSaveLineHeight = false;
-  bool bFilterSpace = false;
-  float fWidth = 0;
-  float fHeight = 0;
-  float fLastPos = 0;
-  float fStartLineOffset = 0;
-  int32_t iChar = 0;
-  // TODO(thestig): Make this size_t?
-  int32_t iTotalLines = -1;
-  UnownedPtr<const CFX_XMLNode> pXMLNode;
-  UnownedPtr<CXFA_Node> pNode;
-  RetainPtr<CFX_CSSComputedStyle> pParentStyle;
-  std::vector<float> lineHeights;
-  std::vector<CXFA_BlockHeight> blockHeights;
-};
-
-#endif  // XFA_FXFA_CXFA_LOADERCONTEXT_H_
diff --git a/xfa/fxfa/cxfa_textlayout.cpp b/xfa/fxfa/cxfa_textlayout.cpp
index 23b5083..95eddf7 100644
--- a/xfa/fxfa/cxfa_textlayout.cpp
+++ b/xfa/fxfa/cxfa_textlayout.cpp
@@ -27,7 +27,6 @@
 #include "xfa/fgas/layout/cfx_rtfbreak.h"
 #include "xfa/fgas/layout/cfx_textuserdata.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
-#include "xfa/fxfa/cxfa_loadercontext.h"
 #include "xfa/fxfa/cxfa_pieceline.h"
 #include "xfa/fxfa/cxfa_textparsecontext.h"
 #include "xfa/fxfa/cxfa_textpiece.h"
@@ -67,6 +66,14 @@
 
 }  // namespace
 
+CXFA_TextLayout::LoaderContext::LoaderContext() = default;
+
+CXFA_TextLayout::LoaderContext::~LoaderContext() = default;
+
+void CXFA_TextLayout::LoaderContext::Trace(cppgc::Visitor* visitor) const {
+  visitor->Trace(pNode);
+}
+
 CXFA_TextLayout::CXFA_TextLayout(CXFA_FFDoc* doc,
                                  CXFA_TextProvider* pTextProvider)
     : m_pDoc(doc), m_pTextProvider(pTextProvider) {
@@ -82,6 +89,8 @@
   visitor->Trace(m_pDoc);
   visitor->Trace(m_pTextProvider);
   visitor->Trace(m_pTextDataNode);
+  if (m_pLoader)
+    m_pLoader->Trace(visitor);
 }
 
 void CXFA_TextLayout::Unload() {
@@ -299,7 +308,7 @@
 
 float CXFA_TextLayout::StartLayout(float fWidth) {
   if (!m_pLoader)
-    m_pLoader = std::make_unique<CXFA_LoaderContext>();
+    m_pLoader = std::make_unique<LoaderContext>();
 
   if (fWidth < 0 ||
       (m_pLoader->fWidth > -1 && fabs(fWidth - m_pLoader->fWidth) > 0)) {
diff --git a/xfa/fxfa/cxfa_textlayout.h b/xfa/fxfa/cxfa_textlayout.h
index b8cdd78..cb285de 100644
--- a/xfa/fxfa/cxfa_textlayout.h
+++ b/xfa/fxfa/cxfa_textlayout.h
@@ -13,6 +13,8 @@
 #include "core/fxcrt/css/cfx_css.h"
 #include "core/fxcrt/fx_coordinates.h"
 #include "core/fxcrt/fx_string.h"
+#include "core/fxcrt/retain_ptr.h"
+#include "core/fxcrt/unowned_ptr.h"
 #include "fxjs/gc/heap.h"
 #include "v8/include/cppgc/garbage-collected.h"
 #include "v8/include/cppgc/member.h"
@@ -32,7 +34,6 @@
 class CXFA_TextProvider;
 class CXFA_TextTabstopsContext;
 class TextCharPos;
-struct CXFA_LoaderContext;
 struct FX_RTFTEXTOBJ;
 
 class CXFA_TextLayout final : public cppgc::GarbageCollected<CXFA_TextLayout> {
@@ -73,6 +74,33 @@
     size_t szLength;
   };
 
+  struct BlockHeight {
+    size_t szBlockIndex;
+    float fHeight;
+  };
+
+  struct LoaderContext {
+    LoaderContext();
+    ~LoaderContext();
+
+    void Trace(cppgc::Visitor* visitor) const;
+
+    bool bSaveLineHeight = false;
+    bool bFilterSpace = false;
+    float fWidth = 0;
+    float fHeight = 0;
+    float fLastPos = 0;
+    float fStartLineOffset = 0;
+    int32_t iChar = 0;
+    // TODO(thestig): Make this size_t?
+    int32_t iTotalLines = -1;
+    UnownedPtr<const CFX_XMLNode> pXMLNode;
+    RetainPtr<CFX_CSSComputedStyle> pParentStyle;
+    cppgc::Member<CXFA_Node> pNode;
+    std::vector<float> lineHeights;
+    std::vector<BlockHeight> blockHeights;
+  };
+
   CXFA_TextLayout(CXFA_FFDoc* doc, CXFA_TextProvider* pTextProvider);
 
   void GetTextDataNode();
@@ -136,7 +164,7 @@
   cppgc::Member<CXFA_TextProvider> const m_pTextProvider;
   cppgc::Member<CXFA_Node> m_pTextDataNode;
   std::unique_ptr<CFX_RTFBreak> m_pBreak;
-  std::unique_ptr<CXFA_LoaderContext> m_pLoader;
+  std::unique_ptr<LoaderContext> m_pLoader;
   CXFA_TextParser m_textParser;
   std::vector<std::unique_ptr<CXFA_PieceLine>> m_pieceLines;
   std::unique_ptr<CXFA_TextTabstopsContext> m_pTabstopContext;
