Move fontglobal and fxcodec initialization to cpdf_pagemodule.cpp.

Then remove a number of dependent modules from BUILD.gn. This is
an intermediate step before removing CPDF_ModuleMgr entirely.

Change-Id: I4c54fcdc2dcda72c81e89b95744fe79da9982ddb
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/58551
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/BUILD.gn b/core/fpdfapi/BUILD.gn
index e364e7c..331f100 100644
--- a/core/fpdfapi/BUILD.gn
+++ b/core/fpdfapi/BUILD.gn
@@ -13,13 +13,7 @@
   configs += [ "../../:pdfium_core_config" ]
   deps = [
     "../fxcodec",
-    "../fxcrt",
-    "../fxge",
-    "edit",
-    "font",
     "page",
-    "parser",
-    "render",
   ]
   visibility = [ "../../*" ]
 }
diff --git a/core/fpdfapi/cpdf_modulemgr.cpp b/core/fpdfapi/cpdf_modulemgr.cpp
index 0cac7ef..b238719 100644
--- a/core/fpdfapi/cpdf_modulemgr.cpp
+++ b/core/fpdfapi/cpdf_modulemgr.cpp
@@ -6,9 +6,7 @@
 
 #include "core/fpdfapi/cpdf_modulemgr.h"
 
-#include "core/fpdfapi/font/cpdf_fontglobals.h"
 #include "core/fpdfapi/page/cpdf_pagemodule.h"
-#include "core/fxcodec/fx_codec.h"
 
 namespace {
 
@@ -19,9 +17,7 @@
 // static
 void CPDF_ModuleMgr::Create() {
   ASSERT(!g_bModuleMgrCreated);
-  fxcodec::ModuleMgr::Create();
   CPDF_PageModule::Create();
-  CPDF_FontGlobals::GetInstance()->LoadEmbeddedMaps();
   g_bModuleMgrCreated = true;
 }
 
@@ -29,6 +25,5 @@
 void CPDF_ModuleMgr::Destroy() {
   ASSERT(g_bModuleMgrCreated);
   CPDF_PageModule::Destroy();
-  fxcodec::ModuleMgr::Destroy();
   g_bModuleMgrCreated = false;
 }
diff --git a/core/fpdfapi/page/cpdf_pagemodule.cpp b/core/fpdfapi/page/cpdf_pagemodule.cpp
index 65aba70..705d313 100644
--- a/core/fpdfapi/page/cpdf_pagemodule.cpp
+++ b/core/fpdfapi/page/cpdf_pagemodule.cpp
@@ -10,6 +10,7 @@
 #include "core/fpdfapi/page/cpdf_colorspace.h"
 #include "core/fpdfapi/page/cpdf_devicecs.h"
 #include "core/fpdfapi/page/cpdf_patterncs.h"
+#include "core/fxcodec/fx_codec.h"
 
 namespace {
 
@@ -20,6 +21,7 @@
 // static
 void CPDF_PageModule::Create() {
   ASSERT(!g_PageModule);
+  fxcodec::ModuleMgr::Create();
   g_PageModule = new CPDF_PageModule();
 }
 
@@ -28,6 +30,7 @@
   ASSERT(g_PageModule);
   delete g_PageModule;
   g_PageModule = nullptr;
+  fxcodec::ModuleMgr::Destroy();
 }
 
 // static
@@ -43,6 +46,7 @@
       m_StockPatternCS(pdfium::MakeRetain<CPDF_PatternCS>(nullptr)) {
   m_StockPatternCS->InitializeStockPattern();
   CPDF_FontGlobals::Create();
+  CPDF_FontGlobals::GetInstance()->LoadEmbeddedMaps();
 }
 
 CPDF_PageModule::~CPDF_PageModule() {