Split xfa_layout_appadapter

This moves the needed traverse strategies into their own files, removes the
unused one and cleans up the includes.

Review-Url: https://codereview.chromium.org/2207033002
diff --git a/BUILD.gn b/BUILD.gn
index a03102a..0b9b4e0 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1473,6 +1473,8 @@
       "xfa/fxfa/parser/cxfa_thisproxy.cpp",
       "xfa/fxfa/parser/cxfa_tooltip.cpp",
       "xfa/fxfa/parser/cxfa_tooltip.h",
+      "xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h",
+      "xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h",
       "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h",
       "xfa/fxfa/parser/cxfa_validate.cpp",
       "xfa/fxfa/parser/cxfa_validate.h",
@@ -1496,8 +1498,6 @@
       "xfa/fxfa/parser/xfa_basic_data_packets.cpp",
       "xfa/fxfa/parser/xfa_document_datamerger_imp.cpp",
       "xfa/fxfa/parser/xfa_document_datamerger_imp.h",
-      "xfa/fxfa/parser/xfa_layout_appadapter.cpp",
-      "xfa/fxfa/parser/xfa_layout_appadapter.h",
       "xfa/fxfa/parser/xfa_layout_itemlayout.cpp",
       "xfa/fxfa/parser/xfa_layout_itemlayout.h",
       "xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp",
diff --git a/xfa.gyp b/xfa.gyp
index b311458..1a18494 100644
--- a/xfa.gyp
+++ b/xfa.gyp
@@ -531,6 +531,8 @@
         "xfa/fxfa/parser/cxfa_thisproxy.cpp",
         "xfa/fxfa/parser/cxfa_tooltip.cpp",
         "xfa/fxfa/parser/cxfa_tooltip.h",
+        "xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h",
+        "xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h",
         "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h",
         "xfa/fxfa/parser/cxfa_validate.cpp",
         "xfa/fxfa/parser/cxfa_validate.h",
@@ -554,8 +556,6 @@
         "xfa/fxfa/parser/xfa_basic_data.h",
         "xfa/fxfa/parser/xfa_document_datamerger_imp.cpp",
         "xfa/fxfa/parser/xfa_document_datamerger_imp.h",
-        "xfa/fxfa/parser/xfa_layout_appadapter.cpp",
-        "xfa/fxfa/parser/xfa_layout_appadapter.h",
         "xfa/fxfa/parser/xfa_layout_itemlayout.cpp",
         "xfa/fxfa/parser/xfa_layout_itemlayout.h",
         "xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp",
diff --git a/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp b/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
index 492e8d9..b8330ed 100644
--- a/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
+++ b/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
@@ -18,7 +18,7 @@
 #include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_scriptcontext.h"
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
+#include "xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h"
 #include "xfa/fxfa/parser/xfa_localemgr.h"
 #include "xfa/fxfa/parser/xfa_object.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
diff --git a/xfa/fxfa/parser/cxfa_layoutitem.cpp b/xfa/fxfa/parser/cxfa_layoutitem.cpp
index a9ba349..ebe33b6 100644
--- a/xfa/fxfa/parser/cxfa_layoutitem.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutitem.cpp
@@ -6,9 +6,32 @@
 
 #include "xfa/fxfa/parser/cxfa_layoutitem.h"
 
+#include "xfa/fxfa/app/xfa_ffnotify.h"
 #include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
 #include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
 
+void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem) {
+  CXFA_LayoutItem* pNode = pLayoutItem->m_pFirstChild;
+  CXFA_FFNotify* pNotify = pLayoutItem->m_pFormNode->GetDocument()->GetNotify();
+  CXFA_LayoutProcessor* pDocLayout =
+      pLayoutItem->m_pFormNode->GetDocument()->GetDocLayout();
+  while (pNode) {
+    CXFA_LayoutItem* pNext = pNode->m_pNextSibling;
+    pNode->m_pParent = nullptr;
+    pNotify->OnLayoutItemRemoving(pDocLayout,
+                                  static_cast<CXFA_LayoutItem*>(pNode));
+    XFA_ReleaseLayoutItem(pNode);
+    pNode = pNext;
+  }
+
+  pNotify->OnLayoutItemRemoving(pDocLayout, pLayoutItem);
+  if (pLayoutItem->m_pFormNode->GetElementType() == XFA_Element::PageArea) {
+    pNotify->OnPageEvent(static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem),
+                         XFA_PAGEVIEWEVENT_PostRemoved);
+  }
+  delete pLayoutItem;
+}
+
 CXFA_LayoutItem::CXFA_LayoutItem(CXFA_Node* pNode, FX_BOOL bIsContentLayoutItem)
     : m_pFormNode(pNode),
       m_pParent(nullptr),
diff --git a/xfa/fxfa/parser/cxfa_layoutitem.h b/xfa/fxfa/parser/cxfa_layoutitem.h
index c8b2981..bacb2b8 100644
--- a/xfa/fxfa/parser/cxfa_layoutitem.h
+++ b/xfa/fxfa/parser/cxfa_layoutitem.h
@@ -13,6 +13,8 @@
 class CXFA_ContentLayoutItem;
 class CXFA_LayoutProcessor;
 
+void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem);
+
 class CXFA_LayoutItem {
  public:
   virtual ~CXFA_LayoutItem();
diff --git a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp b/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
index 89ea0ce..875bcc6 100644
--- a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
+++ b/xfa/fxfa/parser/cxfa_layoutprocessor.cpp
@@ -6,10 +6,10 @@
 
 #include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
 
+#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
 #include "xfa/fxfa/parser/cxfa_document.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/xfa_document_datamerger_imp.h"
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
 #include "xfa/fxfa/parser/xfa_layout_itemlayout.h"
 #include "xfa/fxfa/parser/xfa_layout_pagemgr_new.h"
 #include "xfa/fxfa/parser/xfa_localemgr.h"
diff --git a/xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h b/xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h
new file mode 100644
index 0000000..e0a584e
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h
@@ -0,0 +1,44 @@
+// Copyright 2016 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_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
+#define XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
+
+#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
+
+class CXFA_TraverseStrategy_ContentAreaContainerLayoutItem {
+ public:
+  static CXFA_ContainerLayoutItem* GetFirstChild(
+      CXFA_ContainerLayoutItem* pLayoutItem) {
+    for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pFirstChild; pChildItem;
+         pChildItem = pChildItem->m_pNextSibling) {
+      if (CXFA_ContainerLayoutItem* pContainer =
+              pChildItem->AsContainerLayoutItem()) {
+        return pContainer;
+      }
+    }
+    return nullptr;
+  }
+
+  static CXFA_ContainerLayoutItem* GetNextSibling(
+      CXFA_ContainerLayoutItem* pLayoutItem) {
+    for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pNextSibling; pChildItem;
+         pChildItem = pChildItem->m_pNextSibling) {
+      if (CXFA_ContainerLayoutItem* pContainer =
+              pChildItem->AsContainerLayoutItem()) {
+        return pContainer;
+      }
+    }
+    return nullptr;
+  }
+
+  static CXFA_ContainerLayoutItem* GetParent(
+      CXFA_ContainerLayoutItem* pLayoutItem) {
+    return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pParent);
+  }
+};
+
+#endif  // XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTAREACONTAINERLAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h b/xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h
new file mode 100644
index 0000000..de0d52a
--- /dev/null
+++ b/xfa/fxfa/parser/cxfa_traversestrategy_contentlayoutitem.h
@@ -0,0 +1,30 @@
+// Copyright 2016 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_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTLAYOUTITEM_H_
+#define XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTLAYOUTITEM_H_
+
+#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
+
+class CXFA_TraverseStrategy_ContentLayoutItem {
+ public:
+  static CXFA_ContentLayoutItem* GetFirstChild(
+      CXFA_ContentLayoutItem* pLayoutItem) {
+    return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pFirstChild);
+  }
+
+  static CXFA_ContentLayoutItem* GetNextSibling(
+      CXFA_ContentLayoutItem* pLayoutItem) {
+    return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pNextSibling);
+  }
+
+  static CXFA_ContentLayoutItem* GetParent(
+      CXFA_ContentLayoutItem* pLayoutItem) {
+    return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pParent);
+  }
+};
+
+#endif  // XFA_FXFA_PARSER_CXFA_TRAVERSESTRATEGY_CONTENTLAYOUTITEM_H_
diff --git a/xfa/fxfa/parser/xfa_layout_appadapter.cpp b/xfa/fxfa/parser/xfa_layout_appadapter.cpp
deleted file mode 100644
index fdf9a27..0000000
--- a/xfa/fxfa/parser/xfa_layout_appadapter.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2014 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/parser/xfa_layout_appadapter.h"
-
-#include "xfa/fxfa/app/xfa_ffnotify.h"
-#include "xfa/fxfa/parser/cxfa_document.h"
-#include "xfa/fxfa/parser/xfa_layout_itemlayout.h"
-#include "xfa/fxfa/parser/xfa_layout_pagemgr_new.h"
-#include "xfa/fxfa/parser/xfa_localemgr.h"
-#include "xfa/fxfa/parser/xfa_object.h"
-#include "xfa/fxfa/parser/xfa_utils.h"
-
-void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem) {
-  CXFA_LayoutItem* pNode = pLayoutItem->m_pFirstChild;
-  CXFA_FFNotify* pNotify = pLayoutItem->m_pFormNode->GetDocument()->GetNotify();
-  CXFA_LayoutProcessor* pDocLayout =
-      pLayoutItem->m_pFormNode->GetDocument()->GetDocLayout();
-  while (pNode) {
-    CXFA_LayoutItem* pNext = pNode->m_pNextSibling;
-    pNode->m_pParent = nullptr;
-    pNotify->OnLayoutItemRemoving(pDocLayout,
-                                  static_cast<CXFA_LayoutItem*>(pNode));
-    XFA_ReleaseLayoutItem(pNode);
-    pNode = pNext;
-  }
-  pNotify->OnLayoutItemRemoving(pDocLayout, pLayoutItem);
-  if (pLayoutItem->m_pFormNode->GetElementType() == XFA_Element::PageArea) {
-    pNotify->OnPageEvent(static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem),
-                         XFA_PAGEVIEWEVENT_PostRemoved);
-  }
-  delete pLayoutItem;
-}
diff --git a/xfa/fxfa/parser/xfa_layout_appadapter.h b/xfa/fxfa/parser/xfa_layout_appadapter.h
deleted file mode 100644
index 7de62e6..0000000
--- a/xfa/fxfa/parser/xfa_layout_appadapter.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2014 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_PARSER_XFA_LAYOUT_APPADAPTER_H_
-#define XFA_FXFA_PARSER_XFA_LAYOUT_APPADAPTER_H_
-
-#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h"
-#include "xfa/fxfa/parser/cxfa_layoutitem.h"
-
-class CXFA_TraverseStrategy_PageAreaContainerLayoutItem {
- public:
-  static inline CXFA_ContainerLayoutItem* GetFirstChild(
-      CXFA_ContainerLayoutItem* pLayoutItem) {
-    if (pLayoutItem->m_pFormNode->GetElementType() == XFA_Element::PageSet) {
-      return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pFirstChild);
-    }
-    return nullptr;
-  }
-  static inline CXFA_ContainerLayoutItem* GetNextSibling(
-      CXFA_ContainerLayoutItem* pLayoutItem) {
-    return (CXFA_ContainerLayoutItem*)pLayoutItem->m_pNextSibling;
-  }
-  static inline CXFA_ContainerLayoutItem* GetParent(
-      CXFA_ContainerLayoutItem* pLayoutItem) {
-    return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pParent);
-  }
-};
-
-class CXFA_TraverseStrategy_ContentAreaContainerLayoutItem {
- public:
-  static inline CXFA_ContainerLayoutItem* GetFirstChild(
-      CXFA_ContainerLayoutItem* pLayoutItem) {
-    for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pFirstChild; pChildItem;
-         pChildItem = pChildItem->m_pNextSibling) {
-      if (CXFA_ContainerLayoutItem* pContainer =
-              pChildItem->AsContainerLayoutItem()) {
-        return pContainer;
-      }
-    }
-    return nullptr;
-  }
-  static inline CXFA_ContainerLayoutItem* GetNextSibling(
-      CXFA_ContainerLayoutItem* pLayoutItem) {
-    for (CXFA_LayoutItem* pChildItem = pLayoutItem->m_pNextSibling; pChildItem;
-         pChildItem = pChildItem->m_pNextSibling) {
-      if (CXFA_ContainerLayoutItem* pContainer =
-              pChildItem->AsContainerLayoutItem()) {
-        return pContainer;
-      }
-    }
-    return nullptr;
-  }
-  static inline CXFA_ContainerLayoutItem* GetParent(
-      CXFA_ContainerLayoutItem* pLayoutItem) {
-    return static_cast<CXFA_ContainerLayoutItem*>(pLayoutItem->m_pParent);
-  }
-};
-
-class CXFA_TraverseStrategy_ContentLayoutItem {
- public:
-  static inline CXFA_ContentLayoutItem* GetFirstChild(
-      CXFA_ContentLayoutItem* pLayoutItem) {
-    return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pFirstChild);
-  }
-  static inline CXFA_ContentLayoutItem* GetNextSibling(
-      CXFA_ContentLayoutItem* pLayoutItem) {
-    return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pNextSibling);
-  }
-  static inline CXFA_ContentLayoutItem* GetParent(
-      CXFA_ContentLayoutItem* pLayoutItem) {
-    return static_cast<CXFA_ContentLayoutItem*>(pLayoutItem->m_pParent);
-  }
-};
-
-void XFA_ReleaseLayoutItem(CXFA_LayoutItem* pLayoutItem);
-
-#endif  // XFA_FXFA_PARSER_XFA_LAYOUT_APPADAPTER_H_
diff --git a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
index 2a467a5..72a3ff4 100644
--- a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
+++ b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
@@ -10,10 +10,11 @@
 #include <memory>
 
 #include "xfa/fxfa/app/xfa_ffnotify.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_measurement.h"
 #include "xfa/fxfa/parser/cxfa_occur.h"
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
 #include "xfa/fxfa/parser/xfa_layout_pagemgr_new.h"
 #include "xfa/fxfa/parser/xfa_localemgr.h"
 #include "xfa/fxfa/parser/xfa_object.h"
diff --git a/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp b/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
index 914ce6f..a88ccce 100644
--- a/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
+++ b/xfa/fxfa/parser/xfa_layout_pagemgr_new.cpp
@@ -7,13 +7,15 @@
 #include "xfa/fxfa/parser/xfa_layout_pagemgr_new.h"
 
 #include "xfa/fxfa/app/xfa_ffnotify.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_layoutprocessor.h"
 #include "xfa/fxfa/parser/cxfa_measurement.h"
 #include "xfa/fxfa/parser/cxfa_scriptcontext.h"
+#include "xfa/fxfa/parser/cxfa_traversestrategy_contentareacontainerlayoutitem.h"
 #include "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h"
 #include "xfa/fxfa/parser/xfa_document_datamerger_imp.h"
-#include "xfa/fxfa/parser/xfa_layout_appadapter.h"
 #include "xfa/fxfa/parser/xfa_layout_itemlayout.h"
 #include "xfa/fxfa/parser/xfa_localemgr.h"
 #include "xfa/fxfa/parser/xfa_object.h"