Separate CXFA layout hierarchy from CXFA parser hierarchy.

The naming is similar so it is easy to confuse nodes vs.
layout items. Still a few circular includes to be resolved
as a follow-up.

Change-Id: I48a3b4f9a3df22e834fdbc86194a08f568cfd03d
Reviewed-on: https://pdfium-review.googlesource.com/c/50010
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/xfa/cjx_hostpseudomodel.cpp b/fxjs/xfa/cjx_hostpseudomodel.cpp
index bf88583..a86afdc 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.cpp
+++ b/fxjs/xfa/cjx_hostpseudomodel.cpp
@@ -15,8 +15,8 @@
 #include "xfa/fxfa/cxfa_ffdoc.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
 #include "xfa/fxfa/cxfa_ffwidget.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cscript_hostpseudomodel.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxfa/parser/xfa_resolvenode_rs.h"
 
diff --git a/fxjs/xfa/cjx_instancemanager.cpp b/fxjs/xfa/cjx_instancemanager.cpp
index a4be9e1..b10b0e3 100644
--- a/fxjs/xfa/cjx_instancemanager.cpp
+++ b/fxjs/xfa/cjx_instancemanager.cpp
@@ -14,9 +14,9 @@
 #include "fxjs/xfa/cfxjse_value.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
 #include "xfa/fxfa/parser/cxfa_instancemanager.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_occur.h"
 
 const CJX_MethodSpec CJX_InstanceManager::MethodSpecs[] = {
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.cpp b/fxjs/xfa/cjx_layoutpseudomodel.cpp
index 3957117..a12adb6 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.cpp
+++ b/fxjs/xfa/cjx_layoutpseudomodel.cpp
@@ -17,18 +17,18 @@
 #include "third_party/base/ptr_util.h"
 #include "third_party/base/stl_util.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
+#include "xfa/fxfa/layout/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_layoutitem.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
+#include "xfa/fxfa/layout/cxfa_traversestrategy_layoutitem.h"
 #include "xfa/fxfa/parser/cscript_layoutpseudomodel.h"
 #include "xfa/fxfa/parser/cxfa_arraynodelist.h"
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
 #include "xfa/fxfa/parser/cxfa_form.h"
-#include "xfa/fxfa/parser/cxfa_layoutitem.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxfa/parser/cxfa_nodeiteratortemplate.h"
-#include "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h"
 
 const CJX_MethodSpec CJX_LayoutPseudoModel::MethodSpecs[] = {
     {"absPage", absPage_static},
diff --git a/fxjs/xfa/cjx_object.cpp b/fxjs/xfa/cjx_object.cpp
index 08656ab..b029454 100644
--- a/fxjs/xfa/cjx_object.cpp
+++ b/fxjs/xfa/cjx_object.cpp
@@ -24,13 +24,13 @@
 #include "xfa/fgas/crt/cfgas_decimal.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
 #include "xfa/fxfa/cxfa_ffwidget.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_border.h"
 #include "xfa/fxfa/parser/cxfa_datavalue.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
 #include "xfa/fxfa/parser/cxfa_edge.h"
 #include "xfa/fxfa/parser/cxfa_fill.h"
 #include "xfa/fxfa/parser/cxfa_font.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxfa/parser/cxfa_object.h"
diff --git a/xfa/fxfa/BUILD.gn b/xfa/fxfa/BUILD.gn
index ba07acb..2eb80ce 100644
--- a/xfa/fxfa/BUILD.gn
+++ b/xfa/fxfa/BUILD.gn
@@ -116,6 +116,7 @@
     "../fgas/layout",
     "../fwl",
     "../fxgraphics",
+    "layout",
     "parser",
   ]
   allow_circular_includes_from = [
@@ -123,6 +124,7 @@
     "../fgas",
     "../fgas/layout",
     "../fwl",
+    "layout",
     "parser",
   ]
   configs += [
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index b433562..6f61f0c 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -30,10 +30,10 @@
 #include "xfa/fxfa/cxfa_fwladapterwidgetmgr.h"
 #include "xfa/fxfa/cxfa_readynodeiterator.h"
 #include "xfa/fxfa/cxfa_textprovider.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_acrobat.h"
 #include "xfa/fxfa/parser/cxfa_binditems.h"
 #include "xfa/fxfa/parser/cxfa_calculate.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_pageset.h"
 #include "xfa/fxfa/parser/cxfa_present.h"
 #include "xfa/fxfa/parser/cxfa_subform.h"
diff --git a/xfa/fxfa/cxfa_ffpageview.h b/xfa/fxfa/cxfa_ffpageview.h
index 16477fa..8b143ad 100644
--- a/xfa/fxfa/cxfa_ffpageview.h
+++ b/xfa/fxfa/cxfa_ffpageview.h
@@ -10,9 +10,9 @@
 #include <memory>
 #include <vector>
 
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h"
+#include "xfa/fxfa/layout/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_traversestrategy_layoutitem.h"
 
 class CXFA_FFWidget;
 class CXFA_FFDocView;
diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp
index 6401f9e..1c25af5 100644
--- a/xfa/fxfa/cxfa_ffwidget.cpp
+++ b/xfa/fxfa/cxfa_ffwidget.cpp
@@ -25,10 +25,10 @@
 #include "xfa/fxfa/cxfa_ffdocview.h"
 #include "xfa/fxfa/cxfa_ffpageview.h"
 #include "xfa/fxfa/cxfa_imagerenderer.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_border.h"
 #include "xfa/fxfa/parser/cxfa_box.h"
 #include "xfa/fxfa/parser/cxfa_image.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_margin.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxgraphics/cxfa_graphics.h"
diff --git a/xfa/fxfa/cxfa_ffwidget.h b/xfa/fxfa/cxfa_ffwidget.h
index 7ed3d88..fbd9266 100644
--- a/xfa/fxfa/cxfa_ffwidget.h
+++ b/xfa/fxfa/cxfa_ffwidget.h
@@ -15,7 +15,7 @@
 #include "xfa/fwl/cfwl_app.h"
 #include "xfa/fwl/cfwl_messagemouse.h"
 #include "xfa/fxfa/fxfa.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_contentlayoutitem.h"
 
 class CFX_DIBitmap;
 class CXFA_Box;
diff --git a/xfa/fxfa/cxfa_ffwidgethandler.cpp b/xfa/fxfa/cxfa_ffwidgethandler.cpp
index 73e88f8..7eb49df 100644
--- a/xfa/fxfa/cxfa_ffwidgethandler.cpp
+++ b/xfa/fxfa/cxfa_ffwidgethandler.cpp
@@ -14,9 +14,9 @@
 #include "xfa/fxfa/cxfa_fffield.h"
 #include "xfa/fxfa/cxfa_ffwidget.h"
 #include "xfa/fxfa/cxfa_fwladapterwidgetmgr.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_calculate.h"
 #include "xfa/fxfa/parser/cxfa_checkbutton.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxfa/parser/cxfa_ui.h"
diff --git a/xfa/fxfa/cxfa_textprovider.cpp b/xfa/fxfa/cxfa_textprovider.cpp
index 2070282..ead9e02 100644
--- a/xfa/fxfa/cxfa_textprovider.cpp
+++ b/xfa/fxfa/cxfa_textprovider.cpp
@@ -26,10 +26,10 @@
 #include "xfa/fxfa/cxfa_ffwidget.h"
 #include "xfa/fxfa/cxfa_fontmgr.h"
 #include "xfa/fxfa/cxfa_fwladapterwidgetmgr.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_caption.h"
 #include "xfa/fxfa/parser/cxfa_font.h"
 #include "xfa/fxfa/parser/cxfa_items.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_localevalue.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxfa/parser/cxfa_para.h"
diff --git a/xfa/fxfa/layout/BUILD.gn b/xfa/fxfa/layout/BUILD.gn
new file mode 100644
index 0000000..d7f25b1
--- /dev/null
+++ b/xfa/fxfa/layout/BUILD.gn
@@ -0,0 +1,39 @@
+# Copyright 2019 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("//build/config/jumbo.gni")
+import("../../../pdfium.gni")
+import("../../../testing/test.gni")
+
+assert(pdf_enable_xfa)
+
+jumbo_source_set("layout") {
+  sources = [
+    "cxfa_containerlayoutitem.cpp",
+    "cxfa_containerlayoutitem.h",
+    "cxfa_contentlayoutitem.cpp",
+    "cxfa_contentlayoutitem.h",
+    "cxfa_itemlayoutprocessor.cpp",
+    "cxfa_itemlayoutprocessor.h",
+    "cxfa_layoutcontext.cpp",
+    "cxfa_layoutcontext.h",
+    "cxfa_layoutitem.cpp",
+    "cxfa_layoutitem.h",
+    "cxfa_layoutpagemgr.cpp",
+    "cxfa_layoutpagemgr.h",
+    "cxfa_layoutprocessor.cpp",
+    "cxfa_layoutprocessor.h",
+    "cxfa_traversestrategy_contentareacontainerlayoutitem.h",
+    "cxfa_traversestrategy_layoutitem.h",
+  ]
+  deps = [
+    "../../../core/fxcrt",
+    "../../../fxjs",
+    "../parser",
+  ]
+  allow_circular_includes_from = [
+    "../../../fxjs",
+    "../parser",
+  ]
+}
diff --git a/xfa/fxfa/parser/cxfa_containerlayoutitem.cpp b/xfa/fxfa/layout/cxfa_containerlayoutitem.cpp
similarity index 91%
rename from xfa/fxfa/parser/cxfa_containerlayoutitem.cpp
rename to xfa/fxfa/layout/cxfa_containerlayoutitem.cpp
index d10e1b4..88b6e35 100644
--- a/xfa/fxfa/parser/cxfa_containerlayoutitem.cpp
+++ b/xfa/fxfa/layout/cxfa_containerlayoutitem.cpp
@@ -4,11 +4,11 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_containerlayoutitem.h"
 
 #include "fxjs/xfa/cjx_object.h"
-#include "xfa/fxfa/parser/cxfa_layoutpagemgr.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
+#include "xfa/fxfa/layout/cxfa_layoutpagemgr.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_medium.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
diff --git a/xfa/fxfa/parser/cxfa_containerlayoutitem.h b/xfa/fxfa/layout/cxfa_containerlayoutitem.h
similarity index 74%
rename from xfa/fxfa/parser/cxfa_containerlayoutitem.h
rename to xfa/fxfa/layout/cxfa_containerlayoutitem.h
index c8cdf33..503e4e8 100644
--- a/xfa/fxfa/parser/cxfa_containerlayoutitem.h
+++ b/xfa/fxfa/layout/cxfa_containerlayoutitem.h
@@ -4,10 +4,10 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_CONTAINERLAYOUTITEM_H_
-#define XFA_FXFA_PARSER_CXFA_CONTAINERLAYOUTITEM_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_CONTAINERLAYOUTITEM_H_
+#define XFA_FXFA_LAYOUT_CXFA_CONTAINERLAYOUTITEM_H_
 
-#include "xfa/fxfa/parser/cxfa_layoutitem.h"
+#include "xfa/fxfa/layout/cxfa_layoutitem.h"
 
 class CXFA_ContainerLayoutItem : public CXFA_LayoutItem {
  public:
@@ -22,4 +22,4 @@
   UnownedPtr<CXFA_Node> m_pOldSubform;
 };
 
-#endif  // XFA_FXFA_PARSER_CXFA_CONTAINERLAYOUTITEM_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_CONTAINERLAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/cxfa_contentlayoutitem.cpp b/xfa/fxfa/layout/cxfa_contentlayoutitem.cpp
similarity index 98%
rename from xfa/fxfa/parser/cxfa_contentlayoutitem.cpp
rename to xfa/fxfa/layout/cxfa_contentlayoutitem.cpp
index 58e65e0..600d1b9 100644
--- a/xfa/fxfa/parser/cxfa_contentlayoutitem.cpp
+++ b/xfa/fxfa/layout/cxfa_contentlayoutitem.cpp
@@ -4,7 +4,7 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_contentlayoutitem.h"
 
 #include "fxjs/xfa/cjx_object.h"
 #include "xfa/fxfa/parser/cxfa_margin.h"
diff --git a/xfa/fxfa/parser/cxfa_contentlayoutitem.h b/xfa/fxfa/layout/cxfa_contentlayoutitem.h
similarity index 85%
rename from xfa/fxfa/parser/cxfa_contentlayoutitem.h
rename to xfa/fxfa/layout/cxfa_contentlayoutitem.h
index b002e88..2f8316e 100644
--- a/xfa/fxfa/parser/cxfa_contentlayoutitem.h
+++ b/xfa/fxfa/layout/cxfa_contentlayoutitem.h
@@ -4,11 +4,11 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_CONTENTLAYOUTITEM_H_
-#define XFA_FXFA_PARSER_CXFA_CONTENTLAYOUTITEM_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_CONTENTLAYOUTITEM_H_
+#define XFA_FXFA_LAYOUT_CXFA_CONTENTLAYOUTITEM_H_
 
 #include "core/fxcrt/unowned_ptr.h"
-#include "xfa/fxfa/parser/cxfa_layoutitem.h"
+#include "xfa/fxfa/layout/cxfa_layoutitem.h"
 
 class CXFA_FFWidget;
 
@@ -43,4 +43,4 @@
   return item ? item->AsFFWidget() : nullptr;
 }
 
-#endif  // XFA_FXFA_PARSER_CXFA_CONTENTLAYOUTITEM_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_CONTENTLAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_itemlayoutprocessor.cpp
similarity index 99%
rename from xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
rename to xfa/fxfa/layout/cxfa_itemlayoutprocessor.cpp
index f91f3f0..324ad35 100644
--- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_itemlayoutprocessor.cpp
@@ -4,7 +4,7 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxfa/parser/cxfa_itemlayoutprocessor.h"
+#include "xfa/fxfa/layout/cxfa_itemlayoutprocessor.h"
 
 #include <algorithm>
 #include <memory>
@@ -18,12 +18,12 @@
 #include "third_party/base/stl_util.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_layoutcontext.h"
+#include "xfa/fxfa/layout/cxfa_layoutpagemgr.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
 #include "xfa/fxfa/parser/cxfa_keep.h"
-#include "xfa/fxfa/parser/cxfa_layoutcontext.h"
-#include "xfa/fxfa/parser/cxfa_layoutpagemgr.h"
 #include "xfa/fxfa/parser/cxfa_localemgr.h"
 #include "xfa/fxfa/parser/cxfa_margin.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
@@ -233,9 +233,9 @@
       fColSpanWidth += rgSpecifiedColumnWidths[nCurrentColIdx + i];
 
     if (nColSpan != nOriginalColSpan) {
-      fColSpanWidth =
-          bMetWholeRowCell ? 0 : std::max(fColSpanWidth,
-                                          pLayoutChild->m_sSize.height);
+      fColSpanWidth = bMetWholeRowCell ? 0
+                                       : std::max(fColSpanWidth,
+                                                  pLayoutChild->m_sSize.height);
     }
     if (nOriginalColSpan == -1)
       bMetWholeRowCell = true;
diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.h b/xfa/fxfa/layout/cxfa_itemlayoutprocessor.h
similarity index 97%
rename from xfa/fxfa/parser/cxfa_itemlayoutprocessor.h
rename to xfa/fxfa/layout/cxfa_itemlayoutprocessor.h
index 4eea23e..272e93a 100644
--- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.h
+++ b/xfa/fxfa/layout/cxfa_itemlayoutprocessor.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_ITEMLAYOUTPROCESSOR_H_
-#define XFA_FXFA_PARSER_CXFA_ITEMLAYOUTPROCESSOR_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_ITEMLAYOUTPROCESSOR_H_
+#define XFA_FXFA_LAYOUT_CXFA_ITEMLAYOUTPROCESSOR_H_
 
 #include <float.h>
 
@@ -190,4 +190,4 @@
   bool m_bHasAvailHeight = true;
 };
 
-#endif  // XFA_FXFA_PARSER_CXFA_ITEMLAYOUTPROCESSOR_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_ITEMLAYOUTPROCESSOR_H_
diff --git a/xfa/fxfa/parser/cxfa_layoutcontext.cpp b/xfa/fxfa/layout/cxfa_layoutcontext.cpp
similarity index 87%
rename from xfa/fxfa/parser/cxfa_layoutcontext.cpp
rename to xfa/fxfa/layout/cxfa_layoutcontext.cpp
index 24f0e8d..cd5d8b1 100644
--- a/xfa/fxfa/parser/cxfa_layoutcontext.cpp
+++ b/xfa/fxfa/layout/cxfa_layoutcontext.cpp
@@ -4,7 +4,7 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxfa/parser/cxfa_layoutcontext.h"
+#include "xfa/fxfa/layout/cxfa_layoutcontext.h"
 
 CXFA_LayoutContext::CXFA_LayoutContext() = default;
 
diff --git a/xfa/fxfa/parser/cxfa_layoutcontext.h b/xfa/fxfa/layout/cxfa_layoutcontext.h
similarity index 82%
rename from xfa/fxfa/parser/cxfa_layoutcontext.h
rename to xfa/fxfa/layout/cxfa_layoutcontext.h
index 9927d3e..4fa7b1c 100644
--- a/xfa/fxfa/parser/cxfa_layoutcontext.h
+++ b/xfa/fxfa/layout/cxfa_layoutcontext.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_LAYOUTCONTEXT_H_
-#define XFA_FXFA_PARSER_CXFA_LAYOUTCONTEXT_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_LAYOUTCONTEXT_H_
+#define XFA_FXFA_LAYOUT_CXFA_LAYOUTCONTEXT_H_
 
 #include <vector>
 
@@ -26,4 +26,4 @@
   UnownedPtr<CXFA_Node> m_pOverflowNode;
 };
 
-#endif  // XFA_FXFA_PARSER_CXFA_LAYOUTCONTEXT_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_LAYOUTCONTEXT_H_
diff --git a/xfa/fxfa/parser/cxfa_layoutitem.cpp b/xfa/fxfa/layout/cxfa_layoutitem.cpp
similarity index 96%
rename from xfa/fxfa/parser/cxfa_layoutitem.cpp
rename to xfa/fxfa/layout/cxfa_layoutitem.cpp
index 7792fa5..484655a 100644
--- a/xfa/fxfa/parser/cxfa_layoutitem.cpp
+++ b/xfa/fxfa/layout/cxfa_layoutitem.cpp
@@ -4,12 +4,12 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxfa/parser/cxfa_layoutitem.h"
+#include "xfa/fxfa/layout/cxfa_layoutitem.h"
 
 #include "fxjs/xfa/cjx_object.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_contentlayoutitem.h"
 #include "xfa/fxfa/parser/cxfa_margin.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
diff --git a/xfa/fxfa/parser/cxfa_layoutitem.h b/xfa/fxfa/layout/cxfa_layoutitem.h
similarity index 93%
rename from xfa/fxfa/parser/cxfa_layoutitem.h
rename to xfa/fxfa/layout/cxfa_layoutitem.h
index 3426a83..840859b 100644
--- a/xfa/fxfa/parser/cxfa_layoutitem.h
+++ b/xfa/fxfa/layout/cxfa_layoutitem.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_LAYOUTITEM_H_
-#define XFA_FXFA_PARSER_CXFA_LAYOUTITEM_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_LAYOUTITEM_H_
+#define XFA_FXFA_LAYOUT_CXFA_LAYOUTITEM_H_
 
 #include "core/fxcrt/unowned_ptr.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
@@ -55,4 +55,4 @@
 
 void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem);
 
-#endif  // XFA_FXFA_PARSER_CXFA_LAYOUTITEM_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_LAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp b/xfa/fxfa/layout/cxfa_layoutpagemgr.cpp
similarity index 98%
rename from xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
rename to xfa/fxfa/layout/cxfa_layoutpagemgr.cpp
index 69f6991..04688b8 100644
--- a/xfa/fxfa/parser/cxfa_layoutpagemgr.cpp
+++ b/xfa/fxfa/layout/cxfa_layoutpagemgr.cpp
@@ -4,18 +4,20 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxfa/parser/cxfa_layoutpagemgr.h"
+#include "xfa/fxfa/layout/cxfa_layoutpagemgr.h"
 
 #include "fxjs/xfa/cfxjse_engine.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "third_party/base/stl_util.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_itemlayoutprocessor.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
+#include "xfa/fxfa/layout/cxfa_traversestrategy_contentareacontainerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_traversestrategy_layoutitem.h"
 #include "xfa/fxfa/parser/cxfa_contentarea.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
-#include "xfa/fxfa/parser/cxfa_itemlayoutprocessor.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_localemgr.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_medium.h"
@@ -25,8 +27,6 @@
 #include "xfa/fxfa/parser/cxfa_occur.h"
 #include "xfa/fxfa/parser/cxfa_pageset.h"
 #include "xfa/fxfa/parser/cxfa_subform.h"
-#include "xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h"
 #include "xfa/fxfa/parser/cxfa_traversestrategy_xfacontainernode.h"
 #include "xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h"
 #include "xfa/fxfa/parser/xfa_document_datamerger_imp.h"
@@ -213,8 +213,8 @@
     CXFA_ContainerLayoutItem* pPageAreaLayoutItem,
     CXFA_Node* pContentArea,
     CXFA_ContainerLayoutItem*& pContentAreaLayoutItem) {
-  for (CXFA_LayoutItem* pChild = pPageAreaLayoutItem->m_pFirstChild;
-       pChild; pChild = pChild->m_pNextSibling) {
+  for (CXFA_LayoutItem* pChild = pPageAreaLayoutItem->m_pFirstChild; pChild;
+       pChild = pChild->m_pNextSibling) {
     CXFA_ContainerLayoutItem* pLayoutItem = pChild->AsContainerLayoutItem();
     if (pLayoutItem && pLayoutItem->GetFormNode() == pContentArea) {
       if (!pLayoutItem->m_pFirstChild) {
@@ -610,9 +610,8 @@
 void CXFA_LayoutPageMgr::FinishPaginatedPageSets() {
   for (CXFA_ContainerLayoutItem* pRootPageSetLayoutItem =
            m_pPageSetLayoutItemRoot;
-       pRootPageSetLayoutItem;
-       pRootPageSetLayoutItem =
-           ToContainerLayoutItem(pRootPageSetLayoutItem->m_pNextSibling)) {
+       pRootPageSetLayoutItem; pRootPageSetLayoutItem = ToContainerLayoutItem(
+                                   pRootPageSetLayoutItem->m_pNextSibling)) {
     PageSetIterator sIterator(pRootPageSetLayoutItem);
     for (CXFA_ContainerLayoutItem* pPageSetLayoutItem = sIterator.GetCurrent();
          pPageSetLayoutItem; pPageSetLayoutItem = sIterator.MoveToNext()) {
@@ -621,7 +620,9 @@
               XFA_Attribute::Relation);
       switch (ePageRelation) {
         case XFA_AttributeValue::OrderedOccurrence:
-        default: { ProcessLastPageSet(); } break;
+        default: {
+          ProcessLastPageSet();
+        } break;
         case XFA_AttributeValue::SimplexPaginated:
         case XFA_AttributeValue::DuplexPaginated: {
           CXFA_LayoutItem* pLastPageAreaLayoutItem = nullptr;
@@ -1890,9 +1891,8 @@
 
 void CXFA_LayoutPageMgr::LayoutPageSetContents() {
   for (CXFA_ContainerLayoutItem* pRootLayoutItem = GetRootLayoutItem();
-       pRootLayoutItem;
-       pRootLayoutItem =
-           ToContainerLayoutItem(pRootLayoutItem->m_pNextSibling)) {
+       pRootLayoutItem; pRootLayoutItem = ToContainerLayoutItem(
+                            pRootLayoutItem->m_pNextSibling)) {
     CXFA_NodeIteratorTemplate<
         CXFA_ContainerLayoutItem,
         CXFA_TraverseStrategy_ContentAreaContainerLayoutItem>
@@ -1918,9 +1918,8 @@
   CXFA_FFNotify* pNotify = m_pTemplatePageSetRoot->GetDocument()->GetNotify();
   int32_t nPageIdx = -1;
   for (CXFA_ContainerLayoutItem* pRootLayoutItem = GetRootLayoutItem();
-       pRootLayoutItem;
-       pRootLayoutItem =
-           ToContainerLayoutItem(pRootLayoutItem->m_pNextSibling)) {
+       pRootLayoutItem; pRootLayoutItem = ToContainerLayoutItem(
+                            pRootLayoutItem->m_pNextSibling)) {
     CXFA_NodeIteratorTemplate<
         CXFA_ContainerLayoutItem,
         CXFA_TraverseStrategy_ContentAreaContainerLayoutItem>
diff --git a/xfa/fxfa/parser/cxfa_layoutpagemgr.h b/xfa/fxfa/layout/cxfa_layoutpagemgr.h
similarity index 96%
rename from xfa/fxfa/parser/cxfa_layoutpagemgr.h
rename to xfa/fxfa/layout/cxfa_layoutpagemgr.h
index aec931b..041bbd5 100644
--- a/xfa/fxfa/parser/cxfa_layoutpagemgr.h
+++ b/xfa/fxfa/layout/cxfa_layoutpagemgr.h
@@ -4,15 +4,15 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_LAYOUTPAGEMGR_H_
-#define XFA_FXFA_PARSER_CXFA_LAYOUTPAGEMGR_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_LAYOUTPAGEMGR_H_
+#define XFA_FXFA_LAYOUT_CXFA_LAYOUTPAGEMGR_H_
 
 #include <iterator>
 #include <list>
 #include <map>
 #include <vector>
 
-#include "xfa/fxfa/parser/cxfa_itemlayoutprocessor.h"
+#include "xfa/fxfa/layout/cxfa_itemlayoutprocessor.h"
 
 class CXFA_ContainerRecord;
 class CXFA_LayoutItem;
@@ -144,4 +144,4 @@
   std::vector<CXFA_ContainerLayoutItem*> m_PageArray;
 };
 
-#endif  // XFA_FXFA_PARSER_CXFA_LAYOUTPAGEMGR_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_LAYOUTPAGEMGR_H_
diff --git a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp b/xfa/fxfa/layout/cxfa_layoutprocessor.cpp
similarity index 91%
rename from xfa/fxfa/parser/cxfa_layoutprocessor.cpp
rename to xfa/fxfa/layout/cxfa_layoutprocessor.cpp
index c31766f..dd6c11c 100644
--- a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_layoutprocessor.cpp
@@ -4,15 +4,15 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 
 #include "fxjs/xfa/cjx_object.h"
 #include "third_party/base/ptr_util.h"
 #include "third_party/base/stl_util.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_contentlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_itemlayoutprocessor.h"
+#include "xfa/fxfa/layout/cxfa_layoutpagemgr.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
-#include "xfa/fxfa/parser/cxfa_itemlayoutprocessor.h"
-#include "xfa/fxfa/parser/cxfa_layoutpagemgr.h"
 #include "xfa/fxfa/parser/cxfa_localemgr.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
@@ -90,9 +90,10 @@
     m_bNeedLayout = false;
     m_rgChangedContainers.clear();
   }
-  return 100 * (eStatus == XFA_ItemLayoutProcessorResult::Done
-                    ? m_nProgressCounter
-                    : m_nProgressCounter - 1) /
+  return 100 *
+         (eStatus == XFA_ItemLayoutProcessorResult::Done
+              ? m_nProgressCounter
+              : m_nProgressCounter - 1) /
          m_nProgressCounter;
 }
 
diff --git a/xfa/fxfa/parser/cxfa_layoutprocessor.h b/xfa/fxfa/layout/cxfa_layoutprocessor.h
similarity index 91%
rename from xfa/fxfa/parser/cxfa_layoutprocessor.h
rename to xfa/fxfa/layout/cxfa_layoutprocessor.h
index b5b831e..b112e73 100644
--- a/xfa/fxfa/parser/cxfa_layoutprocessor.h
+++ b/xfa/fxfa/layout/cxfa_layoutprocessor.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_LAYOUTPROCESSOR_H_
-#define XFA_FXFA_PARSER_CXFA_LAYOUTPROCESSOR_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_LAYOUTPROCESSOR_H_
+#define XFA_FXFA_LAYOUT_CXFA_LAYOUTPROCESSOR_H_
 
 #include <memory>
 #include <vector>
@@ -53,4 +53,4 @@
   bool m_bNeedLayout;
 };
 
-#endif  // XFA_FXFA_PARSER_CXFA_LAYOUTPROCESSOR_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_LAYOUTPROCESSOR_H_
diff --git a/xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h b/xfa/fxfa/layout/cxfa_traversestrategy_contentareacontainerlayoutitem.h
similarity index 84%
rename from xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h
rename to xfa/fxfa/layout/cxfa_traversestrategy_contentareacontainerlayoutitem.h
index 154d7d9..5f89538 100644
--- a/xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h
+++ b/xfa/fxfa/layout/cxfa_traversestrategy_contentareacontainerlayoutitem.h
@@ -4,10 +4,10 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
-#define XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
+#define XFA_FXFA_LAYOUT_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
 
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
+#include "xfa/fxfa/layout/cxfa_containerlayoutitem.h"
 
 class CXFA_TraverseStrategy_ContentAreaContainerLayoutItem {
  public:
@@ -41,4 +41,4 @@
   }
 };
 
-#endif  // XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h b/xfa/fxfa/layout/cxfa_traversestrategy_layoutitem.h
similarity index 78%
rename from xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h
rename to xfa/fxfa/layout/cxfa_traversestrategy_layoutitem.h
index 0371eef..357b440 100644
--- a/xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h
+++ b/xfa/fxfa/layout/cxfa_traversestrategy_layoutitem.h
@@ -4,10 +4,10 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_LAYOUTITEM_H_
-#define XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_LAYOUTITEM_H_
+#ifndef XFA_FXFA_LAYOUT_CXFA_TRAVERSESTRATEGY_LAYOUTITEM_H_
+#define XFA_FXFA_LAYOUT_CXFA_TRAVERSESTRATEGY_LAYOUTITEM_H_
 
-#include "xfa/fxfa/parser/cxfa_layoutitem.h"
+#include "xfa/fxfa/layout/cxfa_layoutitem.h"
 #include "xfa/fxfa/parser/cxfa_nodeiteratortemplate.h"
 
 class CXFA_TraverseStrategy_LayoutItem {
@@ -27,4 +27,4 @@
     CXFA_NodeIteratorTemplate<CXFA_LayoutItem,
                               CXFA_TraverseStrategy_LayoutItem>;
 
-#endif  // XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_LAYOUTITEM_H_
+#endif  // XFA_FXFA_LAYOUT_CXFA_TRAVERSESTRATEGY_LAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/BUILD.gn b/xfa/fxfa/parser/BUILD.gn
index 4bd913e..d88482b 100644
--- a/xfa/fxfa/parser/BUILD.gn
+++ b/xfa/fxfa/parser/BUILD.gn
@@ -134,14 +134,10 @@
     "cxfa_connectionset.h",
     "cxfa_connectstring.cpp",
     "cxfa_connectstring.h",
-    "cxfa_containerlayoutitem.cpp",
-    "cxfa_containerlayoutitem.h",
     "cxfa_contentarea.cpp",
     "cxfa_contentarea.h",
     "cxfa_contentcopy.cpp",
     "cxfa_contentcopy.h",
-    "cxfa_contentlayoutitem.cpp",
-    "cxfa_contentlayoutitem.h",
     "cxfa_copies.cpp",
     "cxfa_copies.h",
     "cxfa_corner.cpp",
@@ -314,8 +310,6 @@
     "cxfa_interactive.h",
     "cxfa_issuers.cpp",
     "cxfa_issuers.h",
-    "cxfa_itemlayoutprocessor.cpp",
-    "cxfa_itemlayoutprocessor.h",
     "cxfa_items.cpp",
     "cxfa_items.h",
     "cxfa_jog.cpp",
@@ -328,14 +322,6 @@
     "cxfa_labelprinter.h",
     "cxfa_layout.cpp",
     "cxfa_layout.h",
-    "cxfa_layoutcontext.cpp",
-    "cxfa_layoutcontext.h",
-    "cxfa_layoutitem.cpp",
-    "cxfa_layoutitem.h",
-    "cxfa_layoutpagemgr.cpp",
-    "cxfa_layoutpagemgr.h",
-    "cxfa_layoutprocessor.cpp",
-    "cxfa_layoutprocessor.h",
     "cxfa_level.cpp",
     "cxfa_level.h",
     "cxfa_line.cpp",
@@ -627,8 +613,6 @@
     "cxfa_traversal.h",
     "cxfa_traverse.cpp",
     "cxfa_traverse.h",
-    "cxfa_traversestrategy_contentareacontainerlayoutitem.h",
-    "cxfa_traversestrategy_layoutitem.h",
     "cxfa_traversestrategy_xfacontainernode.h",
     "cxfa_traversestrategy_xfanode.h",
     "cxfa_treelist.cpp",
diff --git a/xfa/fxfa/parser/cxfa_document.cpp b/xfa/fxfa/parser/cxfa_document.cpp
index 7bfa23a..f3f3890 100644
--- a/xfa/fxfa/parser/cxfa_document.cpp
+++ b/xfa/fxfa/parser/cxfa_document.cpp
@@ -18,6 +18,7 @@
 #include "third_party/base/stl_util.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
 #include "xfa/fxfa/cxfa_ffnotify.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cscript_datawindow.h"
 #include "xfa/fxfa/parser/cscript_eventpseudomodel.h"
 #include "xfa/fxfa/parser/cscript_hostpseudomodel.h"
@@ -31,7 +32,6 @@
 #include "xfa/fxfa/parser/cxfa_image.h"
 #include "xfa/fxfa/parser/cxfa_interactive.h"
 #include "xfa/fxfa/parser/cxfa_items.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_localemgr.h"
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxfa/parser/cxfa_occur.h"
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index 08fe391..29e8f92 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -42,6 +42,7 @@
 #include "xfa/fxfa/cxfa_ffwidget.h"
 #include "xfa/fxfa/cxfa_fontmgr.h"
 #include "xfa/fxfa/cxfa_textprovider.h"
+#include "xfa/fxfa/layout/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_accessiblecontent.h"
 #include "xfa/fxfa/parser/cxfa_acrobat.h"
 #include "xfa/fxfa/parser/cxfa_acrobat7.h"
@@ -190,7 +191,6 @@
 #include "xfa/fxfa/parser/cxfa_keyusage.h"
 #include "xfa/fxfa/parser/cxfa_labelprinter.h"
 #include "xfa/fxfa/parser/cxfa_layout.h"
-#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_level.h"
 #include "xfa/fxfa/parser/cxfa_line.h"
 #include "xfa/fxfa/parser/cxfa_linear.h"