Rename CFXA_DocumentParser to CXFA_DocumentBuilder.

Now that this object no longer deals with streams or strings, the
term "parse" is a little misleading. Instead, it builds a CXFA_Document
from an XML-tree provided as input.

Straight rename, no functional change.

Change-Id: Iad7468ce236b344afe48cd2cdcc9292bc919344e
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/71877
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index 5521d0f..98954f1 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -23,7 +23,7 @@
 #include "xfa/fxfa/cxfa_ffdoc.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
-#include "xfa/fxfa/parser/cxfa_document_parser.h"
+#include "xfa/fxfa/parser/cxfa_document_builder.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxfa/parser/xfa_basic_data.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
@@ -266,17 +266,17 @@
   if (params.size() >= 3)
     bOverwrite = runtime->ToBoolean(params[2]);
 
-  CFX_XMLParser xml_parser(
+  CFX_XMLParser parser(
       pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(expression.raw_span()));
 
-  auto pParser = std::make_unique<CXFA_DocumentParser>(GetDocument());
-  CFX_XMLNode* pXMLNode = pParser->ParseData(xml_parser.Parse());
+  auto builder = std::make_unique<CXFA_DocumentBuilder>(GetDocument());
+  CFX_XMLNode* pXMLNode = builder->Build(parser.Parse());
   if (!pXMLNode)
     return CJS_Result::Success();
 
   CFX_XMLDocument* top_xml_doc =
       GetXFANode()->GetDocument()->GetNotify()->GetFFDoc()->GetXMLDocument();
-  top_xml_doc->AppendNodesFrom(pParser->GetXMLDoc().get());
+  top_xml_doc->AppendNodesFrom(builder->GetXMLDoc().get());
 
   if (bIgnoreRoot &&
       (pXMLNode->GetType() != CFX_XMLNode::Type::kElement ||
@@ -317,8 +317,8 @@
     pFakeXMLRoot->AppendLastChild(pXMLNode);
   }
 
-  pParser->ConstructXFANode(pFakeRoot, pFakeXMLRoot);
-  pFakeRoot = pParser->GetRootNode();
+  builder->ConstructXFANode(pFakeRoot, pFakeXMLRoot);
+  pFakeRoot = builder->GetRootNode();
   if (!pFakeRoot)
     return CJS_Result::Success();
 
diff --git a/xfa/fxfa/cxfa_ffdoc.cpp b/xfa/fxfa/cxfa_ffdoc.cpp
index 7f2a92f..0053ba4 100644
--- a/xfa/fxfa/cxfa_ffdoc.cpp
+++ b/xfa/fxfa/cxfa_ffdoc.cpp
@@ -36,7 +36,7 @@
 #include "xfa/fxfa/parser/cxfa_acrobat7.h"
 #include "xfa/fxfa/parser/cxfa_dataexporter.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
-#include "xfa/fxfa/parser/cxfa_document_parser.h"
+#include "xfa/fxfa/parser/cxfa_document_builder.h"
 #include "xfa/fxfa/parser/cxfa_dynamicrender.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 
@@ -106,18 +106,18 @@
   if (!xml_doc)
     return false;
 
-  CXFA_DocumentParser doc_parser(m_pDocument.get());
-  bool parsed = doc_parser.Parse(std::move(xml_doc), XFA_PacketType::Xdp);
+  CXFA_DocumentBuilder builder(m_pDocument.get());
+  bool parsed = builder.BuildDocument(std::move(xml_doc), XFA_PacketType::Xdp);
 
   // We have to set the XML document before we return so that we can clean
   // up in the OpenDoc method. If we don't, the XMLDocument will get free'd
   // when this method returns and UnownedPtrs get unhappy.
-  m_pXMLDoc = doc_parser.GetXMLDoc();
+  m_pXMLDoc = builder.GetXMLDoc();
 
   if (!parsed)
     return false;
 
-  m_pDocument->SetRoot(doc_parser.GetRootNode());
+  m_pDocument->SetRoot(builder.GetRootNode());
   return true;
 }
 
diff --git a/xfa/fxfa/parser/BUILD.gn b/xfa/fxfa/parser/BUILD.gn
index 754bdcf..7878267 100644
--- a/xfa/fxfa/parser/BUILD.gn
+++ b/xfa/fxfa/parser/BUILD.gn
@@ -197,8 +197,8 @@
     "cxfa_digestmethods.h",
     "cxfa_document.cpp",
     "cxfa_document.h",
-    "cxfa_document_parser.cpp",
-    "cxfa_document_parser.h",
+    "cxfa_document_builder.cpp",
+    "cxfa_document_builder.h",
     "cxfa_documentassembly.cpp",
     "cxfa_documentassembly.h",
     "cxfa_draw.cpp",
@@ -697,7 +697,7 @@
 
 pdfium_unittest_source_set("unittests") {
   sources = [
-    "cxfa_document_parser_unittest.cpp",
+    "cxfa_document_builder_unittest.cpp",
     "cxfa_localevalue_unittest.cpp",
     "cxfa_measurement_unittest.cpp",
     "cxfa_node_unittest.cpp",
@@ -714,6 +714,6 @@
 }
 
 pdfium_embeddertest_source_set("embeddertests") {
-  sources = [ "cxfa_document_parser_embeddertest.cpp" ]
+  sources = [ "cxfa_document_builder_embeddertest.cpp" ]
   pdfium_root_dir = "../../../"
 }
diff --git a/xfa/fxfa/parser/cxfa_document_parser.cpp b/xfa/fxfa/parser/cxfa_document_builder.cpp
similarity index 93%
rename from xfa/fxfa/parser/cxfa_document_parser.cpp
rename to xfa/fxfa/parser/cxfa_document_builder.cpp
index de23fe5..b3cd01f 100644
--- a/xfa/fxfa/parser/cxfa_document_parser.cpp
+++ b/xfa/fxfa/parser/cxfa_document_builder.cpp
@@ -4,7 +4,7 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxfa/parser/cxfa_document_parser.h"
+#include "xfa/fxfa/parser/cxfa_document_builder.h"
 
 #include <utility>
 #include <vector>
@@ -224,14 +224,14 @@
                                  "http://www.w3.org/1999/xhtml");
 }
 
-CXFA_DocumentParser::CXFA_DocumentParser(CXFA_Document* pFactory)
+CXFA_DocumentBuilder::CXFA_DocumentBuilder(CXFA_Document* pFactory)
     : m_pFactory(pFactory) {}
 
-CXFA_DocumentParser::~CXFA_DocumentParser() = default;
+CXFA_DocumentBuilder::~CXFA_DocumentBuilder() = default;
 
-bool CXFA_DocumentParser::Parse(std::unique_ptr<CFX_XMLDocument> pXML,
-                                XFA_PacketType ePacketID) {
-  CFX_XMLNode* root = ParseData(std::move(pXML));
+bool CXFA_DocumentBuilder::BuildDocument(std::unique_ptr<CFX_XMLDocument> pXML,
+                                         XFA_PacketType ePacketID) {
+  CFX_XMLNode* root = Build(std::move(pXML));
   if (!root)
     return false;
 
@@ -239,7 +239,7 @@
   return !!m_pRootNode;
 }
 
-CFX_XMLNode* CXFA_DocumentParser::ParseData(
+CFX_XMLNode* CXFA_DocumentBuilder::Build(
     std::unique_ptr<CFX_XMLDocument> pXML) {
   if (!pXML)
     return nullptr;
@@ -251,8 +251,8 @@
   return GetDocumentNode(xml_doc_->GetRoot());
 }
 
-void CXFA_DocumentParser::ConstructXFANode(CXFA_Node* pXFANode,
-                                           CFX_XMLNode* pXMLNode) {
+void CXFA_DocumentBuilder::ConstructXFANode(CXFA_Node* pXFANode,
+                                            CFX_XMLNode* pXMLNode) {
   XFA_PacketType ePacketID = pXFANode->GetPacketType();
   if (ePacketID == XFA_PacketType::Datasets) {
     if (pXFANode->GetElementType() == XFA_Element::DataValue) {
@@ -295,12 +295,12 @@
   }
 }
 
-CXFA_Node* CXFA_DocumentParser::GetRootNode() const {
+CXFA_Node* CXFA_DocumentBuilder::GetRootNode() const {
   return m_pRootNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket(CFX_XMLNode* pXMLDocumentNode,
-                                                 XFA_PacketType ePacketID) {
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket(CFX_XMLNode* pXMLDocumentNode,
+                                                  XFA_PacketType ePacketID) {
   switch (ePacketID) {
     case XFA_PacketType::Xdp:
       return ParseAsXDPPacket_XDP(pXMLDocumentNode);
@@ -329,7 +329,7 @@
   }
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket_XDP(
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_XDP(
     CFX_XMLNode* pXMLDocumentNode) {
   XFA_PACKETINFO packet = XFA_GetPacketByIndex(XFA_PacketType::Xdp);
   if (!MatchNodeName(pXMLDocumentNode, packet.name, packet.uri, packet.flags))
@@ -450,7 +450,7 @@
   return pXFARootNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket_Config(
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Config(
     CFX_XMLNode* pXMLDocumentNode) {
   XFA_PACKETINFO packet = XFA_GetPacketByIndex(XFA_PacketType::Config);
   if (!MatchNodeName(pXMLDocumentNode, packet.name, packet.uri, packet.flags))
@@ -469,7 +469,7 @@
   return pNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket_Template(
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Template(
     CFX_XMLNode* pXMLDocumentNode) {
   XFA_PACKETINFO packet = XFA_GetPacketByIndex(XFA_PacketType::Template);
   if (!MatchNodeName(pXMLDocumentNode, packet.name, packet.uri, packet.flags))
@@ -496,7 +496,7 @@
   return pNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket_Form(
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Form(
     CFX_XMLNode* pXMLDocumentNode) {
   XFA_PACKETINFO packet = XFA_GetPacketByIndex(XFA_PacketType::Form);
   if (!MatchNodeName(pXMLDocumentNode, packet.name, packet.uri, packet.flags))
@@ -528,7 +528,7 @@
   return pNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket_Data(
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Data(
     CFX_XMLNode* pXMLDocumentNode) {
   XFA_PACKETINFO packet = XFA_GetPacketByIndex(XFA_PacketType::Datasets);
   CFX_XMLNode* pDatasetsXMLNode = GetDataSetsFromXDP(pXMLDocumentNode);
@@ -579,7 +579,7 @@
   return pNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket_LocaleConnectionSourceSet(
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_LocaleConnectionSourceSet(
     CFX_XMLNode* pXMLDocumentNode,
     XFA_PacketType packet_type,
     XFA_Element element) {
@@ -599,7 +599,7 @@
   return pNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket_Xdc(
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_Xdc(
     CFX_XMLNode* pXMLDocumentNode) {
   XFA_PACKETINFO packet = XFA_GetPacketByIndex(XFA_PacketType::Xdc);
   if (!MatchNodeName(pXMLDocumentNode, packet.name, packet.uri, packet.flags))
@@ -615,7 +615,7 @@
   return pNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::ParseAsXDPPacket_User(
+CXFA_Node* CXFA_DocumentBuilder::ParseAsXDPPacket_User(
     CFX_XMLNode* pXMLDocumentNode) {
   CXFA_Node* pNode =
       m_pFactory->CreateNode(XFA_PacketType::Xdp, XFA_Element::Packet);
@@ -628,17 +628,17 @@
   return pNode;
 }
 
-CXFA_Node* CXFA_DocumentParser::DataLoader(CXFA_Node* pXFANode,
-                                           CFX_XMLNode* pXMLDoc,
-                                           bool bDoTransform) {
+CXFA_Node* CXFA_DocumentBuilder::DataLoader(CXFA_Node* pXFANode,
+                                            CFX_XMLNode* pXMLDoc,
+                                            bool bDoTransform) {
   ParseDataGroup(pXFANode, pXMLDoc, XFA_PacketType::Datasets);
   return pXFANode;
 }
 
-CXFA_Node* CXFA_DocumentParser::NormalLoader(CXFA_Node* pXFANode,
-                                             CFX_XMLNode* pXMLDoc,
-                                             XFA_PacketType ePacketID,
-                                             bool bUseAttribute) {
+CXFA_Node* CXFA_DocumentBuilder::NormalLoader(CXFA_Node* pXFANode,
+                                              CFX_XMLNode* pXMLDoc,
+                                              XFA_PacketType ePacketID,
+                                              bool bUseAttribute) {
   constexpr size_t kMaxExecuteRecursion = 1000;
   if (m_ExecuteRecursionDepth > kMaxExecuteRecursion)
     return nullptr;
@@ -723,9 +723,9 @@
   return pXFANode;
 }
 
-void CXFA_DocumentParser::ParseContentNode(CXFA_Node* pXFANode,
-                                           CFX_XMLNode* pXMLNode,
-                                           XFA_PacketType ePacketID) {
+void CXFA_DocumentBuilder::ParseContentNode(CXFA_Node* pXFANode,
+                                            CFX_XMLNode* pXMLNode,
+                                            XFA_PacketType ePacketID) {
   XFA_Element element = XFA_Element::Sharptext;
   if (pXFANode->GetElementType() == XFA_Element::ExData) {
     WideString wsContentType =
@@ -779,9 +779,9 @@
   }
 }
 
-void CXFA_DocumentParser::ParseDataGroup(CXFA_Node* pXFANode,
-                                         CFX_XMLNode* pXMLNode,
-                                         XFA_PacketType ePacketID) {
+void CXFA_DocumentBuilder::ParseDataGroup(CXFA_Node* pXFANode,
+                                          CFX_XMLNode* pXMLNode,
+                                          XFA_PacketType ePacketID) {
   for (CFX_XMLNode* pXMLChild = pXMLNode->GetFirstChild(); pXMLChild;
        pXMLChild = pXMLChild->GetNextSibling()) {
     switch (pXMLChild->GetType()) {
@@ -910,9 +910,9 @@
   }
 }
 
-void CXFA_DocumentParser::ParseDataValue(CXFA_Node* pXFANode,
-                                         CFX_XMLNode* pXMLNode,
-                                         XFA_PacketType ePacketID) {
+void CXFA_DocumentBuilder::ParseDataValue(CXFA_Node* pXFANode,
+                                          CFX_XMLNode* pXMLNode,
+                                          XFA_PacketType ePacketID) {
   CFX_WideTextBuf wsValueTextBuf;
   CFX_WideTextBuf wsCurValueTextBuf;
   bool bMarkAsCompound = false;
@@ -1003,9 +1003,9 @@
                                  false);
 }
 
-void CXFA_DocumentParser::ParseInstruction(CXFA_Node* pXFANode,
-                                           CFX_XMLInstruction* pXMLInstruction,
-                                           XFA_PacketType ePacketID) {
+void CXFA_DocumentBuilder::ParseInstruction(CXFA_Node* pXFANode,
+                                            CFX_XMLInstruction* pXMLInstruction,
+                                            XFA_PacketType ePacketID) {
   const std::vector<WideString>& target_data = pXMLInstruction->GetTargetData();
   if (pXMLInstruction->IsOriginalXFAVersion()) {
     if (target_data.size() > 1 &&
diff --git a/xfa/fxfa/parser/cxfa_document_parser.h b/xfa/fxfa/parser/cxfa_document_builder.h
similarity index 85%
rename from xfa/fxfa/parser/cxfa_document_parser.h
rename to xfa/fxfa/parser/cxfa_document_builder.h
index bef976e..9486dac 100644
--- a/xfa/fxfa/parser/cxfa_document_parser.h
+++ b/xfa/fxfa/parser/cxfa_document_builder.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_DOCUMENT_PARSER_H_
-#define XFA_FXFA_PARSER_CXFA_DOCUMENT_PARSER_H_
+#ifndef XFA_FXFA_PARSER_CXFA_DOCUMENT_BUILDER_H_
+#define XFA_FXFA_PARSER_CXFA_DOCUMENT_BUILDER_H_
 
 #include <memory>
 #include <utility>
@@ -20,13 +20,14 @@
 class CXFA_Node;
 class CFX_XMLInstruction;
 
-class CXFA_DocumentParser {
+class CXFA_DocumentBuilder {
  public:
-  explicit CXFA_DocumentParser(CXFA_Document* pFactory);
-  ~CXFA_DocumentParser();
+  explicit CXFA_DocumentBuilder(CXFA_Document* pFactory);
+  ~CXFA_DocumentBuilder();
 
-  bool Parse(std::unique_ptr<CFX_XMLDocument> pXML, XFA_PacketType ePacketID);
-  CFX_XMLNode* ParseData(std::unique_ptr<CFX_XMLDocument> pXML);
+  CFX_XMLNode* Build(std::unique_ptr<CFX_XMLDocument> pXML);
+  bool BuildDocument(std::unique_ptr<CFX_XMLDocument> pXML,
+                     XFA_PacketType ePacketID);
   std::unique_ptr<CFX_XMLDocument> GetXMLDoc() { return std::move(xml_doc_); }
 
   void ConstructXFANode(CXFA_Node* pXFANode, CFX_XMLNode* pXMLNode);
@@ -73,4 +74,4 @@
   size_t m_ExecuteRecursionDepth = 0;
 };
 
-#endif  // XFA_FXFA_PARSER_CXFA_DOCUMENT_PARSER_H_
+#endif  // XFA_FXFA_PARSER_CXFA_DOCUMENT_BUILDER_H_
diff --git a/xfa/fxfa/parser/cxfa_document_parser_embeddertest.cpp b/xfa/fxfa/parser/cxfa_document_builder_embeddertest.cpp
similarity index 100%
rename from xfa/fxfa/parser/cxfa_document_parser_embeddertest.cpp
rename to xfa/fxfa/parser/cxfa_document_builder_embeddertest.cpp
diff --git a/xfa/fxfa/parser/cxfa_document_parser_unittest.cpp b/xfa/fxfa/parser/cxfa_document_builder_unittest.cpp
similarity index 65%
rename from xfa/fxfa/parser/cxfa_document_parser_unittest.cpp
rename to xfa/fxfa/parser/cxfa_document_builder_unittest.cpp
index bb98de1..81f39ee 100644
--- a/xfa/fxfa/parser/cxfa_document_parser_unittest.cpp
+++ b/xfa/fxfa/parser/cxfa_document_builder_unittest.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "xfa/fxfa/parser/cxfa_document_parser.h"
+#include "xfa/fxfa/parser/cxfa_document_builder.h"
 
 #include "core/fxcrt/cfx_readonlymemorystream.h"
 #include "core/fxcrt/xml/cfx_xmldocument.h"
@@ -10,47 +10,49 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
 
-class CXFA_DocumentParserTest : public testing::Test {
+class CXFA_DocumentBuilderTest : public testing::Test {
  public:
   void SetUp() override {
     doc_ = std::make_unique<CXFA_Document>(nullptr, nullptr);
-    parser_ = std::make_unique<CXFA_DocumentParser>(doc_.get());
+    builder_ = std::make_unique<CXFA_DocumentBuilder>(doc_.get());
   }
 
   void TearDown() override {
     // Hold the XML tree until we cleanup the document.
-    std::unique_ptr<CFX_XMLDocument> doc = parser_->GetXMLDoc();
-    parser_ = nullptr;
+    std::unique_ptr<CFX_XMLDocument> doc = builder_->GetXMLDoc();
+    builder_ = nullptr;
     doc_ = nullptr;
   }
 
   CXFA_Document* GetDoc() const { return doc_.get(); }
-  CXFA_DocumentParser* GetParser() const { return parser_.get(); }
+  CXFA_DocumentBuilder* GetBuilder() const { return builder_.get(); }
 
  private:
   std::unique_ptr<CXFA_Document> doc_;
-  std::unique_ptr<CXFA_DocumentParser> parser_;
+  std::unique_ptr<CXFA_DocumentBuilder> builder_;
 };
 
-TEST_F(CXFA_DocumentParserTest, EmptyInput) {
+TEST_F(CXFA_DocumentBuilderTest, EmptyInput) {
   static const char kInput[] = "";
   auto stream = pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(
       pdfium::as_bytes(pdfium::make_span(kInput)));
   CFX_XMLParser xml_parser(stream);
-  EXPECT_FALSE(GetParser()->Parse(xml_parser.Parse(), XFA_PacketType::Config));
-  EXPECT_FALSE(GetParser()->GetRootNode());
+  EXPECT_FALSE(
+      GetBuilder()->BuildDocument(xml_parser.Parse(), XFA_PacketType::Config));
+  EXPECT_FALSE(GetBuilder()->GetRootNode());
 }
 
-TEST_F(CXFA_DocumentParserTest, BadInput) {
+TEST_F(CXFA_DocumentBuilderTest, BadInput) {
   static const char kInput[] = "<<<>bar?>>>>>>>";
   auto stream = pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(
       pdfium::as_bytes(pdfium::make_span(kInput)));
   CFX_XMLParser xml_parser(stream);
-  EXPECT_FALSE(GetParser()->Parse(xml_parser.Parse(), XFA_PacketType::Config));
-  EXPECT_FALSE(GetParser()->GetRootNode());
+  EXPECT_FALSE(
+      GetBuilder()->BuildDocument(xml_parser.Parse(), XFA_PacketType::Config));
+  EXPECT_FALSE(GetBuilder()->GetRootNode());
 }
 
-TEST_F(CXFA_DocumentParserTest, XMLInstructionsScriptOff) {
+TEST_F(CXFA_DocumentBuilderTest, XMLInstructionsScriptOff) {
   static const char kInput[] =
       "<config>\n"
       "<?originalXFAVersion http://www.xfa.org/schema/xfa-template/2.7 "
@@ -61,14 +63,15 @@
   auto stream = pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(
       pdfium::as_bytes(pdfium::make_span(kInput)));
   CFX_XMLParser xml_parser(stream);
-  ASSERT_TRUE(GetParser()->Parse(xml_parser.Parse(), XFA_PacketType::Config));
+  ASSERT_TRUE(
+      GetBuilder()->BuildDocument(xml_parser.Parse(), XFA_PacketType::Config));
 
-  CXFA_Node* root = GetParser()->GetRootNode();
+  CXFA_Node* root = GetBuilder()->GetRootNode();
   ASSERT_TRUE(root);
   EXPECT_FALSE(GetDoc()->is_scripting());
 }
 
-TEST_F(CXFA_DocumentParserTest, XMLInstructionsScriptOn) {
+TEST_F(CXFA_DocumentBuilderTest, XMLInstructionsScriptOn) {
   static const char kInput[] =
       "<config>\n"
       "<?originalXFAVersion http://www.xfa.org/schema/xfa-template/2.7 "
@@ -80,14 +83,15 @@
   auto stream = pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(
       pdfium::as_bytes(pdfium::make_span(kInput)));
   CFX_XMLParser xml_parser(stream);
-  ASSERT_TRUE(GetParser()->Parse(xml_parser.Parse(), XFA_PacketType::Config));
+  ASSERT_TRUE(
+      GetBuilder()->BuildDocument(xml_parser.Parse(), XFA_PacketType::Config));
 
-  CXFA_Node* root = GetParser()->GetRootNode();
+  CXFA_Node* root = GetBuilder()->GetRootNode();
   ASSERT_TRUE(root);
   EXPECT_TRUE(GetDoc()->is_scripting());
 }
 
-TEST_F(CXFA_DocumentParserTest, XMLInstructionsStrictScope) {
+TEST_F(CXFA_DocumentBuilderTest, XMLInstructionsStrictScope) {
   static const char kInput[] =
       "<config>"
       "<?acrobat JavaScript strictScoping ?>\n"
@@ -98,14 +102,15 @@
   auto stream = pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(
       pdfium::as_bytes(pdfium::make_span(kInput)));
   CFX_XMLParser xml_parser(stream);
-  ASSERT_TRUE(GetParser()->Parse(xml_parser.Parse(), XFA_PacketType::Config));
+  ASSERT_TRUE(
+      GetBuilder()->BuildDocument(xml_parser.Parse(), XFA_PacketType::Config));
 
-  CXFA_Node* root = GetParser()->GetRootNode();
+  CXFA_Node* root = GetBuilder()->GetRootNode();
   ASSERT_TRUE(root);
   EXPECT_TRUE(GetDoc()->is_strict_scoping());
 }
 
-TEST_F(CXFA_DocumentParserTest, XMLInstructionsStrictScopeBad) {
+TEST_F(CXFA_DocumentBuilderTest, XMLInstructionsStrictScopeBad) {
   static const char kInput[] =
       "<config>"
       "<?acrobat JavaScript otherScoping ?>\n"
@@ -116,14 +121,15 @@
   auto stream = pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(
       pdfium::as_bytes(pdfium::make_span(kInput)));
   CFX_XMLParser xml_parser(stream);
-  ASSERT_TRUE(GetParser()->Parse(xml_parser.Parse(), XFA_PacketType::Config));
+  ASSERT_TRUE(
+      GetBuilder()->BuildDocument(xml_parser.Parse(), XFA_PacketType::Config));
 
-  CXFA_Node* root = GetParser()->GetRootNode();
+  CXFA_Node* root = GetBuilder()->GetRootNode();
   ASSERT_TRUE(root);
   EXPECT_FALSE(GetDoc()->is_strict_scoping());
 }
 
-TEST_F(CXFA_DocumentParserTest, MultipleXMLInstructions) {
+TEST_F(CXFA_DocumentBuilderTest, MultipleXMLInstructions) {
   static const char kInput[] =
       "<config>"
       "<?originalXFAVersion http://www.xfa.org/schema/xfa-template/2.7 "
@@ -137,9 +143,10 @@
   auto stream = pdfium::MakeRetain<CFX_ReadOnlyMemoryStream>(
       pdfium::as_bytes(pdfium::make_span(kInput)));
   CFX_XMLParser xml_parser(stream);
-  ASSERT_TRUE(GetParser()->Parse(xml_parser.Parse(), XFA_PacketType::Config));
+  ASSERT_TRUE(
+      GetBuilder()->BuildDocument(xml_parser.Parse(), XFA_PacketType::Config));
 
-  CXFA_Node* root = GetParser()->GetRootNode();
+  CXFA_Node* root = GetBuilder()->GetRootNode();
   ASSERT_TRUE(root);
 
   EXPECT_TRUE(GetDoc()->is_scripting());
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 184f962..d954ca5 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -127,7 +127,7 @@
 #include "xfa/fxfa/parser/cxfa_digestmethod.h"
 #include "xfa/fxfa/parser/cxfa_digestmethods.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
-#include "xfa/fxfa/parser/cxfa_document_parser.h"
+#include "xfa/fxfa/parser/cxfa_document_builder.h"
 #include "xfa/fxfa/parser/cxfa_documentassembly.h"
 #include "xfa/fxfa/parser/cxfa_draw.h"
 #include "xfa/fxfa/parser/cxfa_driver.h"