Prune some more cross-component fpdfapi/parser -> page includes.

Theoretically, someday we could have render >> page >> font >> parser.
Move a small amount of work from CPDF_Document into its callers and
fix IWYU cascade.

Change-Id: I52218e8d7492685ffced025580f32ecbb6a10c1c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/55550
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
index 7659413..87e27ca 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
@@ -9,6 +9,7 @@
 #include <vector>
 
 #include "core/fpdfapi/page/cpdf_pageobject.h"
+#include "core/fpdfapi/page/cpdf_pageobjectholder.h"
 #include "core/fpdfapi/parser/cpdf_array.h"
 #include "core/fpdfapi/parser/cpdf_dictionary.h"
 #include "core/fpdfapi/parser/cpdf_document.h"
diff --git a/core/fpdfapi/page/cpdf_colorspace.cpp b/core/fpdfapi/page/cpdf_colorspace.cpp
index 70bef78..dcfd59d 100644
--- a/core/fpdfapi/page/cpdf_colorspace.cpp
+++ b/core/fpdfapi/page/cpdf_colorspace.cpp
@@ -876,7 +876,7 @@
     return 0;
 
   uint32_t nComponents = static_cast<uint32_t>(nDictComponents);
-  m_pProfile = pDoc->LoadIccProfile(pStream);
+  m_pProfile = pDoc->GetPageData()->GetIccProfile(pStream);
   if (!m_pProfile)
     return 0;
 
diff --git a/core/fpdfapi/page/cpdf_imageobject.h b/core/fpdfapi/page/cpdf_imageobject.h
index 41611b8..b28e733 100644
--- a/core/fpdfapi/page/cpdf_imageobject.h
+++ b/core/fpdfapi/page/cpdf_imageobject.h
@@ -7,11 +7,10 @@
 #ifndef CORE_FPDFAPI_PAGE_CPDF_IMAGEOBJECT_H_
 #define CORE_FPDFAPI_PAGE_CPDF_IMAGEOBJECT_H_
 
+#include "core/fpdfapi/page/cpdf_image.h"
 #include "core/fpdfapi/page/cpdf_pageobject.h"
 #include "core/fxcrt/fx_coordinates.h"
 
-class CPDF_Image;
-
 class CPDF_ImageObject final : public CPDF_PageObject {
  public:
   explicit CPDF_ImageObject(int32_t content_stream);
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 8b5b10c..96dc904 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -813,7 +813,7 @@
 CPDF_ImageObject* CPDF_StreamContentParser::AddImage(uint32_t streamObjNum) {
   auto pImageObj =
       pdfium::MakeUnique<CPDF_ImageObject>(GetCurrentStreamIndex());
-  pImageObj->SetImage(m_pDocument->LoadImageFromPageData(streamObjNum));
+  pImageObj->SetImage(m_pDocument->GetPageData()->GetImage(streamObjNum));
   return AddImageObject(std::move(pImageObj));
 }
 
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp
index 9b8cc0b..629a73b 100644
--- a/core/fpdfapi/parser/cpdf_document.cpp
+++ b/core/fpdfapi/parser/cpdf_document.cpp
@@ -13,7 +13,6 @@
 
 #include "build/build_config.h"
 #include "core/fpdfapi/page/cpdf_docpagedata.h"
-#include "core/fpdfapi/page/cpdf_iccprofile.h"
 #include "core/fpdfapi/page/cpdf_pagemodule.h"
 #include "core/fpdfapi/parser/cpdf_array.h"
 #include "core/fpdfapi/parser/cpdf_dictionary.h"
@@ -26,7 +25,6 @@
 #include "core/fpdfapi/parser/cpdf_stream.h"
 #include "core/fpdfapi/parser/cpdf_stream_acc.h"
 #include "core/fpdfapi/parser/cpdf_string.h"
-#include "core/fpdfapi/render/cpdf_dibbase.h"
 #include "core/fpdfapi/render/cpdf_docrenderdata.h"
 #include "core/fxcodec/JBig2_DocumentContext.h"
 #include "core/fxcrt/fx_codepage.h"
@@ -487,17 +485,6 @@
   return m_pDocPage->GetPattern(pPatternObj, bShading, matrix);
 }
 
-RetainPtr<CPDF_IccProfile> CPDF_Document::LoadIccProfile(
-    const CPDF_Stream* pStream) {
-  return m_pDocPage->GetIccProfile(pStream);
-}
-
-RetainPtr<CPDF_Image> CPDF_Document::LoadImageFromPageData(
-    uint32_t dwStreamObjNum) {
-  ASSERT(dwStreamObjNum);
-  return m_pDocPage->GetImage(dwStreamObjNum);
-}
-
 void CPDF_Document::CreateNewDoc() {
   ASSERT(!m_pRootDict);
   ASSERT(!m_pInfoDict);
diff --git a/core/fpdfapi/parser/cpdf_document.h b/core/fpdfapi/parser/cpdf_document.h
index 172e991..fa80747 100644
--- a/core/fpdfapi/parser/cpdf_document.h
+++ b/core/fpdfapi/parser/cpdf_document.h
@@ -14,8 +14,6 @@
 #include <vector>
 
 #include "build/build_config.h"
-#include "core/fpdfapi/page/cpdf_image.h"
-#include "core/fpdfapi/page/cpdf_page.h"
 #include "core/fpdfapi/parser/cpdf_object.h"
 #include "core/fpdfapi/parser/cpdf_parser.h"
 #include "core/fxcrt/observable.h"
@@ -28,7 +26,6 @@
 class CPDF_DocRenderData;
 class CPDF_Font;
 class CPDF_FontEncoding;
-class CPDF_IccProfile;
 class CPDF_LinearizedHeader;
 class CPDF_Object;
 class CPDF_Pattern;
@@ -106,9 +103,7 @@
                             bool bShading,
                             const CFX_Matrix& matrix);
 
-  RetainPtr<CPDF_Image> LoadImageFromPageData(uint32_t dwStreamObjNum);
   RetainPtr<CPDF_StreamAcc> LoadFontFile(const CPDF_Stream* pStream);
-  RetainPtr<CPDF_IccProfile> LoadIccProfile(const CPDF_Stream* pStream);
 
   //  CPDF_Parser::ParsedObjectsHolder overrides:
   bool TryInit() override;
diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.cpp b/core/fpdfapi/render/cpdf_imagecacheentry.cpp
index 9691937..134f023 100644
--- a/core/fpdfapi/render/cpdf_imagecacheentry.cpp
+++ b/core/fpdfapi/render/cpdf_imagecacheentry.cpp
@@ -9,6 +9,7 @@
 #include <memory>
 #include <utility>
 
+#include "core/fpdfapi/page/cpdf_image.h"
 #include "core/fpdfapi/page/cpdf_page.h"
 #include "core/fpdfapi/parser/cpdf_dictionary.h"
 #include "core/fpdfapi/parser/cpdf_document.h"