Reset Skia renderer state in FPDF_DestroyLibrary()

Since FPDF_InitLibraryWithConfig() can set the Skia renderer to use,
FPDF_DestroyLibrary() should reset it. Also slightly reorder
FPDF_DestroyLibrary() to be the reverse of FPDF_InitLibraryWithConfig().

Bug: pdfium:2087
Change-Id: I6f00c2a3cff2209b72501268873f917f84ce25cd
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/113091
Reviewed-by: Nigi <nigi@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/fpdf_view.cpp b/fpdfsdk/fpdf_view.cpp
index 107653e..d6a58cc 100644
--- a/fpdfsdk/fpdf_view.cpp
+++ b/fpdfsdk/fpdf_view.cpp
@@ -116,7 +116,7 @@
 
 bool g_bLibraryInitialized = false;
 
-void UseRendererType(FPDF_RENDERER_TYPE public_type) {
+void SetRendererType(FPDF_RENDERER_TYPE public_type) {
   // Internal definition of renderer types must stay updated with respect to
   // the public definition, such that all public definitions can be mapped to
   // an internal definition in `CFX_DefaultRenderDevice`. A public definition
@@ -140,6 +140,13 @@
 #endif
 }
 
+void ResetRendererType() {
+#if defined(_SKIA_SUPPORT_)
+  CFX_DefaultRenderDevice::SetRendererType(
+      CFX_DefaultRenderDevice::kDefaultRenderer);
+#endif
+}
+
 RetainPtr<const CPDF_Object> GetXFAEntryFromDocument(const CPDF_Document* doc) {
   const CPDF_Dictionary* root = doc->GetRoot();
   if (!root)
@@ -235,7 +242,7 @@
                             platform);
 
     if (config->version >= 4)
-      UseRendererType(config->m_RendererType);
+      SetRendererType(config->m_RendererType);
   }
   g_bLibraryInitialized = true;
 }
@@ -244,13 +251,16 @@
   if (!g_bLibraryInitialized)
     return;
 
+  ResetRendererType();
+
+  IJS_Runtime::Destroy();
+
 #ifdef PDF_ENABLE_XFA
   CPDFXFA_ModuleDestroy();
 #endif  // PDF_ENABLE_XFA
 
   CPDF_PageModule::Destroy();
   CFX_GEModule::Destroy();
-  IJS_Runtime::Destroy();
 
   g_bLibraryInitialized = false;
 }
diff --git a/fpdfsdk/fpdf_view_embeddertest.cpp b/fpdfsdk/fpdf_view_embeddertest.cpp
index 72ab956..698a554 100644
--- a/fpdfsdk/fpdf_view_embeddertest.cpp
+++ b/fpdfsdk/fpdf_view_embeddertest.cpp
@@ -2132,8 +2132,7 @@
     CloseDocument();
   }
 
-  // TODO(pdfium:2087): These checksums should not be equal.
-  EXPECT_EQ(agg_checksum, skia_checksum);
+  EXPECT_NE(agg_checksum, skia_checksum);
 
   EmbedderTestEnvironment::GetInstance()->TearDown();
   EmbedderTestEnvironment::GetInstance()->SetUp();