Remove dead code in cfx_windowsrenderdevice.cpp.

This should have been moved to cwin32_platform.cpp in
https://pdfium-review.googlesource.com/74811/, not copied. Surprisingly,
the build toolchain did not complain.

Bug: pdfium:1667
Change-Id: I0e6b93814e03761bdcfd65859dbe08574f74e3cc
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/78930
Auto-Submit: Lei Zhang <thestig@chromium.org>
Commit-Queue: Daniel Hosseinian <dhoss@chromium.org>
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
diff --git a/core/fxge/cfx_windowsrenderdevice.cpp b/core/fxge/cfx_windowsrenderdevice.cpp
index e2579ae..b17016b 100644
--- a/core/fxge/cfx_windowsrenderdevice.cpp
+++ b/core/fxge/cfx_windowsrenderdevice.cpp
@@ -8,426 +8,15 @@
 
 #include <memory>
 
-#include "core/fxcrt/fx_codepage.h"
-#include "core/fxge/cfx_folderfontinfo.h"
 #include "core/fxge/renderdevicedriver_iface.h"
-#include "core/fxge/systemfontinfo_iface.h"
 #include "core/fxge/win32/cgdi_display_driver.h"
 #include "core/fxge/win32/cgdi_printer_driver.h"
 #include "core/fxge/win32/cps_printer_driver.h"
 #include "core/fxge/win32/ctext_only_printer_driver.h"
 #include "third_party/base/check.h"
-#include "third_party/base/stl_util.h"
 
 namespace {
 
-const struct {
-  const char* m_pFaceName;
-  const char* m_pVariantName;  // Note: UTF-16LE terminator required.
-} g_VariantNames[] = {
-    {"DFKai-SB", "\x19\x6A\x77\x69\xD4\x9A\x00\x00"},
-};
-
-const struct {
-  const char* m_pName;
-  const char* m_pWinName;
-  bool m_bBold;
-  bool m_bItalic;
-} g_Base14Substs[] = {
-    {"Courier", "Courier New", false, false},
-    {"Courier-Bold", "Courier New", true, false},
-    {"Courier-BoldOblique", "Courier New", true, true},
-    {"Courier-Oblique", "Courier New", false, true},
-    {"Helvetica", "Arial", false, false},
-    {"Helvetica-Bold", "Arial", true, false},
-    {"Helvetica-BoldOblique", "Arial", true, true},
-    {"Helvetica-Oblique", "Arial", false, true},
-    {"Times-Roman", "Times New Roman", false, false},
-    {"Times-Bold", "Times New Roman", true, false},
-    {"Times-BoldItalic", "Times New Roman", true, true},
-    {"Times-Italic", "Times New Roman", false, true},
-};
-
-struct FontNameMap {
-  const char* m_pSubFontName;
-  const char* m_pSrcFontName;
-};
-const FontNameMap g_JpFontNameMap[] = {
-    {"MS Mincho", "Heiseimin-W3"},
-    {"MS Gothic", "Jun101-Light"},
-};
-
-bool GetSubFontName(ByteString* name) {
-  for (size_t i = 0; i < pdfium::size(g_JpFontNameMap); ++i) {
-    if (!FXSYS_stricmp(name->c_str(), g_JpFontNameMap[i].m_pSrcFontName)) {
-      *name = g_JpFontNameMap[i].m_pSubFontName;
-      return true;
-    }
-  }
-  return false;
-}
-
-class CFX_Win32FallbackFontInfo final : public CFX_FolderFontInfo {
- public:
-  CFX_Win32FallbackFontInfo() = default;
-  ~CFX_Win32FallbackFontInfo() override = default;
-
-  // CFX_FolderFontInfo:
-  void* MapFont(int weight,
-                bool bItalic,
-                int charset,
-                int pitch_family,
-                const char* family) override;
-};
-
-class CFX_Win32FontInfo final : public SystemFontInfoIface {
- public:
-  CFX_Win32FontInfo();
-  ~CFX_Win32FontInfo() override;
-
-  // SystemFontInfoIface
-  bool EnumFontList(CFX_FontMapper* pMapper) override;
-  void* MapFont(int weight,
-                bool bItalic,
-                int charset,
-                int pitch_family,
-                const char* face) override;
-  void* GetFont(const char* face) override { return nullptr; }
-  uint32_t GetFontData(void* hFont,
-                       uint32_t table,
-                       pdfium::span<uint8_t> buffer) override;
-  bool GetFaceName(void* hFont, ByteString* name) override;
-  bool GetFontCharset(void* hFont, int* charset) override;
-  void DeleteFont(void* hFont) override;
-
-  bool IsOpenTypeFromDiv(const LOGFONTA* plf);
-  bool IsSupportFontFormDiv(const LOGFONTA* plf);
-  void AddInstalledFont(const LOGFONTA* plf, uint32_t FontType);
-  void GetGBPreference(ByteString& face, int weight, int picth_family);
-  void GetJapanesePreference(ByteString& face, int weight, int picth_family);
-  ByteString FindFont(const ByteString& name);
-
-  const HDC m_hDC;
-  UnownedPtr<CFX_FontMapper> m_pMapper;
-  ByteString m_LastFamily;
-  ByteString m_KaiTi;
-  ByteString m_FangSong;
-};
-
-int CALLBACK FontEnumProc(const LOGFONTA* plf,
-                          const TEXTMETRICA* lpntme,
-                          uint32_t FontType,
-                          LPARAM lParam) {
-  CFX_Win32FontInfo* pFontInfo = reinterpret_cast<CFX_Win32FontInfo*>(lParam);
-  pFontInfo->AddInstalledFont(plf, FontType);
-  return 1;
-}
-
-CFX_Win32FontInfo::CFX_Win32FontInfo() : m_hDC(CreateCompatibleDC(nullptr)) {}
-
-CFX_Win32FontInfo::~CFX_Win32FontInfo() {
-  DeleteDC(m_hDC);
-}
-
-bool CFX_Win32FontInfo::IsOpenTypeFromDiv(const LOGFONTA* plf) {
-  HFONT hFont = CreateFontIndirectA(plf);
-  bool ret = false;
-  uint32_t font_size = GetFontData(hFont, 0, {});
-  if (font_size != GDI_ERROR && font_size >= sizeof(uint32_t)) {
-    uint32_t lVersion = 0;
-    GetFontData(hFont, 0, {(uint8_t*)(&lVersion), sizeof(uint32_t)});
-    lVersion = (((uint32_t)(uint8_t)(lVersion)) << 24) |
-               ((uint32_t)((uint8_t)(lVersion >> 8))) << 16 |
-               ((uint32_t)((uint8_t)(lVersion >> 16))) << 8 |
-               ((uint8_t)(lVersion >> 24));
-    if (lVersion == FXBSTR_ID('O', 'T', 'T', 'O') || lVersion == 0x00010000 ||
-        lVersion == FXBSTR_ID('t', 't', 'c', 'f') ||
-        lVersion == FXBSTR_ID('t', 'r', 'u', 'e') || lVersion == 0x00020000) {
-      ret = true;
-    }
-  }
-  DeleteFont(hFont);
-  return ret;
-}
-
-bool CFX_Win32FontInfo::IsSupportFontFormDiv(const LOGFONTA* plf) {
-  HFONT hFont = CreateFontIndirectA(plf);
-  bool ret = false;
-  uint32_t font_size = GetFontData(hFont, 0, {});
-  if (font_size != GDI_ERROR && font_size >= sizeof(uint32_t)) {
-    uint32_t lVersion = 0;
-    GetFontData(hFont, 0, {(uint8_t*)(&lVersion), sizeof(lVersion)});
-    lVersion = (((uint32_t)(uint8_t)(lVersion)) << 24) |
-               ((uint32_t)((uint8_t)(lVersion >> 8))) << 16 |
-               ((uint32_t)((uint8_t)(lVersion >> 16))) << 8 |
-               ((uint8_t)(lVersion >> 24));
-    if (lVersion == FXBSTR_ID('O', 'T', 'T', 'O') || lVersion == 0x00010000 ||
-        lVersion == FXBSTR_ID('t', 't', 'c', 'f') ||
-        lVersion == FXBSTR_ID('t', 'r', 'u', 'e') || lVersion == 0x00020000 ||
-        (lVersion & 0xFFFF0000) == FXBSTR_ID(0x80, 0x01, 0x00, 0x00) ||
-        (lVersion & 0xFFFF0000) == FXBSTR_ID('%', '!', 0, 0)) {
-      ret = true;
-    }
-  }
-  DeleteFont(hFont);
-  return ret;
-}
-
-void CFX_Win32FontInfo::AddInstalledFont(const LOGFONTA* plf,
-                                         uint32_t FontType) {
-  ByteString name(plf->lfFaceName);
-  if (name.GetLength() > 0 && name[0] == '@')
-    return;
-
-  if (name == m_LastFamily) {
-    m_pMapper->AddInstalledFont(name, plf->lfCharSet);
-    return;
-  }
-  if (!(FontType & TRUETYPE_FONTTYPE)) {
-    if (!(FontType & DEVICE_FONTTYPE) || !IsSupportFontFormDiv(plf))
-      return;
-  }
-
-  m_pMapper->AddInstalledFont(name, plf->lfCharSet);
-  m_LastFamily = name;
-}
-
-bool CFX_Win32FontInfo::EnumFontList(CFX_FontMapper* pMapper) {
-  m_pMapper = pMapper;
-  LOGFONTA lf;
-  memset(&lf, 0, sizeof(LOGFONTA));
-  lf.lfCharSet = FX_CHARSET_Default;
-  lf.lfFaceName[0] = 0;
-  lf.lfPitchAndFamily = 0;
-  EnumFontFamiliesExA(m_hDC, &lf, (FONTENUMPROCA)FontEnumProc, (uintptr_t)this,
-                      0);
-  return true;
-}
-
-ByteString CFX_Win32FontInfo::FindFont(const ByteString& name) {
-  if (!m_pMapper)
-    return name;
-
-  for (size_t i = 0; i < m_pMapper->m_InstalledTTFonts.size(); ++i) {
-    ByteString thisname = m_pMapper->m_InstalledTTFonts[i];
-    if (thisname.First(name.GetLength()) == name)
-      return m_pMapper->m_InstalledTTFonts[i];
-  }
-  for (size_t i = 0; i < m_pMapper->m_LocalizedTTFonts.size(); ++i) {
-    ByteString thisname = m_pMapper->m_LocalizedTTFonts[i].first;
-    if (thisname.First(name.GetLength()) == name)
-      return m_pMapper->m_LocalizedTTFonts[i].second;
-  }
-  return ByteString();
-}
-
-void* CFX_Win32FallbackFontInfo::MapFont(int weight,
-                                         bool bItalic,
-                                         int charset,
-                                         int pitch_family,
-                                         const char* cstr_face) {
-  void* font = GetSubstFont(cstr_face);
-  if (font)
-    return font;
-
-  bool bCJK = true;
-  switch (charset) {
-    case FX_CHARSET_ShiftJIS:
-    case FX_CHARSET_ChineseSimplified:
-    case FX_CHARSET_ChineseTraditional:
-    case FX_CHARSET_Hangul:
-      break;
-    default:
-      bCJK = false;
-      break;
-  }
-  return FindFont(weight, bItalic, charset, pitch_family, cstr_face, !bCJK);
-}
-
-void CFX_Win32FontInfo::GetGBPreference(ByteString& face,
-                                        int weight,
-                                        int picth_family) {
-  if (face.Contains("KaiTi") || face.Contains("\xbf\xac")) {
-    if (m_KaiTi.IsEmpty()) {
-      m_KaiTi = FindFont("KaiTi");
-      if (m_KaiTi.IsEmpty()) {
-        m_KaiTi = "SimSun";
-      }
-    }
-    face = m_KaiTi;
-  } else if (face.Contains("FangSong") || face.Contains("\xb7\xc2\xcb\xce")) {
-    if (m_FangSong.IsEmpty()) {
-      m_FangSong = FindFont("FangSong");
-      if (m_FangSong.IsEmpty()) {
-        m_FangSong = "SimSun";
-      }
-    }
-    face = m_FangSong;
-  } else if (face.Contains("SimSun") || face.Contains("\xcb\xce")) {
-    face = "SimSun";
-  } else if (face.Contains("SimHei") || face.Contains("\xba\xda")) {
-    face = "SimHei";
-  } else if (!(picth_family & FF_ROMAN) && weight > 550) {
-    face = "SimHei";
-  } else {
-    face = "SimSun";
-  }
-}
-
-void CFX_Win32FontInfo::GetJapanesePreference(ByteString& face,
-                                              int weight,
-                                              int picth_family) {
-  if (face.Contains("Gothic") ||
-      face.Contains("\x83\x53\x83\x56\x83\x62\x83\x4e")) {
-    if (face.Contains("PGothic") ||
-        face.Contains("\x82\x6f\x83\x53\x83\x56\x83\x62\x83\x4e")) {
-      face = "MS PGothic";
-    } else if (face.Contains("UI Gothic")) {
-      face = "MS UI Gothic";
-    } else {
-      if (face.Contains("HGSGothicM") || face.Contains("HGMaruGothicMPRO")) {
-        face = "MS PGothic";
-      } else {
-        face = "MS Gothic";
-      }
-    }
-    return;
-  }
-  if (face.Contains("Mincho") || face.Contains("\x96\xbe\x92\xa9")) {
-    if (face.Contains("PMincho") || face.Contains("\x82\x6f\x96\xbe\x92\xa9")) {
-      face = "MS PMincho";
-    } else {
-      face = "MS Mincho";
-    }
-    return;
-  }
-  if (GetSubFontName(&face))
-    return;
-
-  if (!(picth_family & FF_ROMAN) && weight > 400) {
-    face = "MS PGothic";
-  } else {
-    face = "MS PMincho";
-  }
-}
-
-void* CFX_Win32FontInfo::MapFont(int weight,
-                                 bool bItalic,
-                                 int charset,
-                                 int pitch_family,
-                                 const char* cstr_face) {
-  ByteString face = cstr_face;
-  int iBaseFont;
-  for (iBaseFont = 0; iBaseFont < 12; iBaseFont++) {
-    if (face == ByteStringView(g_Base14Substs[iBaseFont].m_pName)) {
-      face = g_Base14Substs[iBaseFont].m_pWinName;
-      weight = g_Base14Substs[iBaseFont].m_bBold ? FW_BOLD : FW_NORMAL;
-      bItalic = g_Base14Substs[iBaseFont].m_bItalic;
-      break;
-    }
-  }
-  if (charset == FX_CHARSET_ANSI || charset == FX_CHARSET_Symbol)
-    charset = FX_CHARSET_Default;
-
-  int subst_pitch_family = pitch_family;
-  switch (charset) {
-    case FX_CHARSET_ShiftJIS:
-      subst_pitch_family = FF_ROMAN;
-      break;
-    case FX_CHARSET_ChineseTraditional:
-    case FX_CHARSET_Hangul:
-    case FX_CHARSET_ChineseSimplified:
-      subst_pitch_family = 0;
-      break;
-  }
-  HFONT hFont =
-      ::CreateFontA(-10, 0, 0, 0, weight, bItalic, 0, 0, charset,
-                    OUT_TT_ONLY_PRECIS, 0, 0, subst_pitch_family, face.c_str());
-  char facebuf[100];
-  HFONT hOldFont = (HFONT)::SelectObject(m_hDC, hFont);
-  ::GetTextFaceA(m_hDC, 100, facebuf);
-  ::SelectObject(m_hDC, hOldFont);
-  if (face.EqualNoCase(facebuf))
-    return hFont;
-
-  WideString wsFace = WideString::FromDefANSI(facebuf);
-  for (size_t i = 0; i < pdfium::size(g_VariantNames); ++i) {
-    if (face != g_VariantNames[i].m_pFaceName)
-      continue;
-
-    const unsigned short* pName = reinterpret_cast<const unsigned short*>(
-        g_VariantNames[i].m_pVariantName);
-    size_t len = WideString::WStringLength(pName);
-    WideString wsName = WideString::FromUTF16LE(pName, len);
-    if (wsFace == wsName)
-      return hFont;
-  }
-  ::DeleteObject(hFont);
-  if (charset == FX_CHARSET_Default)
-    return nullptr;
-
-  switch (charset) {
-    case FX_CHARSET_ShiftJIS:
-      GetJapanesePreference(face, weight, pitch_family);
-      break;
-    case FX_CHARSET_ChineseSimplified:
-      GetGBPreference(face, weight, pitch_family);
-      break;
-    case FX_CHARSET_Hangul:
-      face = "Gulim";
-      break;
-    case FX_CHARSET_ChineseTraditional:
-      if (face.Contains("MSung")) {
-        face = "MingLiU";
-      } else {
-        face = "PMingLiU";
-      }
-      break;
-  }
-  hFont =
-      ::CreateFontA(-10, 0, 0, 0, weight, bItalic, 0, 0, charset,
-                    OUT_TT_ONLY_PRECIS, 0, 0, subst_pitch_family, face.c_str());
-  return hFont;
-}
-
-void CFX_Win32FontInfo::DeleteFont(void* hFont) {
-  ::DeleteObject(hFont);
-}
-
-uint32_t CFX_Win32FontInfo::GetFontData(void* hFont,
-                                        uint32_t table,
-                                        pdfium::span<uint8_t> buffer) {
-  HFONT hOldFont = (HFONT)::SelectObject(m_hDC, (HFONT)hFont);
-  table = FXDWORD_GET_MSBFIRST(reinterpret_cast<uint8_t*>(&table));
-  uint32_t size = ::GetFontData(m_hDC, table, 0, buffer.data(), buffer.size());
-  ::SelectObject(m_hDC, hOldFont);
-  if (size == GDI_ERROR) {
-    return 0;
-  }
-  return size;
-}
-
-bool CFX_Win32FontInfo::GetFaceName(void* hFont, ByteString* name) {
-  char facebuf[100];
-  HFONT hOldFont = (HFONT)::SelectObject(m_hDC, (HFONT)hFont);
-  int ret = ::GetTextFaceA(m_hDC, 100, facebuf);
-  ::SelectObject(m_hDC, hOldFont);
-  if (ret == 0) {
-    return false;
-  }
-  *name = facebuf;
-  return true;
-}
-
-bool CFX_Win32FontInfo::GetFontCharset(void* hFont, int* charset) {
-  TEXTMETRIC tm;
-  HFONT hOldFont = (HFONT)::SelectObject(m_hDC, (HFONT)hFont);
-  ::GetTextMetrics(m_hDC, &tm);
-  ::SelectObject(m_hDC, hOldFont);
-  *charset = tm.tmCharSet;
-  return true;
-}
-
 std::unique_ptr<RenderDeviceDriverIface> CreateDriver(
     HDC hDC,
     const EncoderIface* pEncoderIface) {