Convert string class names

Automated using git grep & sed.
Replace StringC classes with StringView classes.
Remove the CFX_ prefix and put string classes in fxcrt namespace.
Change AsStringC() to AsStringView().
Rename tests from TEST(fxcrt, *String*Foo) to TEST(*String*,
Foo).
Couple of tests needed to have their names regularlized.

BUG=pdfium:894

Change-Id: I7ca038685c8d803795f3ed02545124f7a224c83d
Reviewed-on: https://pdfium-review.googlesource.com/14151
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Ryan Harrison <rharrison@chromium.org>
diff --git a/fpdfsdk/cba_annotiterator.cpp b/fpdfsdk/cba_annotiterator.cpp
index 3e35ff8..d1c9599 100644
--- a/fpdfsdk/cba_annotiterator.cpp
+++ b/fpdfsdk/cba_annotiterator.cpp
@@ -34,7 +34,7 @@
       m_pPageView(pPageView),
       m_nAnnotSubtype(nAnnotSubtype) {
   CPDF_Page* pPDFPage = m_pPageView->GetPDFPage();
-  CFX_ByteString sTabs = pPDFPage->m_pFormDict->GetStringFor("Tabs");
+  ByteString sTabs = pPDFPage->m_pFormDict->GetStringFor("Tabs");
   if (sTabs == "R")
     m_eTabOrder = ROW;
   else if (sTabs == "C")
diff --git a/fpdfsdk/cfx_systemhandler.cpp b/fpdfsdk/cfx_systemhandler.cpp
index c8b1ef4..9534d7b 100644
--- a/fpdfsdk/cfx_systemhandler.cpp
+++ b/fpdfsdk/cfx_systemhandler.cpp
@@ -89,7 +89,7 @@
   m_pFormFillEnv->SetCursor(nCursorType);
 }
 
-bool CFX_SystemHandler::FindNativeTrueTypeFont(CFX_ByteString sFontFaceName) {
+bool CFX_SystemHandler::FindNativeTrueTypeFont(ByteString sFontFaceName) {
   CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr();
   if (!pFontMgr)
     return false;
@@ -102,11 +102,11 @@
     pFontMapper->LoadInstalledFonts();
 
   for (const auto& font : pFontMapper->m_InstalledTTFonts) {
-    if (font.Compare(sFontFaceName.AsStringC()))
+    if (font.Compare(sFontFaceName.AsStringView()))
       return true;
   }
   for (const auto& fontPair : pFontMapper->m_LocalizedTTFonts) {
-    if (fontPair.first.Compare(sFontFaceName.AsStringC()))
+    if (fontPair.first.Compare(sFontFaceName.AsStringView()))
       return true;
   }
   return false;
@@ -114,7 +114,7 @@
 
 CPDF_Font* CFX_SystemHandler::AddNativeTrueTypeFontToPDF(
     CPDF_Document* pDoc,
-    CFX_ByteString sFontFaceName,
+    ByteString sFontFaceName,
     uint8_t nCharset) {
   if (!pDoc)
     return nullptr;
diff --git a/fpdfsdk/cfx_systemhandler.h b/fpdfsdk/cfx_systemhandler.h
index c526305..a2ad024 100644
--- a/fpdfsdk/cfx_systemhandler.h
+++ b/fpdfsdk/cfx_systemhandler.h
@@ -58,9 +58,9 @@
   void OutputSelectedRect(CFFL_FormFiller* pFormFiller, CFX_FloatRect& rect);
   bool IsSelectionImplemented() const;
   void SetCursor(int32_t nCursorType);
-  bool FindNativeTrueTypeFont(CFX_ByteString sFontFaceName);
+  bool FindNativeTrueTypeFont(ByteString sFontFaceName);
   CPDF_Font* AddNativeTrueTypeFontToPDF(CPDF_Document* pDoc,
-                                        CFX_ByteString sFontFaceName,
+                                        ByteString sFontFaceName,
                                         uint8_t nCharset);
 
   int32_t SetTimer(int32_t uElapse, TimerCallback lpTimerFunc);
diff --git a/fpdfsdk/cpdfsdk_annothandlermgr.cpp b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
index a1ac14c..2966b4d 100644
--- a/fpdfsdk/cpdfsdk_annothandlermgr.cpp
+++ b/fpdfsdk/cpdfsdk_annothandlermgr.cpp
@@ -76,14 +76,13 @@
   GetAnnotHandler(pAnnot)->OnLoad(pAnnot);
 }
 
-CFX_WideString CPDFSDK_AnnotHandlerMgr::Annot_GetSelectedText(
+WideString CPDFSDK_AnnotHandlerMgr::Annot_GetSelectedText(
     CPDFSDK_Annot* pAnnot) {
   return GetAnnotHandler(pAnnot)->GetSelectedText(pAnnot);
 }
 
-void CPDFSDK_AnnotHandlerMgr::Annot_ReplaceSelection(
-    CPDFSDK_Annot* pAnnot,
-    const CFX_WideString& text) {
+void CPDFSDK_AnnotHandlerMgr::Annot_ReplaceSelection(CPDFSDK_Annot* pAnnot,
+                                                     const WideString& text) {
   GetAnnotHandler(pAnnot)->ReplaceSelection(pAnnot, text);
 }
 
diff --git a/fpdfsdk/cpdfsdk_annothandlermgr.h b/fpdfsdk/cpdfsdk_annothandlermgr.h
index 32f8b4a..21ccb3a 100644
--- a/fpdfsdk/cpdfsdk_annothandlermgr.h
+++ b/fpdfsdk/cpdfsdk_annothandlermgr.h
@@ -42,9 +42,8 @@
   void Annot_OnCreate(CPDFSDK_Annot* pAnnot);
   void Annot_OnLoad(CPDFSDK_Annot* pAnnot);
 
-  CFX_WideString Annot_GetSelectedText(CPDFSDK_Annot* pAnnot);
-  void Annot_ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                              const CFX_WideString& text);
+  WideString Annot_GetSelectedText(CPDFSDK_Annot* pAnnot);
+  void Annot_ReplaceSelection(CPDFSDK_Annot* pAnnot, const WideString& text);
 
   IPDFSDK_AnnotHandler* GetAnnotHandler(CPDFSDK_Annot* pAnnot) const;
   void Annot_OnDraw(CPDFSDK_PageView* pPageView,
diff --git a/fpdfsdk/cpdfsdk_baannot.cpp b/fpdfsdk/cpdfsdk_baannot.cpp
index 9f21d3c..711d228 100644
--- a/fpdfsdk/cpdfsdk_baannot.cpp
+++ b/fpdfsdk/cpdfsdk_baannot.cpp
@@ -101,7 +101,7 @@
   m_pAnnot->ClearCachedAP();
 }
 
-void CPDFSDK_BAAnnot::SetContents(const CFX_WideString& sContents) {
+void CPDFSDK_BAAnnot::SetContents(const WideString& sContents) {
   if (sContents.IsEmpty()) {
     m_pAnnot->GetAnnotDict()->RemoveFor("Contents");
   } else {
@@ -110,11 +110,11 @@
   }
 }
 
-CFX_WideString CPDFSDK_BAAnnot::GetContents() const {
+WideString CPDFSDK_BAAnnot::GetContents() const {
   return m_pAnnot->GetAnnotDict()->GetUnicodeTextFor("Contents");
 }
 
-void CPDFSDK_BAAnnot::SetAnnotName(const CFX_WideString& sName) {
+void CPDFSDK_BAAnnot::SetAnnotName(const WideString& sName) {
   if (sName.IsEmpty()) {
     m_pAnnot->GetAnnotDict()->RemoveFor("NM");
   } else {
@@ -123,13 +123,13 @@
   }
 }
 
-CFX_WideString CPDFSDK_BAAnnot::GetAnnotName() const {
+WideString CPDFSDK_BAAnnot::GetAnnotName() const {
   return m_pAnnot->GetAnnotDict()->GetUnicodeTextFor("NM");
 }
 
 void CPDFSDK_BAAnnot::SetModifiedDate(const FX_SYSTEMTIME& st) {
   CPDFSDK_DateTime dt(st);
-  CFX_ByteString str = dt.ToPDFDateTimeString();
+  ByteString str = dt.ToPDFDateTimeString();
   if (str.IsEmpty())
     m_pAnnot->GetAnnotDict()->RemoveFor("M");
   else
@@ -138,7 +138,7 @@
 
 FX_SYSTEMTIME CPDFSDK_BAAnnot::GetModifiedDate() const {
   FX_SYSTEMTIME systime;
-  CFX_ByteString str = m_pAnnot->GetAnnotDict()->GetStringFor("M");
+  ByteString str = m_pAnnot->GetAnnotDict()->GetStringFor("M");
   CPDFSDK_DateTime dt(str);
   dt.ToSystemTime(systime);
   return systime;
@@ -153,14 +153,14 @@
   return m_pAnnot->GetAnnotDict()->GetIntegerFor("F");
 }
 
-void CPDFSDK_BAAnnot::SetAppState(const CFX_ByteString& str) {
+void CPDFSDK_BAAnnot::SetAppState(const ByteString& str) {
   if (str.IsEmpty())
     m_pAnnot->GetAnnotDict()->RemoveFor("AS");
   else
     m_pAnnot->GetAnnotDict()->SetNewFor<CPDF_String>("AS", str, false);
 }
 
-CFX_ByteString CPDFSDK_BAAnnot::GetAppState() const {
+ByteString CPDFSDK_BAAnnot::GetAppState() const {
   return m_pAnnot->GetAnnotDict()->GetStringFor("AS");
 }
 
@@ -225,7 +225,7 @@
 BorderStyle CPDFSDK_BAAnnot::GetBorderStyle() const {
   CPDF_Dictionary* pBSDict = m_pAnnot->GetAnnotDict()->GetDictFor("BS");
   if (pBSDict) {
-    CFX_ByteString sBorderStyle = pBSDict->GetStringFor("S", "S");
+    ByteString sBorderStyle = pBSDict->GetStringFor("S", "S");
     if (sBorderStyle == "S")
       return BorderStyle::SOLID;
     if (sBorderStyle == "D")
diff --git a/fpdfsdk/cpdfsdk_baannot.h b/fpdfsdk/cpdfsdk_baannot.h
index 3b60b1b..1d71585 100644
--- a/fpdfsdk/cpdfsdk_baannot.h
+++ b/fpdfsdk/cpdfsdk_baannot.h
@@ -38,11 +38,11 @@
 
   CPDF_Dictionary* GetAPDict() const;
 
-  void SetContents(const CFX_WideString& sContents);
-  CFX_WideString GetContents() const;
+  void SetContents(const WideString& sContents);
+  WideString GetContents() const;
 
-  void SetAnnotName(const CFX_WideString& sName);
-  CFX_WideString GetAnnotName() const;
+  void SetAnnotName(const WideString& sName);
+  WideString GetAnnotName() const;
 
   void SetModifiedDate(const FX_SYSTEMTIME& st);
   FX_SYSTEMTIME GetModifiedDate() const;
@@ -50,8 +50,8 @@
   void SetFlags(uint32_t nFlags);
   uint32_t GetFlags() const;
 
-  void SetAppState(const CFX_ByteString& str);
-  CFX_ByteString GetAppState() const;
+  void SetAppState(const ByteString& str);
+  ByteString GetAppState() const;
 
   void SetStructParent(int key);
   int GetStructParent() const;
diff --git a/fpdfsdk/cpdfsdk_baannothandler.cpp b/fpdfsdk/cpdfsdk_baannothandler.cpp
index 6cf399a..027527e 100644
--- a/fpdfsdk/cpdfsdk_baannothandler.cpp
+++ b/fpdfsdk/cpdfsdk_baannothandler.cpp
@@ -193,12 +193,12 @@
   return pAnnot->GetRect();
 }
 
-CFX_WideString CPDFSDK_BAAnnotHandler::GetSelectedText(CPDFSDK_Annot* pAnnot) {
-  return CFX_WideString();
+WideString CPDFSDK_BAAnnotHandler::GetSelectedText(CPDFSDK_Annot* pAnnot) {
+  return WideString();
 }
 
 void CPDFSDK_BAAnnotHandler::ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                                              const CFX_WideString& text) {}
+                                              const WideString& text) {}
 
 bool CPDFSDK_BAAnnotHandler::HitTest(CPDFSDK_PageView* pPageView,
                                      CPDFSDK_Annot* pAnnot,
diff --git a/fpdfsdk/cpdfsdk_baannothandler.h b/fpdfsdk/cpdfsdk_baannothandler.h
index 2ed9ed8..7bf8034 100644
--- a/fpdfsdk/cpdfsdk_baannothandler.h
+++ b/fpdfsdk/cpdfsdk_baannothandler.h
@@ -36,9 +36,8 @@
   void ReleaseAnnot(CPDFSDK_Annot* pAnnot) override;
   CFX_FloatRect GetViewBBox(CPDFSDK_PageView* pPageView,
                             CPDFSDK_Annot* pAnnot) override;
-  CFX_WideString GetSelectedText(CPDFSDK_Annot* pAnnot) override;
-  void ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                        const CFX_WideString& text) override;
+  WideString GetSelectedText(CPDFSDK_Annot* pAnnot) override;
+  void ReplaceSelection(CPDFSDK_Annot* pAnnot, const WideString& text) override;
   bool HitTest(CPDFSDK_PageView* pPageView,
                CPDFSDK_Annot* pAnnot,
                const CFX_PointF& point) override;
diff --git a/fpdfsdk/cpdfsdk_datetime.cpp b/fpdfsdk/cpdfsdk_datetime.cpp
index d2653fc..ce22cae 100644
--- a/fpdfsdk/cpdfsdk_datetime.cpp
+++ b/fpdfsdk/cpdfsdk_datetime.cpp
@@ -63,7 +63,7 @@
   ResetDateTime();
 }
 
-CPDFSDK_DateTime::CPDFSDK_DateTime(const CFX_ByteString& dtStr) {
+CPDFSDK_DateTime::CPDFSDK_DateTime(const ByteString& dtStr) {
   ResetDateTime();
   FromPDFDateTimeString(dtStr);
 }
@@ -129,7 +129,7 @@
 }
 
 CPDFSDK_DateTime& CPDFSDK_DateTime::FromPDFDateTimeString(
-    const CFX_ByteString& dtStr) {
+    const ByteString& dtStr) {
   int strLength = dtStr.GetLength();
   if (strLength <= 0)
     return *this;
@@ -263,34 +263,34 @@
   return *this;
 }
 
-CFX_ByteString CPDFSDK_DateTime::ToCommonDateTimeString() {
-  CFX_ByteString str1;
+ByteString CPDFSDK_DateTime::ToCommonDateTimeString() {
+  ByteString str1;
   str1.Format("%04d-%02u-%02u %02u:%02u:%02u ", m_year, m_month, m_day, m_hour,
               m_minute, m_second);
   if (m_tzHour < 0)
     str1 += "-";
   else
     str1 += "+";
-  CFX_ByteString str2;
+  ByteString str2;
   str2.Format("%02d:%02u", std::abs(static_cast<int>(m_tzHour)), m_tzMinute);
   return str1 + str2;
 }
 
-CFX_ByteString CPDFSDK_DateTime::ToPDFDateTimeString() {
-  CFX_ByteString dtStr;
+ByteString CPDFSDK_DateTime::ToPDFDateTimeString() {
+  ByteString dtStr;
   char tempStr[32];
   memset(tempStr, 0, sizeof(tempStr));
   FXSYS_snprintf(tempStr, sizeof(tempStr) - 1, "D:%04d%02u%02u%02u%02u%02u",
                  m_year, m_month, m_day, m_hour, m_minute, m_second);
-  dtStr = CFX_ByteString(tempStr);
+  dtStr = ByteString(tempStr);
   if (m_tzHour < 0)
-    dtStr += CFX_ByteString("-");
+    dtStr += ByteString("-");
   else
-    dtStr += CFX_ByteString("+");
+    dtStr += ByteString("+");
   memset(tempStr, 0, sizeof(tempStr));
   FXSYS_snprintf(tempStr, sizeof(tempStr) - 1, "%02d'%02u'",
                  std::abs(static_cast<int>(m_tzHour)), m_tzMinute);
-  dtStr += CFX_ByteString(tempStr);
+  dtStr += ByteString(tempStr);
   return dtStr;
 }
 
diff --git a/fpdfsdk/cpdfsdk_datetime.h b/fpdfsdk/cpdfsdk_datetime.h
index 6b612b2..08d43cc 100644
--- a/fpdfsdk/cpdfsdk_datetime.h
+++ b/fpdfsdk/cpdfsdk_datetime.h
@@ -18,16 +18,16 @@
 class CPDFSDK_DateTime {
  public:
   CPDFSDK_DateTime();
-  explicit CPDFSDK_DateTime(const CFX_ByteString& dtStr);
+  explicit CPDFSDK_DateTime(const ByteString& dtStr);
   explicit CPDFSDK_DateTime(const FX_SYSTEMTIME& st);
   CPDFSDK_DateTime(const CPDFSDK_DateTime& datetime);
 
   bool operator==(const CPDFSDK_DateTime& datetime) const;
   bool operator!=(const CPDFSDK_DateTime& datetime) const;
 
-  CPDFSDK_DateTime& FromPDFDateTimeString(const CFX_ByteString& dtStr);
-  CFX_ByteString ToCommonDateTimeString();
-  CFX_ByteString ToPDFDateTimeString();
+  CPDFSDK_DateTime& FromPDFDateTimeString(const ByteString& dtStr);
+  ByteString ToCommonDateTimeString();
+  ByteString ToPDFDateTimeString();
   void ToSystemTime(FX_SYSTEMTIME& st);
   time_t ToTime_t() const;
   CPDFSDK_DateTime ToGMT() const;
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
index a258026..300a742 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -24,7 +24,7 @@
 
 // NOTE: |bsUTF16LE| must outlive the use of the result. Care must be taken
 // since modifying the result would impact |bsUTF16LE|.
-FPDF_WIDESTRING AsFPDFWideString(CFX_ByteString* bsUTF16LE) {
+FPDF_WIDESTRING AsFPDFWideString(ByteString* bsUTF16LE) {
   return reinterpret_cast<FPDF_WIDESTRING>(
       bsUTF16LE->GetBuffer(bsUTF16LE->GetLength()));
 }
@@ -69,8 +69,8 @@
       !m_pInfo->m_pJsPlatform->app_alert) {
     return -1;
   }
-  CFX_ByteString bsMsg = CFX_WideString(Msg).UTF16LE_Encode();
-  CFX_ByteString bsTitle = CFX_WideString(Title).UTF16LE_Encode();
+  ByteString bsMsg = WideString(Msg).UTF16LE_Encode();
+  ByteString bsTitle = WideString(Title).UTF16LE_Encode();
   return m_pInfo->m_pJsPlatform->app_alert(
       m_pInfo->m_pJsPlatform, AsFPDFWideString(&bsMsg),
       AsFPDFWideString(&bsTitle), Type, Icon);
@@ -87,10 +87,10 @@
       !m_pInfo->m_pJsPlatform->app_response) {
     return -1;
   }
-  CFX_ByteString bsQuestion = CFX_WideString(Question).UTF16LE_Encode();
-  CFX_ByteString bsTitle = CFX_WideString(Title).UTF16LE_Encode();
-  CFX_ByteString bsDefault = CFX_WideString(Default).UTF16LE_Encode();
-  CFX_ByteString bsLabel = CFX_WideString(cLabel).UTF16LE_Encode();
+  ByteString bsQuestion = WideString(Question).UTF16LE_Encode();
+  ByteString bsTitle = WideString(Title).UTF16LE_Encode();
+  ByteString bsDefault = WideString(Default).UTF16LE_Encode();
+  ByteString bsLabel = WideString(cLabel).UTF16LE_Encode();
   return m_pInfo->m_pJsPlatform->app_response(
       m_pInfo->m_pJsPlatform, AsFPDFWideString(&bsQuestion),
       AsFPDFWideString(&bsTitle), AsFPDFWideString(&bsDefault),
@@ -105,44 +105,44 @@
   m_pInfo->m_pJsPlatform->app_beep(m_pInfo->m_pJsPlatform, nType);
 }
 
-CFX_WideString CPDFSDK_FormFillEnvironment::JS_fieldBrowse() {
+WideString CPDFSDK_FormFillEnvironment::JS_fieldBrowse() {
   if (!m_pInfo || !m_pInfo->m_pJsPlatform ||
       !m_pInfo->m_pJsPlatform->Field_browse) {
-    return CFX_WideString();
+    return WideString();
   }
   const int nRequiredLen =
       m_pInfo->m_pJsPlatform->Field_browse(m_pInfo->m_pJsPlatform, nullptr, 0);
   if (nRequiredLen <= 0)
-    return CFX_WideString();
+    return WideString();
 
   std::vector<uint8_t> pBuff(nRequiredLen);
   const int nActualLen = m_pInfo->m_pJsPlatform->Field_browse(
       m_pInfo->m_pJsPlatform, pBuff.data(), nRequiredLen);
   if (nActualLen <= 0 || nActualLen > nRequiredLen)
-    return CFX_WideString();
+    return WideString();
 
   pBuff.resize(nActualLen);
-  return CFX_WideString::FromLocal(CFX_ByteStringC(pBuff));
+  return WideString::FromLocal(ByteStringView(pBuff));
 }
 
-CFX_WideString CPDFSDK_FormFillEnvironment::JS_docGetFilePath() {
+WideString CPDFSDK_FormFillEnvironment::JS_docGetFilePath() {
   if (!m_pInfo || !m_pInfo->m_pJsPlatform ||
       !m_pInfo->m_pJsPlatform->Doc_getFilePath) {
-    return CFX_WideString();
+    return WideString();
   }
   const int nRequiredLen = m_pInfo->m_pJsPlatform->Doc_getFilePath(
       m_pInfo->m_pJsPlatform, nullptr, 0);
   if (nRequiredLen <= 0)
-    return CFX_WideString();
+    return WideString();
 
   std::vector<uint8_t> pBuff(nRequiredLen);
   const int nActualLen = m_pInfo->m_pJsPlatform->Doc_getFilePath(
       m_pInfo->m_pJsPlatform, pBuff.data(), nRequiredLen);
   if (nActualLen <= 0 || nActualLen > nRequiredLen)
-    return CFX_WideString();
+    return WideString();
 
   pBuff.resize(nActualLen);
-  return CFX_WideString::FromLocal(CFX_ByteStringC(pBuff));
+  return WideString::FromLocal(ByteStringView(pBuff));
 }
 
 void CPDFSDK_FormFillEnvironment::JS_docSubmitForm(void* formData,
@@ -152,7 +152,7 @@
       !m_pInfo->m_pJsPlatform->Doc_submitForm) {
     return;
   }
-  CFX_ByteString bsDestination = CFX_WideString(URL).UTF16LE_Encode();
+  ByteString bsDestination = WideString(URL).UTF16LE_Encode();
   m_pInfo->m_pJsPlatform->Doc_submitForm(m_pInfo->m_pJsPlatform, formData,
                                          length,
                                          AsFPDFWideString(&bsDestination));
@@ -170,11 +170,11 @@
       !m_pInfo->m_pJsPlatform->Doc_mail) {
     return;
   }
-  CFX_ByteString bsTo = CFX_WideString(To).UTF16LE_Encode();
-  CFX_ByteString bsSubject = CFX_WideString(Subject).UTF16LE_Encode();
-  CFX_ByteString bsCC = CFX_WideString(CC).UTF16LE_Encode();
-  CFX_ByteString bsBcc = CFX_WideString(BCC).UTF16LE_Encode();
-  CFX_ByteString bsMsg = CFX_WideString(Msg).UTF16LE_Encode();
+  ByteString bsTo = WideString(To).UTF16LE_Encode();
+  ByteString bsSubject = WideString(Subject).UTF16LE_Encode();
+  ByteString bsCC = WideString(CC).UTF16LE_Encode();
+  ByteString bsBcc = WideString(BCC).UTF16LE_Encode();
+  ByteString bsMsg = WideString(Msg).UTF16LE_Encode();
   m_pInfo->m_pJsPlatform->Doc_mail(
       m_pInfo->m_pJsPlatform, mailData, length, bUI, AsFPDFWideString(&bsTo),
       AsFPDFWideString(&bsSubject), AsFPDFWideString(&bsCC),
@@ -350,30 +350,30 @@
     m_pInfo->FFI_SetCurrentPage(m_pInfo, document, iCurPage);
 }
 
-CFX_WideString CPDFSDK_FormFillEnvironment::GetPlatform() {
+WideString CPDFSDK_FormFillEnvironment::GetPlatform() {
   if (!m_pInfo || !m_pInfo->FFI_GetPlatform)
-    return CFX_WideString();
+    return WideString();
 
   int nRequiredLen = m_pInfo->FFI_GetPlatform(m_pInfo, nullptr, 0);
   if (nRequiredLen <= 0)
-    return CFX_WideString();
+    return WideString();
 
   std::vector<uint8_t> pBuff(nRequiredLen);
   int nActualLen =
       m_pInfo->FFI_GetPlatform(m_pInfo, pBuff.data(), nRequiredLen);
   if (nActualLen <= 0 || nActualLen > nRequiredLen)
-    return CFX_WideString();
+    return WideString();
 
-  return CFX_WideString::FromUTF16LE(reinterpret_cast<uint16_t*>(pBuff.data()),
-                                     nActualLen / sizeof(uint16_t));
+  return WideString::FromUTF16LE(reinterpret_cast<uint16_t*>(pBuff.data()),
+                                 nActualLen / sizeof(uint16_t));
 }
 
 void CPDFSDK_FormFillEnvironment::GotoURL(CPDFXFA_Context* document,
-                                          const CFX_WideStringC& wsURL) {
+                                          const WideStringView& wsURL) {
   if (!m_pInfo || !m_pInfo->FFI_GotoURL)
     return;
 
-  CFX_ByteString bsTo = CFX_WideString(wsURL).UTF16LE_Encode();
+  ByteString bsTo = WideString(wsURL).UTF16LE_Encode();
   FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(wsURL.GetLength());
   m_pInfo->FFI_GotoURL(m_pInfo, document, pTo);
   bsTo.ReleaseBuffer(bsTo.GetStringLength());
@@ -446,7 +446,7 @@
   if (!m_pInfo || !m_pInfo->FFI_DownloadFromURL)
     return nullptr;
 
-  CFX_ByteString bstrURL = CFX_WideString(url).UTF16LE_Encode();
+  ByteString bstrURL = WideString(url).UTF16LE_Encode();
   FPDF_WIDESTRING wsURL =
       (FPDF_WIDESTRING)bstrURL.GetBuffer(bstrURL.GetLength());
 
@@ -454,7 +454,7 @@
   return MakeSeekableStream(fileHandler);
 }
 
-CFX_WideString CPDFSDK_FormFillEnvironment::PostRequestURL(
+WideString CPDFSDK_FormFillEnvironment::PostRequestURL(
     const wchar_t* wsURL,
     const wchar_t* wsData,
     const wchar_t* wsContentType,
@@ -463,21 +463,21 @@
   if (!m_pInfo || !m_pInfo->FFI_PostRequestURL)
     return L"";
 
-  CFX_ByteString bsURL = CFX_WideString(wsURL).UTF16LE_Encode();
+  ByteString bsURL = WideString(wsURL).UTF16LE_Encode();
   FPDF_WIDESTRING URL = (FPDF_WIDESTRING)bsURL.GetBuffer(bsURL.GetLength());
 
-  CFX_ByteString bsData = CFX_WideString(wsData).UTF16LE_Encode();
+  ByteString bsData = WideString(wsData).UTF16LE_Encode();
   FPDF_WIDESTRING data = (FPDF_WIDESTRING)bsData.GetBuffer(bsData.GetLength());
 
-  CFX_ByteString bsContentType = CFX_WideString(wsContentType).UTF16LE_Encode();
+  ByteString bsContentType = WideString(wsContentType).UTF16LE_Encode();
   FPDF_WIDESTRING contentType =
       (FPDF_WIDESTRING)bsContentType.GetBuffer(bsContentType.GetLength());
 
-  CFX_ByteString bsEncode = CFX_WideString(wsEncode).UTF16LE_Encode();
+  ByteString bsEncode = WideString(wsEncode).UTF16LE_Encode();
   FPDF_WIDESTRING encode =
       (FPDF_WIDESTRING)bsEncode.GetBuffer(bsEncode.GetLength());
 
-  CFX_ByteString bsHeader = CFX_WideString(wsHeader).UTF16LE_Encode();
+  ByteString bsHeader = WideString(wsHeader).UTF16LE_Encode();
   FPDF_WIDESTRING header =
       (FPDF_WIDESTRING)bsHeader.GetBuffer(bsHeader.GetLength());
 
@@ -486,7 +486,7 @@
   m_pInfo->FFI_PostRequestURL(m_pInfo, URL, data, contentType, encode, header,
                               &response);
 
-  CFX_WideString wsRet = CFX_WideString::FromUTF16LE(
+  WideString wsRet = WideString::FromUTF16LE(
       (FPDF_WIDESTRING)response.str, response.len / sizeof(FPDF_WIDESTRING));
   FPDF_BStr_Clear(&response);
 
@@ -499,35 +499,35 @@
   if (!m_pInfo || !m_pInfo->FFI_PutRequestURL)
     return false;
 
-  CFX_ByteString bsURL = CFX_WideString(wsURL).UTF16LE_Encode();
+  ByteString bsURL = WideString(wsURL).UTF16LE_Encode();
   FPDF_WIDESTRING URL = (FPDF_WIDESTRING)bsURL.GetBuffer(bsURL.GetLength());
 
-  CFX_ByteString bsData = CFX_WideString(wsData).UTF16LE_Encode();
+  ByteString bsData = WideString(wsData).UTF16LE_Encode();
   FPDF_WIDESTRING data = (FPDF_WIDESTRING)bsData.GetBuffer(bsData.GetLength());
 
-  CFX_ByteString bsEncode = CFX_WideString(wsEncode).UTF16LE_Encode();
+  ByteString bsEncode = WideString(wsEncode).UTF16LE_Encode();
   FPDF_WIDESTRING encode =
       (FPDF_WIDESTRING)bsEncode.GetBuffer(bsEncode.GetLength());
 
   return m_pInfo->FFI_PutRequestURL(m_pInfo, URL, data, encode);
 }
 
-CFX_WideString CPDFSDK_FormFillEnvironment::GetLanguage() {
+WideString CPDFSDK_FormFillEnvironment::GetLanguage() {
   if (!m_pInfo || !m_pInfo->FFI_GetLanguage)
-    return CFX_WideString();
+    return WideString();
 
   int nRequiredLen = m_pInfo->FFI_GetLanguage(m_pInfo, nullptr, 0);
   if (nRequiredLen <= 0)
-    return CFX_WideString();
+    return WideString();
 
   std::vector<uint8_t> pBuff(nRequiredLen);
   int nActualLen =
       m_pInfo->FFI_GetLanguage(m_pInfo, pBuff.data(), nRequiredLen);
   if (nActualLen <= 0 || nActualLen > nRequiredLen)
-    return CFX_WideString();
+    return WideString();
 
-  return CFX_WideString::FromUTF16LE(reinterpret_cast<uint16_t*>(pBuff.data()),
-                                     nActualLen / sizeof(uint16_t));
+  return WideString::FromUTF16LE(reinterpret_cast<uint16_t*>(pBuff.data()),
+                                 nActualLen / sizeof(uint16_t));
 }
 
 void CPDFSDK_FormFillEnvironment::PageEvent(int iPageCount,
@@ -583,7 +583,7 @@
   CPDF_DocJSActions docJS(pPDFDoc);
   int iCount = docJS.CountJSActions();
   for (int i = 0; i < iCount; i++) {
-    CFX_WideString csJSName;
+    WideString csJSName;
     CPDF_Action jsAction = docJS.GetJSActionAndName(i, &csJSName);
     GetActionHandler()->DoAction_JavaScript(jsAction, csJSName, this);
   }
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.h b/fpdfsdk/cpdfsdk_formfillenvironment.h
index c993740..9e3c925 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.h
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.h
@@ -133,10 +133,10 @@
   void SetCurrentPage(CPDFXFA_Context* document, int iCurPage);
 
   // TODO(dsinclair): This should probably change to PDFium?
-  CFX_WideString FFI_GetAppName() const { return CFX_WideString(L"Acrobat"); }
+  WideString FFI_GetAppName() const { return WideString(L"Acrobat"); }
 
-  CFX_WideString GetPlatform();
-  void GotoURL(CPDFXFA_Context* document, const CFX_WideStringC& wsURL);
+  WideString GetPlatform();
+  void GotoURL(CPDFXFA_Context* document, const WideStringView& wsURL);
   void GetPageViewRect(CPDFXFA_Page* page, FS_RECTF& dstRect);
   bool PopupMenu(CPDFXFA_Page* page,
                  FPDF_WIDGET hWidget,
@@ -157,15 +157,15 @@
                              FPDF_WIDESTRING wsURL,
                              const char* mode);
   CFX_RetainPtr<IFX_SeekableReadStream> DownloadFromURL(const wchar_t* url);
-  CFX_WideString PostRequestURL(const wchar_t* wsURL,
-                                const wchar_t* wsData,
-                                const wchar_t* wsContentType,
-                                const wchar_t* wsEncode,
-                                const wchar_t* wsHeader);
+  WideString PostRequestURL(const wchar_t* wsURL,
+                            const wchar_t* wsData,
+                            const wchar_t* wsContentType,
+                            const wchar_t* wsEncode,
+                            const wchar_t* wsHeader);
   FPDF_BOOL PutRequestURL(const wchar_t* wsURL,
                           const wchar_t* wsData,
                           const wchar_t* wsEncode);
-  CFX_WideString GetLanguage();
+  WideString GetLanguage();
 
   void PageEvent(int iPageCount, uint32_t dwEventType) const;
 #else   // PDF_ENABLE_XFA
@@ -184,8 +184,8 @@
                      void* response,
                      int length);
   void JS_appBeep(int nType);
-  CFX_WideString JS_fieldBrowse();
-  CFX_WideString JS_docGetFilePath();
+  WideString JS_fieldBrowse();
+  WideString JS_docGetFilePath();
   void JS_docSubmitForm(void* formData, int length, const wchar_t* URL);
   void JS_docmailForm(void* mailData,
                       int length,
@@ -206,7 +206,7 @@
   void JS_docgotoPage(int nPageNum);
 
   bool IsJSInitiated() const { return m_pInfo && m_pInfo->m_pJsPlatform; }
-  CFX_ByteString GetAppName() const { return ""; }
+  ByteString GetAppName() const { return ""; }
   CFX_SystemHandler* GetSysHandler() const { return m_pSysHandler.get(); }
   FPDF_FORMFILLINFO* GetFormFillInfo() const { return m_pInfo; }
 
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index b60529d..fd0dffa 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -117,7 +117,7 @@
 }
 
 void CPDFSDK_InterForm::GetWidgets(
-    const CFX_WideString& sFieldName,
+    const WideString& sFieldName,
     std::vector<CPDFSDK_Annot::ObservedPtr>* widgets) const {
   for (int i = 0, sz = m_pInterForm->CountFields(sFieldName); i < sz; ++i) {
     CPDF_FormField* pFormField = m_pInterForm->GetField(i, sFieldName);
@@ -250,17 +250,17 @@
     if (!action.GetDict())
       continue;
 
-    CFX_WideString csJS = action.GetJavaScript();
+    WideString csJS = action.GetJavaScript();
     if (csJS.IsEmpty())
       continue;
 
     IJS_EventContext* pContext = pRuntime->NewEventContext();
-    CFX_WideString sOldValue = pField->GetValue();
-    CFX_WideString sValue = sOldValue;
+    WideString sOldValue = pField->GetValue();
+    WideString sValue = sOldValue;
     bool bRC = true;
     pContext->OnField_Calculate(pFormField, pField, sValue, bRC);
 
-    CFX_WideString sInfo;
+    WideString sInfo;
     bool bRet = pContext->RunScript(csJS, &sInfo);
     pRuntime->ReleaseEventContext(pContext);
     if (bRet && bRC && sValue.Compare(sOldValue) != 0)
@@ -269,9 +269,9 @@
   m_bBusy = false;
 }
 
-CFX_WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField,
-                                           bool& bFormatted) {
-  CFX_WideString sValue = pFormField->GetValue();
+WideString CPDFSDK_InterForm::OnFormat(CPDF_FormField* pFormField,
+                                       bool& bFormatted) {
+  WideString sValue = pFormField->GetValue();
   if (!m_pFormFillEnv->IsJSInitiated()) {
     bFormatted = false;
     return sValue;
@@ -291,13 +291,13 @@
   if (aAction.GetDict() && aAction.ActionExist(CPDF_AAction::Format)) {
     CPDF_Action action = aAction.GetAction(CPDF_AAction::Format);
     if (action.GetDict()) {
-      CFX_WideString script = action.GetJavaScript();
+      WideString script = action.GetJavaScript();
       if (!script.IsEmpty()) {
-        CFX_WideString Value = sValue;
+        WideString Value = sValue;
 
         IJS_EventContext* pContext = pRuntime->NewEventContext();
         pContext->OnField_Format(pFormField, Value, true);
-        CFX_WideString sInfo;
+        WideString sInfo;
         bool bRet = pContext->RunScript(script, &sInfo);
         pRuntime->ReleaseEventContext(pContext);
         if (bRet) {
@@ -311,7 +311,7 @@
 }
 
 void CPDFSDK_InterForm::ResetFieldAppearance(CPDF_FormField* pFormField,
-                                             const CFX_WideString* sValue,
+                                             const WideString* sValue,
                                              bool bValueChanged) {
   for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
     CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
@@ -339,7 +339,7 @@
 }
 
 bool CPDFSDK_InterForm::OnKeyStrokeCommit(CPDF_FormField* pFormField,
-                                          const CFX_WideString& csValue) {
+                                          const WideString& csValue) {
   CPDF_AAction aAction = pFormField->GetAdditionalAction();
   if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::KeyStroke))
     return true;
@@ -359,7 +359,7 @@
 }
 
 bool CPDFSDK_InterForm::OnValidate(CPDF_FormField* pFormField,
-                                   const CFX_WideString& csValue) {
+                                   const WideString& csValue) {
   CPDF_AAction aAction = pFormField->GetAdditionalAction();
   if (!aAction.GetDict() || !aAction.ActionExist(CPDF_AAction::Validate))
     return true;
@@ -412,7 +412,7 @@
 }
 
 bool CPDFSDK_InterForm::DoAction_SubmitForm(const CPDF_Action& action) {
-  CFX_WideString sDestination = action.GetFilePath();
+  WideString sDestination = action.GetFilePath();
   if (sDestination.IsEmpty())
     return false;
 
@@ -436,11 +436,11 @@
   return SubmitForm(sDestination, false);
 }
 
-bool CPDFSDK_InterForm::SubmitFields(const CFX_WideString& csDestination,
+bool CPDFSDK_InterForm::SubmitFields(const WideString& csDestination,
                                      const std::vector<CPDF_FormField*>& fields,
                                      bool bIncludeOrExclude,
                                      bool bUrlEncoded) {
-  CFX_ByteString textBuf = ExportFieldsToFDFTextBuf(fields, bIncludeOrExclude);
+  ByteString textBuf = ExportFieldsToFDFTextBuf(fields, bIncludeOrExclude);
 
   FX_STRSIZE nBufSize = textBuf.GetLength();
   if (nBufSize == 0)
@@ -485,12 +485,12 @@
     CPDF_Dictionary* pField = pFields->GetDictAt(i);
     if (!pField)
       continue;
-    CFX_WideString name;
+    WideString name;
     name = pField->GetUnicodeTextFor("T");
-    CFX_ByteString name_b = CFX_ByteString::FromUnicode(name);
-    CFX_ByteString csBValue = pField->GetStringFor("V");
-    CFX_WideString csWValue = PDF_DecodeText(csBValue);
-    CFX_ByteString csValue_b = CFX_ByteString::FromUnicode(csWValue);
+    ByteString name_b = ByteString::FromUnicode(name);
+    ByteString csBValue = pField->GetStringFor("V");
+    WideString csWValue = PDF_DecodeText(csBValue);
+    ByteString csValue_b = ByteString::FromUnicode(csWValue);
 
     fdfEncodedData << name_b.GetBuffer(name_b.GetLength());
     name_b.ReleaseBuffer(name_b.GetStringLength());
@@ -510,21 +510,20 @@
   return true;
 }
 
-CFX_ByteString CPDFSDK_InterForm::ExportFieldsToFDFTextBuf(
+ByteString CPDFSDK_InterForm::ExportFieldsToFDFTextBuf(
     const std::vector<CPDF_FormField*>& fields,
     bool bIncludeOrExclude) {
   std::unique_ptr<CFDF_Document> pFDF = m_pInterForm->ExportToFDF(
       m_pFormFillEnv->JS_docGetFilePath(), fields, bIncludeOrExclude, false);
 
-  return pFDF ? pFDF->WriteToString() : CFX_ByteString();
+  return pFDF ? pFDF->WriteToString() : ByteString();
 }
 
-CFX_WideString CPDFSDK_InterForm::GetTemporaryFileName(
-    const CFX_WideString& sFileExt) {
+WideString CPDFSDK_InterForm::GetTemporaryFileName(const WideString& sFileExt) {
   return L"";
 }
 
-bool CPDFSDK_InterForm::SubmitForm(const CFX_WideString& sDestination,
+bool CPDFSDK_InterForm::SubmitForm(const WideString& sDestination,
                                    bool bUrlEncoded) {
   if (sDestination.IsEmpty())
     return false;
@@ -537,7 +536,7 @@
   if (!pFDFDoc)
     return false;
 
-  CFX_ByteString fdfBuffer = pFDFDoc->WriteToString();
+  ByteString fdfBuffer = pFDFDoc->WriteToString();
 
   FX_STRSIZE nBufSize = fdfBuffer.GetLength();
   if (nBufSize == 0)
@@ -562,11 +561,11 @@
   return true;
 }
 
-CFX_ByteString CPDFSDK_InterForm::ExportFormToFDFTextBuf() {
+ByteString CPDFSDK_InterForm::ExportFormToFDFTextBuf() {
   std::unique_ptr<CFDF_Document> pFDF =
       m_pInterForm->ExportToFDF(m_pFormFillEnv->JS_docGetFilePath(), false);
 
-  return pFDF ? pFDF->WriteToString() : CFX_ByteString();
+  return pFDF ? pFDF->WriteToString() : ByteString();
 }
 
 bool CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action) {
@@ -593,7 +592,7 @@
   std::vector<CPDF_FormField*> fields;
   for (CPDF_Object* pObject : objects) {
     if (pObject && pObject->IsString()) {
-      CFX_WideString csName = pObject->GetUnicodeText();
+      WideString csName = pObject->GetUnicodeText();
       CPDF_FormField* pField = m_pInterForm->GetField(0, csName);
       if (pField)
         fields.push_back(pField);
@@ -603,7 +602,7 @@
 }
 
 int CPDFSDK_InterForm::BeforeValueChange(CPDF_FormField* pField,
-                                         const CFX_WideString& csValue) {
+                                         const WideString& csValue) {
   int nType = pField->GetFieldType();
   if (nType != FIELDTYPE_COMBOBOX && nType != FIELDTYPE_TEXTFIELD)
     return 0;
@@ -625,14 +624,14 @@
   if (nType == FIELDTYPE_COMBOBOX || nType == FIELDTYPE_TEXTFIELD) {
     OnCalculate(pField);
     bool bFormatted = false;
-    CFX_WideString sValue = OnFormat(pField, bFormatted);
+    WideString sValue = OnFormat(pField, bFormatted);
     ResetFieldAppearance(pField, bFormatted ? &sValue : nullptr, true);
     UpdateField(pField);
   }
 }
 
 int CPDFSDK_InterForm::BeforeSelectionChange(CPDF_FormField* pField,
-                                             const CFX_WideString& csValue) {
+                                             const WideString& csValue) {
   if (pField->GetFieldType() != FIELDTYPE_LISTBOX)
     return 0;
 
diff --git a/fpdfsdk/cpdfsdk_interform.h b/fpdfsdk/cpdfsdk_interform.h
index b031345..e14589e 100644
--- a/fpdfsdk/cpdfsdk_interform.h
+++ b/fpdfsdk/cpdfsdk_interform.h
@@ -43,7 +43,7 @@
 
   CPDFSDK_Widget* GetSibling(CPDFSDK_Widget* pWidget, bool bNext) const;
   CPDFSDK_Widget* GetWidget(CPDF_FormControl* pControl) const;
-  void GetWidgets(const CFX_WideString& sFieldName,
+  void GetWidgets(const WideString& sFieldName,
                   std::vector<CPDFSDK_Annot::ObservedPtr>* widgets) const;
   void GetWidgets(CPDF_FormField* pField,
                   std::vector<CPDFSDK_Annot::ObservedPtr>* widgets) const;
@@ -65,14 +65,13 @@
   void SynchronizeField(CPDF_FormField* pFormField, bool bSynchronizeElse);
 #endif  // PDF_ENABLE_XFA
 
-  bool OnKeyStrokeCommit(CPDF_FormField* pFormField,
-                         const CFX_WideString& csValue);
-  bool OnValidate(CPDF_FormField* pFormField, const CFX_WideString& csValue);
+  bool OnKeyStrokeCommit(CPDF_FormField* pFormField, const WideString& csValue);
+  bool OnValidate(CPDF_FormField* pFormField, const WideString& csValue);
   void OnCalculate(CPDF_FormField* pFormField = nullptr);
-  CFX_WideString OnFormat(CPDF_FormField* pFormField, bool& bFormatted);
+  WideString OnFormat(CPDF_FormField* pFormField, bool& bFormatted);
 
   void ResetFieldAppearance(CPDF_FormField* pFormField,
-                            const CFX_WideString* sValue,
+                            const WideString* sValue,
                             bool bValueChanged);
   void UpdateField(CPDF_FormField* pFormField);
 
@@ -84,16 +83,16 @@
   std::vector<CPDF_FormField*> GetFieldFromObjects(
       const std::vector<CPDF_Object*>& objects) const;
   bool IsValidField(CPDF_Dictionary* pFieldDict);
-  bool SubmitFields(const CFX_WideString& csDestination,
+  bool SubmitFields(const WideString& csDestination,
                     const std::vector<CPDF_FormField*>& fields,
                     bool bIncludeOrExclude,
                     bool bUrlEncoded);
-  bool SubmitForm(const CFX_WideString& sDestination, bool bUrlEncoded);
-  CFX_ByteString ExportFormToFDFTextBuf();
-  CFX_ByteString ExportFieldsToFDFTextBuf(
+  bool SubmitForm(const WideString& sDestination, bool bUrlEncoded);
+  ByteString ExportFormToFDFTextBuf();
+  ByteString ExportFieldsToFDFTextBuf(
       const std::vector<CPDF_FormField*>& fields,
       bool bIncludeOrExclude);
-  CFX_WideString GetTemporaryFileName(const CFX_WideString& sFileExt);
+  WideString GetTemporaryFileName(const WideString& sFileExt);
 
   bool IsNeedHighLight(int nFieldType);
   void RemoveAllHighLight();
@@ -105,10 +104,10 @@
  private:
   // IPDF_FormNotify:
   int BeforeValueChange(CPDF_FormField* pField,
-                        const CFX_WideString& csValue) override;
+                        const WideString& csValue) override;
   void AfterValueChange(CPDF_FormField* pField) override;
   int BeforeSelectionChange(CPDF_FormField* pField,
-                            const CFX_WideString& csValue) override;
+                            const WideString& csValue) override;
   void AfterSelectionChange(CPDF_FormField* pField) override;
   void AfterCheckedStatusChange(CPDF_FormField* pField) override;
   int BeforeFormReset(CPDF_InterForm* pForm) override;
diff --git a/fpdfsdk/cpdfsdk_pageview.cpp b/fpdfsdk/cpdfsdk_pageview.cpp
index 5bdd720..f22d575 100644
--- a/fpdfsdk/cpdfsdk_pageview.cpp
+++ b/fpdfsdk/cpdfsdk_pageview.cpp
@@ -241,17 +241,17 @@
 }
 #endif  // PDF_ENABLE_XFA
 
-CFX_WideString CPDFSDK_PageView::GetSelectedText() {
+WideString CPDFSDK_PageView::GetSelectedText() {
   if (CPDFSDK_Annot* pAnnot = GetFocusAnnot()) {
     CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr =
         m_pFormFillEnv->GetAnnotHandlerMgr();
     return pAnnotHandlerMgr->Annot_GetSelectedText(pAnnot);
   }
 
-  return CFX_WideString();
+  return WideString();
 }
 
-void CPDFSDK_PageView::ReplaceSelection(const CFX_WideString& text) {
+void CPDFSDK_PageView::ReplaceSelection(const WideString& text) {
   if (CPDFSDK_Annot* pAnnot = GetFocusAnnot()) {
     CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr =
         m_pFormFillEnv->GetAnnotHandlerMgr();
diff --git a/fpdfsdk/cpdfsdk_pageview.h b/fpdfsdk/cpdfsdk_pageview.h
index 00e90d7..b86f305 100644
--- a/fpdfsdk/cpdfsdk_pageview.h
+++ b/fpdfsdk/cpdfsdk_pageview.h
@@ -61,8 +61,8 @@
     return m_pFormFillEnv.Get();
   }
 
-  CFX_WideString GetSelectedText();
-  void ReplaceSelection(const CFX_WideString& text);
+  WideString GetSelectedText();
+  void ReplaceSelection(const WideString& text);
 
   bool OnFocus(const CFX_PointF& point, uint32_t nFlag);
   bool OnLButtonDown(const CFX_PointF& point, uint32_t nFlag);
diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp
index 0183f58..a859dcd 100644
--- a/fpdfsdk/cpdfsdk_widget.cpp
+++ b/fpdfsdk/cpdfsdk_widget.cpp
@@ -75,7 +75,7 @@
   if (pContext->GetDocType() == XFA_DocType::Static) {
     if (!m_hMixXFAWidget) {
       if (CXFA_FFDocView* pDocView = pContext->GetXFADocView()) {
-        CFX_WideString sName;
+        WideString sName;
         if (GetFieldType() == FIELDTYPE_RADIOBUTTON) {
           sName = GetAnnotName();
           if (sName.IsEmpty())
@@ -102,7 +102,7 @@
   if (!pDocView)
     return nullptr;
 
-  CFX_WideString sName = GetName();
+  WideString sName = GetName();
   return !sName.IsEmpty() ? pDocView->GetWidgetByName(sName, nullptr) : nullptr;
 }
 
@@ -377,7 +377,7 @@
     }
     case FIELDTYPE_TEXTFIELD: {
       if (CXFA_WidgetAcc* pWidgetAcc = hWidget->GetDataAcc()) {
-        CFX_WideString sValue;
+        WideString sValue;
         pWidgetAcc->GetValue(sValue, XFA_VALUEPICTURE_Display);
         pFormField->SetValue(sValue, true);
       }
@@ -409,7 +409,7 @@
           }
         }
 
-        CFX_WideString sValue;
+        WideString sValue;
         pWidgetAcc->GetValue(sValue, XFA_VALUEPICTURE_Display);
         pFormField->SetValue(sValue, true);
       }
@@ -432,7 +432,7 @@
       if (CXFA_WidgetAcc* pWidgetAcc = hWidget->GetDataAcc()) {
         for (int i = 0, sz = pWidgetAcc->CountChoiceListItems(false); i < sz;
              i++) {
-          CFX_WideString swText;
+          WideString swText;
           pWidgetAcc->GetChoiceListItem(swText, i, false);
 
           pFormField->InsertOption(swText, i, true);
@@ -447,7 +447,7 @@
       if (CXFA_WidgetAcc* pWidgetAcc = hWidget->GetDataAcc()) {
         for (int i = 0, sz = pWidgetAcc->CountChoiceListItems(false); i < sz;
              i++) {
-          CFX_WideString swText;
+          WideString swText;
           pWidgetAcc->GetChoiceListItem(swText, i, false);
 
           pFormField->InsertOption(swText, i, false);
@@ -552,7 +552,7 @@
 }
 
 #ifdef PDF_ENABLE_XFA
-CFX_WideString CPDFSDK_Widget::GetName() const {
+WideString CPDFSDK_Widget::GetName() const {
   CPDF_FormField* pFormField = GetFormField();
   return pFormField->GetFullName();
 }
@@ -607,28 +607,28 @@
 }
 
 #ifdef PDF_ENABLE_XFA
-CFX_WideString CPDFSDK_Widget::GetValue(bool bDisplay) const {
+WideString CPDFSDK_Widget::GetValue(bool bDisplay) const {
   if (CXFA_FFWidget* hWidget = GetMixXFAWidget()) {
     if (CXFA_WidgetAcc* pWidgetAcc = hWidget->GetDataAcc()) {
-      CFX_WideString sValue;
+      WideString sValue;
       pWidgetAcc->GetValue(
           sValue, bDisplay ? XFA_VALUEPICTURE_Display : XFA_VALUEPICTURE_Edit);
       return sValue;
     }
   }
 #else
-CFX_WideString CPDFSDK_Widget::GetValue() const {
+WideString CPDFSDK_Widget::GetValue() const {
 #endif  // PDF_ENABLE_XFA
   CPDF_FormField* pFormField = GetFormField();
   return pFormField->GetValue();
 }
 
-CFX_WideString CPDFSDK_Widget::GetDefaultValue() const {
+WideString CPDFSDK_Widget::GetDefaultValue() const {
   CPDF_FormField* pFormField = GetFormField();
   return pFormField->GetDefaultValue();
 }
 
-CFX_WideString CPDFSDK_Widget::GetOptionLabel(int nIndex) const {
+WideString CPDFSDK_Widget::GetOptionLabel(int nIndex) const {
   CPDF_FormField* pFormField = GetFormField();
   return pFormField->GetOptionLabel(nIndex);
 }
@@ -692,7 +692,7 @@
 #endif  // PDF_ENABLE_XFA
 }
 
-void CPDFSDK_Widget::SetValue(const CFX_WideString& sValue, bool bNotify) {
+void CPDFSDK_Widget::SetValue(const WideString& sValue, bool bNotify) {
   CPDF_FormField* pFormField = GetFormField();
   pFormField->SetValue(sValue, bNotify);
 #ifdef PDF_ENABLE_XFA
@@ -701,7 +701,7 @@
 #endif  // PDF_ENABLE_XFA
 }
 
-void CPDFSDK_Widget::SetDefaultValue(const CFX_WideString& sValue) {}
+void CPDFSDK_Widget::SetDefaultValue(const WideString& sValue) {}
 void CPDFSDK_Widget::SetOptionSelection(int index,
                                         bool bSelected,
                                         bool bNotify) {
@@ -742,7 +742,7 @@
     case FIELDTYPE_TEXTFIELD:
     case FIELDTYPE_COMBOBOX: {
       bool bFormatted = false;
-      CFX_WideString sValue = OnFormat(bFormatted);
+      WideString sValue = OnFormat(bFormatted);
       ResetAppearance(bFormatted ? &sValue : nullptr, true);
       break;
     }
@@ -753,7 +753,7 @@
 }
 #endif  // PDF_ENABLE_XFA
 
-void CPDFSDK_Widget::ResetAppearance(const CFX_WideString* sValue,
+void CPDFSDK_Widget::ResetAppearance(const WideString* sValue,
                                      bool bValueChanged) {
   SetAppModified();
 
@@ -786,7 +786,7 @@
   m_pAnnot->ClearCachedAP();
 }
 
-CFX_WideString CPDFSDK_Widget::OnFormat(bool& bFormatted) {
+WideString CPDFSDK_Widget::OnFormat(bool& bFormatted) {
   CPDF_FormField* pFormField = GetFormField();
   ASSERT(pFormField);
   return m_pInterForm->OnFormat(pFormField, bFormatted);
@@ -1042,7 +1042,7 @@
   return CPDF_Action();
 }
 
-CFX_WideString CPDFSDK_Widget::GetAlternateName() const {
+WideString CPDFSDK_Widget::GetAlternateName() const {
   CPDF_FormField* pFormField = GetFormField();
   return pFormField->GetAlternateName();
 }
diff --git a/fpdfsdk/cpdfsdk_widget.h b/fpdfsdk/cpdfsdk_widget.h
index d33413a..5b2411e 100644
--- a/fpdfsdk/cpdfsdk_widget.h
+++ b/fpdfsdk/cpdfsdk_widget.h
@@ -82,12 +82,12 @@
 
   int GetSelectedIndex(int nIndex) const;
 #ifndef PDF_ENABLE_XFA
-  CFX_WideString GetValue() const;
+  WideString GetValue() const;
 #else
-  CFX_WideString GetValue(bool bDisplay = true) const;
+  WideString GetValue(bool bDisplay = true) const;
 #endif  // PDF_ENABLE_XFA
-  CFX_WideString GetDefaultValue() const;
-  CFX_WideString GetOptionLabel(int nIndex) const;
+  WideString GetDefaultValue() const;
+  WideString GetOptionLabel(int nIndex) const;
   int CountOptions() const;
   bool IsOptionSelected(int nIndex) const;
   int GetTopVisibleIndex() const;
@@ -95,13 +95,13 @@
   int GetAlignment() const;
   int GetMaxLen() const;
 #ifdef PDF_ENABLE_XFA
-  CFX_WideString GetName() const;
+  WideString GetName() const;
 #endif  // PDF_ENABLE_XFA
-  CFX_WideString GetAlternateName() const;
+  WideString GetAlternateName() const;
 
   void SetCheck(bool bChecked, bool bNotify);
-  void SetValue(const CFX_WideString& sValue, bool bNotify);
-  void SetDefaultValue(const CFX_WideString& sValue);
+  void SetValue(const WideString& sValue, bool bNotify);
+  void SetDefaultValue(const WideString& sValue);
   void SetOptionSelection(int index, bool bSelected, bool bNotify);
   void ClearSelection(bool bNotify);
   void SetTopVisibleIndex(int index);
@@ -109,10 +109,10 @@
 #ifdef PDF_ENABLE_XFA
   void ResetAppearance(bool bValueChanged);
 #endif  // PDF_ENABLE_XFA
-  void ResetAppearance(const CFX_WideString* sValue, bool bValueChanged);
+  void ResetAppearance(const WideString* sValue, bool bValueChanged);
   void ResetFieldAppearance(bool bValueChanged);
   void UpdateField();
-  CFX_WideString OnFormat(bool& bFormatted);
+  WideString OnFormat(bool& bFormatted);
 
   bool OnAAction(CPDF_AAction::AActionType type,
                  PDFSDK_FieldAction& data,
diff --git a/fpdfsdk/cpdfsdk_widgethandler.cpp b/fpdfsdk/cpdfsdk_widgethandler.cpp
index d20d29a..ab37141 100644
--- a/fpdfsdk/cpdfsdk_widgethandler.cpp
+++ b/fpdfsdk/cpdfsdk_widgethandler.cpp
@@ -231,7 +231,7 @@
   if (nFieldType == FIELDTYPE_TEXTFIELD || nFieldType == FIELDTYPE_COMBOBOX) {
     bool bFormatted = false;
     CPDFSDK_Annot::ObservedPtr pObserved(pWidget);
-    CFX_WideString sValue = pWidget->OnFormat(bFormatted);
+    WideString sValue = pWidget->OnFormat(bFormatted);
     if (!pObserved)
       return;
 
@@ -280,15 +280,15 @@
   return CFX_FloatRect();
 }
 
-CFX_WideString CPDFSDK_WidgetHandler::GetSelectedText(CPDFSDK_Annot* pAnnot) {
+WideString CPDFSDK_WidgetHandler::GetSelectedText(CPDFSDK_Annot* pAnnot) {
   if (!pAnnot->IsSignatureWidget() && m_pFormFiller)
     return m_pFormFiller->GetSelectedText(pAnnot);
 
-  return CFX_WideString();
+  return WideString();
 }
 
 void CPDFSDK_WidgetHandler::ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                                             const CFX_WideString& text) {
+                                             const WideString& text) {
   if (!pAnnot->IsSignatureWidget() && m_pFormFiller)
     m_pFormFiller->ReplaceSelection(pAnnot, text);
 }
diff --git a/fpdfsdk/cpdfsdk_widgethandler.h b/fpdfsdk/cpdfsdk_widgethandler.h
index 82a9380..d83c98f 100644
--- a/fpdfsdk/cpdfsdk_widgethandler.h
+++ b/fpdfsdk/cpdfsdk_widgethandler.h
@@ -37,9 +37,8 @@
   void ReleaseAnnot(CPDFSDK_Annot* pAnnot) override;
   CFX_FloatRect GetViewBBox(CPDFSDK_PageView* pPageView,
                             CPDFSDK_Annot* pAnnot) override;
-  CFX_WideString GetSelectedText(CPDFSDK_Annot* pAnnot) override;
-  void ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                        const CFX_WideString& text) override;
+  WideString GetSelectedText(CPDFSDK_Annot* pAnnot) override;
+  void ReplaceSelection(CPDFSDK_Annot* pAnnot, const WideString& text) override;
   bool HitTest(CPDFSDK_PageView* pPageView,
                CPDFSDK_Annot* pAnnot,
                const CFX_PointF& point) override;
diff --git a/fpdfsdk/cpdfsdk_xfawidgethandler.cpp b/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
index e9c9972..b5c52a8 100644
--- a/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
+++ b/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
@@ -99,15 +99,14 @@
 
 // TODO(bug 840): Implement so selected text can be obtained from XFA
 // fields.
-CFX_WideString CPDFSDK_XFAWidgetHandler::GetSelectedText(
-    CPDFSDK_Annot* pAnnot) {
-  return CFX_WideString();
+WideString CPDFSDK_XFAWidgetHandler::GetSelectedText(CPDFSDK_Annot* pAnnot) {
+  return WideString();
 }
 
 // TODO(bug 840): Implement so text can be inserted into and deleted from XFA
 // fields.
 void CPDFSDK_XFAWidgetHandler::ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                                                const CFX_WideString& text) {}
+                                                const WideString& text) {}
 
 bool CPDFSDK_XFAWidgetHandler::HitTest(CPDFSDK_PageView* pPageView,
                                        CPDFSDK_Annot* pAnnot,
diff --git a/fpdfsdk/cpdfsdk_xfawidgethandler.h b/fpdfsdk/cpdfsdk_xfawidgethandler.h
index e1f7661..e26472d 100644
--- a/fpdfsdk/cpdfsdk_xfawidgethandler.h
+++ b/fpdfsdk/cpdfsdk_xfawidgethandler.h
@@ -32,9 +32,8 @@
   void ReleaseAnnot(CPDFSDK_Annot* pAnnot) override;
   CFX_FloatRect GetViewBBox(CPDFSDK_PageView* pPageView,
                             CPDFSDK_Annot* pAnnot) override;
-  CFX_WideString GetSelectedText(CPDFSDK_Annot* pAnnot) override;
-  void ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                        const CFX_WideString& text) override;
+  WideString GetSelectedText(CPDFSDK_Annot* pAnnot) override;
+  void ReplaceSelection(CPDFSDK_Annot* pAnnot, const WideString& text) override;
   bool HitTest(CPDFSDK_PageView* pPageView,
                CPDFSDK_Annot* pAnnot,
                const CFX_PointF& point) override;
diff --git a/fpdfsdk/formfiller/cba_fontmap.cpp b/fpdfsdk/formfiller/cba_fontmap.cpp
index c3ab2b8..625ce46 100644
--- a/fpdfsdk/formfiller/cba_fontmap.cpp
+++ b/fpdfsdk/formfiller/cba_fontmap.cpp
@@ -68,7 +68,7 @@
 }
 
 void CBA_FontMap::SetDefaultFont(CPDF_Font* pFont,
-                                 const CFX_ByteString& sFontName) {
+                                 const ByteString& sFontName) {
   ASSERT(pFont);
 
   if (m_pDefaultFont)
@@ -83,7 +83,7 @@
   AddFontData(m_pDefaultFont.Get(), m_sDefaultFontName, nCharset);
 }
 
-CPDF_Font* CBA_FontMap::FindFontSameCharset(CFX_ByteString* sFontAlias,
+CPDF_Font* CBA_FontMap::FindFontSameCharset(ByteString* sFontAlias,
                                             int32_t nCharset) {
   if (m_pAnnotDict->GetStringFor("Subtype") != "Widget")
     return nullptr;
@@ -109,7 +109,7 @@
 }
 
 CPDF_Font* CBA_FontMap::FindResFontSameCharset(CPDF_Dictionary* pResDict,
-                                               CFX_ByteString* sFontAlias,
+                                               ByteString* sFontAlias,
                                                int32_t nCharset) {
   if (!pResDict)
     return nullptr;
@@ -121,7 +121,7 @@
   CPDF_Document* pDocument = GetDocument();
   CPDF_Font* pFind = nullptr;
   for (const auto& it : *pFonts) {
-    const CFX_ByteString& csKey = it.first;
+    const ByteString& csKey = it.first;
     if (!it.second)
       continue;
 
@@ -145,13 +145,12 @@
   return pFind;
 }
 
-void CBA_FontMap::AddedFont(CPDF_Font* pFont,
-                            const CFX_ByteString& sFontAlias) {
+void CBA_FontMap::AddedFont(CPDF_Font* pFont, const ByteString& sFontAlias) {
   AddFontToAnnotDict(pFont, sFontAlias);
 }
 
 void CBA_FontMap::AddFontToAnnotDict(CPDF_Font* pFont,
-                                     const CFX_ByteString& sAlias) {
+                                     const ByteString& sAlias) {
   if (!pFont)
     return;
 
@@ -194,7 +193,7 @@
   }
 }
 
-CPDF_Font* CBA_FontMap::GetAnnotDefaultFont(CFX_ByteString* sAlias) {
+CPDF_Font* CBA_FontMap::GetAnnotDefaultFont(ByteString* sAlias) {
   CPDF_Dictionary* pAcroFormDict = nullptr;
   const bool bWidget = (m_pAnnotDict->GetStringFor("Subtype") == "Widget");
   if (bWidget) {
@@ -203,7 +202,7 @@
       pAcroFormDict = pRootDict->GetDictFor("AcroForm");
   }
 
-  CFX_ByteString sDA;
+  ByteString sDA;
   CPDF_Object* pObj = FPDF_GetFieldAttr(m_pAnnotDict.Get(), "DA");
   if (pObj)
     sDA = pObj->GetString();
@@ -211,17 +210,17 @@
   if (bWidget) {
     if (sDA.IsEmpty()) {
       pObj = FPDF_GetFieldAttr(pAcroFormDict, "DA");
-      sDA = pObj ? pObj->GetString() : CFX_ByteString();
+      sDA = pObj ? pObj->GetString() : ByteString();
     }
   }
   if (sDA.IsEmpty())
     return nullptr;
 
-  CPDF_SimpleParser syntax(sDA.AsStringC());
+  CPDF_SimpleParser syntax(sDA.AsStringView());
   syntax.FindTagParamFromStart("Tf", 2);
 
-  CFX_ByteString sFontName(syntax.GetWord());
-  CFX_ByteString sDecodedFontName = PDF_NameDecode(sFontName);
+  ByteString sFontName(syntax.GetWord());
+  ByteString sDecodedFontName = PDF_NameDecode(sFontName);
   *sAlias = sDecodedFontName.Right(sDecodedFontName.GetLength() - 1);
 
   CPDF_Dictionary* pFontDict = nullptr;
@@ -243,7 +242,7 @@
   return pFontDict ? m_pDocument->LoadFont(pFontDict) : nullptr;
 }
 
-void CBA_FontMap::SetAPType(const CFX_ByteString& sAPType) {
+void CBA_FontMap::SetAPType(const ByteString& sAPType) {
   m_sAPType = sAPType;
 
   Reset();
diff --git a/fpdfsdk/formfiller/cba_fontmap.h b/fpdfsdk/formfiller/cba_fontmap.h
index 7eb7d4e..807cb65 100644
--- a/fpdfsdk/formfiller/cba_fontmap.h
+++ b/fpdfsdk/formfiller/cba_fontmap.h
@@ -19,28 +19,28 @@
   ~CBA_FontMap() override;
 
   void Reset();
-  void SetDefaultFont(CPDF_Font* pFont, const CFX_ByteString& sFontName);
-  void SetAPType(const CFX_ByteString& sAPType);
+  void SetDefaultFont(CPDF_Font* pFont, const ByteString& sFontName);
+  void SetAPType(const ByteString& sAPType);
 
  private:
   // CPWL_FontMap:
   void Initialize() override;
   CPDF_Document* GetDocument() override;
-  CPDF_Font* FindFontSameCharset(CFX_ByteString* sFontAlias,
+  CPDF_Font* FindFontSameCharset(ByteString* sFontAlias,
                                  int32_t nCharset) override;
-  void AddedFont(CPDF_Font* pFont, const CFX_ByteString& sFontAlias) override;
+  void AddedFont(CPDF_Font* pFont, const ByteString& sFontAlias) override;
 
   CPDF_Font* FindResFontSameCharset(CPDF_Dictionary* pResDict,
-                                    CFX_ByteString* sFontAlias,
+                                    ByteString* sFontAlias,
                                     int32_t nCharset);
-  CPDF_Font* GetAnnotDefaultFont(CFX_ByteString* csNameTag);
-  void AddFontToAnnotDict(CPDF_Font* pFont, const CFX_ByteString& sAlias);
+  CPDF_Font* GetAnnotDefaultFont(ByteString* csNameTag);
+  void AddFontToAnnotDict(CPDF_Font* pFont, const ByteString& sAlias);
 
   CFX_UnownedPtr<CPDF_Document> m_pDocument;
   CFX_UnownedPtr<CPDF_Dictionary> m_pAnnotDict;
   CFX_UnownedPtr<CPDF_Font> m_pDefaultFont;
-  CFX_ByteString m_sDefaultFontName;
-  CFX_ByteString m_sAPType;
+  ByteString m_sDefaultFontName;
+  ByteString m_sAPType;
 };
 
 #endif  // FPDFSDK_FORMFILLER_CBA_FONTMAP_H_
diff --git a/fpdfsdk/formfiller/cffl_combobox.cpp b/fpdfsdk/formfiller/cffl_combobox.cpp
index aeb31f5..ab34a65 100644
--- a/fpdfsdk/formfiller/cffl_combobox.cpp
+++ b/fpdfsdk/formfiller/cffl_combobox.cpp
@@ -52,7 +52,7 @@
   pWnd->SetFillerNotify(pFormFiller);
 
   int32_t nCurSel = m_pWidget->GetSelectedIndex(0);
-  CFX_WideString swText;
+  WideString swText;
   if (nCurSel < 0)
     swText = m_pWidget->GetValue();
   else
@@ -94,7 +94,7 @@
   if (!pWnd)
     return;
 
-  CFX_WideString swText = pWnd->GetText();
+  WideString swText = pWnd->GetText();
   int32_t nCurSel = pWnd->GetSelect();
 
   bool bSetValue = false;
@@ -235,15 +235,15 @@
   pEdit->SetCharSet(FX_CHARSET_ChineseSimplified);
   pEdit->SetReadyToInput();
 
-  CFX_WideString wsText = pEdit->GetText();
+  WideString wsText = pEdit->GetText();
   int nCharacters = wsText.GetLength();
-  CFX_ByteString bsUTFText = wsText.UTF16LE_Encode();
+  ByteString bsUTFText = wsText.UTF16LE_Encode();
   auto* pBuffer = reinterpret_cast<const unsigned short*>(bsUTFText.c_str());
   m_pFormFillEnv->OnSetFieldInputFocus(pBuffer, nCharacters, true);
 }
 
-CFX_WideString CFFL_ComboBox::GetSelectExportText() {
-  CFX_WideString swRet;
+WideString CFFL_ComboBox::GetSelectExportText() {
+  WideString swRet;
 
   int nExport = -1;
   CPDFSDK_PageView* pPageView = GetCurPageView(true);
diff --git a/fpdfsdk/formfiller/cffl_combobox.h b/fpdfsdk/formfiller/cffl_combobox.h
index dc8441d..bdc0934 100644
--- a/fpdfsdk/formfiller/cffl_combobox.h
+++ b/fpdfsdk/formfiller/cffl_combobox.h
@@ -16,7 +16,7 @@
   int nIndex;
   int nStart;
   int nEnd;
-  CFX_WideString sValue;
+  WideString sValue;
 };
 
 class CFFL_ComboBox : public CFFL_TextObject,
@@ -50,7 +50,7 @@
   void OnSetFocus(CPWL_Edit* pEdit) override;
 
  private:
-  CFX_WideString GetSelectExportText();
+  WideString GetSelectExportText();
 
   FFL_ComboBoxState m_State;
 };
diff --git a/fpdfsdk/formfiller/cffl_formfiller.cpp b/fpdfsdk/formfiller/cffl_formfiller.cpp
index fd569c7..2c6138b 100644
--- a/fpdfsdk/formfiller/cffl_formfiller.cpp
+++ b/fpdfsdk/formfiller/cffl_formfiller.cpp
@@ -233,19 +233,19 @@
   return pWnd && pWnd->OnChar(nChar, nFlags);
 }
 
-CFX_WideString CFFL_FormFiller::GetSelectedText(CPDFSDK_Annot* pAnnot) {
+WideString CFFL_FormFiller::GetSelectedText(CPDFSDK_Annot* pAnnot) {
   if (!IsValid())
-    return CFX_WideString();
+    return WideString();
 
   CPDFSDK_PageView* pPageView = GetCurPageView(true);
   ASSERT(pPageView);
 
   CPWL_Wnd* pWnd = GetPDFWindow(pPageView, false);
-  return pWnd ? pWnd->GetSelectedText() : CFX_WideString();
+  return pWnd ? pWnd->GetSelectedText() : WideString();
 }
 
 void CFFL_FormFiller::ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                                       const CFX_WideString& text) {
+                                       const WideString& text) {
   if (!IsValid())
     return;
 
diff --git a/fpdfsdk/formfiller/cffl_formfiller.h b/fpdfsdk/formfiller/cffl_formfiller.h
index e9c2c55..8078d35 100644
--- a/fpdfsdk/formfiller/cffl_formfiller.h
+++ b/fpdfsdk/formfiller/cffl_formfiller.h
@@ -75,8 +75,8 @@
                          uint32_t nFlags);
   virtual bool OnChar(CPDFSDK_Annot* pAnnot, uint32_t nChar, uint32_t nFlags);
 
-  CFX_WideString GetSelectedText(CPDFSDK_Annot* pAnnot);
-  void ReplaceSelection(CPDFSDK_Annot* pAnnot, const CFX_WideString& text);
+  WideString GetSelectedText(CPDFSDK_Annot* pAnnot);
+  void ReplaceSelection(CPDFSDK_Annot* pAnnot, const WideString& text);
 
   void SetFocusForAnnot(CPDFSDK_Annot* pAnnot, uint32_t nFlag);
   void KillFocusForAnnot(CPDFSDK_Annot* pAnnot, uint32_t nFlag);
diff --git a/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp b/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
index 989539f..3625e9d 100644
--- a/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
+++ b/fpdfsdk/formfiller/cffl_interactiveformfiller.cpp
@@ -516,15 +516,14 @@
     UnRegisterFormFiller(pAnnot);
 }
 
-CFX_WideString CFFL_InteractiveFormFiller::GetSelectedText(
-    CPDFSDK_Annot* pAnnot) {
+WideString CFFL_InteractiveFormFiller::GetSelectedText(CPDFSDK_Annot* pAnnot) {
   ASSERT(pAnnot->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
   CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, false);
-  return pFormFiller ? pFormFiller->GetSelectedText(pAnnot) : CFX_WideString();
+  return pFormFiller ? pFormFiller->GetSelectedText(pAnnot) : WideString();
 }
 
 void CFFL_InteractiveFormFiller::ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                                                  const CFX_WideString& text) {
+                                                  const WideString& text) {
   ASSERT(pAnnot->GetPDFAnnot()->GetSubtype() == CPDF_Annot::Subtype::WIDGET);
   CFFL_FormFiller* pFormFiller = GetFormFiller(pAnnot, false);
   if (!pFormFiller)
@@ -690,8 +689,7 @@
   CPDFSDK_InterForm* pInterForm = pPageView->GetFormFillEnv()->GetInterForm();
 
   bool bFormatted = false;
-  CFX_WideString sValue =
-      pInterForm->OnFormat(pWidget->GetFormField(), bFormatted);
+  WideString sValue = pInterForm->OnFormat(pWidget->GetFormField(), bFormatted);
   if (!(*pAnnot))
     return;
 
@@ -857,8 +855,8 @@
 
 std::pair<bool, bool> CFFL_InteractiveFormFiller::OnBeforeKeyStroke(
     CPWL_Wnd::PrivateData* pAttached,
-    CFX_WideString& strChange,
-    const CFX_WideString& strChangeEx,
+    WideString& strChange,
+    const WideString& strChangeEx,
     int nSelStart,
     int nSelEnd,
     bool bKeyDown,
diff --git a/fpdfsdk/formfiller/cffl_interactiveformfiller.h b/fpdfsdk/formfiller/cffl_interactiveformfiller.h
index 0982f1d..553cbe8 100644
--- a/fpdfsdk/formfiller/cffl_interactiveformfiller.h
+++ b/fpdfsdk/formfiller/cffl_interactiveformfiller.h
@@ -83,8 +83,8 @@
   CFFL_FormFiller* GetFormFiller(CPDFSDK_Annot* pAnnot, bool bRegister);
   void RemoveFormFiller(CPDFSDK_Annot* pAnnot);
 
-  CFX_WideString GetSelectedText(CPDFSDK_Annot* pAnnot);
-  void ReplaceSelection(CPDFSDK_Annot* pAnnot, const CFX_WideString& text);
+  WideString GetSelectedText(CPDFSDK_Annot* pAnnot);
+  void ReplaceSelection(CPDFSDK_Annot* pAnnot, const WideString& text);
 
   static bool IsVisible(CPDFSDK_Widget* pWidget);
   static bool IsReadOnly(CPDFSDK_Widget* pWidget);
@@ -133,8 +133,8 @@
                        float* fPopupRet) override;
   // Returns {bRC, bExit}.
   std::pair<bool, bool> OnBeforeKeyStroke(CPWL_Wnd::PrivateData* pAttached,
-                                          CFX_WideString& strChange,
-                                          const CFX_WideString& strChangeEx,
+                                          WideString& strChange,
+                                          const WideString& strChangeEx,
                                           int nSelStart,
                                           int nSelEnd,
                                           bool bKeyDown,
diff --git a/fpdfsdk/formfiller/cffl_textfield.cpp b/fpdfsdk/formfiller/cffl_textfield.cpp
index 8bf0825..76434a5 100644
--- a/fpdfsdk/formfiller/cffl_textfield.cpp
+++ b/fpdfsdk/formfiller/cffl_textfield.cpp
@@ -74,7 +74,7 @@
   pWnd->SetFillerNotify(m_pFormFillEnv->GetInteractiveFormFiller());
 
   int32_t nMaxLen = m_pWidget->GetMaxLen();
-  CFX_WideString swValue = m_pWidget->GetValue();
+  WideString swValue = m_pWidget->GetValue();
 
   if (nMaxLen > 0) {
     if (pWnd->HasFlag(PES_CHARARRAY)) {
@@ -136,8 +136,8 @@
   if (!pWnd)
     return;
 
-  CFX_WideString sOldValue = m_pWidget->GetValue();
-  CFX_WideString sNewValue = pWnd->GetText();
+  WideString sOldValue = m_pWidget->GetValue();
+  WideString sNewValue = pWnd->GetText();
 
   m_pWidget->SetValue(sNewValue, false);
   m_pWidget->ResetFieldAppearance(true);
@@ -239,9 +239,9 @@
   pEdit->SetCharSet(FX_CHARSET_ChineseSimplified);
   pEdit->SetReadyToInput();
 
-  CFX_WideString wsText = pEdit->GetText();
+  WideString wsText = pEdit->GetText();
   int nCharacters = wsText.GetLength();
-  CFX_ByteString bsUTFText = wsText.UTF16LE_Encode();
+  ByteString bsUTFText = wsText.UTF16LE_Encode();
   auto* pBuffer = reinterpret_cast<const unsigned short*>(bsUTFText.c_str());
   m_pFormFillEnv->OnSetFieldInputFocus(pBuffer, nCharacters, true);
 }
diff --git a/fpdfsdk/formfiller/cffl_textfield.h b/fpdfsdk/formfiller/cffl_textfield.h
index 2a99413..49ffc0f 100644
--- a/fpdfsdk/formfiller/cffl_textfield.h
+++ b/fpdfsdk/formfiller/cffl_textfield.h
@@ -21,7 +21,7 @@
 
   int nStart;
   int nEnd;
-  CFX_WideString sValue;
+  WideString sValue;
 };
 
 class CFFL_TextField : public CFFL_TextObject,
diff --git a/fpdfsdk/fpdf_ext.cpp b/fpdfsdk/fpdf_ext.cpp
index 676f701..1e39f2b 100644
--- a/fpdfsdk/fpdf_ext.cpp
+++ b/fpdfsdk/fpdf_ext.cpp
@@ -52,7 +52,7 @@
     FPDF_UnSupportError(FPDF_UNSP_ANNOT_3DANNOT);
   } else if (nAnnotSubtype == CPDF_Annot::Subtype::SCREEN) {
     const CPDF_Dictionary* pAnnotDict = pPDFAnnot->GetAnnotDict();
-    CFX_ByteString cbString;
+    ByteString cbString;
     if (pAnnotDict->KeyExist("IT"))
       cbString = pAnnotDict->GetStringFor("IT");
     if (cbString.Compare("Img") != 0)
@@ -67,7 +67,7 @@
     FPDF_UnSupportError(FPDF_UNSP_ANNOT_ATTACHMENT);
   } else if (nAnnotSubtype == CPDF_Annot::Subtype::WIDGET) {
     const CPDF_Dictionary* pAnnotDict = pPDFAnnot->GetAnnotDict();
-    CFX_ByteString cbString;
+    ByteString cbString;
     if (pAnnotDict->KeyExist("FT"))
       cbString = pAnnotDict->GetStringFor("FT");
     if (cbString.Compare("Sig") == 0)
@@ -75,18 +75,18 @@
   }
 }
 
-bool CheckSharedForm(const CXML_Element* pElement, CFX_ByteString cbName) {
+bool CheckSharedForm(const CXML_Element* pElement, ByteString cbName) {
   int count = pElement->CountAttrs();
   int i = 0;
   for (i = 0; i < count; i++) {
-    CFX_ByteString space;
-    CFX_ByteString name;
-    CFX_WideString value;
+    ByteString space;
+    ByteString name;
+    WideString value;
     pElement->GetAttrByIndex(i, &space, &name, &value);
     if (space == "xmlns" && name == "adhocwf" &&
         value == L"http://ns.adobe.com/AcrobatAdhocWorkflow/1.0/") {
       CXML_Element* pVersion =
-          pElement->GetElement("adhocwf", cbName.AsStringC(), 0);
+          pElement->GetElement("adhocwf", cbName.AsStringView(), 0);
       if (!pVersion)
         continue;
       CXML_Content* pContent = ToContent(pVersion->GetChild(0));
@@ -127,7 +127,7 @@
   // Portfolios and Packages
   const CPDF_Dictionary* pRootDict = pDoc->GetRoot();
   if (pRootDict) {
-    CFX_ByteString cbString;
+    ByteString cbString;
     if (pRootDict->KeyExist("Collection")) {
       FPDF_UnSupportError(FPDF_UNSP_DOC_PORTABLECOLLECTION);
       return;
@@ -143,7 +143,7 @@
         CPDF_Array* pArray = pJSDict ? pJSDict->GetArrayFor("Names") : nullptr;
         if (pArray) {
           for (size_t i = 0; i < pArray->GetCount(); i++) {
-            CFX_ByteString cbStr = pArray->GetStringAt(i);
+            ByteString cbStr = pArray->GetStringAt(i);
             if (cbStr.Compare("com.adobe.acrobat.SharedReview.Register") == 0) {
               FPDF_UnSupportError(FPDF_UNSP_DOC_SHAREDREVIEW);
               return;
@@ -181,7 +181,7 @@
   if (!pName)
     return PAGEMODE_USENONE;
 
-  CFX_ByteString strPageMode = pName->GetString();
+  ByteString strPageMode = pName->GetString();
   if (strPageMode.IsEmpty() || strPageMode.EqualNoCase("UseNone"))
     return PAGEMODE_USENONE;
   if (strPageMode.EqualNoCase("UseOutlines"))
diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp
index b8e84c8..a276e3a 100644
--- a/fpdfsdk/fpdf_flatten.cpp
+++ b/fpdfsdk/fpdf_flatten.cpp
@@ -97,7 +97,7 @@
     if (!pAnnotDic)
       continue;
 
-    CFX_ByteString sSubtype = pAnnotDic->GetStringFor("Subtype");
+    ByteString sSubtype = pAnnotDic->GetStringFor("Subtype");
     if (sSubtype == "Popup")
       continue;
 
@@ -168,18 +168,18 @@
   return rcRet;
 }
 
-uint32_t NewIndirectContentsStream(const CFX_ByteString& key,
+uint32_t NewIndirectContentsStream(const ByteString& key,
                                    CPDF_Document* pDocument) {
   CPDF_Stream* pNewContents = pDocument->NewIndirect<CPDF_Stream>(
       nullptr, 0,
       pdfium::MakeUnique<CPDF_Dictionary>(pDocument->GetByteStringPool()));
-  CFX_ByteString sStream;
+  ByteString sStream;
   sStream.Format("q 1 0 0 1 0 0 cm /%s Do Q", key.c_str());
   pNewContents->SetData(sStream.raw_str(), sStream.GetLength());
   return pNewContents->GetObjNum();
 }
 
-void SetPageContents(const CFX_ByteString& key,
+void SetPageContents(const ByteString& key,
                      CPDF_Dictionary* pPage,
                      CPDF_Document* pDocument) {
   CPDF_Array* pContentsArray = nullptr;
@@ -199,9 +199,9 @@
     pContentsArray = pDocument->NewIndirect<CPDF_Array>();
     auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pContentsStream);
     pAcc->LoadAllData();
-    CFX_ByteString sStream = "q\n";
-    CFX_ByteString sBody =
-        CFX_ByteString((const char*)pAcc->GetData(), pAcc->GetSize());
+    ByteString sStream = "q\n";
+    ByteString sBody =
+        ByteString((const char*)pAcc->GetData(), pAcc->GetSize());
     sStream = sStream + sBody + "\nQ";
     pContentsStream->SetDataAndRemoveFilter(sStream.raw_str(),
                                             sStream.GetLength());
@@ -299,10 +299,10 @@
   if (!pPageXObject)
     pPageXObject = pRes->SetNewFor<CPDF_Dictionary>("XObject");
 
-  CFX_ByteString key;
+  ByteString key;
   int nStreams = pdfium::CollectionSize<int>(ObjectArray);
   if (nStreams > 0) {
-    CFX_ByteString sKey;
+    ByteString sKey;
     int i = 0;
     while (i < INT_MAX) {
       sKey.Format("FFT%d", i);
@@ -336,7 +336,7 @@
     CFX_FloatRect rcAnnot = pAnnotDic->GetRectFor("Rect");
     rcAnnot.Normalize();
 
-    CFX_ByteString sAnnotState = pAnnotDic->GetStringFor("AS");
+    ByteString sAnnotState = pAnnotDic->GetStringFor("AS");
     CPDF_Dictionary* pAnnotAP = pAnnotDic->GetDictFor("AP");
     if (!pAnnotAP)
       continue;
@@ -392,17 +392,17 @@
     if (!pXObject)
       pXObject = pNewXORes->SetNewFor<CPDF_Dictionary>("XObject");
 
-    CFX_ByteString sFormName;
+    ByteString sFormName;
     sFormName.Format("F%d", i);
     pXObject->SetNewFor<CPDF_Reference>(sFormName, pDocument,
                                         pObj->GetObjNum());
 
     auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(pNewXObject);
     pAcc->LoadAllData();
-    CFX_ByteString sStream(pAcc->GetData(), pAcc->GetSize());
+    ByteString sStream(pAcc->GetData(), pAcc->GetSize());
     CFX_Matrix matrix = pAPDic->GetMatrixFor("Matrix");
     CFX_Matrix m = GetMatrix(rcAnnot, rcStream, matrix);
-    CFX_ByteString sTemp;
+    ByteString sTemp;
     sTemp.Format("q %f 0 0 %f %f %f cm /%s Do Q\n", m.a, m.d, m.e, m.f,
                  sFormName.c_str());
     sStream += sTemp;
diff --git a/fpdfsdk/fpdf_structtree.cpp b/fpdfsdk/fpdf_structtree.cpp
index a6bf60d..b1fca65 100644
--- a/fpdfsdk/fpdf_structtree.cpp
+++ b/fpdfsdk/fpdf_structtree.cpp
@@ -22,13 +22,13 @@
   return static_cast<CPDF_StructElement*>(struct_element);
 }
 
-unsigned long WideStringToBuffer(const CFX_WideString& str,
+unsigned long WideStringToBuffer(const WideString& str,
                                  void* buffer,
                                  unsigned long buflen) {
   if (str.IsEmpty())
     return 0;
 
-  CFX_ByteString encodedStr = str.UTF16LE_Encode();
+  ByteString encodedStr = str.UTF16LE_Encode();
   const unsigned long len = encodedStr.GetLength();
   if (buffer && len <= buflen)
     memcpy(buffer, encodedStr.c_str(), len);
diff --git a/fpdfsdk/fpdf_structtree_embeddertest.cpp b/fpdfsdk/fpdf_structtree_embeddertest.cpp
index 43a4d01..05b77fc 100644
--- a/fpdfsdk/fpdf_structtree_embeddertest.cpp
+++ b/fpdfsdk/fpdf_structtree_embeddertest.cpp
@@ -57,8 +57,8 @@
   ASSERT_EQ(24U, FPDF_StructElement_GetAltText(gchild_element, buffer,
                                                sizeof(buffer)));
   const wchar_t kExpected[] = L"Black Image";
-  EXPECT_EQ(CFX_WideString(kExpected),
-            CFX_WideString::FromUTF16LE(buffer, FXSYS_len(kExpected)));
+  EXPECT_EQ(WideString(kExpected),
+            WideString::FromUTF16LE(buffer, FXSYS_len(kExpected)));
 
   ASSERT_EQ(1, FPDF_StructElement_CountChildren(gchild_element));
   FPDF_STRUCTELEMENT ggchild_element =
@@ -91,8 +91,8 @@
 
   ASSERT_EQ(18U, FPDF_StructElement_GetType(element, buffer, sizeof(buffer)));
   const wchar_t kExpected[] = L"Document";
-  EXPECT_EQ(CFX_WideString(kExpected),
-            CFX_WideString::FromUTF16LE(buffer, FXSYS_len(kExpected)));
+  EXPECT_EQ(WideString(kExpected),
+            WideString::FromUTF16LE(buffer, FXSYS_len(kExpected)));
 
   FPDF_StructTree_Close(struct_tree);
   FPDF_ClosePage(page);
diff --git a/fpdfsdk/fpdf_sysfontinfo.cpp b/fpdfsdk/fpdf_sysfontinfo.cpp
index 92c9937..875f3fd 100644
--- a/fpdfsdk/fpdf_sysfontinfo.cpp
+++ b/fpdfsdk/fpdf_sysfontinfo.cpp
@@ -73,7 +73,7 @@
     return m_pInfo->GetFontData(m_pInfo, hFont, table, buffer, size);
   }
 
-  bool GetFaceName(void* hFont, CFX_ByteString* name) override {
+  bool GetFaceName(void* hFont, ByteString* name) override {
     if (!m_pInfo->GetFaceName)
       return false;
     uint32_t size = m_pInfo->GetFaceName(m_pInfo, hFont, nullptr, 0);
@@ -81,7 +81,7 @@
       return false;
     char* buffer = FX_Alloc(char, size);
     size = m_pInfo->GetFaceName(m_pInfo, hFont, buffer, size);
-    *name = CFX_ByteString(buffer, size);
+    *name = ByteString(buffer, size);
     FX_Free(buffer);
     return true;
   }
@@ -167,7 +167,7 @@
                                         void* hFont,
                                         char* buffer,
                                         unsigned long buf_size) {
-  CFX_ByteString name;
+  ByteString name;
   auto* pDefault = static_cast<FPDF_SYSFONTINFO_DEFAULT*>(pThis);
   if (!pDefault->m_pFontInfo->GetFaceName(hFont, &name))
     return 0;
@@ -175,7 +175,7 @@
     return name.GetLength() + 1;
 
   strncpy(buffer, name.c_str(),
-          (name.GetLength() + 1) * sizeof(CFX_ByteString::CharType));
+          (name.GetLength() + 1) * sizeof(ByteString::CharType));
   return name.GetLength() + 1;
 }
 
diff --git a/fpdfsdk/fpdf_transformpage.cpp b/fpdfsdk/fpdf_transformpage.cpp
index 93df594..9480771 100644
--- a/fpdfsdk/fpdf_transformpage.cpp
+++ b/fpdfsdk/fpdf_transformpage.cpp
@@ -25,7 +25,7 @@
 namespace {
 
 void SetBoundingBox(CPDF_Page* page,
-                    const CFX_ByteString& key,
+                    const ByteString& key,
                     float left,
                     float bottom,
                     float right,
@@ -38,7 +38,7 @@
 }
 
 bool GetBoundingBox(CPDF_Page* page,
-                    const CFX_ByteString& key,
+                    const ByteString& key,
                     float* left,
                     float* bottom,
                     float* right,
@@ -111,12 +111,12 @@
   CFX_FloatRect rect(clipRect->left, clipRect->bottom, clipRect->right,
                      clipRect->top);
   rect.Normalize();
-  CFX_ByteString bsClipping;
+  ByteString bsClipping;
   bsClipping.Format("%f %f %f %f re W* n ", rect.left, rect.bottom,
                     rect.Width(), rect.Height());
   textBuf << bsClipping;
 
-  CFX_ByteString bsMatix;
+  ByteString bsMatix;
   bsMatix.Format("%f %f %f %f %f %f cm ", matrix->a, matrix->b, matrix->c,
                  matrix->d, matrix->e, matrix->f);
   textBuf << bsMatix;
@@ -248,7 +248,7 @@
     return;
   }
 
-  CFX_ByteString temp;
+  ByteString temp;
   for (size_t i = 0; i < pPoints.size(); i++) {
     buf << pPoints[i].m_Point.x << " " << pPoints[i].m_Point.y;
     FXPT_TYPE point_type = pPoints[i].m_Type;
diff --git a/fpdfsdk/fpdfannot.cpp b/fpdfsdk/fpdfannot.cpp
index 95f0f44..e08a3bf 100644
--- a/fpdfsdk/fpdfannot.cpp
+++ b/fpdfsdk/fpdfannot.cpp
@@ -483,7 +483,7 @@
   pAnnotDict->SetNewFor<CPDF_Number>("CA", A / 255.f);
 
   // Set the color of the annotation.
-  CFX_ByteString key = type == FPDFANNOT_COLORTYPE_InteriorColor ? "IC" : "C";
+  ByteString key = type == FPDFANNOT_COLORTYPE_InteriorColor ? "IC" : "C";
   CPDF_Array* pColor = pAnnotDict->GetArrayFor(key);
   if (pColor)
     pColor->Clear();
diff --git a/fpdfsdk/fpdfattachment.cpp b/fpdfsdk/fpdfattachment.cpp
index d984cf8..7402114 100644
--- a/fpdfsdk/fpdfattachment.cpp
+++ b/fpdfsdk/fpdfattachment.cpp
@@ -25,24 +25,23 @@
 
 constexpr char kChecksumKey[] = "CheckSum";
 
-CFX_ByteString CFXByteStringHexDecode(const CFX_ByteString& bsHex) {
+ByteString CFXByteStringHexDecode(const ByteString& bsHex) {
   uint8_t* result = nullptr;
   uint32_t size = 0;
   HexDecode(bsHex.raw_str(), bsHex.GetLength(), &result, &size);
-  CFX_ByteString bsDecoded(result, size);
+  ByteString bsDecoded(result, size);
   FX_Free(result);
   return bsDecoded;
 }
 
-CFX_ByteString GenerateMD5Base16(const void* contents,
-                                 const unsigned long len) {
+ByteString GenerateMD5Base16(const void* contents, const unsigned long len) {
   uint8_t digest[16];
   CRYPT_MD5Generate(reinterpret_cast<const uint8_t*>(contents), len, digest);
   char buf[32];
   for (int i = 0; i < 16; ++i)
     FXSYS_IntToTwoHexChars(digest[i], &buf[i * 2]);
 
-  return CFX_ByteString(buf, 32);
+  return ByteString(buf, 32);
 }
 
 }  // namespace
@@ -59,8 +58,8 @@
 FPDF_EXPORT FPDF_ATTACHMENT FPDF_CALLCONV
 FPDFDoc_AddAttachment(FPDF_DOCUMENT document, FPDF_WIDESTRING name) {
   CPDF_Document* pDoc = CPDFDocumentFromFPDFDocument(document);
-  CFX_WideString wsName =
-      CFX_WideString::FromUTF16LE(name, CFX_WideString::WStringLength(name));
+  WideString wsName =
+      WideString::FromUTF16LE(name, WideString::WStringLength(name));
   if (!pDoc || wsName.IsEmpty())
     return nullptr;
 
@@ -110,7 +109,7 @@
   if (static_cast<size_t>(index) >= nameTree.GetCount())
     return nullptr;
 
-  CFX_WideString csName;
+  WideString csName;
   return nameTree.LookupValueAndName(index, &csName);
 }
 
@@ -171,8 +170,8 @@
   if (!pParamsDict)
     return false;
 
-  CFX_ByteString bsKey = key;
-  CFX_ByteString bsValue = CFXByteStringFromFPDFWideString(value);
+  ByteString bsKey = key;
+  ByteString bsValue = CFXByteStringFromFPDFWideString(value);
   bool bEncodedAsHex = bsKey == kChecksumKey;
   if (bEncodedAsHex)
     bsValue = CFXByteStringHexDecode(bsValue);
@@ -194,12 +193,12 @@
   if (!pParamsDict)
     return 0;
 
-  CFX_ByteString bsKey = key;
-  CFX_WideString value = pParamsDict->GetUnicodeTextFor(bsKey);
+  ByteString bsKey = key;
+  WideString value = pParamsDict->GetUnicodeTextFor(bsKey);
   if (bsKey == kChecksumKey && !value.IsEmpty()) {
     CPDF_String* stringValue = pParamsDict->GetObjectFor(bsKey)->AsString();
     if (stringValue->IsHex()) {
-      CFX_ByteString encoded = PDF_EncodeString(stringValue->GetString(), true);
+      ByteString encoded = PDF_EncodeString(stringValue->GetString(), true);
       value = CPDF_String(nullptr, encoded, false).GetUnicodeText();
     }
   }
@@ -233,7 +232,7 @@
   // Set the creation date of the new attachment in the dictionary.
   CFX_DateTime dateTime;
   dateTime.Now();
-  CFX_ByteString bsDateTime;
+  ByteString bsDateTime;
   bsDateTime.Format("D:%d%02d%02d%02d%02d%02d", dateTime.GetYear(),
                     dateTime.GetMonth(), dateTime.GetDay(), dateTime.GetHour(),
                     dateTime.GetMinute(), dateTime.GetSecond());
diff --git a/fpdfsdk/fpdfdoc.cpp b/fpdfsdk/fpdfdoc.cpp
index f73336a..c3910b2 100644
--- a/fpdfsdk/fpdfdoc.cpp
+++ b/fpdfsdk/fpdfdoc.cpp
@@ -24,7 +24,7 @@
 
 CPDF_Bookmark FindBookmark(const CPDF_BookmarkTree& tree,
                            CPDF_Bookmark bookmark,
-                           const CFX_WideString& title,
+                           const WideString& title,
                            std::set<CPDF_Dictionary*>* visited) {
   // Return if already checked to avoid circular calling.
   if (pdfium::ContainsKey(*visited, bookmark.GetDict()))
@@ -91,7 +91,7 @@
   if (!pDict)
     return 0;
   CPDF_Bookmark bookmark(ToDictionary(static_cast<CPDF_Object*>(pDict)));
-  CFX_WideString title = bookmark.GetTitle();
+  WideString title = bookmark.GetTitle();
   return Utf16EncodeMaybeCopyAndReturnLength(title, buffer, buflen);
 }
 
@@ -103,8 +103,8 @@
   if (!pDoc)
     return nullptr;
   CPDF_BookmarkTree tree(pDoc);
-  FX_STRSIZE len = CFX_WideString::WStringLength(title);
-  CFX_WideString encodedTitle = CFX_WideString::FromUTF16LE(title, len);
+  FX_STRSIZE len = WideString::WStringLength(title);
+  WideString encodedTitle = WideString::FromUTF16LE(title, len);
   std::set<CPDF_Dictionary*> visited;
   return FindBookmark(tree, CPDF_Bookmark(), encodedTitle, &visited).GetDict();
 }
@@ -174,7 +174,7 @@
     return 0;
 
   CPDF_Action action(ToDictionary(static_cast<CPDF_Object*>(pDict)));
-  CFX_ByteString path = action.GetFilePath().UTF8Encode();
+  ByteString path = action.GetFilePath().UTF8Encode();
   unsigned long len = path.GetLength() + 1;
   if (buffer && len <= buflen)
     memcpy(buffer, path.c_str(), len);
@@ -192,7 +192,7 @@
   if (!pDoc)
     return 0;
   CPDF_Action action(ToDictionary(static_cast<CPDF_Object*>(pDict)));
-  CFX_ByteString path = action.GetURI(pDoc);
+  ByteString path = action.GetURI(pDoc);
   unsigned long len = path.GetLength() + 1;
   if (buffer && len <= buflen)
     memcpy(buffer, path.c_str(), len);
@@ -390,7 +390,7 @@
   const CPDF_Dictionary* pInfo = pDoc->GetInfo();
   if (!pInfo)
     return 0;
-  CFX_WideString text = pInfo->GetUnicodeTextFor(tag);
+  WideString text = pInfo->GetUnicodeTextFor(tag);
   return Utf16EncodeMaybeCopyAndReturnLength(text, buffer, buflen);
 }
 
@@ -404,7 +404,7 @@
 
   // CPDF_PageLabel can deal with NULL |document|.
   CPDF_PageLabel label(CPDFDocumentFromFPDFDocument(document));
-  CFX_WideString str;
+  WideString str;
   if (!label.GetLabel(page_index, &str))
     return 0;
   return Utf16EncodeMaybeCopyAndReturnLength(str, buffer, buflen);
diff --git a/fpdfsdk/fpdfdoc_embeddertest.cpp b/fpdfsdk/fpdfdoc_embeddertest.cpp
index b44a8ec..5db610e 100644
--- a/fpdfsdk/fpdfdoc_embeddertest.cpp
+++ b/fpdfsdk/fpdfdoc_embeddertest.cpp
@@ -125,16 +125,14 @@
   FPDF_BOOKMARK child = FPDFBookmark_GetFirstChild(document(), nullptr);
   EXPECT_TRUE(child);
   EXPECT_EQ(34u, FPDFBookmark_GetTitle(child, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(L"A Good Beginning"),
-            CFX_WideString::FromUTF16LE(buf, 16));
+  EXPECT_EQ(WideString(L"A Good Beginning"), WideString::FromUTF16LE(buf, 16));
 
   EXPECT_EQ(nullptr, FPDFBookmark_GetFirstChild(document(), child));
 
   FPDF_BOOKMARK sibling = FPDFBookmark_GetNextSibling(document(), child);
   EXPECT_TRUE(sibling);
   EXPECT_EQ(28u, FPDFBookmark_GetTitle(sibling, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(L"A Good Ending"),
-            CFX_WideString::FromUTF16LE(buf, 13));
+  EXPECT_EQ(WideString(L"A Good Ending"), WideString::FromUTF16LE(buf, 13));
 
   EXPECT_EQ(nullptr, FPDFBookmark_GetNextSibling(document(), sibling));
 }
@@ -152,8 +150,7 @@
   // Check that the string matches.
   unsigned short buf[128];
   EXPECT_EQ(34u, FPDFBookmark_GetTitle(child, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(L"A Good Beginning"),
-            CFX_WideString::FromUTF16LE(buf, 16));
+  EXPECT_EQ(WideString(L"A Good Beginning"), WideString::FromUTF16LE(buf, 16));
 
   // Check that it is them same as the one returned by GetFirstChild.
   EXPECT_EQ(child, FPDFBookmark_GetFirstChild(document(), nullptr));
@@ -201,19 +198,19 @@
 
   constexpr wchar_t kExpectedCreator[] = L"Microsoft Word";
   ASSERT_EQ(30u, FPDF_GetMetaText(document(), "Creator", buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedCreator),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedCreator)));
+  EXPECT_EQ(WideString(kExpectedCreator),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedCreator)));
 
   constexpr wchar_t kExpectedCreationDate[] = L"D:20160411190039+00'00'";
   ASSERT_EQ(48u,
             FPDF_GetMetaText(document(), "CreationDate", buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedCreationDate),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedCreationDate)));
+  EXPECT_EQ(WideString(kExpectedCreationDate),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedCreationDate)));
 
   constexpr wchar_t kExpectedModDate[] = L"D:20160411190039+00'00'";
   ASSERT_EQ(48u, FPDF_GetMetaText(document(), "ModDate", buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedModDate),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate)));
+  EXPECT_EQ(WideString(kExpectedModDate),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate)));
 }
 
 TEST_F(FPDFDocEmbeddertest, GetMetaTextSameObjectNumber) {
@@ -225,8 +222,8 @@
   unsigned short buf[128];
   constexpr wchar_t kExpectedModDate[] = L"D:20170612232940-04'00'";
   ASSERT_EQ(48u, FPDF_GetMetaText(document(), "ModDate", buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedModDate),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate)));
+  EXPECT_EQ(WideString(kExpectedModDate),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate)));
 }
 
 TEST_F(FPDFDocEmbeddertest, GetMetaTextInAttachmentFile) {
@@ -236,8 +233,8 @@
   unsigned short buf[128];
   constexpr wchar_t kExpectedModDate[] = L"D:20170712214448-07'00'";
   ASSERT_EQ(48u, FPDF_GetMetaText(document(), "ModDate", buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedModDate),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate)));
+  EXPECT_EQ(WideString(kExpectedModDate),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedModDate)));
 }
 
 TEST_F(FPDFDocEmbeddertest, NoPageLabels) {
@@ -257,38 +254,38 @@
 
   const wchar_t kExpectedPageLabel0[] = L"i";
   ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 0, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedPageLabel0),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel0)));
+  EXPECT_EQ(WideString(kExpectedPageLabel0),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel0)));
 
   const wchar_t kExpectedPageLabel1[] = L"ii";
   ASSERT_EQ(6u, FPDF_GetPageLabel(document(), 1, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedPageLabel1),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel1)));
+  EXPECT_EQ(WideString(kExpectedPageLabel1),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel1)));
 
   const wchar_t kExpectedPageLabel2[] = L"1";
   ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 2, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedPageLabel2),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel2)));
+  EXPECT_EQ(WideString(kExpectedPageLabel2),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel2)));
 
   const wchar_t kExpectedPageLabel3[] = L"2";
   ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 3, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedPageLabel3),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel3)));
+  EXPECT_EQ(WideString(kExpectedPageLabel3),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel3)));
 
   const wchar_t kExpectedPageLabel4[] = L"zzA";
   ASSERT_EQ(8u, FPDF_GetPageLabel(document(), 4, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedPageLabel4),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel4)));
+  EXPECT_EQ(WideString(kExpectedPageLabel4),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel4)));
 
   const wchar_t kExpectedPageLabel5[] = L"zzB";
   ASSERT_EQ(8u, FPDF_GetPageLabel(document(), 5, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedPageLabel5),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel5)));
+  EXPECT_EQ(WideString(kExpectedPageLabel5),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel5)));
 
   const wchar_t kExpectedPageLabel6[] = L"";
   ASSERT_EQ(2u, FPDF_GetPageLabel(document(), 6, buf, sizeof(buf)));
-  EXPECT_EQ(CFX_WideString(kExpectedPageLabel6),
-            CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel6)));
+  EXPECT_EQ(WideString(kExpectedPageLabel6),
+            WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel6)));
 
   ASSERT_EQ(0u, FPDF_GetPageLabel(document(), 7, buf, sizeof(buf)));
   ASSERT_EQ(0u, FPDF_GetPageLabel(document(), 8, buf, sizeof(buf)));
diff --git a/fpdfsdk/fpdfedit_embeddertest.cpp b/fpdfsdk/fpdfedit_embeddertest.cpp
index faf6d97..ca2a457 100644
--- a/fpdfsdk/fpdfedit_embeddertest.cpp
+++ b/fpdfsdk/fpdfedit_embeddertest.cpp
@@ -64,8 +64,8 @@
     EXPECT_TRUE(font_desc->KeyExist("Descent"));
     EXPECT_TRUE(font_desc->KeyExist("CapHeight"));
     EXPECT_TRUE(font_desc->KeyExist("StemV"));
-    CFX_ByteString present("FontFile");
-    CFX_ByteString absent("FontFile2");
+    ByteString present("FontFile");
+    ByteString absent("FontFile2");
     if (font_type == FPDF_FONT_TRUETYPE)
       std::swap(present, absent);
     EXPECT_TRUE(font_desc->KeyExist(present));
diff --git a/fpdfsdk/fpdfeditimg.cpp b/fpdfsdk/fpdfeditimg.cpp
index 5e31916..7036aa2 100644
--- a/fpdfsdk/fpdfeditimg.cpp
+++ b/fpdfsdk/fpdfeditimg.cpp
@@ -244,7 +244,7 @@
   CPDF_PageObject* pObj = CPDFPageObjectFromFPDFPageObject(image_object);
   CPDF_Object* pFilter =
       pObj->AsImage()->GetImage()->GetDict()->GetDirectObjectFor("Filter");
-  CFX_ByteString bsFilter;
+  ByteString bsFilter;
   if (pFilter->IsName())
     bsFilter = pFilter->AsName()->GetString();
   else
diff --git a/fpdfsdk/fpdfeditpage.cpp b/fpdfsdk/fpdfeditpage.cpp
index 79155e5..26f4424 100644
--- a/fpdfsdk/fpdfeditpage.cpp
+++ b/fpdfsdk/fpdfeditpage.cpp
@@ -100,7 +100,7 @@
   pDoc->CreateNewDoc();
 
   time_t currentTime;
-  CFX_ByteString DateStr;
+  ByteString DateStr;
   if (FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS)) {
     if (time(&currentTime) != -1) {
       tm* pTM = localtime(&currentTime);
diff --git a/fpdfsdk/fpdfedittext.cpp b/fpdfsdk/fpdfedittext.cpp
index 38f7cc2..2ac32b8 100644
--- a/fpdfsdk/fpdfedittext.cpp
+++ b/fpdfsdk/fpdfedittext.cpp
@@ -28,7 +28,7 @@
 namespace {
 
 CPDF_Dictionary* LoadFontDesc(CPDF_Document* pDoc,
-                              const CFX_ByteString& font_name,
+                              const ByteString& font_name,
                               CFX_Font* pFont,
                               const uint8_t* data,
                               uint32_t size,
@@ -71,8 +71,7 @@
 
   CPDF_Stream* pStream = pDoc->NewIndirect<CPDF_Stream>();
   pStream->SetData(data, size);
-  CFX_ByteString fontFile =
-      font_type == FPDF_FONT_TYPE1 ? "FontFile" : "FontFile2";
+  ByteString fontFile = font_type == FPDF_FONT_TYPE1 ? "FontFile" : "FontFile2";
   fontDesc->SetNewFor<CPDF_Reference>(fontFile, pDoc, pStream->GetObjNum());
   return fontDesc;
 }
@@ -243,7 +242,7 @@
   fontDict->SetNewFor<CPDF_Name>("Type", "Font");
   fontDict->SetNewFor<CPDF_Name>(
       "Subtype", font_type == FPDF_FONT_TYPE1 ? "Type1" : "TrueType");
-  CFX_ByteString name = pFont->GetFaceName();
+  ByteString name = pFont->GetFaceName();
   if (name.IsEmpty())
     name = "Unnamed";
   fontDict->SetNewFor<CPDF_Name>("BaseFont", name);
@@ -286,9 +285,9 @@
   fontDict->SetNewFor<CPDF_Name>("Type", "Font");
   fontDict->SetNewFor<CPDF_Name>("Subtype", "Type0");
   // TODO(npm): Get the correct encoding, if it's not identity.
-  CFX_ByteString encoding = "Identity-H";
+  ByteString encoding = "Identity-H";
   fontDict->SetNewFor<CPDF_Name>("Encoding", encoding);
-  CFX_ByteString name = pFont->GetFaceName();
+  ByteString name = pFont->GetFaceName();
   if (name.IsEmpty())
     name = "Unnamed";
   fontDict->SetNewFor<CPDF_Name>(
@@ -404,7 +403,7 @@
   if (!pDoc)
     return nullptr;
 
-  CPDF_Font* pFont = CPDF_Font::GetStockFont(pDoc, CFX_ByteStringC(font));
+  CPDF_Font* pFont = CPDF_Font::GetStockFont(pDoc, ByteStringView(font));
   if (!pFont)
     return nullptr;
 
@@ -421,9 +420,9 @@
   if (!pTextObj)
     return false;
 
-  FX_STRSIZE len = CFX_WideString::WStringLength(text);
-  CFX_WideString encodedText = CFX_WideString::FromUTF16LE(text, len);
-  CFX_ByteString byteText;
+  FX_STRSIZE len = WideString::WStringLength(text);
+  WideString encodedText = WideString::FromUTF16LE(text, len);
+  ByteString byteText;
   for (wchar_t wc : encodedText) {
     pTextObj->GetFont()->AppendChar(
         &byteText, pTextObj->GetFont()->CharCodeFromUnicode(wc));
diff --git a/fpdfsdk/fpdfformfill.cpp b/fpdfsdk/fpdfformfill.cpp
index 1b5cc48..77cba50 100644
--- a/fpdfsdk/fpdfformfill.cpp
+++ b/fpdfsdk/fpdfformfill.cpp
@@ -66,11 +66,11 @@
 }
 
 #ifdef PDF_ENABLE_XFA
-std::vector<CFX_ByteString>* FromFPDFStringHandle(FPDF_STRINGHANDLE handle) {
-  return static_cast<std::vector<CFX_ByteString>*>(handle);
+std::vector<ByteString>* FromFPDFStringHandle(FPDF_STRINGHANDLE handle) {
+  return static_cast<std::vector<ByteString>*>(handle);
 }
 
-FPDF_STRINGHANDLE ToFPDFStringHandle(std::vector<CFX_ByteString>* strings) {
+FPDF_STRINGHANDLE ToFPDFStringHandle(std::vector<ByteString>* strings) {
   return static_cast<FPDF_STRINGHANDLE>(strings);
 }
 #endif  // PDF_ENABLE_XFA
@@ -387,8 +387,8 @@
   if (!pPageView)
     return 0;
 
-  CFX_WideString wide_str_form_text = pPageView->GetSelectedText();
-  CFX_ByteString encoded_form_text = wide_str_form_text.UTF16LE_Encode();
+  WideString wide_str_form_text = pPageView->GetSelectedText();
+  ByteString encoded_form_text = wide_str_form_text.UTF16LE_Encode();
   unsigned long form_text_len = encoded_form_text.GetLength();
 
   if (buffer && buflen >= form_text_len)
@@ -404,8 +404,8 @@
   if (!pPageView)
     return;
 
-  FX_STRSIZE len = CFX_WideString::WStringLength(wsText);
-  CFX_WideString wide_str_text = CFX_WideString::FromUTF16LE(wsText, len);
+  FX_STRSIZE len = WideString::WStringLength(wsText);
+  WideString wide_str_text = WideString::FromUTF16LE(wsText, len);
 
   pPageView->ReplaceSelection(wide_str_text);
 }
@@ -500,10 +500,10 @@
       pContext->GetDocType() != XFA_DocType::Static)
     return;
 
-  CFX_WideString wsCpText;
+  WideString wsCpText;
   static_cast<CXFA_FFWidget*>(hWidget)->Copy(wsCpText);
 
-  CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode();
+  ByteString bsCpText = wsCpText.UTF16LE_Encode();
   uint32_t len = bsCpText.GetLength() / sizeof(unsigned short);
   if (!wsText) {
     *size = len;
@@ -532,10 +532,10 @@
       pContext->GetDocType() != XFA_DocType::Static)
     return;
 
-  CFX_WideString wsCpText;
+  WideString wsCpText;
   static_cast<CXFA_FFWidget*>(hWidget)->Cut(wsCpText);
 
-  CFX_ByteString bsCpText = wsCpText.UTF16LE_Encode();
+  ByteString bsCpText = wsCpText.UTF16LE_Encode();
   uint32_t len = bsCpText.GetLength() / sizeof(unsigned short);
   if (!wsText) {
     *size = len;
@@ -564,7 +564,7 @@
       pContext->GetDocType() != XFA_DocType::Static)
     return;
 
-  CFX_WideString wstr = CFX_WideString::FromUTF16LE(wsText, size);
+  WideString wstr = WideString::FromUTF16LE(wsText, size);
   static_cast<CXFA_FFWidget*>(hWidget)->Paste(wstr);
 }
 
@@ -585,7 +585,7 @@
   CFX_PointF ptPopup;
   ptPopup.x = x;
   ptPopup.y = y;
-  CFX_ByteStringC bs(bsText);
+  ByteStringView bs(bsText);
   static_cast<CXFA_FFWidget*>(hWidget)->ReplaceSpellCheckWord(ptPopup, bs);
 }
 
@@ -606,7 +606,7 @@
   CFX_PointF ptPopup;
   ptPopup.x = x;
   ptPopup.y = y;
-  auto sSuggestWords = pdfium::MakeUnique<std::vector<CFX_ByteString>>();
+  auto sSuggestWords = pdfium::MakeUnique<std::vector<ByteString>>();
   static_cast<CXFA_FFWidget*>(hWidget)->GetSuggestWords(ptPopup,
                                                         sSuggestWords.get());
 
@@ -616,7 +616,7 @@
 
 FPDF_EXPORT int FPDF_CALLCONV
 FPDF_StringHandleCounts(FPDF_STRINGHANDLE sHandle) {
-  std::vector<CFX_ByteString>* sSuggestWords = FromFPDFStringHandle(sHandle);
+  std::vector<ByteString>* sSuggestWords = FromFPDFStringHandle(sHandle);
   return sSuggestWords ? pdfium::CollectionSize<int>(*sSuggestWords) : -1;
 }
 
@@ -632,7 +632,7 @@
   if (index < 0 || index >= count)
     return false;
 
-  std::vector<CFX_ByteString>* sSuggestWords = FromFPDFStringHandle(sHandle);
+  std::vector<ByteString>* sSuggestWords = FromFPDFStringHandle(sHandle);
   uint32_t len = (*sSuggestWords)[index].GetLength();
   if (!bsText) {
     *size = len;
@@ -658,7 +658,7 @@
   if (!stringHandle || !bsText || size == 0)
     return false;
 
-  FromFPDFStringHandle(stringHandle)->push_back(CFX_ByteString(bsText, size));
+  FromFPDFStringHandle(stringHandle)->push_back(ByteString(bsText, size));
   return true;
 }
 #endif  // PDF_ENABLE_XFA
diff --git a/fpdfsdk/fpdfformfill_embeddertest.cpp b/fpdfsdk/fpdfformfill_embeddertest.cpp
index 56e1662..2597b37 100644
--- a/fpdfsdk/fpdfformfill_embeddertest.cpp
+++ b/fpdfsdk/fpdfformfill_embeddertest.cpp
@@ -106,7 +106,7 @@
     FORM_OnLButtonUp(form_handle(), page_, 0, end.x, end.y);
   }
 
-  void CheckSelection(const CFX_WideStringC& expected_string) {
+  void CheckSelection(const WideStringView& expected_string) {
     // Calculate expected length for selected text.
     int num_chars = expected_string.GetLength();
 
@@ -121,8 +121,7 @@
     EXPECT_EQ(expected_length, FORM_GetSelectedText(form_handle(), page_,
                                                     buf.data(), sel_text_len));
 
-    EXPECT_EQ(expected_string,
-              CFX_WideString::FromUTF16LE(buf.data(), num_chars));
+    EXPECT_EQ(expected_string, WideString::FromUTF16LE(buf.data(), num_chars));
   }
 
  private:
diff --git a/fpdfsdk/fpdfppo.cpp b/fpdfsdk/fpdfppo.cpp
index d08de02..230fd14 100644
--- a/fpdfsdk/fpdfppo.cpp
+++ b/fpdfsdk/fpdfppo.cpp
@@ -26,7 +26,7 @@
 namespace {
 
 CPDF_Object* PageDictGetInheritableTag(CPDF_Dictionary* pDict,
-                                       const CFX_ByteString& bsSrcTag) {
+                                       const ByteString& bsSrcTag) {
   if (!pDict || bsSrcTag.IsEmpty())
     return nullptr;
   if (!pDict->KeyExist("Parent") || !pDict->KeyExist("Type"))
@@ -58,7 +58,7 @@
 
 bool CopyInheritable(CPDF_Dictionary* pCurPageDict,
                      CPDF_Dictionary* pSrcPageDict,
-                     const CFX_ByteString& key) {
+                     const ByteString& key) {
   if (pCurPageDict->KeyExist(key))
     return true;
 
@@ -70,7 +70,7 @@
   return true;
 }
 
-bool ParserPageRangeString(CFX_ByteString rangstring,
+bool ParserPageRangeString(ByteString rangstring,
                            std::vector<uint16_t>* pageArray,
                            int nCount) {
   if (rangstring.IsEmpty())
@@ -78,13 +78,13 @@
 
   rangstring.Remove(' ');
   FX_STRSIZE nLength = rangstring.GetLength();
-  CFX_ByteString cbCompareString("0123456789-,");
+  ByteString cbCompareString("0123456789-,");
   for (FX_STRSIZE i = 0; i < nLength; ++i) {
     if (!cbCompareString.Contains(rangstring[i]))
       return false;
   }
 
-  CFX_ByteString cbMidRange;
+  ByteString cbMidRange;
   FX_STRSIZE nStringFrom = 0;
   pdfium::Optional<FX_STRSIZE> nStringTo = 0;
   while (nStringTo < nLength) {
@@ -165,7 +165,7 @@
 
   pDocInfoDict->SetNewFor<CPDF_String>("Producer", "PDFium", false);
 
-  CFX_ByteString cbRootType = pNewRoot->GetStringFor("Type", "");
+  ByteString cbRootType = pNewRoot->GetStringFor("Type", "");
   if (cbRootType.IsEmpty())
     pNewRoot->SetNewFor<CPDF_Name>("Type", "Catalog");
 
@@ -178,7 +178,7 @@
                                         pNewPages->GetObjNum());
   }
 
-  CFX_ByteString cbPageType = pNewPages->GetStringFor("Type", "");
+  ByteString cbPageType = pNewPages->GetStringFor("Type", "");
   if (cbPageType.IsEmpty())
     pNewPages->SetNewFor<CPDF_Name>("Type", "Pages");
 
@@ -205,7 +205,7 @@
 
     // Clone the page dictionary
     for (const auto& it : *pSrcPageDict) {
-      const CFX_ByteString& cbSrcKeyStr = it.first;
+      const ByteString& cbSrcKeyStr = it.first;
       if (cbSrcKeyStr == "Type" || cbSrcKeyStr == "Parent")
         continue;
 
@@ -271,7 +271,7 @@
       CPDF_Dictionary* pDict = pObj->AsDictionary();
       auto it = pDict->begin();
       while (it != pDict->end()) {
-        const CFX_ByteString& key = it->first;
+        const ByteString& key = it->first;
         CPDF_Object* pNextObj = it->second.get();
         ++it;
         if (key == "Parent" || key == "Prev" || key == "First")
@@ -330,7 +330,7 @@
   std::unique_ptr<CPDF_Object> pClone = pDirect->Clone();
   if (CPDF_Dictionary* pDictClone = pClone->AsDictionary()) {
     if (pDictClone->KeyExist("Type")) {
-      CFX_ByteString strType = pDictClone->GetStringFor("Type");
+      ByteString strType = pDictClone->GetStringFor("Type");
       if (!FXSYS_stricmp(strType.c_str(), "Pages"))
         return 4;
       if (!FXSYS_stricmp(strType.c_str(), "Page"))
diff --git a/fpdfsdk/fpdftext.cpp b/fpdfsdk/fpdftext.cpp
index 5b68da4..9742974 100644
--- a/fpdfsdk/fpdftext.cpp
+++ b/fpdfsdk/fpdftext.cpp
@@ -171,7 +171,7 @@
   if (start >= textpage->CountChars())
     return 0;
 
-  CFX_WideString str = textpage->GetPageText(start, count - 1);
+  WideString str = textpage->GetPageText(start, count - 1);
   if (str.GetLength() <= 0)
     return 0;
 
@@ -180,7 +180,7 @@
 
   // UFT16LE_Encode doesn't handle surrogate pairs properly, so it is expected
   // the number of items to stay the same.
-  CFX_ByteString cbUTF16str = str.UTF16LE_Encode();
+  ByteString cbUTF16str = str.UTF16LE_Encode();
   ASSERT(cbUTF16str.GetLength() / kBytesPerCharacter <=
          static_cast<size_t>(count));
   memcpy(result, cbUTF16str.GetBuffer(cbUTF16str.GetLength()),
@@ -229,12 +229,12 @@
 
   CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
   CFX_FloatRect rect((float)left, (float)bottom, (float)right, (float)top);
-  CFX_WideString str = textpage->GetTextByRect(rect);
+  WideString str = textpage->GetTextByRect(rect);
 
   if (buflen <= 0 || !buffer)
     return str.GetLength();
 
-  CFX_ByteString cbUTF16Str = str.UTF16LE_Encode();
+  ByteString cbUTF16Str = str.UTF16LE_Encode();
   int len = cbUTF16Str.GetLength() / sizeof(unsigned short);
   int size = buflen > len ? len : buflen;
   memcpy(buffer, cbUTF16Str.GetBuffer(size * sizeof(unsigned short)),
@@ -256,8 +256,8 @@
 
   CPDF_TextPageFind* textpageFind =
       new CPDF_TextPageFind(CPDFTextPageFromFPDFTextPage(text_page));
-  FX_STRSIZE len = CFX_WideString::WStringLength(findwhat);
-  textpageFind->FindFirst(CFX_WideString::FromUTF16LE(findwhat, len), flags,
+  FX_STRSIZE len = WideString::WStringLength(findwhat);
+  textpageFind->FindFirst(WideString::FromUTF16LE(findwhat, len), flags,
                           start_index >= 0
                               ? pdfium::Optional<FX_STRSIZE>(start_index)
                               : pdfium::Optional<FX_STRSIZE>());
@@ -330,12 +330,12 @@
                                               int link_index,
                                               unsigned short* buffer,
                                               int buflen) {
-  CFX_WideString wsUrl(L"");
+  WideString wsUrl(L"");
   if (link_page && link_index >= 0) {
     CPDF_LinkExtract* pageLink = CPDFLinkExtractFromFPDFPageLink(link_page);
     wsUrl = pageLink->GetURL(link_index);
   }
-  CFX_ByteString cbUTF16URL = wsUrl.UTF16LE_Encode();
+  ByteString cbUTF16URL = wsUrl.UTF16LE_Encode();
   int required = cbUTF16URL.GetLength() / sizeof(unsigned short);
   if (!buffer || buflen <= 0)
     return required;
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
index 0aaafe8..8bca376 100644
--- a/fpdfsdk/fpdfview.cpp
+++ b/fpdfsdk/fpdfview.cpp
@@ -348,9 +348,9 @@
   return static_cast<CPDF_Object*>(attachment);
 }
 
-CFX_ByteString CFXByteStringFromFPDFWideString(FPDF_WIDESTRING wide_string) {
-  return CFX_WideString::FromUTF16LE(wide_string,
-                                     CFX_WideString::WStringLength(wide_string))
+ByteString CFXByteStringFromFPDFWideString(FPDF_WIDESTRING wide_string) {
+  return WideString::FromUTF16LE(wide_string,
+                                 WideString::WStringLength(wide_string))
       .UTF8Encode();
 }
 
@@ -358,10 +358,10 @@
   return static_cast<CFX_DIBitmap*>(bitmap);
 }
 
-unsigned long Utf16EncodeMaybeCopyAndReturnLength(const CFX_WideString& text,
+unsigned long Utf16EncodeMaybeCopyAndReturnLength(const WideString& text,
                                                   void* buffer,
                                                   unsigned long buflen) {
-  CFX_ByteString encoded_text = text.UTF16LE_Encode();
+  ByteString encoded_text = text.UTF16LE_Encode();
   unsigned long len = encoded_text.GetLength();
   if (buffer && len <= buflen)
     memcpy(buffer, encoded_text.c_str(), len);
@@ -380,7 +380,7 @@
     // Decode the stream if one or more stream filters are specified.
     uint8_t* decoded_data = nullptr;
     uint32_t decoded_len = 0;
-    CFX_ByteString dummy_last_decoder;
+    ByteString dummy_last_decoder;
     CPDF_Dictionary* dummy_last_param;
     if (PDF_DataDecode(data, len, dict, dict->GetIntegerFor("DL"), false,
                        &decoded_data, &decoded_len, &dummy_last_decoder,
@@ -1313,7 +1313,7 @@
   if (!pDoc)
     return DuplexUndefined;
   CPDF_ViewerPreferences viewRef(pDoc);
-  CFX_ByteString duplex = viewRef.Duplex();
+  ByteString duplex = viewRef.Duplex();
   if ("Simplex" == duplex)
     return Simplex;
   if ("DuplexFlipShortEdge" == duplex)
@@ -1333,7 +1333,7 @@
     return 0;
 
   CPDF_ViewerPreferences viewRef(pDoc);
-  CFX_ByteString bsVal;
+  ByteString bsVal;
   if (!viewRef.GenericName(key, &bsVal))
     return 0;
 
@@ -1375,7 +1375,7 @@
     return nullptr;
 
   CPDF_NameTree name_tree(pDoc, "Dests");
-  return name_tree.LookupNamedDest(pDoc, PDF_DecodeText(CFX_ByteString(name)));
+  return name_tree.LookupNamedDest(pDoc, PDF_DecodeText(ByteString(name)));
 }
 
 #ifdef PDF_ENABLE_XFA
@@ -1450,7 +1450,7 @@
     return nullptr;
 
   CPDF_Object* pDestObj = nullptr;
-  CFX_WideString wsName;
+  WideString wsName;
   CPDF_NameTree nameTree(pDoc, "Dests");
   int count = nameTree.GetCount();
   if (index >= count) {
@@ -1465,7 +1465,7 @@
 
     index -= count;
     int i = 0;
-    CFX_ByteString bsName;
+    ByteString bsName;
     for (const auto& it : *pDest) {
       bsName = it.first;
       pDestObj = it.second.get();
@@ -1489,7 +1489,7 @@
   if (!pDestObj->IsArray())
     return nullptr;
 
-  CFX_ByteString utf16Name = wsName.UTF16LE_Encode();
+  ByteString utf16Name = wsName.UTF16LE_Encode();
   int len = utf16Name.GetLength();
   if (!buffer) {
     *buflen = len;
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp
index 1032d49..8779c44 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp
@@ -219,19 +219,19 @@
   return runtime->GetIsolate();
 }
 
-CFX_WideString CPDFXFA_Context::GetAppTitle() const {
+WideString CPDFXFA_Context::GetAppTitle() const {
   return L"PDFium";
 }
 
-CFX_WideString CPDFXFA_Context::GetAppName() {
+WideString CPDFXFA_Context::GetAppName() {
   return m_pFormFillEnv ? m_pFormFillEnv->FFI_GetAppName() : L"";
 }
 
-CFX_WideString CPDFXFA_Context::GetLanguage() {
+WideString CPDFXFA_Context::GetLanguage() {
   return m_pFormFillEnv ? m_pFormFillEnv->GetLanguage() : L"";
 }
 
-CFX_WideString CPDFXFA_Context::GetPlatform() {
+WideString CPDFXFA_Context::GetPlatform() {
   return m_pFormFillEnv ? m_pFormFillEnv->GetPlatform() : L"";
 }
 
@@ -240,8 +240,8 @@
     m_pFormFillEnv->JS_appBeep(dwType);
 }
 
-int32_t CPDFXFA_Context::MsgBox(const CFX_WideString& wsMessage,
-                                const CFX_WideString& wsTitle,
+int32_t CPDFXFA_Context::MsgBox(const WideString& wsMessage,
+                                const WideString& wsTitle,
                                 uint32_t dwIconType,
                                 uint32_t dwButtonType) {
   if (!m_pFormFillEnv)
@@ -292,12 +292,12 @@
   return XFA_IDYes;
 }
 
-CFX_WideString CPDFXFA_Context::Response(const CFX_WideString& wsQuestion,
-                                         const CFX_WideString& wsTitle,
-                                         const CFX_WideString& wsDefaultAnswer,
-                                         bool bMark) {
+WideString CPDFXFA_Context::Response(const WideString& wsQuestion,
+                                     const WideString& wsTitle,
+                                     const WideString& wsDefaultAnswer,
+                                     bool bMark) {
   if (!m_pFormFillEnv)
-    return CFX_WideString();
+    return WideString();
 
   int nLength = 2048;
   std::vector<uint8_t> pBuff(nLength);
@@ -305,27 +305,27 @@
                                            wsDefaultAnswer.c_str(), nullptr,
                                            bMark, pBuff.data(), nLength);
   if (nLength <= 0)
-    return CFX_WideString();
+    return WideString();
 
   nLength = std::min(2046, nLength);
   pBuff[nLength] = 0;
   pBuff[nLength + 1] = 0;
-  return CFX_WideString::FromUTF16LE(reinterpret_cast<uint16_t*>(pBuff.data()),
-                                     nLength / sizeof(uint16_t));
+  return WideString::FromUTF16LE(reinterpret_cast<uint16_t*>(pBuff.data()),
+                                 nLength / sizeof(uint16_t));
 }
 
 CFX_RetainPtr<IFX_SeekableReadStream> CPDFXFA_Context::DownloadURL(
-    const CFX_WideString& wsURL) {
+    const WideString& wsURL) {
   return m_pFormFillEnv ? m_pFormFillEnv->DownloadFromURL(wsURL.c_str())
                         : nullptr;
 }
 
-bool CPDFXFA_Context::PostRequestURL(const CFX_WideString& wsURL,
-                                     const CFX_WideString& wsData,
-                                     const CFX_WideString& wsContentType,
-                                     const CFX_WideString& wsEncode,
-                                     const CFX_WideString& wsHeader,
-                                     CFX_WideString& wsResponse) {
+bool CPDFXFA_Context::PostRequestURL(const WideString& wsURL,
+                                     const WideString& wsData,
+                                     const WideString& wsContentType,
+                                     const WideString& wsEncode,
+                                     const WideString& wsHeader,
+                                     WideString& wsResponse) {
   if (!m_pFormFillEnv)
     return false;
 
@@ -335,9 +335,9 @@
   return true;
 }
 
-bool CPDFXFA_Context::PutRequestURL(const CFX_WideString& wsURL,
-                                    const CFX_WideString& wsData,
-                                    const CFX_WideString& wsEncode) {
+bool CPDFXFA_Context::PutRequestURL(const WideString& wsURL,
+                                    const WideString& wsData,
+                                    const WideString& wsEncode) {
   return m_pFormFillEnv &&
          m_pFormFillEnv->PutRequestURL(wsURL.c_str(), wsData.c_str(),
                                        wsEncode.c_str());
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_context.h b/fpdfsdk/fpdfxfa/cpdfxfa_context.h
index 586e12d..a0f90ab 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_context.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_context.h
@@ -56,31 +56,31 @@
   void ClearChangeMark();
 
   // IFXA_AppProvider:
-  CFX_WideString GetLanguage() override;
-  CFX_WideString GetPlatform() override;
-  CFX_WideString GetAppName() override;
-  CFX_WideString GetAppTitle() const override;
+  WideString GetLanguage() override;
+  WideString GetPlatform() override;
+  WideString GetAppName() override;
+  WideString GetAppTitle() const override;
 
   void Beep(uint32_t dwType) override;
-  int32_t MsgBox(const CFX_WideString& wsMessage,
-                 const CFX_WideString& wsTitle,
+  int32_t MsgBox(const WideString& wsMessage,
+                 const WideString& wsTitle,
                  uint32_t dwIconType,
                  uint32_t dwButtonType) override;
-  CFX_WideString Response(const CFX_WideString& wsQuestion,
-                          const CFX_WideString& wsTitle,
-                          const CFX_WideString& wsDefaultAnswer,
-                          bool bMark) override;
+  WideString Response(const WideString& wsQuestion,
+                      const WideString& wsTitle,
+                      const WideString& wsDefaultAnswer,
+                      bool bMark) override;
   CFX_RetainPtr<IFX_SeekableReadStream> DownloadURL(
-      const CFX_WideString& wsURL) override;
-  bool PostRequestURL(const CFX_WideString& wsURL,
-                      const CFX_WideString& wsData,
-                      const CFX_WideString& wsContentType,
-                      const CFX_WideString& wsEncode,
-                      const CFX_WideString& wsHeader,
-                      CFX_WideString& wsResponse) override;
-  bool PutRequestURL(const CFX_WideString& wsURL,
-                     const CFX_WideString& wsData,
-                     const CFX_WideString& wsEncode) override;
+      const WideString& wsURL) override;
+  bool PostRequestURL(const WideString& wsURL,
+                      const WideString& wsData,
+                      const WideString& wsContentType,
+                      const WideString& wsEncode,
+                      const WideString& wsHeader,
+                      WideString& wsResponse) override;
+  bool PutRequestURL(const WideString& wsURL,
+                     const WideString& wsData,
+                     const WideString& wsEncode) override;
 
   IFWL_AdapterTimerMgr* GetTimerMgr() override;
 
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
index 6537925..b4dc3f1 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
@@ -379,8 +379,7 @@
   }
 }
 
-void CPDFXFA_DocEnvironment::GetTitle(CXFA_FFDoc* hDoc,
-                                      CFX_WideString& wsTitle) {
+void CPDFXFA_DocEnvironment::GetTitle(CXFA_FFDoc* hDoc, WideString& wsTitle) {
   if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetPDFDoc())
     return;
 
@@ -388,13 +387,13 @@
   if (!pInfoDict)
     return;
 
-  CFX_ByteString csTitle = pInfoDict->GetStringFor("Title");
+  ByteString csTitle = pInfoDict->GetStringFor("Title");
   wsTitle = wsTitle.FromLocal(csTitle.GetBuffer(csTitle.GetLength()));
   csTitle.ReleaseBuffer(csTitle.GetLength());
 }
 
 void CPDFXFA_DocEnvironment::SetTitle(CXFA_FFDoc* hDoc,
-                                      const CFX_WideString& wsTitle) {
+                                      const WideString& wsTitle) {
   if (hDoc != m_pContext->GetXFADoc() || !m_pContext->GetPDFDoc())
     return;
 
@@ -404,7 +403,7 @@
 }
 
 void CPDFXFA_DocEnvironment::ExportData(CXFA_FFDoc* hDoc,
-                                        const CFX_WideString& wsFilePath,
+                                        const WideString& wsFilePath,
                                         bool bXDP) {
   if (hDoc != m_pContext->GetXFADoc())
     return;
@@ -419,14 +418,14 @@
     return;
 
   int fileType = bXDP ? FXFA_SAVEAS_XDP : FXFA_SAVEAS_XML;
-  CFX_ByteString bs = wsFilePath.UTF16LE_Encode();
+  ByteString bs = wsFilePath.UTF16LE_Encode();
   if (wsFilePath.IsEmpty()) {
     if (!pFormFillEnv->GetFormFillInfo() ||
         !pFormFillEnv->GetFormFillInfo()->m_pJsPlatform) {
       return;
     }
 
-    CFX_WideString filepath = pFormFillEnv->JS_fieldBrowse();
+    WideString filepath = pFormFillEnv->JS_fieldBrowse();
     bs = filepath.UTF16LE_Encode();
   }
   int len = bs.GetLength();
@@ -439,7 +438,7 @@
 
   CFX_RetainPtr<IFX_SeekableStream> fileWrite =
       MakeSeekableStream(pFileHandler);
-  CFX_ByteString content;
+  ByteString content;
   if (fileType == FXFA_SAVEAS_XML) {
     content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
     fileWrite->WriteBlock(content.c_str(), fileWrite->GetSize(),
@@ -485,10 +484,10 @@
         continue;
       }
       if (i == size - 1) {
-        CFX_WideString wPath = CFX_WideString::FromUTF16LE(
+        WideString wPath = WideString::FromUTF16LE(
             reinterpret_cast<const unsigned short*>(bs.c_str()),
             bs.GetLength() / sizeof(unsigned short));
-        CFX_ByteString bPath = wPath.UTF8Encode();
+        ByteString bPath = wPath.UTF8Encode();
         const char* szFormat =
             "\n<pdf href=\"%s\" xmlns=\"http://ns.adobe.com/xdp/pdf/\"/>";
         content.Format(szFormat, bPath.c_str());
@@ -505,7 +504,7 @@
 }
 
 void CPDFXFA_DocEnvironment::GotoURL(CXFA_FFDoc* hDoc,
-                                     const CFX_WideString& bsURL) {
+                                     const WideString& bsURL) {
   if (hDoc != m_pContext->GetXFADoc())
     return;
 
@@ -516,7 +515,7 @@
   if (!pFormFillEnv)
     return;
 
-  CFX_WideStringC str(bsURL.c_str());
+  WideStringView str(bsURL.c_str());
   pFormFillEnv->GotoURL(m_pContext.Get(), str);
 }
 
@@ -644,9 +643,9 @@
       if (!pFormFillEnv)
         return false;
 
-      CFX_WideString ws;
+      WideString ws;
       ws.FromLocal(IDS_XFA_Validate_Input);
-      CFX_ByteString bs = ws.UTF16LE_Encode();
+      ByteString bs = ws.UTF16LE_Encode();
       int len = bs.GetLength();
       pFormFillEnv->Alert((FPDF_WIDESTRING)bs.GetBuffer(len),
                           (FPDF_WIDESTRING)L"", 0, 1);
@@ -700,12 +699,12 @@
 
 CFX_RetainPtr<IFX_SeekableReadStream> CPDFXFA_DocEnvironment::OpenLinkedFile(
     CXFA_FFDoc* hDoc,
-    const CFX_WideString& wsLink) {
+    const WideString& wsLink) {
   CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv();
   if (!pFormFillEnv)
     return nullptr;
 
-  CFX_ByteString bs = wsLink.UTF16LE_Encode();
+  ByteString bs = wsLink.UTF16LE_Encode();
   int len = bs.GetLength();
   FPDF_FILEHANDLER* pFileHandler =
       pFormFillEnv->OpenFile(0, (FPDF_WIDESTRING)bs.GetBuffer(len), "rb");
@@ -723,7 +722,7 @@
   if (!m_pContext->GetXFADocView())
     return false;
 
-  CFX_ByteString content;
+  ByteString content;
   CPDFSDK_FormFillEnvironment* pFormFillEnv = m_pContext->GetFormFillEnv();
   if (!pFormFillEnv)
     return false;
@@ -808,7 +807,7 @@
   return true;
 }
 
-void CPDFXFA_DocEnvironment::ToXFAContentFlags(CFX_WideString csSrcContent,
+void CPDFXFA_DocEnvironment::ToXFAContentFlags(WideString csSrcContent,
                                                FPDF_DWORD& flag) {
   if (csSrcContent.Contains(L" config "))
     flag |= FXFA_CONFIG;
@@ -830,19 +829,19 @@
   }
 }
 
-bool CPDFXFA_DocEnvironment::MailToInfo(CFX_WideString& csURL,
-                                        CFX_WideString& csToAddress,
-                                        CFX_WideString& csCCAddress,
-                                        CFX_WideString& csBCCAddress,
-                                        CFX_WideString& csSubject,
-                                        CFX_WideString& csMsg) {
-  CFX_WideString srcURL = csURL;
+bool CPDFXFA_DocEnvironment::MailToInfo(WideString& csURL,
+                                        WideString& csToAddress,
+                                        WideString& csCCAddress,
+                                        WideString& csBCCAddress,
+                                        WideString& csSubject,
+                                        WideString& csMsg) {
+  WideString srcURL = csURL;
   srcURL.TrimLeft();
   if (srcURL.Left(7).CompareNoCase(L"mailto:") != 0)
     return false;
 
   auto pos = srcURL.Find(L'?');
-  CFX_WideString tmp;
+  WideString tmp;
   if (!pos.has_value()) {
     pos = srcURL.Find(L'@');
     if (!pos.has_value())
@@ -903,13 +902,13 @@
   if (!pFormFillEnv)
     return false;
 
-  CFX_WideStringC csURLC;
+  WideStringView csURLC;
   submit.GetSubmitTarget(csURLC);
-  CFX_WideString csURL(csURLC);
+  WideString csURL(csURLC);
   if (csURL.IsEmpty()) {
-    CFX_WideString ws;
+    WideString ws;
     ws.FromLocal("Submit cancelled.");
-    CFX_ByteString bs = ws.UTF16LE_Encode();
+    ByteString bs = ws.UTF16LE_Encode();
     int len = bs.GetLength();
     pFormFillEnv->Alert((FPDF_WIDESTRING)bs.GetBuffer(len),
                         (FPDF_WIDESTRING)L"", 0, 4);
@@ -921,13 +920,13 @@
   int fileFlag = -1;
   switch (submit.GetSubmitFormat()) {
     case XFA_ATTRIBUTEENUM_Xdp: {
-      CFX_WideStringC csContentC;
+      WideStringView csContentC;
       submit.GetSubmitXDPContent(csContentC);
-      CFX_WideString csContent;
+      WideString csContent;
       csContent = csContentC;
       csContent.TrimLeft();
       csContent.TrimRight();
-      CFX_WideString space;
+      WideString space;
       space.FromLocal(" ");
       csContent = space + csContent + space;
       FPDF_DWORD flag = 0;
@@ -958,20 +957,20 @@
   if (!pFileHandler)
     return false;
   if (csURL.Left(7).CompareNoCase(L"mailto:") == 0) {
-    CFX_WideString csToAddress;
-    CFX_WideString csCCAddress;
-    CFX_WideString csBCCAddress;
-    CFX_WideString csSubject;
-    CFX_WideString csMsg;
+    WideString csToAddress;
+    WideString csCCAddress;
+    WideString csBCCAddress;
+    WideString csSubject;
+    WideString csMsg;
     if (!MailToInfo(csURL, csToAddress, csCCAddress, csBCCAddress, csSubject,
                     csMsg)) {
       return false;
     }
-    CFX_ByteString bsTo = CFX_WideString(csToAddress).UTF16LE_Encode();
-    CFX_ByteString bsCC = CFX_WideString(csCCAddress).UTF16LE_Encode();
-    CFX_ByteString bsBcc = CFX_WideString(csBCCAddress).UTF16LE_Encode();
-    CFX_ByteString bsSubject = CFX_WideString(csSubject).UTF16LE_Encode();
-    CFX_ByteString bsMsg = CFX_WideString(csMsg).UTF16LE_Encode();
+    ByteString bsTo = WideString(csToAddress).UTF16LE_Encode();
+    ByteString bsCC = WideString(csCCAddress).UTF16LE_Encode();
+    ByteString bsBcc = WideString(csBCCAddress).UTF16LE_Encode();
+    ByteString bsSubject = WideString(csSubject).UTF16LE_Encode();
+    ByteString bsMsg = WideString(csMsg).UTF16LE_Encode();
     FPDF_WIDESTRING pTo = (FPDF_WIDESTRING)bsTo.GetBuffer(bsTo.GetLength());
     FPDF_WIDESTRING pCC = (FPDF_WIDESTRING)bsCC.GetBuffer(bsCC.GetLength());
     FPDF_WIDESTRING pBcc = (FPDF_WIDESTRING)bsBcc.GetBuffer(bsBcc.GetLength());
@@ -986,8 +985,8 @@
     bsMsg.ReleaseBuffer(bsMsg.GetStringLength());
   } else {
     // HTTP or FTP
-    CFX_WideString ws;
-    CFX_ByteString bs = csURL.UTF16LE_Encode();
+    WideString ws;
+    ByteString bs = csURL.UTF16LE_Encode();
     int len = bs.GetLength();
     pFormFillEnv->UploadTo(pFileHandler, fileFlag,
                            (FPDF_WIDESTRING)bs.GetBuffer(len));
@@ -996,10 +995,9 @@
   return true;
 }
 
-bool CPDFXFA_DocEnvironment::SetGlobalProperty(
-    CXFA_FFDoc* hDoc,
-    const CFX_ByteStringC& szPropName,
-    CFXJSE_Value* pValue) {
+bool CPDFXFA_DocEnvironment::SetGlobalProperty(CXFA_FFDoc* hDoc,
+                                               const ByteStringView& szPropName,
+                                               CFXJSE_Value* pValue) {
   if (hDoc != m_pContext->GetXFADoc())
     return false;
   if (!m_pContext->GetFormFillEnv() ||
@@ -1013,10 +1011,9 @@
   return bRet;
 }
 
-bool CPDFXFA_DocEnvironment::GetGlobalProperty(
-    CXFA_FFDoc* hDoc,
-    const CFX_ByteStringC& szPropName,
-    CFXJSE_Value* pValue) {
+bool CPDFXFA_DocEnvironment::GetGlobalProperty(CXFA_FFDoc* hDoc,
+                                               const ByteStringView& szPropName,
+                                               CFXJSE_Value* pValue) {
   if (hDoc != m_pContext->GetXFADoc())
     return false;
   if (!m_pContext->GetFormFillEnv() ||
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h
index 90bc6de..e6a0f92 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h
@@ -49,12 +49,12 @@
   void SetCurrentPage(CXFA_FFDoc* hDoc, int32_t iCurPage) override;
   bool IsCalculationsEnabled(CXFA_FFDoc* hDoc) override;
   void SetCalculationsEnabled(CXFA_FFDoc* hDoc, bool bEnabled) override;
-  void GetTitle(CXFA_FFDoc* hDoc, CFX_WideString& wsTitle) override;
-  void SetTitle(CXFA_FFDoc* hDoc, const CFX_WideString& wsTitle) override;
+  void GetTitle(CXFA_FFDoc* hDoc, WideString& wsTitle) override;
+  void SetTitle(CXFA_FFDoc* hDoc, const WideString& wsTitle) override;
   void ExportData(CXFA_FFDoc* hDoc,
-                  const CFX_WideString& wsFilePath,
+                  const WideString& wsFilePath,
                   bool bXDP) override;
-  void GotoURL(CXFA_FFDoc* hDoc, const CFX_WideString& bsURL) override;
+  void GotoURL(CXFA_FFDoc* hDoc, const WideString& bsURL) override;
   bool IsValidationsEnabled(CXFA_FFDoc* hDoc) override;
   void SetValidationsEnabled(CXFA_FFDoc* hDoc, bool bEnabled) override;
   void SetFocusWidget(CXFA_FFDoc* hDoc, CXFA_FFWidget* hWidget) override;
@@ -79,32 +79,32 @@
   bool SubmitData(CXFA_FFDoc* hDoc, CXFA_Submit submit) override;
 
   bool GetGlobalProperty(CXFA_FFDoc* hDoc,
-                         const CFX_ByteStringC& szPropName,
+                         const ByteStringView& szPropName,
                          CFXJSE_Value* pValue) override;
   bool SetGlobalProperty(CXFA_FFDoc* hDoc,
-                         const CFX_ByteStringC& szPropName,
+                         const ByteStringView& szPropName,
                          CFXJSE_Value* pValue) override;
 
   CFX_RetainPtr<IFX_SeekableReadStream> OpenLinkedFile(
       CXFA_FFDoc* hDoc,
-      const CFX_WideString& wsLink) override;
+      const WideString& wsLink) override;
 
  private:
   bool OnBeforeNotifySubmit();
   void OnAfterNotifySubmit();
   bool NotifySubmit(bool bPrevOrPost);
   bool SubmitDataInternal(CXFA_FFDoc* hDoc, CXFA_Submit submit);
-  bool MailToInfo(CFX_WideString& csURL,
-                  CFX_WideString& csToAddress,
-                  CFX_WideString& csCCAddress,
-                  CFX_WideString& csBCCAddress,
-                  CFX_WideString& csSubject,
-                  CFX_WideString& csMsg);
+  bool MailToInfo(WideString& csURL,
+                  WideString& csToAddress,
+                  WideString& csCCAddress,
+                  WideString& csBCCAddress,
+                  WideString& csSubject,
+                  WideString& csMsg);
   bool ExportSubmitFile(FPDF_FILEHANDLER* ppFileHandler,
                         int fileType,
                         FPDF_DWORD encodeType,
                         FPDF_DWORD flag);
-  void ToXFAContentFlags(CFX_WideString csSrcContent, FPDF_DWORD& flag);
+  void ToXFAContentFlags(WideString csSrcContent, FPDF_DWORD& flag);
 
   CFX_UnownedPtr<CPDFXFA_Context> const m_pContext;
 };
diff --git a/fpdfsdk/fsdk_actionhandler.cpp b/fpdfsdk/fsdk_actionhandler.cpp
index 776a171..ea7d2c3 100644
--- a/fpdfsdk/fsdk_actionhandler.cpp
+++ b/fpdfsdk/fsdk_actionhandler.cpp
@@ -29,10 +29,10 @@
 
 bool CPDFSDK_ActionHandler::DoAction_JavaScript(
     const CPDF_Action& JsAction,
-    CFX_WideString csJSName,
+    WideString csJSName,
     CPDFSDK_FormFillEnvironment* pFormFillEnv) {
   if (JsAction.GetType() == CPDF_Action::JavaScript) {
-    CFX_WideString swJS = JsAction.GetJavaScript();
+    WideString swJS = JsAction.GetJavaScript();
     if (!swJS.IsEmpty()) {
       RunDocumentOpenJavaScript(pFormFillEnv, csJSName, swJS);
       return true;
@@ -51,7 +51,7 @@
   ASSERT(pFormFillEnv);
   if (pFormFillEnv->IsJSInitiated() &&
       JsAction.GetType() == CPDF_Action::JavaScript) {
-    CFX_WideString swJS = JsAction.GetJavaScript();
+    WideString swJS = JsAction.GetJavaScript();
     if (!swJS.IsEmpty()) {
       RunFieldJavaScript(pFormFillEnv, pFormField, type, data, swJS);
       return true;
@@ -125,7 +125,7 @@
   ASSERT(pFormFillEnv);
   if (action.GetType() == CPDF_Action::JavaScript) {
     if (pFormFillEnv->IsJSInitiated()) {
-      CFX_WideString swJS = action.GetJavaScript();
+      WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty()) {
         RunDocumentOpenJavaScript(pFormFillEnv, L"", swJS);
       }
@@ -156,13 +156,13 @@
   ASSERT(pFormFillEnv);
   if (action.GetType() == CPDF_Action::JavaScript) {
     if (pFormFillEnv->IsJSInitiated()) {
-      CFX_WideString swJS = action.GetJavaScript();
+      WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty()) {
         IJS_Runtime* pRuntime = pFormFillEnv->GetJSRuntime();
         IJS_EventContext* pContext = pRuntime->NewEventContext();
         pContext->OnLink_MouseUp(pFormFillEnv);
 
-        CFX_WideString csInfo;
+        WideString csInfo;
         bool bRet = pContext->RunScript(swJS, &csInfo);
         pRuntime->ReleaseEventContext(pContext);
         if (!bRet) {
@@ -197,7 +197,7 @@
   ASSERT(pFormFillEnv);
   if (action.GetType() == CPDF_Action::JavaScript) {
     if (pFormFillEnv->IsJSInitiated()) {
-      CFX_WideString swJS = action.GetJavaScript();
+      WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty()) {
         RunDocumentPageJavaScript(pFormFillEnv, type, swJS);
       }
@@ -244,7 +244,7 @@
   ASSERT(pFormFillEnv);
   if (action.GetType() == CPDF_Action::JavaScript) {
     if (pFormFillEnv->IsJSInitiated()) {
-      CFX_WideString swJS = action.GetJavaScript();
+      WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty()) {
         RunFieldJavaScript(pFormFillEnv, pFormField, type, data, swJS);
         if (!IsValidField(pFormFillEnv, pFormField->GetFieldDict()))
@@ -280,11 +280,11 @@
   ASSERT(pFormFillEnv);
   if (action.GetType() == CPDF_Action::JavaScript) {
     if (pFormFillEnv->IsJSInitiated()) {
-      CFX_WideString swJS = action.GetJavaScript();
+      WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty()) {
         IJS_Runtime* pRuntime = pFormFillEnv->GetJSRuntime();
         IJS_EventContext* pContext = pRuntime->NewEventContext();
-        CFX_WideString csInfo;
+        WideString csInfo;
         bool bRet = pContext->RunScript(swJS, &csInfo);
         pRuntime->ReleaseEventContext(pContext);
         if (!bRet) {
@@ -319,13 +319,13 @@
   ASSERT(pFormFillEnv);
   if (action.GetType() == CPDF_Action::JavaScript) {
     if (pFormFillEnv->IsJSInitiated()) {
-      CFX_WideString swJS = action.GetJavaScript();
+      WideString swJS = action.GetJavaScript();
       if (!swJS.IsEmpty()) {
         IJS_Runtime* pRuntime = pFormFillEnv->GetJSRuntime();
         IJS_EventContext* pContext = pRuntime->NewEventContext();
         pContext->OnBookmark_MouseUp(pBookmark);
 
-        CFX_WideString csInfo;
+        WideString csInfo;
         bool bRet = pContext->RunScript(swJS, &csInfo);
         pRuntime->ReleaseEventContext(pContext);
         if (!bRet) {
@@ -444,7 +444,7 @@
     const CPDF_Action& action) {
   ASSERT(action.GetDict());
 
-  CFX_ByteString sURI = action.GetURI(pFormFillEnv->GetPDFDocument());
+  ByteString sURI = action.GetURI(pFormFillEnv->GetPDFDocument());
   pFormFillEnv->DoURIAction(sURI.c_str());
 }
 
@@ -453,7 +453,7 @@
     const CPDF_Action& action) {
   ASSERT(action.GetDict());
 
-  CFX_ByteString csName = action.GetNamedAction();
+  ByteString csName = action.GetNamedAction();
   pFormFillEnv->ExecuteNamedAction(csName.c_str());
 }
 
@@ -466,7 +466,7 @@
     CPDF_FormField* pFormField,
     CPDF_AAction::AActionType type,
     PDFSDK_FieldAction& data,
-    const CFX_WideString& script) {
+    const WideString& script) {
   ASSERT(type != CPDF_AAction::Calculate);
   ASSERT(type != CPDF_AAction::Format);
 
@@ -509,7 +509,7 @@
       break;
   }
 
-  CFX_WideString csInfo;
+  WideString csInfo;
   bool bRet = pContext->RunScript(script, &csInfo);
   pRuntime->ReleaseEventContext(pContext);
   if (!bRet) {
@@ -519,13 +519,13 @@
 
 void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript(
     CPDFSDK_FormFillEnvironment* pFormFillEnv,
-    const CFX_WideString& sScriptName,
-    const CFX_WideString& script) {
+    const WideString& sScriptName,
+    const WideString& script) {
   IJS_Runtime* pRuntime = pFormFillEnv->GetJSRuntime();
   IJS_EventContext* pContext = pRuntime->NewEventContext();
   pContext->OnDoc_Open(pFormFillEnv, sScriptName);
 
-  CFX_WideString csInfo;
+  WideString csInfo;
   bool bRet = pContext->RunScript(script, &csInfo);
   pRuntime->ReleaseEventContext(pContext);
   if (!bRet) {
@@ -536,7 +536,7 @@
 void CPDFSDK_ActionHandler::RunDocumentPageJavaScript(
     CPDFSDK_FormFillEnvironment* pFormFillEnv,
     CPDF_AAction::AActionType type,
-    const CFX_WideString& script) {
+    const WideString& script) {
   IJS_Runtime* pRuntime = pFormFillEnv->GetJSRuntime();
   IJS_EventContext* pContext = pRuntime->NewEventContext();
   switch (type) {
@@ -572,7 +572,7 @@
       break;
   }
 
-  CFX_WideString csInfo;
+  WideString csInfo;
   bool bRet = pContext->RunScript(script, &csInfo);
   pRuntime->ReleaseEventContext(pContext);
   if (!bRet) {
diff --git a/fpdfsdk/fsdk_actionhandler.h b/fpdfsdk/fsdk_actionhandler.h
index 1c8dede..7457b4e 100644
--- a/fpdfsdk/fsdk_actionhandler.h
+++ b/fpdfsdk/fsdk_actionhandler.h
@@ -26,7 +26,7 @@
   bool DoAction_DocOpen(const CPDF_Action& action,
                         CPDFSDK_FormFillEnvironment* pFormFillEnv);
   bool DoAction_JavaScript(const CPDF_Action& JsAction,
-                           CFX_WideString csJSName,
+                           WideString csJSName,
                            CPDFSDK_FormFillEnvironment* pFormFillEnv);
   bool DoAction_Page(const CPDF_Action& action,
                      enum CPDF_AAction::AActionType eType,
@@ -86,15 +86,15 @@
                      CPDFSDK_FormFillEnvironment* pFormFillEnv);
   void RunDocumentPageJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv,
                                  CPDF_AAction::AActionType type,
-                                 const CFX_WideString& script);
+                                 const WideString& script);
   void RunDocumentOpenJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                 const CFX_WideString& sScriptName,
-                                 const CFX_WideString& script);
+                                 const WideString& sScriptName,
+                                 const WideString& script);
   void RunFieldJavaScript(CPDFSDK_FormFillEnvironment* pFormFillEnv,
                           CPDF_FormField* pFormField,
                           CPDF_AAction::AActionType type,
                           PDFSDK_FieldAction& data,
-                          const CFX_WideString& script);
+                          const WideString& script);
 
   bool IsValidField(CPDFSDK_FormFillEnvironment* pFormFillEnv,
                     CPDF_Dictionary* pFieldDict);
diff --git a/fpdfsdk/fsdk_define.h b/fpdfsdk/fsdk_define.h
index 91efc27..e58ddb1 100644
--- a/fpdfsdk/fsdk_define.h
+++ b/fpdfsdk/fsdk_define.h
@@ -70,11 +70,11 @@
 
 CPDF_Object* CPDFObjectFromFPDFAttachment(FPDF_ATTACHMENT attachment);
 
-CFX_ByteString CFXByteStringFromFPDFWideString(FPDF_WIDESTRING wide_string);
+ByteString CFXByteStringFromFPDFWideString(FPDF_WIDESTRING wide_string);
 
 CFX_DIBitmap* CFXBitmapFromFPDFBitmap(FPDF_BITMAP bitmap);
 
-unsigned long Utf16EncodeMaybeCopyAndReturnLength(const CFX_WideString& text,
+unsigned long Utf16EncodeMaybeCopyAndReturnLength(const WideString& text,
                                                   void* buffer,
                                                   unsigned long buflen);
 
diff --git a/fpdfsdk/fsdk_filewriteadapter.cpp b/fpdfsdk/fsdk_filewriteadapter.cpp
index 50394c3..fad058f 100644
--- a/fpdfsdk/fsdk_filewriteadapter.cpp
+++ b/fpdfsdk/fsdk_filewriteadapter.cpp
@@ -17,6 +17,6 @@
   return fileWriteStruct_->WriteBlock(fileWriteStruct_, data, size) != 0;
 }
 
-bool FSDK_FileWriteAdapter::WriteString(const CFX_ByteStringC& str) {
+bool FSDK_FileWriteAdapter::WriteString(const ByteStringView& str) {
   return WriteBlock(str.unterminated_c_str(), str.GetLength());
 }
diff --git a/fpdfsdk/fsdk_filewriteadapter.h b/fpdfsdk/fsdk_filewriteadapter.h
index f2c3a53..5e9eaab 100644
--- a/fpdfsdk/fsdk_filewriteadapter.h
+++ b/fpdfsdk/fsdk_filewriteadapter.h
@@ -17,7 +17,7 @@
   friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
 
   bool WriteBlock(const void* data, size_t size) override;
-  bool WriteString(const CFX_ByteStringC& str) override;
+  bool WriteString(const ByteStringView& str) override;
 
  private:
   explicit FSDK_FileWriteAdapter(FPDF_FILEWRITE* fileWriteStruct);
diff --git a/fpdfsdk/ipdfsdk_annothandler.h b/fpdfsdk/ipdfsdk_annothandler.h
index b7f7cbe..bffeac6 100644
--- a/fpdfsdk/ipdfsdk_annothandler.h
+++ b/fpdfsdk/ipdfsdk_annothandler.h
@@ -35,9 +35,9 @@
   virtual void ReleaseAnnot(CPDFSDK_Annot* pAnnot) = 0;
   virtual CFX_FloatRect GetViewBBox(CPDFSDK_PageView* pPageView,
                                     CPDFSDK_Annot* pAnnot) = 0;
-  virtual CFX_WideString GetSelectedText(CPDFSDK_Annot* pAnnot) = 0;
+  virtual WideString GetSelectedText(CPDFSDK_Annot* pAnnot) = 0;
   virtual void ReplaceSelection(CPDFSDK_Annot* pAnnot,
-                                const CFX_WideString& text) = 0;
+                                const WideString& text) = 0;
   virtual bool HitTest(CPDFSDK_PageView* pPageView,
                        CPDFSDK_Annot* pAnnot,
                        const CFX_PointF& point) = 0;
diff --git a/fpdfsdk/javascript/Annot.cpp b/fpdfsdk/javascript/Annot.cpp
index 41c71ec..9cc5d0f 100644
--- a/fpdfsdk/javascript/Annot.cpp
+++ b/fpdfsdk/javascript/Annot.cpp
@@ -37,7 +37,7 @@
 
 bool Annot::hidden(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   if (vp.IsGetting()) {
     if (!m_pAnnot) {
       sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
@@ -71,9 +71,7 @@
   return true;
 }
 
-bool Annot::name(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool Annot::name(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (vp.IsGetting()) {
     if (!m_pAnnot) {
       sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
@@ -83,7 +81,7 @@
     return true;
   }
 
-  CFX_WideString annotName;
+  WideString annotName;
   vp >> annotName;  // May invalidate m_pAnnot.
   if (!m_pAnnot) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
@@ -94,9 +92,7 @@
   return true;
 }
 
-bool Annot::type(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool Annot::type(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
diff --git a/fpdfsdk/javascript/Annot.h b/fpdfsdk/javascript/Annot.h
index d9757fa..d70f96a 100644
--- a/fpdfsdk/javascript/Annot.h
+++ b/fpdfsdk/javascript/Annot.h
@@ -17,9 +17,9 @@
   explicit Annot(CJS_Object* pJSObject);
   ~Annot() override;
 
-  bool hidden(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool name(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool type(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+  bool hidden(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool name(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool type(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
 
   void SetSDKAnnot(CPDFSDK_BAAnnot* annot);
 
diff --git a/fpdfsdk/javascript/Document.cpp b/fpdfsdk/javascript/Document.cpp
index 77f67b5..0c611c1 100644
--- a/fpdfsdk/javascript/Document.cpp
+++ b/fpdfsdk/javascript/Document.cpp
@@ -164,7 +164,7 @@
 // the total number of fileds in document.
 bool Document::numFields(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -175,13 +175,13 @@
   }
   CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
   CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
-  vp << static_cast<int>(pPDFForm->CountFields(CFX_WideString()));
+  vp << static_cast<int>(pPDFForm->CountFields(WideString()));
   return true;
 }
 
 bool Document::dirty(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -202,7 +202,7 @@
 
 bool Document::ADBE(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   if (vp.IsGetting())
     vp.GetJSValue()->SetNull(pRuntime);
 
@@ -211,7 +211,7 @@
 
 bool Document::pageNum(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -237,7 +237,7 @@
 bool Document::addAnnot(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   // Not supported.
   return true;
 }
@@ -245,7 +245,7 @@
 bool Document::addField(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   // Not supported.
   return true;
 }
@@ -253,7 +253,7 @@
 bool Document::exportAsText(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -261,7 +261,7 @@
 bool Document::exportAsFDF(CJS_Runtime* pRuntime,
                            const std::vector<CJS_Value>& params,
                            CJS_Value& vRet,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -269,7 +269,7 @@
 bool Document::exportAsXFDF(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -277,7 +277,7 @@
 bool Document::getField(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   if (params.size() < 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -286,7 +286,7 @@
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
   }
-  CFX_WideString wideName = params[0].ToCFXWideString(pRuntime);
+  WideString wideName = params[0].ToCFXWideString(pRuntime);
   CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
   CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
   if (pPDFForm->CountFields(wideName) <= 0) {
@@ -311,7 +311,7 @@
 bool Document::getNthFieldName(CJS_Runtime* pRuntime,
                                const std::vector<CJS_Value>& params,
                                CJS_Value& vRet,
-                               CFX_WideString& sError) {
+                               WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -327,7 +327,7 @@
   }
   CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
   CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
-  CPDF_FormField* pField = pPDFForm->GetField(nIndex, CFX_WideString());
+  CPDF_FormField* pField = pPDFForm->GetField(nIndex, WideString());
   if (!pField)
     return false;
 
@@ -338,7 +338,7 @@
 bool Document::importAnFDF(CJS_Runtime* pRuntime,
                            const std::vector<CJS_Value>& params,
                            CJS_Value& vRet,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -346,7 +346,7 @@
 bool Document::importAnXFDF(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -354,7 +354,7 @@
 bool Document::importTextData(CJS_Runtime* pRuntime,
                               const std::vector<CJS_Value>& params,
                               CJS_Value& vRet,
-                              CFX_WideString& sError) {
+                              WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -365,7 +365,7 @@
 bool Document::mailForm(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -376,14 +376,13 @@
   }
   int iLength = params.size();
   bool bUI = iLength > 0 ? params[0].ToBool(pRuntime) : true;
-  CFX_WideString cTo = iLength > 1 ? params[1].ToCFXWideString(pRuntime) : L"";
-  CFX_WideString cCc = iLength > 2 ? params[2].ToCFXWideString(pRuntime) : L"";
-  CFX_WideString cBcc = iLength > 3 ? params[3].ToCFXWideString(pRuntime) : L"";
-  CFX_WideString cSubject =
-      iLength > 4 ? params[4].ToCFXWideString(pRuntime) : L"";
-  CFX_WideString cMsg = iLength > 5 ? params[5].ToCFXWideString(pRuntime) : L"";
+  WideString cTo = iLength > 1 ? params[1].ToCFXWideString(pRuntime) : L"";
+  WideString cCc = iLength > 2 ? params[2].ToCFXWideString(pRuntime) : L"";
+  WideString cBcc = iLength > 3 ? params[3].ToCFXWideString(pRuntime) : L"";
+  WideString cSubject = iLength > 4 ? params[4].ToCFXWideString(pRuntime) : L"";
+  WideString cMsg = iLength > 5 ? params[5].ToCFXWideString(pRuntime) : L"";
   CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
-  CFX_ByteString sTextBuf = pInterForm->ExportFormToFDFTextBuf();
+  ByteString sTextBuf = pInterForm->ExportFormToFDFTextBuf();
   if (sTextBuf.GetLength() == 0)
     return false;
 
@@ -404,7 +403,7 @@
 bool Document::print(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -472,7 +471,7 @@
 bool Document::removeField(CJS_Runtime* pRuntime,
                            const std::vector<CJS_Value>& params,
                            CJS_Value& vRet,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -486,7 +485,7 @@
     sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
     return false;
   }
-  CFX_WideString sFieldName = params[0].ToCFXWideString(pRuntime);
+  WideString sFieldName = params[0].ToCFXWideString(pRuntime);
   CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
   std::vector<CPDFSDK_Annot::ObservedPtr> widgets;
   pInterForm->GetWidgets(sFieldName, &widgets);
@@ -531,7 +530,7 @@
 bool Document::resetForm(CJS_Runtime* pRuntime,
                          const std::vector<CJS_Value>& params,
                          CJS_Value& vRet,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -566,7 +565,7 @@
   for (int i = 0, isz = aName.GetLength(pRuntime); i < isz; ++i) {
     CJS_Value valElement(pRuntime);
     aName.GetElement(pRuntime, i, valElement);
-    CFX_WideString swVal = valElement.ToCFXWideString(pRuntime);
+    WideString swVal = valElement.ToCFXWideString(pRuntime);
     for (int j = 0, jsz = pPDFForm->CountFields(swVal); j < jsz; ++j)
       aFields.push_back(pPDFForm->GetField(j, swVal));
   }
@@ -582,7 +581,7 @@
 bool Document::saveAs(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -590,14 +589,14 @@
 bool Document::syncAnnotScan(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError) {
+                             WideString& sError) {
   return true;
 }
 
 bool Document::submitForm(CJS_Runtime* pRuntime,
                           const std::vector<CJS_Value>& params,
                           CJS_Value& vRet,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   int nSize = params.size();
   if (nSize < 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
@@ -609,7 +608,7 @@
   }
 
   CJS_Array aFields;
-  CFX_WideString strURL;
+  WideString strURL;
   bool bFDF = true;
   bool bEmpty = false;
   CJS_Value v = params[0];
@@ -653,7 +652,7 @@
     CJS_Value valName(pRuntime);
     aFields.GetElement(pRuntime, i, valName);
 
-    CFX_WideString sName = valName.ToCFXWideString(pRuntime);
+    WideString sName = valName.ToCFXWideString(pRuntime);
     CPDF_InterForm* pPDFForm = pInterForm->GetInterForm();
     for (int j = 0, jsz = pPDFForm->CountFields(sName); j < jsz; ++j) {
       CPDF_FormField* pField = pPDFForm->GetField(j, sName);
@@ -678,21 +677,21 @@
 
 bool Document::bookmarkRoot(CJS_Runtime* pRuntime,
                             CJS_PropValue& vp,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   return true;
 }
 
 bool Document::mailDoc(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   // TODO(tsepez): Check maximum number of allowed params.
   bool bUI = true;
-  CFX_WideString cTo = L"";
-  CFX_WideString cCc = L"";
-  CFX_WideString cBcc = L"";
-  CFX_WideString cSubject = L"";
-  CFX_WideString cMsg = L"";
+  WideString cTo = L"";
+  WideString cCc = L"";
+  WideString cBcc = L"";
+  WideString cSubject = L"";
+  WideString cMsg = L"";
 
   if (params.size() >= 1)
     bUI = params[0].ToBool(pRuntime);
@@ -739,13 +738,13 @@
 
 bool Document::author(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return getPropertyInternal(pRuntime, vp, "Author", sError);
 }
 
 bool Document::info(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -758,46 +757,46 @@
   if (!pDictionary)
     return false;
 
-  CFX_WideString cwAuthor = pDictionary->GetUnicodeTextFor("Author");
-  CFX_WideString cwTitle = pDictionary->GetUnicodeTextFor("Title");
-  CFX_WideString cwSubject = pDictionary->GetUnicodeTextFor("Subject");
-  CFX_WideString cwKeywords = pDictionary->GetUnicodeTextFor("Keywords");
-  CFX_WideString cwCreator = pDictionary->GetUnicodeTextFor("Creator");
-  CFX_WideString cwProducer = pDictionary->GetUnicodeTextFor("Producer");
-  CFX_WideString cwCreationDate =
-      pDictionary->GetUnicodeTextFor("CreationDate");
-  CFX_WideString cwModDate = pDictionary->GetUnicodeTextFor("ModDate");
-  CFX_WideString cwTrapped = pDictionary->GetUnicodeTextFor("Trapped");
+  WideString cwAuthor = pDictionary->GetUnicodeTextFor("Author");
+  WideString cwTitle = pDictionary->GetUnicodeTextFor("Title");
+  WideString cwSubject = pDictionary->GetUnicodeTextFor("Subject");
+  WideString cwKeywords = pDictionary->GetUnicodeTextFor("Keywords");
+  WideString cwCreator = pDictionary->GetUnicodeTextFor("Creator");
+  WideString cwProducer = pDictionary->GetUnicodeTextFor("Producer");
+  WideString cwCreationDate = pDictionary->GetUnicodeTextFor("CreationDate");
+  WideString cwModDate = pDictionary->GetUnicodeTextFor("ModDate");
+  WideString cwTrapped = pDictionary->GetUnicodeTextFor("Trapped");
 
   v8::Local<v8::Object> pObj = pRuntime->NewFxDynamicObj(-1);
   pRuntime->PutObjectProperty(pObj, L"Author",
-                              pRuntime->NewString(cwAuthor.AsStringC()));
+                              pRuntime->NewString(cwAuthor.AsStringView()));
   pRuntime->PutObjectProperty(pObj, L"Title",
-                              pRuntime->NewString(cwTitle.AsStringC()));
+                              pRuntime->NewString(cwTitle.AsStringView()));
   pRuntime->PutObjectProperty(pObj, L"Subject",
-                              pRuntime->NewString(cwSubject.AsStringC()));
+                              pRuntime->NewString(cwSubject.AsStringView()));
   pRuntime->PutObjectProperty(pObj, L"Keywords",
-                              pRuntime->NewString(cwKeywords.AsStringC()));
+                              pRuntime->NewString(cwKeywords.AsStringView()));
   pRuntime->PutObjectProperty(pObj, L"Creator",
-                              pRuntime->NewString(cwCreator.AsStringC()));
+                              pRuntime->NewString(cwCreator.AsStringView()));
   pRuntime->PutObjectProperty(pObj, L"Producer",
-                              pRuntime->NewString(cwProducer.AsStringC()));
-  pRuntime->PutObjectProperty(pObj, L"CreationDate",
-                              pRuntime->NewString(cwCreationDate.AsStringC()));
+                              pRuntime->NewString(cwProducer.AsStringView()));
+  pRuntime->PutObjectProperty(
+      pObj, L"CreationDate",
+      pRuntime->NewString(cwCreationDate.AsStringView()));
   pRuntime->PutObjectProperty(pObj, L"ModDate",
-                              pRuntime->NewString(cwModDate.AsStringC()));
+                              pRuntime->NewString(cwModDate.AsStringView()));
   pRuntime->PutObjectProperty(pObj, L"Trapped",
-                              pRuntime->NewString(cwTrapped.AsStringC()));
+                              pRuntime->NewString(cwTrapped.AsStringView()));
 
   // It's to be compatible to non-standard info dictionary.
   for (const auto& it : *pDictionary) {
-    const CFX_ByteString& bsKey = it.first;
+    const ByteString& bsKey = it.first;
     CPDF_Object* pValueObj = it.second.get();
-    CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey.AsStringC());
+    WideString wsKey = WideString::FromUTF8(bsKey.AsStringView());
     if (pValueObj->IsString() || pValueObj->IsName()) {
       pRuntime->PutObjectProperty(
           pObj, wsKey,
-          pRuntime->NewString(pValueObj->GetUnicodeText().AsStringC()));
+          pRuntime->NewString(pValueObj->GetUnicodeText().AsStringView()));
     } else if (pValueObj->IsNumber()) {
       pRuntime->PutObjectProperty(pObj, wsKey,
                                   pRuntime->NewNumber(pValueObj->GetNumber()));
@@ -812,8 +811,8 @@
 
 bool Document::getPropertyInternal(CJS_Runtime* pRuntime,
                                    CJS_PropValue& vp,
-                                   const CFX_ByteString& propName,
-                                   CFX_WideString& sError) {
+                                   const ByteString& propName,
+                                   WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -829,7 +828,7 @@
       sError = JSGetStringFromID(IDS_STRING_JSNOPERMISSION);
       return false;
     }
-    CFX_WideString csProperty;
+    WideString csProperty;
     vp >> csProperty;
     pDictionary->SetNewFor<CPDF_String>(propName, PDF_EncodeText(csProperty),
                                         false);
@@ -840,19 +839,19 @@
 
 bool Document::creationDate(CJS_Runtime* pRuntime,
                             CJS_PropValue& vp,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   return getPropertyInternal(pRuntime, vp, "CreationDate", sError);
 }
 
 bool Document::creator(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return getPropertyInternal(pRuntime, vp, "Creator", sError);
 }
 
 bool Document::delay(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -880,31 +879,31 @@
 
 bool Document::keywords(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   return getPropertyInternal(pRuntime, vp, "Keywords", sError);
 }
 
 bool Document::modDate(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return getPropertyInternal(pRuntime, vp, "ModDate", sError);
 }
 
 bool Document::producer(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   return getPropertyInternal(pRuntime, vp, "Producer", sError);
 }
 
 bool Document::subject(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return getPropertyInternal(pRuntime, vp, "Subject", sError);
 }
 
 bool Document::title(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (!m_pFormFillEnv || !m_pFormFillEnv->GetUnderlyingDocument()) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -914,7 +913,7 @@
 
 bool Document::numPages(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -929,7 +928,7 @@
 
 bool Document::external(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   // In Chrome case, should always return true.
   if (vp.IsGetting()) {
     vp << true;
@@ -939,7 +938,7 @@
 
 bool Document::filesize(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -950,19 +949,19 @@
 
 bool Document::mouseX(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return true;
 }
 
 bool Document::mouseY(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return true;
 }
 
 bool Document::URL(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -977,7 +976,7 @@
 
 bool Document::baseURL(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   if (vp.IsGetting()) {
     vp << m_cwBaseURL;
   } else {
@@ -988,7 +987,7 @@
 
 bool Document::calculate(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -1006,7 +1005,7 @@
 
 bool Document::documentFileName(CJS_Runtime* pRuntime,
                                 CJS_PropValue& vp,
-                                CFX_WideString& sError) {
+                                WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -1015,7 +1014,7 @@
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
   }
-  CFX_WideString wsFilePath = m_pFormFillEnv->JS_docGetFilePath();
+  WideString wsFilePath = m_pFormFillEnv->JS_docGetFilePath();
   FX_STRSIZE i = wsFilePath.GetLength();
   for (; i > 0; i--) {
     if (wsFilePath[i - 1] == L'\\' || wsFilePath[i - 1] == L'/')
@@ -1032,7 +1031,7 @@
 
 bool Document::path(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -1047,41 +1046,41 @@
 
 bool Document::pageWindowRect(CJS_Runtime* pRuntime,
                               CJS_PropValue& vp,
-                              CFX_WideString& sError) {
+                              WideString& sError) {
   return true;
 }
 
 bool Document::layout(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return true;
 }
 
 bool Document::addLink(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return true;
 }
 
 bool Document::closeDoc(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   return true;
 }
 
 bool Document::getPageBox(CJS_Runtime* pRuntime,
                           const std::vector<CJS_Value>& params,
                           CJS_Value& vRet,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   return true;
 }
 
 bool Document::getAnnot(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   if (params.size() != 2) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1091,7 +1090,7 @@
     return false;
   }
   int nPageNo = params[0].ToInt(pRuntime);
-  CFX_WideString swAnnotName = params[1].ToCFXWideString(pRuntime);
+  WideString swAnnotName = params[1].ToCFXWideString(pRuntime);
   CPDFSDK_PageView* pPageView = m_pFormFillEnv->GetPageView(nPageNo);
   if (!pPageView)
     return false;
@@ -1125,7 +1124,7 @@
 bool Document::getAnnots(CJS_Runtime* pRuntime,
                          const std::vector<CJS_Value>& params,
                          CJS_Value& vRet,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -1166,7 +1165,7 @@
 bool Document::getAnnot3D(CJS_Runtime* pRuntime,
                           const std::vector<CJS_Value>& params,
                           CJS_Value& vRet,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   vRet.SetNull(pRuntime);
   return true;
 }
@@ -1174,21 +1173,21 @@
 bool Document::getAnnots3D(CJS_Runtime* pRuntime,
                            const std::vector<CJS_Value>& params,
                            CJS_Value& vRet,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   return true;
 }
 
 bool Document::getOCGs(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return true;
 }
 
 bool Document::getLinks(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   return true;
 }
 
@@ -1200,13 +1199,13 @@
 bool Document::addIcon(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   if (params.size() != 2) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
   }
 
-  CFX_WideString swIconName = params[0].ToCFXWideString(pRuntime);
+  WideString swIconName = params[0].ToCFXWideString(pRuntime);
   if (params[1].GetType() != CJS_Value::VT_object) {
     sError = JSGetStringFromID(IDS_STRING_JSTYPEERROR);
     return false;
@@ -1229,7 +1228,7 @@
 
 bool Document::icons(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (vp.IsSetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -1261,13 +1260,13 @@
 bool Document::getIcon(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
   }
 
-  CFX_WideString swIconName = params[0].ToCFXWideString(pRuntime);
+  WideString swIconName = params[0].ToCFXWideString(pRuntime);
   auto it = std::find(m_IconNames.begin(), m_IconNames.end(), swIconName);
   if (it == m_IconNames.end())
     return false;
@@ -1287,7 +1286,7 @@
 bool Document::removeIcon(CJS_Runtime* pRuntime,
                           const std::vector<CJS_Value>& params,
                           CJS_Value& vRet,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   // Unsafe, no supported.
   return true;
 }
@@ -1295,21 +1294,21 @@
 bool Document::createDataObject(CJS_Runtime* pRuntime,
                                 const std::vector<CJS_Value>& params,
                                 CJS_Value& vRet,
-                                CFX_WideString& sError) {
+                                WideString& sError) {
   // Unsafe, not implemented.
   return true;
 }
 
 bool Document::media(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   return true;
 }
 
 bool Document::calculateNow(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -1326,14 +1325,14 @@
 
 bool Document::Collab(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return true;
 }
 
 bool Document::getPageNthWord(CJS_Runtime* pRuntime,
                               const std::vector<CJS_Value>& params,
                               CJS_Value& vRet,
-                              CFX_WideString& sError) {
+                              WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -1366,7 +1365,7 @@
   page.ParseContent();
 
   int nWords = 0;
-  CFX_WideString swRet;
+  WideString swRet;
   for (auto& pPageObj : *page.GetPageObjectList()) {
     if (pPageObj->IsText()) {
       CPDF_TextObject* pTextObj = pPageObj->AsText();
@@ -1391,7 +1390,7 @@
 bool Document::getPageNthWordQuads(CJS_Runtime* pRuntime,
                                    const std::vector<CJS_Value>& params,
                                    CJS_Value& vRet,
-                                   CFX_WideString& sError) {
+                                   WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -1406,7 +1405,7 @@
 bool Document::getPageNumWords(CJS_Runtime* pRuntime,
                                const std::vector<CJS_Value>& params,
                                CJS_Value& vRet,
-                               CFX_WideString& sError) {
+                               WideString& sError) {
   if (!m_pFormFillEnv) {
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
@@ -1442,7 +1441,7 @@
 bool Document::getPrintParams(CJS_Runtime* pRuntime,
                               const std::vector<CJS_Value>& params,
                               CJS_Value& vRet,
-                              CFX_WideString& sError) {
+                              WideString& sError) {
   v8::Local<v8::Object> pRetObj =
       pRuntime->NewFxDynamicObj(CJS_PrintParamsObj::g_nObjDefnID);
   if (pRetObj.IsEmpty())
@@ -1473,7 +1472,7 @@
     float kerning;
 
     pTextObj->GetCharInfo(i, &charcode, &kerning);
-    CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
+    WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
 
     uint16_t unicode = 0;
     if (swUnicode.GetLength() > 0)
@@ -1490,9 +1489,8 @@
   return nWords;
 }
 
-CFX_WideString Document::GetObjWordStr(CPDF_TextObject* pTextObj,
-                                       int nWordIndex) {
-  CFX_WideString swRet;
+WideString Document::GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex) {
+  WideString swRet;
 
   CPDF_Font* pFont = pTextObj->GetFont();
   if (!pFont)
@@ -1506,7 +1504,7 @@
     float kerning;
 
     pTextObj->GetCharInfo(i, &charcode, &kerning);
-    CFX_WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
+    WideString swUnicode = pFont->UnicodeFromCharCode(charcode);
 
     uint16_t unicode = 0;
     if (swUnicode.GetLength() > 0)
@@ -1528,7 +1526,7 @@
 
 bool Document::zoom(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   return true;
 }
 
@@ -1544,14 +1542,14 @@
 
 bool Document::zoomType(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   return true;
 }
 
 bool Document::deletePages(CJS_Runtime* pRuntime,
                            const std::vector<CJS_Value>& params,
                            CJS_Value& vRet,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   // Unsafe, no supported.
   return true;
 }
@@ -1559,7 +1557,7 @@
 bool Document::extractPages(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -1567,7 +1565,7 @@
 bool Document::insertPages(CJS_Runtime* pRuntime,
                            const std::vector<CJS_Value>& params,
                            CJS_Value& vRet,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -1575,7 +1573,7 @@
 bool Document::replacePages(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -1583,7 +1581,7 @@
 bool Document::getURL(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -1591,7 +1589,7 @@
 bool Document::gotoNamedDest(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError) {
+                             WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1600,7 +1598,7 @@
     sError = JSGetStringFromID(IDS_STRING_JSBADOBJECT);
     return false;
   }
-  CFX_WideString wideName = params[0].ToCFXWideString(pRuntime);
+  WideString wideName = params[0].ToCFXWideString(pRuntime);
   CPDF_Document* pDocument = m_pFormFillEnv->GetPDFDocument();
   if (!pDocument)
     return false;
@@ -1629,8 +1627,7 @@
   m_DelayData.push_back(std::unique_ptr<CJS_DelayData>(pData));
 }
 
-void Document::DoFieldDelay(const CFX_WideString& sFieldName,
-                            int nControlIndex) {
+void Document::DoFieldDelay(const WideString& sFieldName, int nControlIndex) {
   std::vector<std::unique_ptr<CJS_DelayData>> DelayDataForFieldAndControlIndex;
   auto iter = m_DelayData.begin();
   while (iter != m_DelayData.end()) {
diff --git a/fpdfsdk/javascript/Document.h b/fpdfsdk/javascript/Document.h
index 91ca778..3cec9fa 100644
--- a/fpdfsdk/javascript/Document.h
+++ b/fpdfsdk/javascript/Document.h
@@ -50,265 +50,239 @@
   explicit Document(CJS_Object* pJSObject);
   ~Document() override;
 
-  bool ADBE(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool author(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool baseURL(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError);
+  bool ADBE(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool author(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool baseURL(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool bookmarkRoot(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
-  bool calculate(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool Collab(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+                    WideString& sError);
+  bool calculate(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool Collab(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool creationDate(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
-  bool creator(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError);
-  bool delay(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool dirty(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+                    WideString& sError);
+  bool creator(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool delay(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool dirty(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool documentFileName(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError);
-  bool external(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool filesize(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool icons(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool info(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool keywords(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool layout(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool media(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool modDate(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError);
-  bool mouseX(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool mouseY(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool numFields(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool numPages(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool pageNum(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError);
+                        WideString& sError);
+  bool external(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool filesize(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool icons(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool info(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool keywords(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool layout(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool media(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool modDate(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool mouseX(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool mouseY(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool numFields(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool numPages(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool pageNum(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool pageWindowRect(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError);
-  bool path(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool producer(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool subject(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError);
-  bool title(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool zoom(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool zoomType(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
+                      WideString& sError);
+  bool path(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool producer(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool subject(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool title(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool zoom(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool zoomType(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
 
   bool addAnnot(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool addField(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool addLink(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool addIcon(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool calculateNow(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool closeDoc(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool createDataObject(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError);
+                        WideString& sError);
   bool deletePages(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool exportAsText(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool exportAsFDF(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool exportAsXFDF(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool extractPages(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool getAnnot(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool getAnnots(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError);
+                 WideString& sError);
   bool getAnnot3D(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError);
+                  WideString& sError);
   bool getAnnots3D(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool getField(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool getIcon(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool getLinks(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool getNthFieldName(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError);
+                       WideString& sError);
   bool getOCGs(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool getPageBox(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError);
+                  WideString& sError);
   bool getPageNthWord(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError);
+                      WideString& sError);
   bool getPageNthWordQuads(CJS_Runtime* pRuntime,
                            const std::vector<CJS_Value>& params,
                            CJS_Value& vRet,
-                           CFX_WideString& sError);
+                           WideString& sError);
   bool getPageNumWords(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError);
+                       WideString& sError);
   bool getPrintParams(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError);
+                      WideString& sError);
   bool getURL(CJS_Runtime* pRuntime,
               const std::vector<CJS_Value>& params,
               CJS_Value& vRet,
-              CFX_WideString& sError);
+              WideString& sError);
   bool gotoNamedDest(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool importAnFDF(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool importAnXFDF(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool importTextData(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError);
+                      WideString& sError);
   bool insertPages(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool mailForm(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool print(CJS_Runtime* pRuntime,
              const std::vector<CJS_Value>& params,
              CJS_Value& vRet,
-             CFX_WideString& sError);
+             WideString& sError);
   bool removeField(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool replacePages(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool resetForm(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError);
+                 WideString& sError);
   bool saveAs(CJS_Runtime* pRuntime,
               const std::vector<CJS_Value>& params,
               CJS_Value& vRet,
-              CFX_WideString& sError);
+              WideString& sError);
   bool submitForm(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError);
+                  WideString& sError);
   bool syncAnnotScan(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool mailDoc(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool removeIcon(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError);
-  bool URL(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+                  WideString& sError);
+  bool URL(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
 
   void SetFormFillEnv(CPDFSDK_FormFillEnvironment* pFormFillEnv);
   CPDFSDK_FormFillEnvironment* GetFormFillEnv() const {
     return m_pFormFillEnv.Get();
   }
   void AddDelayData(CJS_DelayData* pData);
-  void DoFieldDelay(const CFX_WideString& sFieldName, int nControlIndex);
+  void DoFieldDelay(const WideString& sFieldName, int nControlIndex);
   CJS_Document* GetCJSDoc() const;
 
  private:
   bool IsEnclosedInRect(CFX_FloatRect rect, CFX_FloatRect LinkRect);
   int CountWords(CPDF_TextObject* pTextObj);
-  CFX_WideString GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex);
+  WideString GetObjWordStr(CPDF_TextObject* pTextObj, int nWordIndex);
 
   bool getPropertyInternal(CJS_Runtime* pRuntime,
                            CJS_PropValue& vp,
-                           const CFX_ByteString& propName,
-                           CFX_WideString& sError);
+                           const ByteString& propName,
+                           WideString& sError);
 
   CPDFSDK_FormFillEnvironment::ObservedPtr m_pFormFillEnv;
-  CFX_WideString m_cwBaseURL;
+  WideString m_cwBaseURL;
   std::list<std::unique_ptr<CJS_DelayData>> m_DelayData;
   // Needs to be a std::list for iterator stability.
-  std::list<CFX_WideString> m_IconNames;
+  std::list<WideString> m_IconNames;
   bool m_bDelay;
 };
 
diff --git a/fpdfsdk/javascript/Field.cpp b/fpdfsdk/javascript/Field.cpp
index 32d4477..fa5d478 100644
--- a/fpdfsdk/javascript/Field.cpp
+++ b/fpdfsdk/javascript/Field.cpp
@@ -163,9 +163,7 @@
 
 IMPLEMENT_JS_CLASS(CJS_Field, Field)
 
-CJS_DelayData::CJS_DelayData(FIELD_PROP prop,
-                             int idx,
-                             const CFX_WideString& name)
+CJS_DelayData::CJS_DelayData(FIELD_PROP prop, int idx, const WideString& name)
     : eProp(prop), nControlIndex(idx), sFieldName(name) {}
 
 CJS_DelayData::~CJS_DelayData() {}
@@ -210,8 +208,7 @@
   strFieldName = strFieldNameParsed.substr(0, iStart);
 }
 
-bool Field::AttachField(Document* pDocument,
-                        const CFX_WideString& csFieldName) {
+bool Field::AttachField(Document* pDocument, const WideString& csFieldName) {
   m_pJSDoc = pDocument;
   m_pFormFillEnv.Reset(pDocument->GetFormFillEnv());
   m_bCanSet = m_pFormFillEnv->GetPermissions(FPDFPERM_FILL_FORM) ||
@@ -220,7 +217,7 @@
 
   CPDFSDK_InterForm* pRDInterForm = m_pFormFillEnv->GetInterForm();
   CPDF_InterForm* pInterForm = pRDInterForm->GetInterForm();
-  CFX_WideString swFieldNameTemp = csFieldName;
+  WideString swFieldNameTemp = csFieldName;
   swFieldNameTemp.Replace(L"..", L".");
 
   if (pInterForm->CountFields(swFieldNameTemp) <= 0) {
@@ -243,7 +240,7 @@
 
 std::vector<CPDF_FormField*> Field::GetFormFields(
     CPDFSDK_FormFillEnvironment* pFormFillEnv,
-    const CFX_WideString& csFieldName) {
+    const WideString& csFieldName) {
   std::vector<CPDF_FormField*> fields;
   CPDFSDK_InterForm* pReaderInterForm = pFormFillEnv->GetInterForm();
   CPDF_InterForm* pInterForm = pReaderInterForm->GetInterForm();
@@ -255,7 +252,7 @@
 }
 
 std::vector<CPDF_FormField*> Field::GetFormFields(
-    const CFX_WideString& csFieldName) const {
+    const WideString& csFieldName) const {
   return Field::GetFormFields(m_pFormFillEnv.Get(), csFieldName);
 }
 
@@ -275,8 +272,8 @@
       for (auto& pObserved : widgets) {
         if (pObserved) {
           bool bFormatted = false;
-          CFX_WideString sValue = static_cast<CPDFSDK_Widget*>(pObserved.Get())
-                                      ->OnFormat(bFormatted);
+          WideString sValue = static_cast<CPDFSDK_Widget*>(pObserved.Get())
+                                  ->OnFormat(bFormatted);
           if (pObserved) {  // Not redundant, may be clobbered by OnFormat.
             static_cast<CPDFSDK_Widget*>(pObserved.Get())
                 ->ResetAppearance(bFormatted ? &sValue : nullptr, false);
@@ -332,7 +329,7 @@
       if (nFieldType == FIELDTYPE_COMBOBOX ||
           nFieldType == FIELDTYPE_TEXTFIELD) {
         bool bFormatted = false;
-        CFX_WideString sValue = pWidget->OnFormat(bFormatted);
+        WideString sValue = pWidget->OnFormat(bFormatted);
         pWidget->ResetAppearance(bFormatted ? &sValue : nullptr, false);
       } else {
         pWidget->ResetAppearance(nullptr, false);
@@ -356,8 +353,7 @@
   return pInterForm ? pInterForm->GetWidget(pFormControl) : nullptr;
 }
 
-bool Field::ValueIsOccur(CPDF_FormField* pFormField,
-                         CFX_WideString csOptLabel) {
+bool Field::ValueIsOccur(CPDF_FormField* pFormField, WideString csOptLabel) {
   for (int i = 0, sz = pFormField->CountOptions(); i < sz; i++) {
     if (csOptLabel.Compare(pFormField->GetOptionLabel(i)) == 0)
       return true;
@@ -379,14 +375,14 @@
 
 bool Field::alignment(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
 
-    CFX_ByteString alignStr;
+    ByteString alignStr;
     vp >> alignStr;
 
     if (m_bDelay) {
@@ -427,22 +423,22 @@
 }
 
 void Field::SetAlignment(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                         const CFX_WideString& swFieldName,
+                         const WideString& swFieldName,
                          int nControlIndex,
-                         const CFX_ByteString& string) {
+                         const ByteString& string) {
   // Not supported.
 }
 
 bool Field::borderStyle(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
 
-    CFX_ByteString strType = "";
+    ByteString strType = "";
     vp >> strType;
 
     if (m_bDelay) {
@@ -491,9 +487,9 @@
 }
 
 void Field::SetBorderStyle(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
-                           const CFX_ByteString& string) {
+                           const ByteString& string) {
   ASSERT(pFormFillEnv);
 
   BorderStyle nBorderStyle = BorderStyle::SOLID;
@@ -544,7 +540,7 @@
 
 bool Field::buttonAlignX(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -585,7 +581,7 @@
 }
 
 void Field::SetButtonAlignX(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                            const CFX_WideString& swFieldName,
+                            const WideString& swFieldName,
                             int nControlIndex,
                             int number) {
   // Not supported.
@@ -593,7 +589,7 @@
 
 bool Field::buttonAlignY(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -634,7 +630,7 @@
 }
 
 void Field::SetButtonAlignY(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                            const CFX_WideString& swFieldName,
+                            const WideString& swFieldName,
                             int nControlIndex,
                             int number) {
   // Not supported.
@@ -642,7 +638,7 @@
 
 bool Field::buttonFitBounds(CJS_Runtime* pRuntime,
                             CJS_PropValue& vp,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -678,7 +674,7 @@
 }
 
 void Field::SetButtonFitBounds(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                               const CFX_WideString& swFieldName,
+                               const WideString& swFieldName,
                                int nControlIndex,
                                bool b) {
   // Not supported.
@@ -686,7 +682,7 @@
 
 bool Field::buttonPosition(CJS_Runtime* pRuntime,
                            CJS_PropValue& vp,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -721,7 +717,7 @@
 }
 
 void Field::SetButtonPosition(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                              const CFX_WideString& swFieldName,
+                              const WideString& swFieldName,
                               int nControlIndex,
                               int number) {
   // Not supported.
@@ -729,7 +725,7 @@
 
 bool Field::buttonScaleHow(CJS_Runtime* pRuntime,
                            CJS_PropValue& vp,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -769,7 +765,7 @@
 }
 
 void Field::SetButtonScaleHow(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                              const CFX_WideString& swFieldName,
+                              const WideString& swFieldName,
                               int nControlIndex,
                               int number) {
   // Not supported.
@@ -777,7 +773,7 @@
 
 bool Field::buttonScaleWhen(CJS_Runtime* pRuntime,
                             CJS_PropValue& vp,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -828,7 +824,7 @@
 }
 
 void Field::SetButtonScaleWhen(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                               const CFX_WideString& swFieldName,
+                               const WideString& swFieldName,
                                int nControlIndex,
                                int number) {
   // Not supported.
@@ -836,7 +832,7 @@
 
 bool Field::calcOrderIndex(CJS_Runtime* pRuntime,
                            CJS_PropValue& vp,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -872,7 +868,7 @@
 }
 
 void Field::SetCalcOrderIndex(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                              const CFX_WideString& swFieldName,
+                              const WideString& swFieldName,
                               int nControlIndex,
                               int number) {
   // Not supported.
@@ -880,7 +876,7 @@
 
 bool Field::charLimit(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -911,15 +907,13 @@
 }
 
 void Field::SetCharLimit(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                         const CFX_WideString& swFieldName,
+                         const WideString& swFieldName,
                          int nControlIndex,
                          int number) {
   // Not supported.
 }
 
-bool Field::comb(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool Field::comb(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -954,7 +948,7 @@
 }
 
 void Field::SetComb(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                    const CFX_WideString& swFieldName,
+                    const WideString& swFieldName,
                     int nControlIndex,
                     bool b) {
   // Not supported.
@@ -962,7 +956,7 @@
 
 bool Field::commitOnSelChange(CJS_Runtime* pRuntime,
                               CJS_PropValue& vp,
-                              CFX_WideString& sError) {
+                              WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -999,7 +993,7 @@
 }
 
 void Field::SetCommitOnSelChange(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                 const CFX_WideString& swFieldName,
+                                 const WideString& swFieldName,
                                  int nControlIndex,
                                  bool b) {
   // Not supported.
@@ -1007,7 +1001,7 @@
 
 bool Field::currentValueIndices(CJS_Runtime* pRuntime,
                                 CJS_PropValue& vp,
-                                CFX_WideString& sError) {
+                                WideString& sError) {
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
@@ -1064,7 +1058,7 @@
 }
 
 void Field::SetCurrentValueIndices(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                   const CFX_WideString& swFieldName,
+                                   const WideString& swFieldName,
                                    int nControlIndex,
                                    const std::vector<uint32_t>& array) {
   ASSERT(pFormFillEnv);
@@ -1091,26 +1085,26 @@
 
 bool Field::defaultStyle(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   return false;
 }
 
 void Field::SetDefaultStyle(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                            const CFX_WideString& swFieldName,
+                            const WideString& swFieldName,
                             int nControlIndex) {
   // Not supported.
 }
 
 bool Field::defaultValue(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
 
-    CFX_WideString WideStr;
+    WideString WideStr;
     vp >> WideStr;
 
     if (m_bDelay) {
@@ -1136,15 +1130,15 @@
 }
 
 void Field::SetDefaultValue(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                            const CFX_WideString& swFieldName,
+                            const WideString& swFieldName,
                             int nControlIndex,
-                            const CFX_WideString& string) {
+                            const WideString& string) {
   // Not supported.
 }
 
 bool Field::doNotScroll(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -1179,7 +1173,7 @@
 }
 
 void Field::SetDoNotScroll(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
                            bool b) {
   // Not supported.
@@ -1187,7 +1181,7 @@
 
 bool Field::doNotSpellCheck(CJS_Runtime* pRuntime,
                             CJS_PropValue& vp,
-                            CFX_WideString& sError) {
+                            WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -1227,7 +1221,7 @@
 
 bool Field::delay(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   if (!vp.IsSetting()) {
     vp << m_bDelay;
     return true;
@@ -1243,7 +1237,7 @@
 
 bool Field::display(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
@@ -1288,7 +1282,7 @@
 }
 
 void Field::SetDisplay(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                       const CFX_WideString& swFieldName,
+                       const WideString& swFieldName,
                        int nControlIndex,
                        int number) {
   CPDFSDK_InterForm* pInterForm = pFormFillEnv->GetInterForm();
@@ -1323,9 +1317,7 @@
   }
 }
 
-bool Field::doc(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError) {
+bool Field::doc(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -1335,7 +1327,7 @@
 
 bool Field::editable(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
@@ -1358,7 +1350,7 @@
 
 bool Field::exportValues(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
     return false;
@@ -1398,7 +1390,7 @@
 
 bool Field::fileSelect(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
     return false;
@@ -1421,7 +1413,7 @@
 
 bool Field::fillColor(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   CJS_Array crArray;
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
@@ -1481,7 +1473,7 @@
 }
 
 void Field::SetFillColor(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                         const CFX_WideString& swFieldName,
+                         const WideString& swFieldName,
                          int nControlIndex,
                          const CFX_Color& color) {
   // Not supported.
@@ -1489,7 +1481,7 @@
 
 bool Field::hidden(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
@@ -1526,7 +1518,7 @@
 }
 
 void Field::SetHidden(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                      const CFX_WideString& swFieldName,
+                      const WideString& swFieldName,
                       int nControlIndex,
                       bool b) {
   int display = b ? 1 /*Hidden*/ : 0 /*Visible*/;
@@ -1535,13 +1527,13 @@
 
 bool Field::highlight(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   ASSERT(m_pFormFillEnv);
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
 
-    CFX_ByteString strMode;
+    ByteString strMode;
     vp >> strMode;
 
     if (m_bDelay) {
@@ -1586,15 +1578,15 @@
 }
 
 void Field::SetHighlight(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                         const CFX_WideString& swFieldName,
+                         const WideString& swFieldName,
                          int nControlIndex,
-                         const CFX_ByteString& string) {
+                         const ByteString& string) {
   // Not supported.
 }
 
 bool Field::lineWidth(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
@@ -1633,7 +1625,7 @@
 }
 
 void Field::SetLineWidth(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                         const CFX_WideString& swFieldName,
+                         const WideString& swFieldName,
                          int nControlIndex,
                          int number) {
   CPDFSDK_InterForm* pInterForm = pFormFillEnv->GetInterForm();
@@ -1673,7 +1665,7 @@
 
 bool Field::multiline(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -1708,7 +1700,7 @@
 }
 
 void Field::SetMultiline(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                         const CFX_WideString& swFieldName,
+                         const WideString& swFieldName,
                          int nControlIndex,
                          bool b) {
   // Not supported.
@@ -1716,7 +1708,7 @@
 
 bool Field::multipleSelection(CJS_Runtime* pRuntime,
                               CJS_PropValue& vp,
-                              CFX_WideString& sError) {
+                              WideString& sError) {
   ASSERT(m_pFormFillEnv);
   if (vp.IsSetting()) {
     if (!m_bCanSet)
@@ -1745,15 +1737,13 @@
 }
 
 void Field::SetMultipleSelection(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                 const CFX_WideString& swFieldName,
+                                 const WideString& swFieldName,
                                  int nControlIndex,
                                  bool b) {
   // Not supported.
 }
 
-bool Field::name(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool Field::name(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -1767,7 +1757,7 @@
 
 bool Field::numItems(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -1785,9 +1775,7 @@
   return true;
 }
 
-bool Field::page(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool Field::page(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (!vp.IsGetting()) {
     sError = JSGetStringFromID(IDS_STRING_JSREADONLY);
     return false;
@@ -1832,7 +1820,7 @@
 
 bool Field::password(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -1863,7 +1851,7 @@
 }
 
 void Field::SetPassword(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                        const CFX_WideString& swFieldName,
+                        const WideString& swFieldName,
                         int nControlIndex,
                         bool b) {
   // Not supported.
@@ -1871,7 +1859,7 @@
 
 bool Field::print(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   CPDFSDK_InterForm* pInterForm = m_pFormFillEnv->GetInterForm();
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
@@ -1942,7 +1930,7 @@
 
 bool Field::radiosInUnison(CJS_Runtime* pRuntime,
                            CJS_PropValue& vp,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
     return false;
@@ -1965,7 +1953,7 @@
 
 bool Field::readonly(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
     return false;
@@ -1982,9 +1970,7 @@
   return true;
 }
 
-bool Field::rect(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool Field::rect(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   CJS_Value Upper_Leftx(pRuntime);
   CJS_Value Upper_Lefty(pRuntime);
   CJS_Value Lower_Rightx(pRuntime);
@@ -2045,7 +2031,7 @@
 }
 
 void Field::SetRect(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                    const CFX_WideString& swFieldName,
+                    const WideString& swFieldName,
                     int nControlIndex,
                     const CFX_FloatRect& rect) {
   CPDFSDK_InterForm* pInterForm = pFormFillEnv->GetInterForm();
@@ -2104,7 +2090,7 @@
 
 bool Field::required(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
     return false;
@@ -2127,7 +2113,7 @@
 
 bool Field::richText(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -2156,13 +2142,13 @@
 
 bool Field::richValue(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return true;
 }
 
 bool Field::rotation(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -2193,7 +2179,7 @@
 }
 
 void Field::SetRotation(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                        const CFX_WideString& swFieldName,
+                        const WideString& swFieldName,
                         int nControlIndex,
                         int number) {
   // Not supported.
@@ -2201,7 +2187,7 @@
 
 bool Field::strokeColor(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   CJS_Array crArray;
 
   if (vp.IsSetting()) {
@@ -2259,7 +2245,7 @@
 }
 
 void Field::SetStrokeColor(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
                            const CFX_Color& color) {
   // Not supported.
@@ -2267,14 +2253,14 @@
 
 bool Field::style(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
 
-    CFX_ByteString csBCaption;
+    ByteString csBCaption;
     vp >> csBCaption;
 
     if (m_bDelay) {
@@ -2299,8 +2285,8 @@
   if (!pFormControl)
     return false;
 
-  CFX_WideString csWCaption = pFormControl->GetNormalCaption();
-  CFX_ByteString csBCaption;
+  WideString csWCaption = pFormControl->GetNormalCaption();
+  ByteString csBCaption;
 
   switch (csWCaption[0]) {
     case L'l':
@@ -2327,21 +2313,21 @@
 }
 
 void Field::SetStyle(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                     const CFX_WideString& swFieldName,
+                     const WideString& swFieldName,
                      int nControlIndex,
-                     const CFX_ByteString& string) {
+                     const ByteString& string) {
   // Not supported.
 }
 
 bool Field::submitName(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return true;
 }
 
 bool Field::textColor(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   CJS_Array crArray;
 
   if (vp.IsSetting()) {
@@ -2395,7 +2381,7 @@
 }
 
 void Field::SetTextColor(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                         const CFX_WideString& swFieldName,
+                         const WideString& swFieldName,
                          int nControlIndex,
                          const CFX_Color& color) {
   // Not supported.
@@ -2403,14 +2389,14 @@
 
 bool Field::textFont(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
 
-    CFX_ByteString csFontName;
+    ByteString csFontName;
     vp >> csFontName;
     if (csFontName.IsEmpty())
       return false;
@@ -2447,15 +2433,15 @@
 }
 
 void Field::SetTextFont(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                        const CFX_WideString& swFieldName,
+                        const WideString& swFieldName,
                         int nControlIndex,
-                        const CFX_ByteString& string) {
+                        const ByteString& string) {
   // Not supported.
 }
 
 bool Field::textSize(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
@@ -2490,15 +2476,13 @@
 }
 
 void Field::SetTextSize(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                        const CFX_WideString& swFieldName,
+                        const WideString& swFieldName,
                         int nControlIndex,
                         int number) {
   // Not supported.
 }
 
-bool Field::type(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool Field::type(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -2541,14 +2525,14 @@
 
 bool Field::userName(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   ASSERT(m_pFormFillEnv);
 
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
 
-    CFX_WideString swName;
+    WideString swName;
     vp >> swName;
 
     if (m_bDelay) {
@@ -2568,20 +2552,20 @@
 }
 
 void Field::SetUserName(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                        const CFX_WideString& swFieldName,
+                        const WideString& swFieldName,
                         int nControlIndex,
-                        const CFX_WideString& string) {
+                        const WideString& string) {
   // Not supported.
 }
 
 bool Field::value(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   if (vp.IsSetting()) {
     if (!m_bCanSet)
       return false;
 
-    std::vector<CFX_WideString> strArray;
+    std::vector<WideString> strArray;
     if (vp.GetJSValue()->IsArrayObject()) {
       CJS_Array ValueArray;
       vp.GetJSValue()->ConvertToArray(pRuntime, ValueArray);
@@ -2591,7 +2575,7 @@
         strArray.push_back(ElementValue.ToCFXWideString(pRuntime));
       }
     } else {
-      CFX_WideString swValue;
+      WideString swValue;
       vp >> swValue;
       strArray.push_back(swValue);
     }
@@ -2660,9 +2644,9 @@
 }
 
 void Field::SetValue(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                     const CFX_WideString& swFieldName,
+                     const WideString& swFieldName,
                      int nControlIndex,
-                     const std::vector<CFX_WideString>& strArray) {
+                     const std::vector<WideString>& strArray) {
   ASSERT(pFormFillEnv);
   if (strArray.empty())
     return;
@@ -2715,7 +2699,7 @@
 
 bool Field::valueAsString(CJS_Runtime* pRuntime,
                           CJS_PropValue& vp,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -2758,7 +2742,7 @@
 bool Field::browseForFileToSubmit(CJS_Runtime* pRuntime,
                                   const std::vector<CJS_Value>& params,
                                   CJS_Value& vRet,
-                                  CFX_WideString& sError) {
+                                  WideString& sError) {
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
     return false;
@@ -2766,7 +2750,7 @@
   CPDF_FormField* pFormField = FieldArray[0];
   if ((pFormField->GetFieldFlags() & FIELDFLAG_FILESELECT) &&
       (pFormField->GetFieldType() == FIELDTYPE_TEXTFIELD)) {
-    CFX_WideString wsFileName = m_pFormFillEnv->JS_fieldBrowse();
+    WideString wsFileName = m_pFormFillEnv->JS_fieldBrowse();
     if (!wsFileName.IsEmpty()) {
       pFormField->SetValue(wsFileName);
       UpdateFormField(m_pFormFillEnv.Get(), pFormField, true, true, true);
@@ -2779,7 +2763,7 @@
 bool Field::buttonGetCaption(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError) {
+                             WideString& sError) {
   int nface = 0;
   int iSize = params.size();
   if (iSize >= 1)
@@ -2812,7 +2796,7 @@
 bool Field::buttonGetIcon(CJS_Runtime* pRuntime,
                           const std::vector<CJS_Value>& params,
                           CJS_Value& vRet,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   if (params.size() >= 1) {
     int nFace = params[0].ToInt(pRuntime);
     if (nFace < 0 || nFace > 2)
@@ -2844,28 +2828,28 @@
 bool Field::buttonImportIcon(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError) {
+                             WideString& sError) {
   return true;
 }
 
 bool Field::buttonSetCaption(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError) {
+                             WideString& sError) {
   return false;
 }
 
 bool Field::buttonSetIcon(CJS_Runtime* pRuntime,
                           const std::vector<CJS_Value>& params,
                           CJS_Value& vRet,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   return false;
 }
 
 bool Field::checkThisBox(CJS_Runtime* pRuntime,
                          const std::vector<CJS_Value>& params,
                          CJS_Value& vRet,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   int iSize = params.size();
   if (iSize < 1)
     return false;
@@ -2902,14 +2886,14 @@
 bool Field::clearItems(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return true;
 }
 
 bool Field::defaultIsChecked(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError) {
+                             WideString& sError) {
   if (!m_bCanSet)
     return false;
 
@@ -2936,28 +2920,27 @@
 bool Field::deleteItemAt(CJS_Runtime* pRuntime,
                          const std::vector<CJS_Value>& params,
                          CJS_Value& vRet,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   return true;
 }
 
 bool Field::getArray(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
     return false;
 
-  std::vector<std::unique_ptr<CFX_WideString>> swSort;
+  std::vector<std::unique_ptr<WideString>> swSort;
   for (CPDF_FormField* pFormField : FieldArray) {
-    swSort.push_back(std::unique_ptr<CFX_WideString>(
-        new CFX_WideString(pFormField->GetFullName())));
+    swSort.push_back(
+        std::unique_ptr<WideString>(new WideString(pFormField->GetFullName())));
   }
 
-  std::sort(
-      swSort.begin(), swSort.end(),
-      [](const std::unique_ptr<CFX_WideString>& p1,
-         const std::unique_ptr<CFX_WideString>& p2) { return *p1 < *p2; });
+  std::sort(swSort.begin(), swSort.end(),
+            [](const std::unique_ptr<WideString>& p1,
+               const std::unique_ptr<WideString>& p2) { return *p1 < *p2; });
 
   CJS_Array FormFieldArray;
 
@@ -2982,7 +2965,7 @@
 bool Field::getItemAt(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   int iSize = params.size();
   int nIdx = -1;
   if (iSize >= 1)
@@ -3002,7 +2985,7 @@
     if (nIdx == -1 || nIdx > pFormField->CountOptions())
       nIdx = pFormField->CountOptions() - 1;
     if (bExport) {
-      CFX_WideString strval = pFormField->GetOptionValue(nIdx);
+      WideString strval = pFormField->GetOptionValue(nIdx);
       if (strval.IsEmpty())
         vRet = CJS_Value(pRuntime, pFormField->GetOptionLabel(nIdx).c_str());
       else
@@ -3020,21 +3003,21 @@
 bool Field::getLock(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   return false;
 }
 
 bool Field::insertItemAt(CJS_Runtime* pRuntime,
                          const std::vector<CJS_Value>& params,
                          CJS_Value& vRet,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   return true;
 }
 
 bool Field::isBoxChecked(CJS_Runtime* pRuntime,
                          const std::vector<CJS_Value>& params,
                          CJS_Value& vRet,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   int nIndex = -1;
   if (params.size() >= 1)
     nIndex = params[0].ToInt(pRuntime);
@@ -3058,7 +3041,7 @@
 bool Field::isDefaultChecked(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError) {
+                             WideString& sError) {
   int nIndex = -1;
   if (params.size() >= 1)
     nIndex = params[0].ToInt(pRuntime);
@@ -3081,14 +3064,14 @@
 bool Field::setAction(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return true;
 }
 
 bool Field::setFocus(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   std::vector<CPDF_FormField*> FieldArray = GetFormFields(m_FieldName);
   if (FieldArray.empty())
     return false;
@@ -3133,62 +3116,62 @@
 bool Field::setItems(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   return true;
 }
 
 bool Field::setLock(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   return false;
 }
 
 bool Field::signatureGetModifications(CJS_Runtime* pRuntime,
                                       const std::vector<CJS_Value>& params,
                                       CJS_Value& vRet,
-                                      CFX_WideString& sError) {
+                                      WideString& sError) {
   return false;
 }
 
 bool Field::signatureGetSeedValue(CJS_Runtime* pRuntime,
                                   const std::vector<CJS_Value>& params,
                                   CJS_Value& vRet,
-                                  CFX_WideString& sError) {
+                                  WideString& sError) {
   return false;
 }
 
 bool Field::signatureInfo(CJS_Runtime* pRuntime,
                           const std::vector<CJS_Value>& params,
                           CJS_Value& vRet,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   return false;
 }
 
 bool Field::signatureSetSeedValue(CJS_Runtime* pRuntime,
                                   const std::vector<CJS_Value>& params,
                                   CJS_Value& vRet,
-                                  CFX_WideString& sError) {
+                                  WideString& sError) {
   return false;
 }
 
 bool Field::signatureSign(CJS_Runtime* pRuntime,
                           const std::vector<CJS_Value>& params,
                           CJS_Value& vRet,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   return false;
 }
 
 bool Field::signatureValidate(CJS_Runtime* pRuntime,
                               const std::vector<CJS_Value>& params,
                               CJS_Value& vRet,
-                              CFX_WideString& sError) {
+                              WideString& sError) {
   return false;
 }
 
 bool Field::source(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   if (vp.IsGetting()) {
     vp << (CJS_Object*)nullptr;
   }
@@ -3210,14 +3193,14 @@
   m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_String(FIELD_PROP prop, const CFX_ByteString& string) {
+void Field::AddDelay_String(FIELD_PROP prop, const ByteString& string) {
   CJS_DelayData* pNewData =
       new CJS_DelayData(prop, m_nFormControlIndex, m_FieldName);
   pNewData->string = string;
   m_pJSDoc->AddDelayData(pNewData);
 }
 
-void Field::AddDelay_WideString(FIELD_PROP prop, const CFX_WideString& string) {
+void Field::AddDelay_WideString(FIELD_PROP prop, const WideString& string) {
   CJS_DelayData* pNewData =
       new CJS_DelayData(prop, m_nFormControlIndex, m_FieldName);
   pNewData->widestring = string;
@@ -3247,7 +3230,7 @@
 }
 
 void Field::AddDelay_WideStringArray(FIELD_PROP prop,
-                                     const std::vector<CFX_WideString>& array) {
+                                     const std::vector<WideString>& array) {
   CJS_DelayData* pNewData =
       new CJS_DelayData(prop, m_nFormControlIndex, m_FieldName);
   pNewData->widestringarray = array;
@@ -3397,7 +3380,7 @@
 void Field::AddField(CPDFSDK_FormFillEnvironment* pFormFillEnv,
                      int nPageIndex,
                      int nFieldType,
-                     const CFX_WideString& sName,
+                     const WideString& sName,
                      const CFX_FloatRect& rcCoords) {
   // Not supported.
 }
diff --git a/fpdfsdk/javascript/Field.h b/fpdfsdk/javascript/Field.h
index 1c8d6be..2ca1da4 100644
--- a/fpdfsdk/javascript/Field.h
+++ b/fpdfsdk/javascript/Field.h
@@ -56,20 +56,20 @@
 };
 
 struct CJS_DelayData {
-  CJS_DelayData(FIELD_PROP prop, int idx, const CFX_WideString& name);
+  CJS_DelayData(FIELD_PROP prop, int idx, const WideString& name);
   ~CJS_DelayData();
 
   FIELD_PROP eProp;
   int nControlIndex;
-  CFX_WideString sFieldName;
+  WideString sFieldName;
   int32_t num;
   bool b;
-  CFX_ByteString string;
-  CFX_WideString widestring;
+  ByteString string;
+  WideString widestring;
   CFX_FloatRect rect;
   CFX_Color color;
   std::vector<uint32_t> wordarray;
-  std::vector<CFX_WideString> widestringarray;
+  std::vector<WideString> widestringarray;
 };
 
 class Field : public CJS_EmbedObj {
@@ -77,380 +77,338 @@
   explicit Field(CJS_Object* pJSObject);
   ~Field() override;
 
-  bool alignment(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
+  bool alignment(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool borderStyle(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool buttonAlignX(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool buttonAlignY(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool buttonFitBounds(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError);
+                       WideString& sError);
   bool buttonPosition(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError);
+                      WideString& sError);
   bool buttonScaleHow(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError);
+                      WideString& sError);
   bool buttonScaleWhen(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError);
+                       WideString& sError);
   bool calcOrderIndex(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError);
-  bool charLimit(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool comb(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+                      WideString& sError);
+  bool charLimit(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool comb(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool commitOnSelChange(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError);
+                         WideString& sError);
   bool currentValueIndices(CJS_Runtime* pRuntime,
                            CJS_PropValue& vp,
-                           CFX_WideString& sError);
+                           WideString& sError);
   bool defaultStyle(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool defaultValue(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool doNotScroll(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool doNotSpellCheck(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError);
-  bool delay(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool display(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError);
-  bool doc(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool editable(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
+                       WideString& sError);
+  bool delay(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool display(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool doc(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool editable(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool exportValues(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
-  bool fileSelect(CJS_Runtime* pRuntime,
-                  CJS_PropValue& vp,
-                  CFX_WideString& sError);
-  bool fillColor(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool hidden(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool highlight(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool lineWidth(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool multiline(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
+                    WideString& sError);
+  bool fileSelect(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool fillColor(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool hidden(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool highlight(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool lineWidth(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool multiline(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool multipleSelection(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError);
-  bool name(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool numItems(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool page(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool password(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool print(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+                         WideString& sError);
+  bool name(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool numItems(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool page(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool password(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool print(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool radiosInUnison(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError);
-  bool readonly(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool rect(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool required(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool richText(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool richValue(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool rotation(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
+                      WideString& sError);
+  bool readonly(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool rect(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool required(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool richText(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool richValue(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool rotation(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool strokeColor(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError);
-  bool style(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool submitName(CJS_Runtime* pRuntime,
-                  CJS_PropValue& vp,
-                  CFX_WideString& sError);
-  bool textColor(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool textFont(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool textSize(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool type(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool userName(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool value(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+                   WideString& sError);
+  bool style(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool submitName(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool textColor(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool textFont(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool textSize(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool type(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool userName(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool value(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool valueAsString(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError);
-  bool source(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+                     WideString& sError);
+  bool source(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
 
   bool browseForFileToSubmit(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError);
+                             WideString& sError);
   bool buttonGetCaption(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError);
+                        WideString& sError);
   bool buttonGetIcon(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool buttonImportIcon(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError);
+                        WideString& sError);
   bool buttonSetCaption(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError);
+                        WideString& sError);
   bool buttonSetIcon(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool checkThisBox(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool clearItems(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError);
+                  WideString& sError);
   bool defaultIsChecked(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError);
+                        WideString& sError);
   bool deleteItemAt(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool getArray(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool getItemAt(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError);
+                 WideString& sError);
   bool getLock(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool insertItemAt(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool isBoxChecked(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool isDefaultChecked(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError);
+                        WideString& sError);
   bool setAction(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError);
+                 WideString& sError);
   bool setFocus(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool setItems(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool setLock(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool signatureGetModifications(CJS_Runtime* pRuntime,
                                  const std::vector<CJS_Value>& params,
                                  CJS_Value& vRet,
-                                 CFX_WideString& sError);
+                                 WideString& sError);
   bool signatureGetSeedValue(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError);
+                             WideString& sError);
   bool signatureInfo(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool signatureSetSeedValue(CJS_Runtime* pRuntime,
                              const std::vector<CJS_Value>& params,
                              CJS_Value& vRet,
-                             CFX_WideString& sError);
+                             WideString& sError);
   bool signatureSign(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool signatureValidate(CJS_Runtime* pRuntime,
                          const std::vector<CJS_Value>& params,
                          CJS_Value& vRet,
-                         CFX_WideString& sError);
+                         WideString& sError);
 
   static void SetAlignment(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
-                           const CFX_ByteString& string);
+                           const ByteString& string);
   static void SetBorderStyle(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                             const CFX_WideString& swFieldName,
+                             const WideString& swFieldName,
                              int nControlIndex,
-                             const CFX_ByteString& string);
+                             const ByteString& string);
   static void SetButtonAlignX(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                              const CFX_WideString& swFieldName,
+                              const WideString& swFieldName,
                               int nControlIndex,
                               int number);
   static void SetButtonAlignY(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                              const CFX_WideString& swFieldName,
+                              const WideString& swFieldName,
                               int nControlIndex,
                               int number);
   static void SetButtonFitBounds(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                 const CFX_WideString& swFieldName,
+                                 const WideString& swFieldName,
                                  int nControlIndex,
                                  bool b);
   static void SetButtonPosition(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                const CFX_WideString& swFieldName,
+                                const WideString& swFieldName,
                                 int nControlIndex,
                                 int number);
   static void SetButtonScaleHow(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                const CFX_WideString& swFieldName,
+                                const WideString& swFieldName,
                                 int nControlIndex,
                                 int number);
   static void SetButtonScaleWhen(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                 const CFX_WideString& swFieldName,
+                                 const WideString& swFieldName,
                                  int nControlIndex,
                                  int number);
   static void SetCalcOrderIndex(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                const CFX_WideString& swFieldName,
+                                const WideString& swFieldName,
                                 int nControlIndex,
                                 int number);
   static void SetCharLimit(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
                            int number);
   static void SetComb(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                      const CFX_WideString& swFieldName,
+                      const WideString& swFieldName,
                       int nControlIndex,
                       bool b);
   static void SetCommitOnSelChange(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                   const CFX_WideString& swFieldName,
+                                   const WideString& swFieldName,
                                    int nControlIndex,
                                    bool b);
   static void SetCurrentValueIndices(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                     const CFX_WideString& swFieldName,
+                                     const WideString& swFieldName,
                                      int nControlIndex,
                                      const std::vector<uint32_t>& array);
   static void SetDefaultStyle(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                              const CFX_WideString& swFieldName,
+                              const WideString& swFieldName,
                               int nControlIndex);
   static void SetDefaultValue(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                              const CFX_WideString& swFieldName,
+                              const WideString& swFieldName,
                               int nControlIndex,
-                              const CFX_WideString& string);
+                              const WideString& string);
   static void SetDoNotScroll(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                             const CFX_WideString& swFieldName,
+                             const WideString& swFieldName,
                              int nControlIndex,
                              bool b);
   static void SetDisplay(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                         const CFX_WideString& swFieldName,
+                         const WideString& swFieldName,
                          int nControlIndex,
                          int number);
   static void SetFillColor(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
                            const CFX_Color& color);
   static void SetHidden(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                        const CFX_WideString& swFieldName,
+                        const WideString& swFieldName,
                         int nControlIndex,
                         bool b);
   static void SetHighlight(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
-                           const CFX_ByteString& string);
+                           const ByteString& string);
   static void SetLineWidth(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
                            int number);
   static void SetMultiline(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
                            bool b);
   static void SetMultipleSelection(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                   const CFX_WideString& swFieldName,
+                                   const WideString& swFieldName,
                                    int nControlIndex,
                                    bool b);
   static void SetPassword(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                          const CFX_WideString& swFieldName,
+                          const WideString& swFieldName,
                           int nControlIndex,
                           bool b);
   static void SetRect(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                      const CFX_WideString& swFieldName,
+                      const WideString& swFieldName,
                       int nControlIndex,
                       const CFX_FloatRect& rect);
   static void SetRotation(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                          const CFX_WideString& swFieldName,
+                          const WideString& swFieldName,
                           int nControlIndex,
                           int number);
   static void SetStrokeColor(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                             const CFX_WideString& swFieldName,
+                             const WideString& swFieldName,
                              int nControlIndex,
                              const CFX_Color& color);
   static void SetStyle(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                       const CFX_WideString& swFieldName,
+                       const WideString& swFieldName,
                        int nControlIndex,
-                       const CFX_ByteString& string);
+                       const ByteString& string);
   static void SetTextColor(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString& swFieldName,
+                           const WideString& swFieldName,
                            int nControlIndex,
                            const CFX_Color& color);
   static void SetTextFont(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                          const CFX_WideString& swFieldName,
+                          const WideString& swFieldName,
                           int nControlIndex,
-                          const CFX_ByteString& string);
+                          const ByteString& string);
   static void SetTextSize(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                          const CFX_WideString& swFieldName,
+                          const WideString& swFieldName,
                           int nControlIndex,
                           int number);
   static void SetUserName(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                          const CFX_WideString& swFieldName,
+                          const WideString& swFieldName,
                           int nControlIndex,
-                          const CFX_WideString& string);
+                          const WideString& string);
   static void SetValue(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                       const CFX_WideString& swFieldName,
+                       const WideString& swFieldName,
                        int nControlIndex,
-                       const std::vector<CFX_WideString>& strArray);
+                       const std::vector<WideString>& strArray);
 
   static void AddField(CPDFSDK_FormFillEnvironment* pFormFillEnv,
                        int nPageIndex,
                        int nFieldType,
-                       const CFX_WideString& sName,
+                       const WideString& sName,
                        const CFX_FloatRect& rcCoords);
 
   static void UpdateFormField(CPDFSDK_FormFillEnvironment* pFormFillEnv,
@@ -468,12 +426,12 @@
                                    CPDF_FormControl* pFormControl);
   static std::vector<CPDF_FormField*> GetFormFields(
       CPDFSDK_FormFillEnvironment* pFormFillEnv,
-      const CFX_WideString& csFieldName);
+      const WideString& csFieldName);
 
   static void DoDelay(CPDFSDK_FormFillEnvironment* pFormFillEnv,
                       CJS_DelayData* pData);
 
-  bool AttachField(Document* pDocument, const CFX_WideString& csFieldName);
+  bool AttachField(Document* pDocument, const WideString& csFieldName);
   void SetDelay(bool bDelay);
 
  protected:
@@ -481,26 +439,26 @@
                       std::wstring& strFieldName,
                       int& iControlNo);
   std::vector<CPDF_FormField*> GetFormFields(
-      const CFX_WideString& csFieldName) const;
+      const WideString& csFieldName) const;
   CPDF_FormControl* GetSmartFieldControl(CPDF_FormField* pFormField);
-  bool ValueIsOccur(CPDF_FormField* pFormField, CFX_WideString csOptLabel);
+  bool ValueIsOccur(CPDF_FormField* pFormField, WideString csOptLabel);
 
   void AddDelay_Int(FIELD_PROP prop, int32_t n);
   void AddDelay_Bool(FIELD_PROP prop, bool b);
-  void AddDelay_String(FIELD_PROP prop, const CFX_ByteString& string);
-  void AddDelay_WideString(FIELD_PROP prop, const CFX_WideString& string);
+  void AddDelay_String(FIELD_PROP prop, const ByteString& string);
+  void AddDelay_WideString(FIELD_PROP prop, const WideString& string);
   void AddDelay_Rect(FIELD_PROP prop, const CFX_FloatRect& rect);
   void AddDelay_Color(FIELD_PROP prop, const CFX_Color& color);
   void AddDelay_WordArray(FIELD_PROP prop, const std::vector<uint32_t>& array);
   void AddDelay_WideStringArray(FIELD_PROP prop,
-                                const std::vector<CFX_WideString>& array);
+                                const std::vector<WideString>& array);
 
   void DoDelay();
 
  public:
   Document* m_pJSDoc;
   CPDFSDK_FormFillEnvironment::ObservedPtr m_pFormFillEnv;
-  CFX_WideString m_FieldName;
+  WideString m_FieldName;
   int m_nFormControlIndex;
   bool m_bCanSet;
   bool m_bDelay;
diff --git a/fpdfsdk/javascript/Icon.cpp b/fpdfsdk/javascript/Icon.cpp
index fa2f92f..47781dd 100644
--- a/fpdfsdk/javascript/Icon.cpp
+++ b/fpdfsdk/javascript/Icon.cpp
@@ -25,9 +25,7 @@
 
 Icon::~Icon() {}
 
-bool Icon::name(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError) {
+bool Icon::name(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
diff --git a/fpdfsdk/javascript/Icon.h b/fpdfsdk/javascript/Icon.h
index 5580678..e856ee9 100644
--- a/fpdfsdk/javascript/Icon.h
+++ b/fpdfsdk/javascript/Icon.h
@@ -16,12 +16,12 @@
   explicit Icon(CJS_Object* pJSObject);
   ~Icon() override;
 
-  bool name(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  CFX_WideString GetIconName() const { return m_swIconName; }
-  void SetIconName(CFX_WideString name) { m_swIconName = name; }
+  bool name(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  WideString GetIconName() const { return m_swIconName; }
+  void SetIconName(WideString name) { m_swIconName = name; }
 
  private:
-  CFX_WideString m_swIconName;
+  WideString m_swIconName;
 };
 
 class CJS_Icon : public CJS_Object {
diff --git a/fpdfsdk/javascript/JS_Define.h b/fpdfsdk/javascript/JS_Define.h
index f360e8f..470a8fe 100644
--- a/fpdfsdk/javascript/JS_Define.h
+++ b/fpdfsdk/javascript/JS_Define.h
@@ -34,7 +34,7 @@
   v8::FunctionCallback pMethodCall;
 };
 
-template <class C, bool (C::*M)(CJS_Runtime*, CJS_PropValue&, CFX_WideString&)>
+template <class C, bool (C::*M)(CJS_Runtime*, CJS_PropValue&, WideString&)>
 void JSPropGetter(const char* prop_name_string,
                   const char* class_name_string,
                   v8::Local<v8::String> property,
@@ -48,7 +48,7 @@
   if (!pJSObj)
     return;
   C* pObj = reinterpret_cast<C*>(pJSObj->GetEmbedObject());
-  CFX_WideString sError;
+  WideString sError;
   CJS_PropValue value(pRuntime);
   value.StartGetting();
   if (!(pObj->*M)(pRuntime, value, sError)) {
@@ -59,7 +59,7 @@
   info.GetReturnValue().Set(value.GetJSValue()->ToV8Value(pRuntime));
 }
 
-template <class C, bool (C::*M)(CJS_Runtime*, CJS_PropValue&, CFX_WideString&)>
+template <class C, bool (C::*M)(CJS_Runtime*, CJS_PropValue&, WideString&)>
 void JSPropSetter(const char* prop_name_string,
                   const char* class_name_string,
                   v8::Local<v8::String> property,
@@ -74,7 +74,7 @@
   if (!pJSObj)
     return;
   C* pObj = reinterpret_cast<C*>(pJSObj->GetEmbedObject());
-  CFX_WideString sError;
+  WideString sError;
   CJS_PropValue propValue(pRuntime, CJS_Value(pRuntime, value));
   propValue.StartSetting();
   if (!(pObj->*M)(pRuntime, propValue, sError)) {
@@ -101,7 +101,7 @@
           bool (C::*M)(CJS_Runtime*,
                        const std::vector<CJS_Value>&,
                        CJS_Value&,
-                       CFX_WideString&)>
+                       WideString&)>
 void JSMethod(const char* method_name_string,
               const char* class_name_string,
               const v8::FunctionCallbackInfo<v8::Value>& info) {
@@ -118,7 +118,7 @@
   if (!pJSObj)
     return;
   C* pObj = reinterpret_cast<C*>(pJSObj->GetEmbedObject());
-  CFX_WideString sError;
+  WideString sError;
   CJS_Value valueRes(pRuntime);
   if (!(pObj->*M)(pRuntime, parameters, valueRes, sError)) {
     pRuntime->Error(
@@ -325,8 +325,8 @@
 
   Alt* pObj = reinterpret_cast<Alt*>(pJSObj->GetEmbedObject());
   v8::String::Utf8Value utf8_value(property);
-  CFX_WideString propname = CFX_WideString::FromUTF8(
-      CFX_ByteStringC(*utf8_value, utf8_value.length()));
+  WideString propname =
+      WideString::FromUTF8(ByteStringView(*utf8_value, utf8_value.length()));
   bool bRet = pObj->QueryProperty(propname.c_str());
   info.GetReturnValue().Set(bRet ? 4 : 0);
 }
@@ -347,9 +347,9 @@
 
   Alt* pObj = reinterpret_cast<Alt*>(pJSObj->GetEmbedObject());
   v8::String::Utf8Value utf8_value(property);
-  CFX_WideString propname = CFX_WideString::FromUTF8(
-      CFX_ByteStringC(*utf8_value, utf8_value.length()));
-  CFX_WideString sError;
+  WideString propname =
+      WideString::FromUTF8(ByteStringView(*utf8_value, utf8_value.length()));
+  WideString sError;
   CJS_PropValue value(pRuntime);
   value.StartGetting();
   if (!pObj->DoProperty(pRuntime, propname.c_str(), value, sError)) {
@@ -376,9 +376,9 @@
 
   Alt* pObj = reinterpret_cast<Alt*>(pJSObj->GetEmbedObject());
   v8::String::Utf8Value utf8_value(property);
-  CFX_WideString propname = CFX_WideString::FromUTF8(
-      CFX_ByteStringC(*utf8_value, utf8_value.length()));
-  CFX_WideString sError;
+  WideString propname =
+      WideString::FromUTF8(ByteStringView(*utf8_value, utf8_value.length()));
+  WideString sError;
   CJS_PropValue PropValue(pRuntime, CJS_Value(pRuntime, value));
   PropValue.StartSetting();
   if (!pObj->DoProperty(pRuntime, propname.c_str(), PropValue, sError)) {
@@ -402,20 +402,18 @@
 
   Alt* pObj = reinterpret_cast<Alt*>(pJSObj->GetEmbedObject());
   v8::String::Utf8Value utf8_value(property);
-  CFX_WideString propname = CFX_WideString::FromUTF8(
-      CFX_ByteStringC(*utf8_value, utf8_value.length()));
-  CFX_WideString sError;
+  WideString propname =
+      WideString::FromUTF8(ByteStringView(*utf8_value, utf8_value.length()));
+  WideString sError;
   if (!pObj->DelProperty(pRuntime, propname.c_str(), sError)) {
-    CFX_ByteString cbName;
+    ByteString cbName;
     cbName.Format("%s.%s", class_name, "DelProperty");
     // Probably a missing call to JSFX_Error().
   }
 }
 
-template <bool (*F)(CJS_Runtime*,
-                    const std::vector<CJS_Value>&,
-                    CJS_Value&,
-                    CFX_WideString&)>
+template <bool (
+    *F)(CJS_Runtime*, const std::vector<CJS_Value>&, CJS_Value&, WideString&)>
 void JSGlobalFunc(const char* func_name_string,
                   const v8::FunctionCallbackInfo<v8::Value>& info) {
   CJS_Runtime* pRuntime =
@@ -427,7 +425,7 @@
     parameters.push_back(CJS_Value(pRuntime, info[i]));
   }
   CJS_Value valueRes(pRuntime);
-  CFX_WideString sError;
+  WideString sError;
   if (!(*F)(pRuntime, parameters, valueRes, sError)) {
     pRuntime->Error(JSFormatErrorString(func_name_string, nullptr, sError));
     return;
diff --git a/fpdfsdk/javascript/JS_EventHandler.cpp b/fpdfsdk/javascript/JS_EventHandler.cpp
index a63b7a8..670d43e 100644
--- a/fpdfsdk/javascript/JS_EventHandler.cpp
+++ b/fpdfsdk/javascript/JS_EventHandler.cpp
@@ -43,7 +43,7 @@
 }
 
 void CJS_EventHandler::OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                  const CFX_WideString& strTargetName) {
+                                  const WideString& strTargetName) {
   Initial(JET_DOC_OPEN);
   m_pTargetFormFillEnv.Reset(pFormFillEnv);
   m_strTargetName = strTargetName;
@@ -146,36 +146,36 @@
 void CJS_EventHandler::OnField_Focus(bool bModifier,
                                      bool bShift,
                                      CPDF_FormField* pTarget,
-                                     const CFX_WideString& Value) {
+                                     const WideString& Value) {
   Initial(JET_FIELD_FOCUS);
 
   m_bModifier = bModifier;
   m_bShift = bShift;
   m_strTargetName = pTarget->GetFullName();
-  m_pValue = (CFX_WideString*)&Value;
+  m_pValue = (WideString*)&Value;
 }
 
 void CJS_EventHandler::OnField_Blur(bool bModifier,
                                     bool bShift,
                                     CPDF_FormField* pTarget,
-                                    const CFX_WideString& Value) {
+                                    const WideString& Value) {
   Initial(JET_FIELD_BLUR);
 
   m_bModifier = bModifier;
   m_bShift = bShift;
   m_strTargetName = pTarget->GetFullName();
-  m_pValue = (CFX_WideString*)&Value;
+  m_pValue = (WideString*)&Value;
 }
 
-void CJS_EventHandler::OnField_Keystroke(CFX_WideString& strChange,
-                                         const CFX_WideString& strChangeEx,
+void CJS_EventHandler::OnField_Keystroke(WideString& strChange,
+                                         const WideString& strChangeEx,
                                          bool KeyDown,
                                          bool bModifier,
                                          int& nSelEnd,
                                          int& nSelStart,
                                          bool bShift,
                                          CPDF_FormField* pTarget,
-                                         CFX_WideString& Value,
+                                         WideString& Value,
                                          bool bWillCommit,
                                          bool bFieldFull,
                                          bool& bRc) {
@@ -196,13 +196,13 @@
   m_bFieldFull = bFieldFull;
 }
 
-void CJS_EventHandler::OnField_Validate(CFX_WideString& strChange,
-                                        const CFX_WideString& strChangeEx,
+void CJS_EventHandler::OnField_Validate(WideString& strChange,
+                                        const WideString& strChangeEx,
                                         bool bKeyDown,
                                         bool bModifier,
                                         bool bShift,
                                         CPDF_FormField* pTarget,
-                                        CFX_WideString& Value,
+                                        WideString& Value,
                                         bool& bRc) {
   Initial(JET_FIELD_VALIDATE);
 
@@ -218,7 +218,7 @@
 
 void CJS_EventHandler::OnField_Calculate(CPDF_FormField* pSource,
                                          CPDF_FormField* pTarget,
-                                         CFX_WideString& Value,
+                                         WideString& Value,
                                          bool& bRc) {
   Initial(JET_FIELD_CALCULATE);
 
@@ -230,7 +230,7 @@
 }
 
 void CJS_EventHandler::OnField_Format(CPDF_FormField* pTarget,
-                                      CFX_WideString& Value,
+                                      WideString& Value,
                                       bool bWillCommit) {
   Initial(JET_FIELD_FORMAT);
 
@@ -351,7 +351,7 @@
 
 void CJS_EventHandler::OnMenu_Exec(
     CPDFSDK_FormFillEnvironment* pTargetFormFillEnv,
-    const CFX_WideString& strTargetName) {
+    const WideString& strTargetName) {
   Initial(JET_MENU_EXEC);
   m_pTargetFormFillEnv.Reset(pTargetFormFillEnv);
   m_strTargetName = strTargetName;
@@ -408,14 +408,14 @@
   return m_bValid;
 }
 
-CFX_WideString& CJS_EventHandler::Change() {
+WideString& CJS_EventHandler::Change() {
   if (m_pWideStrChange) {
     return *m_pWideStrChange;
   }
   return m_WideStrChangeDu;
 }
 
-CFX_WideString CJS_EventHandler::ChangeEx() {
+WideString CJS_EventHandler::ChangeEx() {
   return m_WideStrChangeEx;
 }
 
@@ -640,7 +640,7 @@
   return pField;
 }
 
-CFX_WideString& CJS_EventHandler::Value() {
+WideString& CJS_EventHandler::Value() {
   return *m_pValue;
 }
 
@@ -648,6 +648,6 @@
   return m_bWillCommit;
 }
 
-CFX_WideString CJS_EventHandler::TargetName() {
+WideString CJS_EventHandler::TargetName() {
   return m_strTargetName;
 }
diff --git a/fpdfsdk/javascript/JS_EventHandler.h b/fpdfsdk/javascript/JS_EventHandler.h
index 82d9d6a..8273b41 100644
--- a/fpdfsdk/javascript/JS_EventHandler.h
+++ b/fpdfsdk/javascript/JS_EventHandler.h
@@ -67,7 +67,7 @@
   void OnApp_Init();
 
   void OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                  const CFX_WideString& strTargetName);
+                  const WideString& strTargetName);
   void OnDoc_WillPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv);
   void OnDoc_DidPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv);
   void OnDoc_WillSave(CPDFSDK_FormFillEnvironment* pFormFillEnv);
@@ -81,30 +81,30 @@
 
   void OnField_Calculate(CPDF_FormField* pSource,
                          CPDF_FormField* pTarget,
-                         CFX_WideString& Value,
+                         WideString& Value,
                          bool& bRc);
   void OnField_Format(CPDF_FormField* pTarget,
-                      CFX_WideString& Value,
+                      WideString& Value,
                       bool bWillCommit);
-  void OnField_Keystroke(CFX_WideString& strChange,
-                         const CFX_WideString& strChangeEx,
+  void OnField_Keystroke(WideString& strChange,
+                         const WideString& strChangeEx,
                          bool KeyDown,
                          bool bModifier,
                          int& nSelEnd,
                          int& nSelStart,
                          bool bShift,
                          CPDF_FormField* pTarget,
-                         CFX_WideString& Value,
+                         WideString& Value,
                          bool bWillCommit,
                          bool bFieldFull,
                          bool& bRc);
-  void OnField_Validate(CFX_WideString& strChange,
-                        const CFX_WideString& strChangeEx,
+  void OnField_Validate(WideString& strChange,
+                        const WideString& strChangeEx,
                         bool bKeyDown,
                         bool bModifier,
                         bool bShift,
                         CPDF_FormField* pTarget,
-                        CFX_WideString& Value,
+                        WideString& Value,
                         bool& bRc);
 
   void OnField_MouseDown(bool bModifier, bool bShift, CPDF_FormField* pTarget);
@@ -114,11 +114,11 @@
   void OnField_Blur(bool bModifier,
                     bool bShift,
                     CPDF_FormField* pTarget,
-                    const CFX_WideString& Value);
+                    const WideString& Value);
   void OnField_Focus(bool bModifier,
                      bool bShift,
                      CPDF_FormField* pTarget,
-                     const CFX_WideString& Value);
+                     const WideString& Value);
 
   void OnScreen_Focus(bool bModifier, bool bShift, CPDFSDK_Annot* pScreen);
   void OnScreen_Blur(bool bModifier, bool bShift, CPDFSDK_Annot* pScreen);
@@ -135,7 +135,7 @@
   void OnLink_MouseUp(CPDFSDK_FormFillEnvironment* pFormFillEnv);
 
   void OnMenu_Exec(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                   const CFX_WideString& strTargetName);
+                   const WideString& strTargetName);
   void OnBatchExec(CPDFSDK_FormFillEnvironment* pFormFillEnv);
   void OnConsole_Exec();
   void OnExternal_Exec();
@@ -145,8 +145,8 @@
   void Destroy();
   bool IsValid();
 
-  CFX_WideString& Change();
-  CFX_WideString ChangeEx();
+  WideString& Change();
+  WideString ChangeEx();
   int CommitKey();
   bool FieldFull();
   bool KeyDown();
@@ -159,9 +159,9 @@
   bool Shift();
   Field* Source();
   Field* Target_Field();
-  CFX_WideString& Value();
+  WideString& Value();
   bool WillCommit();
-  CFX_WideString TargetName();
+  WideString TargetName();
 
   JS_EVENT_T EventType() { return m_eEventType; }
 
@@ -170,11 +170,11 @@
   JS_EVENT_T m_eEventType;
   bool m_bValid;
 
-  CFX_WideString m_strTargetName;
-  CFX_WideString m_strSourceName;
-  CFX_UnownedPtr<CFX_WideString> m_pWideStrChange;
-  CFX_WideString m_WideStrChangeDu;
-  CFX_WideString m_WideStrChangeEx;
+  WideString m_strTargetName;
+  WideString m_strSourceName;
+  CFX_UnownedPtr<WideString> m_pWideStrChange;
+  WideString m_WideStrChangeDu;
+  WideString m_WideStrChangeEx;
   int m_nCommitKey;
   bool m_bKeyDown;
   bool m_bModifier;
@@ -184,7 +184,7 @@
   int* m_pISelStart;
   int m_nSelStartDu;
   bool m_bWillCommit;
-  CFX_UnownedPtr<CFX_WideString> m_pValue;
+  CFX_UnownedPtr<WideString> m_pValue;
   bool m_bFieldFull;
   bool* m_pbRc;
   bool m_bRcDu;
diff --git a/fpdfsdk/javascript/JS_GlobalData.cpp b/fpdfsdk/javascript/JS_GlobalData.cpp
index 1420264..ce3ce68 100644
--- a/fpdfsdk/javascript/JS_GlobalData.cpp
+++ b/fpdfsdk/javascript/JS_GlobalData.cpp
@@ -32,7 +32,7 @@
     0xf8, 0x77, 0xd5, 0xa3};
 
 // Returns true if non-empty, setting sPropName
-bool TrimPropName(CFX_ByteString* sPropName) {
+bool TrimPropName(ByteString* sPropName) {
   sPropName->TrimLeft();
   sPropName->TrimRight();
   return sPropName->GetLength() != 0;
@@ -69,7 +69,7 @@
 }
 
 CJS_GlobalData::iterator CJS_GlobalData::FindGlobalVariable(
-    const CFX_ByteString& propname) {
+    const ByteString& propname) {
   for (auto it = m_arrayGlobalData.begin(); it != m_arrayGlobalData.end();
        ++it) {
     if ((*it)->data.sKey == propname)
@@ -79,7 +79,7 @@
 }
 
 CJS_GlobalData::const_iterator CJS_GlobalData::FindGlobalVariable(
-    const CFX_ByteString& propname) const {
+    const ByteString& propname) const {
   for (auto it = m_arrayGlobalData.begin(); it != m_arrayGlobalData.end();
        ++it) {
     if ((*it)->data.sKey == propname)
@@ -89,14 +89,14 @@
 }
 
 CJS_GlobalData_Element* CJS_GlobalData::GetGlobalVariable(
-    const CFX_ByteString& propname) {
+    const ByteString& propname) {
   auto iter = FindGlobalVariable(propname);
   return iter != m_arrayGlobalData.end() ? iter->get() : nullptr;
 }
 
-void CJS_GlobalData::SetGlobalVariableNumber(const CFX_ByteString& propname,
+void CJS_GlobalData::SetGlobalVariableNumber(const ByteString& propname,
                                              double dData) {
-  CFX_ByteString sPropName(propname);
+  ByteString sPropName(propname);
   if (!TrimPropName(&sPropName))
     return;
 
@@ -112,9 +112,9 @@
   m_arrayGlobalData.push_back(std::move(pNewData));
 }
 
-void CJS_GlobalData::SetGlobalVariableBoolean(const CFX_ByteString& propname,
+void CJS_GlobalData::SetGlobalVariableBoolean(const ByteString& propname,
                                               bool bData) {
-  CFX_ByteString sPropName(propname);
+  ByteString sPropName(propname);
   if (!TrimPropName(&sPropName))
     return;
 
@@ -130,9 +130,9 @@
   m_arrayGlobalData.push_back(std::move(pNewData));
 }
 
-void CJS_GlobalData::SetGlobalVariableString(const CFX_ByteString& propname,
-                                             const CFX_ByteString& sData) {
-  CFX_ByteString sPropName(propname);
+void CJS_GlobalData::SetGlobalVariableString(const ByteString& propname,
+                                             const ByteString& sData) {
+  ByteString sPropName(propname);
   if (!TrimPropName(&sPropName))
     return;
 
@@ -149,9 +149,9 @@
 }
 
 void CJS_GlobalData::SetGlobalVariableObject(
-    const CFX_ByteString& propname,
+    const ByteString& propname,
     const CJS_GlobalVariableArray& array) {
-  CFX_ByteString sPropName(propname);
+  ByteString sPropName(propname);
   if (!TrimPropName(&sPropName))
     return;
 
@@ -167,8 +167,8 @@
   m_arrayGlobalData.push_back(std::move(pNewData));
 }
 
-void CJS_GlobalData::SetGlobalVariableNull(const CFX_ByteString& propname) {
-  CFX_ByteString sPropName(propname);
+void CJS_GlobalData::SetGlobalVariableNull(const ByteString& propname) {
+  ByteString sPropName(propname);
   if (!TrimPropName(&sPropName))
     return;
 
@@ -182,9 +182,9 @@
   m_arrayGlobalData.push_back(std::move(pNewData));
 }
 
-bool CJS_GlobalData::SetGlobalVariablePersistent(const CFX_ByteString& propname,
+bool CJS_GlobalData::SetGlobalVariablePersistent(const ByteString& propname,
                                                  bool bPersistent) {
-  CFX_ByteString sPropName(propname);
+  ByteString sPropName(propname);
   if (!TrimPropName(&sPropName))
     return false;
 
@@ -196,8 +196,8 @@
   return true;
 }
 
-bool CJS_GlobalData::DeleteGlobalVariable(const CFX_ByteString& propname) {
-  CFX_ByteString sPropName(propname);
+bool CJS_GlobalData::DeleteGlobalVariable(const ByteString& propname) {
+  ByteString sPropName(propname);
   if (!TrimPropName(&sPropName))
     return false;
 
@@ -254,7 +254,7 @@
           if (p + dwNameLen > pBuffer + nLength)
             break;
 
-          CFX_ByteString sEntry = CFX_ByteString(p, dwNameLen);
+          ByteString sEntry = ByteString(p, dwNameLen);
           p += sizeof(char) * dwNameLen;
 
           JS_GlobalDataType wDataType =
@@ -291,7 +291,7 @@
               if (p + dwLength > pBuffer + nLength)
                 break;
 
-              SetGlobalVariableString(sEntry, CFX_ByteString(p, dwLength));
+              SetGlobalVariableString(sEntry, ByteString(p, dwLength));
               SetGlobalVariablePersistent(sEntry, true);
               p += sizeof(char) * dwLength;
             } break;
@@ -353,7 +353,7 @@
   // UnSupport.
 }
 
-void CJS_GlobalData::MakeByteString(const CFX_ByteString& name,
+void CJS_GlobalData::MakeByteString(const ByteString& name,
                                     CJS_KeyValue* pData,
                                     CFX_BinaryBuf& sData) {
   switch (pData->nType) {
diff --git a/fpdfsdk/javascript/JS_GlobalData.h b/fpdfsdk/javascript/JS_GlobalData.h
index 24e68c2..249bca6 100644
--- a/fpdfsdk/javascript/JS_GlobalData.h
+++ b/fpdfsdk/javascript/JS_GlobalData.h
@@ -29,16 +29,16 @@
   static CJS_GlobalData* GetRetainedInstance(CPDFSDK_FormFillEnvironment* pApp);
   void Release();
 
-  void SetGlobalVariableNumber(const CFX_ByteString& propname, double dData);
-  void SetGlobalVariableBoolean(const CFX_ByteString& propname, bool bData);
-  void SetGlobalVariableString(const CFX_ByteString& propname,
-                               const CFX_ByteString& sData);
-  void SetGlobalVariableObject(const CFX_ByteString& propname,
+  void SetGlobalVariableNumber(const ByteString& propname, double dData);
+  void SetGlobalVariableBoolean(const ByteString& propname, bool bData);
+  void SetGlobalVariableString(const ByteString& propname,
+                               const ByteString& sData);
+  void SetGlobalVariableObject(const ByteString& propname,
                                const CJS_GlobalVariableArray& array);
-  void SetGlobalVariableNull(const CFX_ByteString& propname);
-  bool SetGlobalVariablePersistent(const CFX_ByteString& propname,
+  void SetGlobalVariableNull(const ByteString& propname);
+  bool SetGlobalVariablePersistent(const ByteString& propname,
                                    bool bPersistent);
-  bool DeleteGlobalVariable(const CFX_ByteString& propname);
+  bool DeleteGlobalVariable(const ByteString& propname);
 
   int32_t GetSize() const;
   CJS_GlobalData_Element* GetAt(int index) const;
@@ -55,9 +55,9 @@
   void LoadGlobalPersistentVariables();
   void SaveGlobalPersisitentVariables();
 
-  CJS_GlobalData_Element* GetGlobalVariable(const CFX_ByteString& sPropname);
-  iterator FindGlobalVariable(const CFX_ByteString& sPropname);
-  const_iterator FindGlobalVariable(const CFX_ByteString& sPropname) const;
+  CJS_GlobalData_Element* GetGlobalVariable(const ByteString& sPropname);
+  iterator FindGlobalVariable(const ByteString& sPropname);
+  const_iterator FindGlobalVariable(const ByteString& sPropname) const;
 
   void LoadFileBuffer(const wchar_t* sFilePath,
                       uint8_t*& pBuffer,
@@ -65,13 +65,13 @@
   void WriteFileBuffer(const wchar_t* sFilePath,
                        const char* pBuffer,
                        int32_t nLength);
-  void MakeByteString(const CFX_ByteString& name,
+  void MakeByteString(const ByteString& name,
                       CJS_KeyValue* pData,
                       CFX_BinaryBuf& sData);
 
   size_t m_RefCount;
   std::vector<std::unique_ptr<CJS_GlobalData_Element>> m_arrayGlobalData;
-  CFX_WideString m_sFilePath;
+  WideString m_sFilePath;
 };
 
 #endif  // FPDFSDK_JAVASCRIPT_JS_GLOBALDATA_H_
diff --git a/fpdfsdk/javascript/JS_KeyValue.h b/fpdfsdk/javascript/JS_KeyValue.h
index 9fc7180..6366935 100644
--- a/fpdfsdk/javascript/JS_KeyValue.h
+++ b/fpdfsdk/javascript/JS_KeyValue.h
@@ -35,11 +35,11 @@
   CJS_KeyValue();
   ~CJS_KeyValue();
 
-  CFX_ByteString sKey;
+  ByteString sKey;
   JS_GlobalDataType nType;
   double dData;
   bool bData;
-  CFX_ByteString sData;
+  ByteString sData;
   CJS_GlobalVariableArray objData;
 };
 
diff --git a/fpdfsdk/javascript/JS_Runtime_Stub.cpp b/fpdfsdk/javascript/JS_Runtime_Stub.cpp
index 73a38fc..068031f 100644
--- a/fpdfsdk/javascript/JS_Runtime_Stub.cpp
+++ b/fpdfsdk/javascript/JS_Runtime_Stub.cpp
@@ -17,13 +17,13 @@
   ~CJS_EventContextStub() override {}
 
   // IJS_EventContext:
-  bool RunScript(const CFX_WideString& script, CFX_WideString* info) override {
+  bool RunScript(const WideString& script, WideString* info) override {
     return false;
   }
 
   void OnApp_Init() override {}
   void OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                  const CFX_WideString& strTargetName) override {}
+                  const WideString& strTargetName) override {}
   void OnDoc_WillPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv) override {}
   void OnDoc_DidPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv) override {}
   void OnDoc_WillSave(CPDFSDK_FormFillEnvironment* pFormFillEnv) override {}
@@ -48,37 +48,37 @@
   void OnField_Focus(bool bModifier,
                      bool bShift,
                      CPDF_FormField* pTarget,
-                     const CFX_WideString& Value) override {}
+                     const WideString& Value) override {}
   void OnField_Blur(bool bModifier,
                     bool bShift,
                     CPDF_FormField* pTarget,
-                    const CFX_WideString& Value) override {}
+                    const WideString& Value) override {}
   void OnField_Calculate(CPDF_FormField* pSource,
                          CPDF_FormField* pTarget,
-                         CFX_WideString& Value,
+                         WideString& Value,
                          bool& bRc) override {}
   void OnField_Format(CPDF_FormField* pTarget,
-                      CFX_WideString& Value,
+                      WideString& Value,
                       bool bWillCommit) override {}
-  void OnField_Keystroke(CFX_WideString& strChange,
-                         const CFX_WideString& strChangeEx,
+  void OnField_Keystroke(WideString& strChange,
+                         const WideString& strChangeEx,
                          bool KeyDown,
                          bool bModifier,
                          int& nSelEnd,
                          int& nSelStart,
                          bool bShift,
                          CPDF_FormField* pTarget,
-                         CFX_WideString& Value,
+                         WideString& Value,
                          bool bWillCommit,
                          bool bFieldFull,
                          bool& bRc) override {}
-  void OnField_Validate(CFX_WideString& strChange,
-                        const CFX_WideString& strChangeEx,
+  void OnField_Validate(WideString& strChange,
+                        const WideString& strChangeEx,
                         bool bKeyDown,
                         bool bModifier,
                         bool bShift,
                         CPDF_FormField* pTarget,
-                        CFX_WideString& Value,
+                        WideString& Value,
                         bool& bRc) override {}
   void OnScreen_Focus(bool bModifier,
                       bool bShift,
@@ -113,7 +113,7 @@
   void OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) override {}
   void OnLink_MouseUp(CPDFSDK_FormFillEnvironment* pFormFillEnv) override {}
   void OnMenu_Exec(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                   const CFX_WideString&) override {}
+                   const WideString&) override {}
   void OnBatchExec(CPDFSDK_FormFillEnvironment* pFormFillEnv) override {}
   void OnConsole_Exec() override {}
   void OnExternal_Exec() override {}
@@ -138,17 +138,16 @@
   }
 
 #ifdef PDF_ENABLE_XFA
-  bool GetValueByName(const CFX_ByteStringC&, CFXJSE_Value*) override {
+  bool GetValueByName(const ByteStringView&, CFXJSE_Value*) override {
     return false;
   }
 
-  bool SetValueByName(const CFX_ByteStringC&, CFXJSE_Value*) override {
+  bool SetValueByName(const ByteStringView&, CFXJSE_Value*) override {
     return false;
   }
 #endif  // PDF_ENABLE_XFA
 
-  int ExecuteScript(const CFX_WideString& script,
-                    CFX_WideString* info) override {
+  int ExecuteScript(const WideString& script, WideString* info) override {
     return 0;
   }
 
diff --git a/fpdfsdk/javascript/JS_Value.cpp b/fpdfsdk/javascript/JS_Value.cpp
index e52d7d1..1a27d22 100644
--- a/fpdfsdk/javascript/JS_Value.cpp
+++ b/fpdfsdk/javascript/JS_Value.cpp
@@ -200,7 +200,7 @@
     : m_pValue(pRuntime->NewString(pWstr)) {}
 
 CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const char* pStr)
-    : m_pValue(pRuntime->NewString(CFX_WideString::FromLocal(pStr).c_str())) {}
+    : m_pValue(pRuntime->NewString(WideString::FromLocal(pStr).c_str())) {}
 
 CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const CJS_Array& array)
     : m_pValue(array.ToV8Array(pRuntime)) {}
@@ -245,12 +245,12 @@
   return pRuntime->ToObject(m_pValue);
 }
 
-CFX_WideString CJS_Value::ToCFXWideString(CJS_Runtime* pRuntime) const {
+WideString CJS_Value::ToCFXWideString(CJS_Runtime* pRuntime) const {
   return pRuntime->ToWideString(m_pValue);
 }
 
-CFX_ByteString CJS_Value::ToCFXByteString(CJS_Runtime* pRuntime) const {
-  return CFX_ByteString::FromUnicode(ToCFXWideString(pRuntime));
+ByteString CJS_Value::ToCFXByteString(CJS_Runtime* pRuntime) const {
+  return ByteString::FromUnicode(ToCFXWideString(pRuntime));
 }
 
 v8::Local<v8::Value> CJS_Value::ToV8Value(CJS_Runtime* pRuntime) const {
@@ -268,7 +268,7 @@
 void CJS_Value::MaybeCoerceToNumber(CJS_Runtime* pRuntime) {
   bool bAllowNaN = false;
   if (GetType() == VT_string) {
-    CFX_ByteString bstr = ToCFXByteString(pRuntime);
+    ByteString bstr = ToCFXByteString(pRuntime);
     if (bstr.GetLength() == 0)
       return;
     if (bstr == "NaN")
@@ -398,12 +398,12 @@
   ppObj = m_Value.ToV8Object(m_pJSRuntime.Get());
 }
 
-void CJS_PropValue::operator<<(CFX_ByteString str) {
+void CJS_PropValue::operator<<(ByteString str) {
   ASSERT(!m_bIsSetting);
   m_Value = CJS_Value(m_pJSRuntime.Get(), str.c_str());
 }
 
-void CJS_PropValue::operator>>(CFX_ByteString& str) const {
+void CJS_PropValue::operator>>(ByteString& str) const {
   ASSERT(m_bIsSetting);
   str = m_Value.ToCFXByteString(m_pJSRuntime.Get());
 }
@@ -413,12 +413,12 @@
   m_Value = CJS_Value(m_pJSRuntime.Get(), str);
 }
 
-void CJS_PropValue::operator>>(CFX_WideString& wide_string) const {
+void CJS_PropValue::operator>>(WideString& wide_string) const {
   ASSERT(m_bIsSetting);
   wide_string = m_Value.ToCFXWideString(m_pJSRuntime.Get());
 }
 
-void CJS_PropValue::operator<<(CFX_WideString wide_string) {
+void CJS_PropValue::operator<<(WideString wide_string) {
   ASSERT(!m_bIsSetting);
   m_Value = CJS_Value(m_pJSRuntime.Get(), wide_string.c_str());
 }
@@ -588,9 +588,8 @@
   return !m_pDate.IsEmpty() ? pRuntime->ToDouble(m_pDate) : 0.0;
 }
 
-CFX_WideString CJS_Date::ToString(CJS_Runtime* pRuntime) const {
-  return !m_pDate.IsEmpty() ? pRuntime->ToWideString(m_pDate)
-                            : CFX_WideString();
+WideString CJS_Date::ToString(CJS_Runtime* pRuntime) const {
+  return !m_pDate.IsEmpty() ? pRuntime->ToWideString(m_pDate) : WideString();
 }
 
 v8::Local<v8::Date> CJS_Date::ToV8Date(CJS_Runtime* pRuntime) const {
@@ -634,7 +633,7 @@
   return (int)Mod(floor(dt / 1000), 60);
 }
 
-double JS_DateParse(const CFX_WideString& str) {
+double JS_DateParse(const WideString& str) {
   v8::Isolate* pIsolate = v8::Isolate::GetCurrent();
   v8::Isolate::Scope isolate_scope(pIsolate);
   v8::HandleScope scope(pIsolate);
@@ -659,7 +658,7 @@
       const int argc = 1;
       v8::Local<v8::Value> timeStr =
           CJS_Runtime::CurrentRuntimeFromIsolate(pIsolate)->NewString(
-              str.AsStringC());
+              str.AsStringView());
       v8::Local<v8::Value> argv[argc] = {timeStr};
       v = funC->Call(context, context->Global(), argc, argv).ToLocalChecked();
       if (v->IsNumber()) {
diff --git a/fpdfsdk/javascript/JS_Value.h b/fpdfsdk/javascript/JS_Value.h
index 2c0be35..1d430ee 100644
--- a/fpdfsdk/javascript/JS_Value.h
+++ b/fpdfsdk/javascript/JS_Value.h
@@ -59,8 +59,8 @@
   double ToDouble(CJS_Runtime* pRuntime) const;
   float ToFloat(CJS_Runtime* pRuntime) const;
   CJS_Object* ToCJSObject(CJS_Runtime* pRuntime) const;
-  CFX_WideString ToCFXWideString(CJS_Runtime* pRuntime) const;
-  CFX_ByteString ToCFXByteString(CJS_Runtime* pRuntime) const;
+  WideString ToCFXWideString(CJS_Runtime* pRuntime) const;
+  ByteString ToCFXByteString(CJS_Runtime* pRuntime) const;
   v8::Local<v8::Object> ToV8Object(CJS_Runtime* pRuntime) const;
   v8::Local<v8::Array> ToV8Array(CJS_Runtime* pRuntime) const;
   v8::Local<v8::Value> ToV8Value(CJS_Runtime* pRuntime) const;
@@ -102,10 +102,10 @@
   void operator>>(CJS_Object*& ppObj) const;
   void operator<<(CJS_Document* pJsDoc);
   void operator>>(CJS_Document*& ppJsDoc) const;
-  void operator<<(CFX_ByteString);
-  void operator>>(CFX_ByteString&) const;
-  void operator<<(CFX_WideString);
-  void operator>>(CFX_WideString&) const;
+  void operator<<(ByteString);
+  void operator>>(ByteString&) const;
+  void operator<<(WideString);
+  void operator>>(WideString&) const;
   void operator<<(const wchar_t* c_string);
   void operator<<(v8::Local<v8::Object>);
   void operator>>(v8::Local<v8::Object>&) const;
@@ -179,7 +179,7 @@
 
   v8::Local<v8::Date> ToV8Date(CJS_Runtime* pRuntime) const;
   double ToDouble(CJS_Runtime* pRuntime) const;
-  CFX_WideString ToString(CJS_Runtime* pRuntime) const;
+  WideString ToString(CJS_Runtime* pRuntime) const;
 
  protected:
   v8::Local<v8::Date> m_pDate;
@@ -192,7 +192,7 @@
 int JS_GetHourFromTime(double dt);
 int JS_GetMinFromTime(double dt);
 int JS_GetSecFromTime(double dt);
-double JS_DateParse(const CFX_WideString& str);
+double JS_DateParse(const WideString& str);
 double JS_MakeDay(int nYear, int nMonth, int nDay);
 double JS_MakeTime(int nHour, int nMin, int nSec, int nMs);
 double JS_MakeDate(double day, double time);
diff --git a/fpdfsdk/javascript/PublicMethods.cpp b/fpdfsdk/javascript/PublicMethods.cpp
index 970bbd2..ba42c3e 100644
--- a/fpdfsdk/javascript/PublicMethods.cpp
+++ b/fpdfsdk/javascript/PublicMethods.cpp
@@ -70,15 +70,15 @@
                                      L"July",    L"August",   L"September",
                                      L"October", L"November", L"December"};
 
-CFX_ByteString StrTrim(const CFX_ByteString& pStr) {
-  CFX_ByteString result(pStr);
+ByteString StrTrim(const ByteString& pStr) {
+  ByteString result(pStr);
   result.TrimLeft(' ');
   result.TrimRight(' ');
   return result;
 }
 
-CFX_WideString StrTrim(const CFX_WideString& pStr) {
-  CFX_WideString result(pStr);
+WideString StrTrim(const WideString& pStr) {
+  WideString result(pStr);
   result.TrimLeft(' ');
   result.TrimRight(' ');
   return result;
@@ -91,10 +91,10 @@
 }
 
 #if _FX_OS_ != _FX_ANDROID_
-CFX_ByteString CalculateString(double dValue,
-                               int iDec,
-                               int* iDec2,
-                               bool* bNegative) {
+ByteString CalculateString(double dValue,
+                           int iDec,
+                           int* iDec2,
+                           bool* bNegative) {
   *bNegative = dValue < 0;
   if (*bNegative)
     dValue = -dValue;
@@ -109,14 +109,14 @@
   size_t iDecimalPos = stringValue.find(".");
   *iDec2 = iDecimalPos == std::string::npos ? stringValue.size()
                                             : static_cast<int>(iDecimalPos);
-  return CFX_ByteString(stringValue.c_str());
+  return ByteString(stringValue.c_str());
 }
 #endif
 
 }  // namespace
 
-bool CJS_PublicMethods::IsNumber(const CFX_WideString& str) {
-  CFX_WideString sTrim = StrTrim(str);
+bool CJS_PublicMethods::IsNumber(const WideString& str) {
+  WideString sTrim = StrTrim(str);
   const wchar_t* pTrim = sTrim.c_str();
   const wchar_t* p = pTrim;
   bool bDot = false;
@@ -194,8 +194,8 @@
     val.ConvertToArray(pRuntime, StrArray);
     return StrArray;
   }
-  CFX_WideString wsStr = val.ToCFXWideString(pRuntime);
-  CFX_ByteString t = CFX_ByteString::FromUnicode(wsStr);
+  WideString wsStr = val.ToCFXWideString(pRuntime);
+  ByteString t = ByteString::FromUnicode(wsStr);
   const char* p = t.c_str();
 
   int ch = ',';
@@ -204,9 +204,8 @@
   while (*p) {
     const char* pTemp = strchr(p, ch);
     if (!pTemp) {
-      StrArray.SetElement(
-          pRuntime, nIndex,
-          CJS_Value(pRuntime, StrTrim(CFX_ByteString(p)).c_str()));
+      StrArray.SetElement(pRuntime, nIndex,
+                          CJS_Value(pRuntime, StrTrim(ByteString(p)).c_str()));
       break;
     }
 
@@ -214,9 +213,8 @@
     strncpy(pSub, p, pTemp - p);
     *(pSub + (pTemp - p)) = '\0';
 
-    StrArray.SetElement(
-        pRuntime, nIndex,
-        CJS_Value(pRuntime, StrTrim(CFX_ByteString(pSub)).c_str()));
+    StrArray.SetElement(pRuntime, nIndex,
+                        CJS_Value(pRuntime, StrTrim(ByteString(pSub)).c_str()));
     delete[] pSub;
 
     nIndex++;
@@ -225,7 +223,7 @@
   return StrArray;
 }
 
-int CJS_PublicMethods::ParseStringInteger(const CFX_WideString& str,
+int CJS_PublicMethods::ParseStringInteger(const WideString& str,
                                           FX_STRSIZE nStart,
                                           FX_STRSIZE& nSkip,
                                           FX_STRSIZE nMaxStep) {
@@ -248,10 +246,10 @@
   return nRet;
 }
 
-CFX_WideString CJS_PublicMethods::ParseStringString(const CFX_WideString& str,
-                                                    FX_STRSIZE nStart,
-                                                    FX_STRSIZE& nSkip) {
-  CFX_WideString swRet;
+WideString CJS_PublicMethods::ParseStringString(const WideString& str,
+                                                FX_STRSIZE nStart,
+                                                FX_STRSIZE& nSkip) {
+  WideString swRet;
   nSkip = 0;
   for (FX_STRSIZE i = nStart, sz = str.GetLength(); i < sz; i++) {
     wchar_t c = str[i];
@@ -265,7 +263,7 @@
   return swRet;
 }
 
-double CJS_PublicMethods::ParseNormalDate(const CFX_WideString& value,
+double CJS_PublicMethods::ParseNormalDate(const WideString& value,
                                           bool* bWrongFormat) {
   double dt = JS_GetDateTime();
 
@@ -340,13 +338,13 @@
     return dt;
   }
 
-  CFX_WideString swTemp;
+  WideString swTemp;
   swTemp.Format(L"%d/%d/%d %d:%d:%d", nMonth, nDay, nYear, nHour, nMin, nSec);
   return JS_DateParse(swTemp);
 }
 
-double CJS_PublicMethods::MakeRegularDate(const CFX_WideString& value,
-                                          const CFX_WideString& format,
+double CJS_PublicMethods::MakeRegularDate(const WideString& value,
+                                          const WideString& format,
                                           bool* bWrongFormat) {
   double dt = JS_GetDateTime();
 
@@ -485,7 +483,7 @@
         } else if (remaining == 2 || format[i + 3] != c) {
           switch (c) {
             case 'm': {
-              CFX_WideString sMonth = ParseStringString(value, j, nSkip);
+              WideString sMonth = ParseStringString(value, j, nSkip);
               bool bFind = false;
               for (int m = 0; m < 12; m++) {
                 if (sMonth.CompareNoCase(months[m]) == 0) {
@@ -520,11 +518,11 @@
             case 'm': {
               bool bFind = false;
 
-              CFX_WideString sMonth = ParseStringString(value, j, nSkip);
+              WideString sMonth = ParseStringString(value, j, nSkip);
               sMonth.MakeLower();
 
               for (int m = 0; m < 12; m++) {
-                CFX_WideString sFullMonths = fullmonths[m];
+                WideString sFullMonths = fullmonths[m];
                 sFullMonths.MakeLower();
 
                 if (sFullMonths.Contains(sMonth.c_str())) {
@@ -617,9 +615,9 @@
   return dRet;
 }
 
-CFX_WideString CJS_PublicMethods::MakeFormatDate(double dDate,
-                                                 const CFX_WideString& format) {
-  CFX_WideString sRet = L"", sPart = L"";
+WideString CJS_PublicMethods::MakeFormatDate(double dDate,
+                                             const WideString& format) {
+  WideString sRet = L"", sPart = L"";
 
   int nYear = JS_GetYearFromTime(dDate);
   int nMonth = JS_GetMonthFromTime(dDate) + 1;
@@ -753,7 +751,7 @@
 bool CJS_PublicMethods::AFNumber_Format(CJS_Runtime* pRuntime,
                                         const std::vector<CJS_Value>& params,
                                         CJS_Value& vRet,
-                                        CFX_WideString& sError) {
+                                        WideString& sError) {
 #if _FX_OS_ != _FX_ANDROID_
   if (params.size() != 6) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
@@ -765,8 +763,8 @@
   if (!pEvent->m_pValue)
     return false;
 
-  CFX_WideString& Value = pEvent->Value();
-  CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value));
+  WideString& Value = pEvent->Value();
+  ByteString strValue = StrTrim(ByteString::FromUnicode(Value));
   if (strValue.IsEmpty())
     return true;
 
@@ -774,7 +772,7 @@
   int iSepStyle = params[1].ToInt(pRuntime);
   int iNegStyle = params[2].ToInt(pRuntime);
   // params[3] is iCurrStyle, it's not used.
-  CFX_WideString wstrCurrency = params[4].ToCFXWideString(pRuntime);
+  WideString wstrCurrency = params[4].ToCFXWideString(pRuntime);
   bool bCurrencyPrepend = params[5].ToBool(pRuntime);
 
   if (iDec < 0)
@@ -825,7 +823,7 @@
   }
 
   // Processing currency string
-  Value = CFX_WideString::FromLocal(strValue.AsStringC());
+  Value = WideString::FromLocal(strValue.AsStringView());
 
   if (bCurrencyPrepend)
     Value = wstrCurrency + Value;
@@ -900,7 +898,7 @@
 bool CJS_PublicMethods::AFNumber_Keystroke(CJS_Runtime* pRuntime,
                                            const std::vector<CJS_Value>& params,
                                            CJS_Value& vRet,
-                                           CFX_WideString& sError) {
+                                           WideString& sError) {
   if (params.size() < 2)
     return false;
 
@@ -909,12 +907,12 @@
   if (!pEvent->m_pValue)
     return false;
 
-  CFX_WideString& val = pEvent->Value();
-  CFX_WideString& wstrChange = pEvent->Change();
-  CFX_WideString wstrValue = val;
+  WideString& val = pEvent->Value();
+  WideString& wstrChange = pEvent->Change();
+  WideString wstrValue = val;
 
   if (pEvent->WillCommit()) {
-    CFX_WideString swTemp = StrTrim(wstrValue);
+    WideString swTemp = StrTrim(wstrValue);
     if (swTemp.IsEmpty())
       return true;
 
@@ -927,7 +925,7 @@
     return true;  // it happens after the last keystroke and before validating,
   }
 
-  CFX_WideString wstrSelected;
+  WideString wstrSelected;
   if (pEvent->SelStart() != -1) {
     wstrSelected = wstrValue.Mid(pEvent->SelStart(),
                                  pEvent->SelEnd() - pEvent->SelStart());
@@ -981,8 +979,8 @@
     }
   }
 
-  CFX_WideString wprefix = wstrValue.Left(pEvent->SelStart());
-  CFX_WideString wpostfix;
+  WideString wprefix = wstrValue.Left(pEvent->SelStart());
+  WideString wpostfix;
   if (pEvent->SelEnd() >= 0 &&
       static_cast<FX_STRSIZE>(pEvent->SelEnd()) < wstrValue.GetLength())
     wpostfix = wstrValue.Right(wstrValue.GetLength() -
@@ -995,7 +993,7 @@
 bool CJS_PublicMethods::AFPercent_Format(CJS_Runtime* pRuntime,
                                          const std::vector<CJS_Value>& params,
                                          CJS_Value& vRet,
-                                         CFX_WideString& sError) {
+                                         WideString& sError) {
 #if _FX_OS_ != _FX_ANDROID_
   if (params.size() != 2) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
@@ -1007,8 +1005,8 @@
   if (!pEvent->m_pValue)
     return false;
 
-  CFX_WideString& Value = pEvent->Value();
-  CFX_ByteString strValue = StrTrim(CFX_ByteString::FromUnicode(Value));
+  WideString& Value = pEvent->Value();
+  ByteString strValue = StrTrim(ByteString::FromUnicode(Value));
   if (strValue.IsEmpty())
     return true;
 
@@ -1078,7 +1076,7 @@
   if (iNegative)
     strValue = "-" + strValue;
   strValue += "%";
-  Value = CFX_WideString::FromLocal(strValue.AsStringC());
+  Value = WideString::FromLocal(strValue.AsStringView());
 #endif
   return true;
 }
@@ -1087,7 +1085,7 @@
     CJS_Runtime* pRuntime,
     const std::vector<CJS_Value>& params,
     CJS_Value& vRet,
-    CFX_WideString& sError) {
+    WideString& sError) {
   return AFNumber_Keystroke(pRuntime, params, vRet, sError);
 }
 
@@ -1095,7 +1093,7 @@
 bool CJS_PublicMethods::AFDate_FormatEx(CJS_Runtime* pRuntime,
                                         const std::vector<CJS_Value>& params,
                                         CJS_Value& vRet,
-                                        CFX_WideString& sError) {
+                                        WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1106,12 +1104,12 @@
   if (!pEvent->m_pValue)
     return false;
 
-  CFX_WideString& val = pEvent->Value();
-  CFX_WideString strValue = val;
+  WideString& val = pEvent->Value();
+  WideString strValue = val;
   if (strValue.IsEmpty())
     return true;
 
-  CFX_WideString sFormat = params[0].ToCFXWideString(pRuntime);
+  WideString sFormat = params[0].ToCFXWideString(pRuntime);
   double dDate = 0.0f;
 
   if (strValue.Contains(L"GMT")) {
@@ -1123,7 +1121,7 @@
   }
 
   if (std::isnan(dDate)) {
-    CFX_WideString swMsg;
+    WideString swMsg;
     swMsg.Format(JSGetStringFromID(IDS_STRING_JSPARSEDATE).c_str(),
                  sFormat.c_str());
     AlertIfPossible(pContext, swMsg.c_str());
@@ -1134,9 +1132,9 @@
   return true;
 }
 
-double CJS_PublicMethods::MakeInterDate(const CFX_WideString& strValue) {
-  std::vector<CFX_WideString> wsArray;
-  CFX_WideString sTemp = L"";
+double CJS_PublicMethods::MakeInterDate(const WideString& strValue) {
+  std::vector<WideString> wsArray;
+  WideString sTemp = L"";
   for (const auto& c : strValue) {
     if (c == L' ' || c == L':') {
       wsArray.push_back(sTemp);
@@ -1176,11 +1174,11 @@
   else if (sTemp.Compare(L"Dec") == 0)
     nMonth = 12;
 
-  int nDay = FX_atof(wsArray[2].AsStringC());
-  int nHour = FX_atof(wsArray[3].AsStringC());
-  int nMin = FX_atof(wsArray[4].AsStringC());
-  int nSec = FX_atof(wsArray[5].AsStringC());
-  int nYear = FX_atof(wsArray[7].AsStringC());
+  int nDay = FX_atof(wsArray[2].AsStringView());
+  int nHour = FX_atof(wsArray[3].AsStringView());
+  int nMin = FX_atof(wsArray[4].AsStringView());
+  int nSec = FX_atof(wsArray[5].AsStringView());
+  int nYear = FX_atof(wsArray[7].AsStringView());
   double dRet = JS_MakeDate(JS_MakeDay(nYear, nMonth - 1, nDay),
                             JS_MakeTime(nHour, nMin, nSec, 0));
   if (std::isnan(dRet))
@@ -1193,7 +1191,7 @@
 bool CJS_PublicMethods::AFDate_KeystrokeEx(CJS_Runtime* pRuntime,
                                            const std::vector<CJS_Value>& params,
                                            CJS_Value& vRet,
-                                           CFX_WideString& sError) {
+                                           WideString& sError) {
   if (params.size() != 1) {
     sError = L"AFDate_KeystrokeEx's parameters' size r not correct";
     return false;
@@ -1205,15 +1203,15 @@
     if (!pEvent->m_pValue)
       return false;
 
-    CFX_WideString strValue = pEvent->Value();
+    WideString strValue = pEvent->Value();
     if (strValue.IsEmpty())
       return true;
 
-    CFX_WideString sFormat = params[0].ToCFXWideString(pRuntime);
+    WideString sFormat = params[0].ToCFXWideString(pRuntime);
     bool bWrongFormat = false;
     double dRet = MakeRegularDate(strValue, sFormat, &bWrongFormat);
     if (bWrongFormat || std::isnan(dRet)) {
-      CFX_WideString swMsg;
+      WideString swMsg;
       swMsg.Format(JSGetStringFromID(IDS_STRING_JSPARSEDATE).c_str(),
                    sFormat.c_str());
       AlertIfPossible(pContext, swMsg.c_str());
@@ -1227,7 +1225,7 @@
 bool CJS_PublicMethods::AFDate_Format(CJS_Runtime* pRuntime,
                                       const std::vector<CJS_Value>& params,
                                       CJS_Value& vRet,
-                                      CFX_WideString& sError) {
+                                      WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1261,7 +1259,7 @@
 bool CJS_PublicMethods::AFDate_Keystroke(CJS_Runtime* pRuntime,
                                          const std::vector<CJS_Value>& params,
                                          CJS_Value& vRet,
-                                         CFX_WideString& sError) {
+                                         WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1295,7 +1293,7 @@
 bool CJS_PublicMethods::AFTime_Format(CJS_Runtime* pRuntime,
                                       const std::vector<CJS_Value>& params,
                                       CJS_Value& vRet,
-                                      CFX_WideString& sError) {
+                                      WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1316,7 +1314,7 @@
 bool CJS_PublicMethods::AFTime_Keystroke(CJS_Runtime* pRuntime,
                                          const std::vector<CJS_Value>& params,
                                          CJS_Value& vRet,
-                                         CFX_WideString& sError) {
+                                         WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1337,14 +1335,14 @@
 bool CJS_PublicMethods::AFTime_FormatEx(CJS_Runtime* pRuntime,
                                         const std::vector<CJS_Value>& params,
                                         CJS_Value& vRet,
-                                        CFX_WideString& sError) {
+                                        WideString& sError) {
   return AFDate_FormatEx(pRuntime, params, vRet, sError);
 }
 
 bool CJS_PublicMethods::AFTime_KeystrokeEx(CJS_Runtime* pRuntime,
                                            const std::vector<CJS_Value>& params,
                                            CJS_Value& vRet,
-                                           CFX_WideString& sError) {
+                                           WideString& sError) {
   return AFDate_KeystrokeEx(pRuntime, params, vRet, sError);
 }
 
@@ -1352,7 +1350,7 @@
 bool CJS_PublicMethods::AFSpecial_Format(CJS_Runtime* pRuntime,
                                          const std::vector<CJS_Value>& params,
                                          CJS_Value& vRet,
-                                         CFX_WideString& sError) {
+                                         WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1363,8 +1361,8 @@
   if (!pEvent->m_pValue)
     return false;
 
-  CFX_WideString wsSource = pEvent->Value();
-  CFX_WideString wsFormat;
+  WideString wsSource = pEvent->Value();
+  WideString wsFormat;
   switch (params[0].ToInt(pRuntime)) {
     case 0:
       wsFormat = L"99999";
@@ -1392,7 +1390,7 @@
     CJS_Runtime* pRuntime,
     const std::vector<CJS_Value>& params,
     CJS_Value& vRet,
-    CFX_WideString& sError) {
+    WideString& sError) {
   if (params.size() < 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1403,8 +1401,8 @@
   if (!pEvent->m_pValue)
     return false;
 
-  CFX_WideString& valEvent = pEvent->Value();
-  CFX_WideString wstrMask = params[0].ToCFXWideString(pRuntime);
+  WideString& valEvent = pEvent->Value();
+  WideString wstrMask = params[0].ToCFXWideString(pRuntime);
   if (wstrMask.IsEmpty())
     return true;
 
@@ -1427,11 +1425,11 @@
     return true;
   }
 
-  CFX_WideString& wideChange = pEvent->Change();
+  WideString& wideChange = pEvent->Change();
   if (wideChange.IsEmpty())
     return true;
 
-  CFX_WideString wChange = wideChange;
+  WideString wChange = wideChange;
   FX_STRSIZE iIndexMask = pEvent->SelStart();
   FX_STRSIZE combined_len = valEvent.GetLength() + wChange.GetLength() +
                             pEvent->SelStart() - pEvent->SelEnd();
@@ -1475,7 +1473,7 @@
     CJS_Runtime* pRuntime,
     const std::vector<CJS_Value>& params,
     CJS_Value& vRet,
-    CFX_WideString& sError) {
+    WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1513,7 +1511,7 @@
 bool CJS_PublicMethods::AFMergeChange(CJS_Runtime* pRuntime,
                                       const std::vector<CJS_Value>& params,
                                       CJS_Value& vRet,
-                                      CFX_WideString& sError) {
+                                      WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1522,7 +1520,7 @@
   CJS_EventHandler* pEventHandler =
       pRuntime->GetCurrentEventContext()->GetEventHandler();
 
-  CFX_WideString swValue;
+  WideString swValue;
   if (pEventHandler->m_pValue)
     swValue = pEventHandler->Value();
 
@@ -1531,7 +1529,7 @@
     return true;
   }
 
-  CFX_WideString prefix, postfix;
+  WideString prefix, postfix;
 
   if (pEventHandler->SelStart() >= 0)
     prefix = swValue.Left(pEventHandler->SelStart());
@@ -1553,17 +1551,17 @@
 bool CJS_PublicMethods::AFParseDateEx(CJS_Runtime* pRuntime,
                                       const std::vector<CJS_Value>& params,
                                       CJS_Value& vRet,
-                                      CFX_WideString& sError) {
+                                      WideString& sError) {
   if (params.size() != 2) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
   }
 
-  CFX_WideString sValue = params[0].ToCFXWideString(pRuntime);
-  CFX_WideString sFormat = params[1].ToCFXWideString(pRuntime);
+  WideString sValue = params[0].ToCFXWideString(pRuntime);
+  WideString sFormat = params[1].ToCFXWideString(pRuntime);
   double dDate = MakeRegularDate(sValue, sFormat, nullptr);
   if (std::isnan(dDate)) {
-    CFX_WideString swMsg;
+    WideString swMsg;
     swMsg.Format(JSGetStringFromID(IDS_STRING_JSPARSEDATE).c_str(),
                  sFormat.c_str());
     AlertIfPossible(pRuntime->GetCurrentEventContext(), swMsg.c_str());
@@ -1577,7 +1575,7 @@
 bool CJS_PublicMethods::AFSimple(CJS_Runtime* pRuntime,
                                  const std::vector<CJS_Value>& params,
                                  CJS_Value& vRet,
-                                 CFX_WideString& sError) {
+                                 WideString& sError) {
   if (params.size() != 3) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1594,13 +1592,13 @@
 bool CJS_PublicMethods::AFMakeNumber(CJS_Runtime* pRuntime,
                                      const std::vector<CJS_Value>& params,
                                      CJS_Value& vRet,
-                                     CFX_WideString& sError) {
+                                     WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
   }
 
-  CFX_WideString ws = params[0].ToCFXWideString(pRuntime);
+  WideString ws = params[0].ToCFXWideString(pRuntime);
   ws.Replace(L",", L".");
   vRet = CJS_Value(pRuntime, ws.c_str());
   vRet.MaybeCoerceToNumber(pRuntime);
@@ -1612,7 +1610,7 @@
 bool CJS_PublicMethods::AFSimple_Calculate(CJS_Runtime* pRuntime,
                                            const std::vector<CJS_Value>& params,
                                            CJS_Value& vRet,
-                                           CFX_WideString& sError) {
+                                           WideString& sError) {
   if (params.size() != 2) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1628,7 +1626,7 @@
       pRuntime->GetFormFillEnv()->GetInterForm();
   CPDF_InterForm* pInterForm = pReaderInterForm->GetInterForm();
 
-  CFX_WideString sFunction = params[0].ToCFXWideString(pRuntime);
+  WideString sFunction = params[0].ToCFXWideString(pRuntime);
   double dValue = wcscmp(sFunction.c_str(), L"PRD") == 0 ? 1.0 : 0.0;
 
   CJS_Array FieldNameArray = AF_MakeArrayFromList(pRuntime, params1);
@@ -1637,7 +1635,7 @@
   for (int i = 0, isz = FieldNameArray.GetLength(pRuntime); i < isz; i++) {
     CJS_Value jsValue(pRuntime);
     FieldNameArray.GetElement(pRuntime, i, jsValue);
-    CFX_WideString wsFieldName = jsValue.ToCFXWideString(pRuntime);
+    WideString wsFieldName = jsValue.ToCFXWideString(pRuntime);
 
     for (int j = 0, jsz = pInterForm->CountFields(wsFieldName); j < jsz; j++) {
       if (CPDF_FormField* pFormField = pInterForm->GetField(j, wsFieldName)) {
@@ -1645,10 +1643,10 @@
         switch (pFormField->GetFieldType()) {
           case FIELDTYPE_TEXTFIELD:
           case FIELDTYPE_COMBOBOX: {
-            CFX_WideString trimmed = pFormField->GetValue();
+            WideString trimmed = pFormField->GetValue();
             trimmed.TrimRight();
             trimmed.TrimLeft();
-            dTemp = FX_atof(trimmed.AsStringC());
+            dTemp = FX_atof(trimmed.AsStringView());
           } break;
           case FIELDTYPE_PUSHBUTTON: {
             dTemp = 0.0;
@@ -1659,10 +1657,10 @@
             for (int c = 0, csz = pFormField->CountControls(); c < csz; c++) {
               if (CPDF_FormControl* pFormCtrl = pFormField->GetControl(c)) {
                 if (pFormCtrl->IsChecked()) {
-                  CFX_WideString trimmed = pFormCtrl->GetExportValue();
+                  WideString trimmed = pFormCtrl->GetExportValue();
                   trimmed.TrimRight();
                   trimmed.TrimLeft();
-                  dTemp = FX_atof(trimmed.AsStringC());
+                  dTemp = FX_atof(trimmed.AsStringView());
                   break;
                 }
               }
@@ -1670,10 +1668,10 @@
           } break;
           case FIELDTYPE_LISTBOX: {
             if (pFormField->CountSelectedItems() <= 1) {
-              CFX_WideString trimmed = pFormField->GetValue();
+              WideString trimmed = pFormField->GetValue();
               trimmed.TrimRight();
               trimmed.TrimLeft();
-              dTemp = FX_atof(trimmed.AsStringC());
+              dTemp = FX_atof(trimmed.AsStringView());
             }
           } break;
           default:
@@ -1711,7 +1709,7 @@
 bool CJS_PublicMethods::AFRange_Validate(CJS_Runtime* pRuntime,
                                          const std::vector<CJS_Value>& params,
                                          CJS_Value& vRet,
-                                         CFX_WideString& sError) {
+                                         WideString& sError) {
   if (params.size() != 4) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -1724,13 +1722,12 @@
   if (pEvent->Value().IsEmpty())
     return true;
 
-  double dEentValue =
-      atof(CFX_ByteString::FromUnicode(pEvent->Value()).c_str());
+  double dEentValue = atof(ByteString::FromUnicode(pEvent->Value()).c_str());
   bool bGreaterThan = params[0].ToBool(pRuntime);
   double dGreaterThan = params[1].ToDouble(pRuntime);
   bool bLessThan = params[2].ToBool(pRuntime);
   double dLessThan = params[3].ToDouble(pRuntime);
-  CFX_WideString swMsg;
+  WideString swMsg;
 
   if (bGreaterThan && bLessThan) {
     if (dEentValue < dGreaterThan || dEentValue > dLessThan)
@@ -1757,17 +1754,17 @@
 bool CJS_PublicMethods::AFExtractNums(CJS_Runtime* pRuntime,
                                       const std::vector<CJS_Value>& params,
                                       CJS_Value& vRet,
-                                      CFX_WideString& sError) {
+                                      WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
   }
 
-  CFX_WideString str = params[0].ToCFXWideString(pRuntime);
+  WideString str = params[0].ToCFXWideString(pRuntime);
   if (str.GetLength() > 0 && (str[0] == L'.' || str[0] == L','))
     str = L"0" + str;
 
-  CFX_WideString sPart;
+  WideString sPart;
   CJS_Array nums;
   int nIndex = 0;
   for (const auto& wc : str) {
diff --git a/fpdfsdk/javascript/PublicMethods.h b/fpdfsdk/javascript/PublicMethods.h
index c373f51..365df3e 100644
--- a/fpdfsdk/javascript/PublicMethods.h
+++ b/fpdfsdk/javascript/PublicMethods.h
@@ -21,91 +21,91 @@
   static bool AFNumber_Format(CJS_Runtime* pRuntime,
                               const std::vector<CJS_Value>& params,
                               CJS_Value& vRet,
-                              CFX_WideString& sError);
+                              WideString& sError);
   static bool AFNumber_Keystroke(CJS_Runtime* pRuntime,
                                  const std::vector<CJS_Value>& params,
                                  CJS_Value& vRet,
-                                 CFX_WideString& sError);
+                                 WideString& sError);
   static bool AFPercent_Format(CJS_Runtime* pRuntime,
                                const std::vector<CJS_Value>& params,
                                CJS_Value& vRet,
-                               CFX_WideString& sError);
+                               WideString& sError);
   static bool AFPercent_Keystroke(CJS_Runtime* pRuntime,
                                   const std::vector<CJS_Value>& params,
                                   CJS_Value& vRet,
-                                  CFX_WideString& sError);
+                                  WideString& sError);
   static bool AFDate_FormatEx(CJS_Runtime* pRuntime,
                               const std::vector<CJS_Value>& params,
                               CJS_Value& vRet,
-                              CFX_WideString& sError);
+                              WideString& sError);
   static bool AFDate_KeystrokeEx(CJS_Runtime* pRuntime,
                                  const std::vector<CJS_Value>& params,
                                  CJS_Value& vRet,
-                                 CFX_WideString& sError);
+                                 WideString& sError);
   static bool AFDate_Format(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError);
+                            WideString& sError);
   static bool AFDate_Keystroke(CJS_Runtime* pRuntime,
                                const std::vector<CJS_Value>& params,
                                CJS_Value& vRet,
-                               CFX_WideString& sError);
+                               WideString& sError);
   static bool AFTime_FormatEx(CJS_Runtime* pRuntime,
                               const std::vector<CJS_Value>& params,
                               CJS_Value& vRet,
-                              CFX_WideString& sError);  //
+                              WideString& sError);  //
   static bool AFTime_KeystrokeEx(CJS_Runtime* pRuntime,
                                  const std::vector<CJS_Value>& params,
                                  CJS_Value& vRet,
-                                 CFX_WideString& sError);
+                                 WideString& sError);
   static bool AFTime_Format(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError);
+                            WideString& sError);
   static bool AFTime_Keystroke(CJS_Runtime* pRuntime,
                                const std::vector<CJS_Value>& params,
                                CJS_Value& vRet,
-                               CFX_WideString& sError);
+                               WideString& sError);
   static bool AFSpecial_Format(CJS_Runtime* pRuntime,
                                const std::vector<CJS_Value>& params,
                                CJS_Value& vRet,
-                               CFX_WideString& sError);
+                               WideString& sError);
   static bool AFSpecial_Keystroke(CJS_Runtime* pRuntime,
                                   const std::vector<CJS_Value>& params,
                                   CJS_Value& vRet,
-                                  CFX_WideString& sError);
+                                  WideString& sError);
   static bool AFSpecial_KeystrokeEx(CJS_Runtime* pRuntime,
                                     const std::vector<CJS_Value>& params,
                                     CJS_Value& vRet,
-                                    CFX_WideString& sError);  //
+                                    WideString& sError);  //
   static bool AFSimple(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError);
+                       WideString& sError);
   static bool AFMakeNumber(CJS_Runtime* pRuntime,
                            const std::vector<CJS_Value>& params,
                            CJS_Value& vRet,
-                           CFX_WideString& sError);
+                           WideString& sError);
   static bool AFSimple_Calculate(CJS_Runtime* pRuntime,
                                  const std::vector<CJS_Value>& params,
                                  CJS_Value& vRet,
-                                 CFX_WideString& sError);
+                                 WideString& sError);
   static bool AFRange_Validate(CJS_Runtime* pRuntime,
                                const std::vector<CJS_Value>& params,
                                CJS_Value& vRet,
-                               CFX_WideString& sError);
+                               WideString& sError);
   static bool AFMergeChange(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError);
+                            WideString& sError);
   static bool AFParseDateEx(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError);
+                            WideString& sError);
   static bool AFExtractNums(CJS_Runtime* pRuntime,
                             const std::vector<CJS_Value>& params,
                             CJS_Value& vRet,
-                            CFX_WideString& sError);
+                            WideString& sError);
 
   JS_STATIC_GLOBAL_FUN(AFNumber_Format);
   JS_STATIC_GLOBAL_FUN(AFNumber_Keystroke);
@@ -132,23 +132,21 @@
 
   JS_STATIC_DECLARE_GLOBAL_FUN();
 
-  static int ParseStringInteger(const CFX_WideString& string,
+  static int ParseStringInteger(const WideString& string,
                                 FX_STRSIZE nStart,
                                 FX_STRSIZE& nSkip,
                                 FX_STRSIZE nMaxStep);
-  static CFX_WideString ParseStringString(const CFX_WideString& string,
-                                          FX_STRSIZE nStart,
-                                          FX_STRSIZE& nSkip);
-  static double MakeRegularDate(const CFX_WideString& value,
-                                const CFX_WideString& format,
+  static WideString ParseStringString(const WideString& string,
+                                      FX_STRSIZE nStart,
+                                      FX_STRSIZE& nSkip);
+  static double MakeRegularDate(const WideString& value,
+                                const WideString& format,
                                 bool* bWrongFormat);
-  static CFX_WideString MakeFormatDate(double dDate,
-                                       const CFX_WideString& format);
-  static double ParseNormalDate(const CFX_WideString& value,
-                                bool* bWrongFormat);
-  static double MakeInterDate(const CFX_WideString& value);
+  static WideString MakeFormatDate(double dDate, const WideString& format);
+  static double ParseNormalDate(const WideString& value, bool* bWrongFormat);
+  static double MakeInterDate(const WideString& value);
 
-  static bool IsNumber(const CFX_WideString& str);
+  static bool IsNumber(const WideString& str);
 
   static bool maskSatisfied(wchar_t c_Change, wchar_t c_Mask);
   static bool isReservedMaskChar(wchar_t ch);
diff --git a/fpdfsdk/javascript/app.cpp b/fpdfsdk/javascript/app.cpp
index 246db66..3c0f9af 100644
--- a/fpdfsdk/javascript/app.cpp
+++ b/fpdfsdk/javascript/app.cpp
@@ -28,7 +28,7 @@
               CPDFSDK_FormFillEnvironment* pFormFillEnv,
               CJS_Runtime* pRuntime,
               int nType,
-              const CFX_WideString& script,
+              const WideString& script,
               uint32_t dwElapse,
               uint32_t dwTimeOut);
   ~GlobalTimer();
@@ -40,7 +40,7 @@
   uint32_t GetTimeOut() const { return m_dwTimeOut; }
   int GetTimerID() const { return m_nTimerID; }
   CJS_Runtime* GetRuntime() const { return m_pRuntime.Get(); }
-  CFX_WideString GetJScript() const { return m_swJScript; }
+  WideString GetJScript() const { return m_swJScript; }
 
  private:
   using TimerMap = std::map<uint32_t, GlobalTimer*>;
@@ -53,7 +53,7 @@
   // data
   const int m_nType;  // 0:Interval; 1:TimeOut
   const uint32_t m_dwTimeOut;
-  const CFX_WideString m_swJScript;
+  const WideString m_swJScript;
   CJS_Runtime::ObservedPtr m_pRuntime;
   CPDFSDK_FormFillEnvironment::ObservedPtr m_pFormFillEnv;
 };
@@ -62,7 +62,7 @@
                          CPDFSDK_FormFillEnvironment* pFormFillEnv,
                          CJS_Runtime* pRuntime,
                          int nType,
-                         const CFX_WideString& script,
+                         const WideString& script,
                          uint32_t dwElapse,
                          uint32_t dwTimeOut)
     : m_nTimerID(0),
@@ -209,7 +209,7 @@
 
 bool app::activeDocs(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -230,7 +230,7 @@
 
 bool app::calculate(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   if (vp.IsSetting()) {
     bool bVP;
     vp >> bVP;
@@ -244,7 +244,7 @@
 
 bool app::formsVersion(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   if (vp.IsGetting()) {
     vp << JS_NUM_FORMSVERSION;
     return true;
@@ -255,7 +255,7 @@
 
 bool app::viewerType(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (vp.IsGetting()) {
     vp << JS_STR_VIEWERTYPE;
     return true;
@@ -266,7 +266,7 @@
 
 bool app::viewerVariation(CJS_Runtime* pRuntime,
                           CJS_PropValue& vp,
-                          CFX_WideString& sError) {
+                          WideString& sError) {
   if (vp.IsGetting()) {
     vp << JS_STR_VIEWERVARIATION;
     return true;
@@ -277,7 +277,7 @@
 
 bool app::viewerVersion(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   if (!vp.IsGetting())
     return false;
 #ifdef PDF_ENABLE_XFA
@@ -294,14 +294,14 @@
 
 bool app::platform(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   if (!vp.IsGetting())
     return false;
 #ifdef PDF_ENABLE_XFA
   CPDFSDK_FormFillEnvironment* pFormFillEnv = pRuntime->GetFormFillEnv();
   if (!pFormFillEnv)
     return false;
-  CFX_WideString platfrom = pFormFillEnv->GetPlatform();
+  WideString platfrom = pFormFillEnv->GetPlatform();
   if (!platfrom.IsEmpty()) {
     vp << platfrom;
     return true;
@@ -313,14 +313,14 @@
 
 bool app::language(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   if (!vp.IsGetting())
     return false;
 #ifdef PDF_ENABLE_XFA
   CPDFSDK_FormFillEnvironment* pFormFillEnv = pRuntime->GetFormFillEnv();
   if (!pFormFillEnv)
     return false;
-  CFX_WideString language = pFormFillEnv->GetLanguage();
+  WideString language = pFormFillEnv->GetLanguage();
   if (!language.IsEmpty()) {
     vp << language;
     return true;
@@ -337,7 +337,7 @@
 bool app::newFDF(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError) {
+                 WideString& sError) {
   return true;
 }
 // opens a specified pdf document and returns its document object
@@ -350,14 +350,14 @@
 bool app::openFDF(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   return true;
 }
 
 bool app::alert(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError) {
+                WideString& sError) {
   std::vector<CJS_Value> newParams = JS_ExpandKeywordParams(
       pRuntime, params, 4, L"cMsg", L"nIcon", L"nType", L"cTitle");
 
@@ -372,7 +372,7 @@
     return true;
   }
 
-  CFX_WideString swMsg;
+  WideString swMsg;
   if (newParams[0].GetType() == CJS_Value::VT_object) {
     CJS_Array carray;
     if (newParams[0].ConvertToArray(pRuntime, carray)) {
@@ -400,7 +400,7 @@
   if (newParams[2].GetType() != CJS_Value::VT_unknown)
     iType = newParams[2].ToInt(pRuntime);
 
-  CFX_WideString swTitle;
+  WideString swTitle;
   if (newParams[3].GetType() != CJS_Value::VT_unknown)
     swTitle = newParams[3].ToCFXWideString(pRuntime);
   else
@@ -418,7 +418,7 @@
 bool app::beep(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError) {
+               WideString& sError) {
   if (params.size() == 1) {
     pRuntime->GetFormFillEnv()->JS_appBeep(params[0].ToInt(pRuntime));
     return true;
@@ -431,31 +431,31 @@
 bool app::findComponent(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   return true;
 }
 
 bool app::popUpMenuEx(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return false;
 }
 
-bool app::fs(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError) {
+bool app::fs(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   return false;
 }
 
 bool app::setInterval(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   if (params.size() > 2 || params.size() == 0) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
   }
 
-  CFX_WideString script =
+  WideString script =
       params.size() > 0 ? params[0].ToCFXWideString(pRuntime) : L"";
   if (script.IsEmpty()) {
     sError = JSGetStringFromID(IDS_STRING_JSAFNUMBER_KEYSTROKE);
@@ -485,13 +485,13 @@
 bool app::setTimeOut(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (params.size() > 2 || params.size() == 0) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
   }
 
-  CFX_WideString script = params[0].ToCFXWideString(pRuntime);
+  WideString script = params[0].ToCFXWideString(pRuntime);
   if (script.IsEmpty()) {
     sError = JSGetStringFromID(IDS_STRING_JSAFNUMBER_KEYSTROKE);
     return true;
@@ -519,7 +519,7 @@
 bool app::clearTimeOut(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -532,7 +532,7 @@
 bool app::clearInterval(CJS_Runtime* pRuntime,
                         const std::vector<CJS_Value>& params,
                         CJS_Value& vRet,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   if (params.size() != 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -564,7 +564,7 @@
 bool app::execMenuItem(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return false;
 }
 
@@ -578,11 +578,11 @@
   m_Timers.erase(pdfium::FakeUniquePtr<GlobalTimer>(pTimer));
 }
 
-void app::RunJsScript(CJS_Runtime* pRuntime, const CFX_WideString& wsScript) {
+void app::RunJsScript(CJS_Runtime* pRuntime, const WideString& wsScript) {
   if (!pRuntime->IsBlocking()) {
     IJS_EventContext* pContext = pRuntime->NewEventContext();
     pContext->OnExternal_Exec();
-    CFX_WideString wtInfo;
+    WideString wtInfo;
     pContext->RunScript(wsScript, &wtInfo);
     pRuntime->ReleaseEventContext(pContext);
   }
@@ -591,7 +591,7 @@
 bool app::goBack(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError) {
+                 WideString& sError) {
   // Not supported.
   return true;
 }
@@ -599,7 +599,7 @@
 bool app::goForward(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   // Not supported.
   return true;
 }
@@ -607,7 +607,7 @@
 bool app::mailMsg(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   std::vector<CJS_Value> newParams =
       JS_ExpandKeywordParams(pRuntime, params, 6, L"bUI", L"cTo", L"cCc",
                              L"cBcc", L"cSubject", L"cMsg");
@@ -618,7 +618,7 @@
   }
   bool bUI = newParams[0].ToBool(pRuntime);
 
-  CFX_WideString cTo;
+  WideString cTo;
   if (newParams[1].GetType() != CJS_Value::VT_unknown) {
     cTo = newParams[1].ToCFXWideString(pRuntime);
   } else {
@@ -629,19 +629,19 @@
     }
   }
 
-  CFX_WideString cCc;
+  WideString cCc;
   if (newParams[2].GetType() != CJS_Value::VT_unknown)
     cCc = newParams[2].ToCFXWideString(pRuntime);
 
-  CFX_WideString cBcc;
+  WideString cBcc;
   if (newParams[3].GetType() != CJS_Value::VT_unknown)
     cBcc = newParams[3].ToCFXWideString(pRuntime);
 
-  CFX_WideString cSubject;
+  WideString cSubject;
   if (newParams[4].GetType() != CJS_Value::VT_unknown)
     cSubject = newParams[4].ToCFXWideString(pRuntime);
 
-  CFX_WideString cMsg;
+  WideString cMsg;
   if (newParams[5].GetType() != CJS_Value::VT_unknown)
     cMsg = newParams[5].ToCFXWideString(pRuntime);
 
@@ -656,14 +656,14 @@
 bool app::launchURL(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
 
 bool app::runtimeHighlight(CJS_Runtime* pRuntime,
                            CJS_PropValue& vp,
-                           CFX_WideString& sError) {
+                           WideString& sError) {
   if (vp.IsSetting()) {
     vp >> m_bRuntimeHighLight;
   } else {
@@ -674,27 +674,27 @@
 
 bool app::fullscreen(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   return false;
 }
 
 bool app::popUpMenu(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   return false;
 }
 
 bool app::browseForDoc(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
 
-CFX_WideString app::SysPathToPDFPath(const CFX_WideString& sOldPath) {
-  CFX_WideString sRet = L"/";
+WideString app::SysPathToPDFPath(const WideString& sOldPath) {
+  WideString sRet = L"/";
   for (const wchar_t& c : sOldPath) {
     if (c != L':')
       sRet += (c == L'\\') ? L'/' : c;
@@ -705,21 +705,21 @@
 bool app::newDoc(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError) {
+                 WideString& sError) {
   return false;
 }
 
 bool app::openDoc(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   return false;
 }
 
 bool app::response(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   std::vector<CJS_Value> newParams =
       JS_ExpandKeywordParams(pRuntime, params, 5, L"cQuestion", L"cTitle",
                              L"cDefault", L"bPassword", L"cLabel");
@@ -728,13 +728,13 @@
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
   }
-  CFX_WideString swQuestion = newParams[0].ToCFXWideString(pRuntime);
+  WideString swQuestion = newParams[0].ToCFXWideString(pRuntime);
 
-  CFX_WideString swTitle = L"PDF";
+  WideString swTitle = L"PDF";
   if (newParams[1].GetType() != CJS_Value::VT_unknown)
     swTitle = newParams[1].ToCFXWideString(pRuntime);
 
-  CFX_WideString swDefault;
+  WideString swDefault;
   if (newParams[2].GetType() != CJS_Value::VT_unknown)
     swDefault = newParams[2].ToCFXWideString(pRuntime);
 
@@ -742,7 +742,7 @@
   if (newParams[3].GetType() != CJS_Value::VT_unknown)
     bPassword = newParams[3].ToBool(pRuntime);
 
-  CFX_WideString swLabel;
+  WideString swLabel;
   if (newParams[4].GetType() != CJS_Value::VT_unknown)
     swLabel = newParams[4].ToCFXWideString(pRuntime);
 
@@ -757,7 +757,7 @@
     return false;
   }
 
-  vRet = CJS_Value(pRuntime, CFX_WideString::FromUTF16LE(
+  vRet = CJS_Value(pRuntime, WideString::FromUTF16LE(
                                  reinterpret_cast<uint16_t*>(pBuff.data()),
                                  nLengthBytes / sizeof(uint16_t))
                                  .c_str());
@@ -765,15 +765,13 @@
   return true;
 }
 
-bool app::media(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError) {
+bool app::media(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   return false;
 }
 
 bool app::execDialog(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   return true;
 }
diff --git a/fpdfsdk/javascript/app.h b/fpdfsdk/javascript/app.h
index 0a2cfdb..e77c8cd 100644
--- a/fpdfsdk/javascript/app.h
+++ b/fpdfsdk/javascript/app.h
@@ -41,132 +41,120 @@
   explicit app(CJS_Object* pJSObject);
   ~app() override;
 
-  bool activeDocs(CJS_Runtime* pRuntime,
-                  CJS_PropValue& vp,
-                  CFX_WideString& sError);
-  bool calculate(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
+  bool activeDocs(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool calculate(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool formsVersion(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
-  bool fs(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool fullscreen(CJS_Runtime* pRuntime,
-                  CJS_PropValue& vp,
-                  CFX_WideString& sError);
-  bool language(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool media(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool platform(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
+                    WideString& sError);
+  bool fs(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool fullscreen(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool language(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool media(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool platform(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool runtimeHighlight(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError);
-  bool viewerType(CJS_Runtime* pRuntime,
-                  CJS_PropValue& vp,
-                  CFX_WideString& sError);
+                        WideString& sError);
+  bool viewerType(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool viewerVariation(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError);
+                       WideString& sError);
   bool viewerVersion(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError);
+                     WideString& sError);
 
   bool alert(CJS_Runtime* pRuntime,
              const std::vector<CJS_Value>& params,
              CJS_Value& vRet,
-             CFX_WideString& sError);
+             WideString& sError);
   bool beep(CJS_Runtime* pRuntime,
             const std::vector<CJS_Value>& params,
             CJS_Value& vRet,
-            CFX_WideString& sError);
+            WideString& sError);
   bool browseForDoc(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool clearInterval(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool clearTimeOut(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool execDialog(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError);
+                  WideString& sError);
   bool execMenuItem(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError);
+                    WideString& sError);
   bool findComponent(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool goBack(CJS_Runtime* pRuntime,
               const std::vector<CJS_Value>& params,
               CJS_Value& vRet,
-              CFX_WideString& sError);
+              WideString& sError);
   bool goForward(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError);
+                 WideString& sError);
   bool launchURL(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError);
+                 WideString& sError);
   bool mailMsg(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool newFDF(CJS_Runtime* pRuntime,
               const std::vector<CJS_Value>& params,
               CJS_Value& vRet,
-              CFX_WideString& sError);
+              WideString& sError);
   bool newDoc(CJS_Runtime* pRuntime,
               const std::vector<CJS_Value>& params,
               CJS_Value& vRet,
-              CFX_WideString& sError);
+              WideString& sError);
   bool openDoc(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool openFDF(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool popUpMenuEx(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool popUpMenu(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError);
+                 WideString& sError);
   bool response(CJS_Runtime* pRuntime,
                 const std::vector<CJS_Value>& params,
                 CJS_Value& vRet,
-                CFX_WideString& sError);
+                WideString& sError);
   bool setInterval(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError);
+                   WideString& sError);
   bool setTimeOut(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError);
+                  WideString& sError);
 
   void TimerProc(GlobalTimer* pTimer);
   void CancelProc(GlobalTimer* pTimer);
 
-  static CFX_WideString SysPathToPDFPath(const CFX_WideString& sOldPath);
+  static WideString SysPathToPDFPath(const WideString& sOldPath);
 
  private:
   // CJS_EmbedObj
-  void RunJsScript(CJS_Runtime* pRuntime, const CFX_WideString& wsScript);
+  void RunJsScript(CJS_Runtime* pRuntime, const WideString& wsScript);
 
   void ClearTimerCommon(CJS_Runtime* pRuntime, const CJS_Value& param);
 
diff --git a/fpdfsdk/javascript/cjs_event_context.cpp b/fpdfsdk/javascript/cjs_event_context.cpp
index 9537ac9..b820bc3 100644
--- a/fpdfsdk/javascript/cjs_event_context.cpp
+++ b/fpdfsdk/javascript/cjs_event_context.cpp
@@ -24,8 +24,7 @@
   return m_pRuntime->GetFormFillEnv();
 }
 
-bool CJS_EventContext::RunScript(const CFX_WideString& script,
-                                 CFX_WideString* info) {
+bool CJS_EventContext::RunScript(const WideString& script, WideString* info) {
   v8::Isolate::Scope isolate_scope(m_pRuntime->GetIsolate());
   v8::HandleScope handle_scope(m_pRuntime->GetIsolate());
   v8::Local<v8::Context> context = m_pRuntime->NewLocalContext();
@@ -47,7 +46,7 @@
     return false;
   }
 
-  CFX_WideString sErrorMessage;
+  WideString sErrorMessage;
   int nRet = 0;
   if (script.GetLength() > 0)
     nRet = m_pRuntime->ExecuteScript(script.c_str(), &sErrorMessage);
@@ -67,7 +66,7 @@
 }
 
 void CJS_EventContext::OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                  const CFX_WideString& strTargetName) {
+                                  const WideString& strTargetName) {
   m_pEventHandler->OnDoc_Open(pFormFillEnv, strTargetName);
 }
 
@@ -141,39 +140,39 @@
 void CJS_EventContext::OnField_Focus(bool bModifier,
                                      bool bShift,
                                      CPDF_FormField* pTarget,
-                                     const CFX_WideString& Value) {
+                                     const WideString& Value) {
   m_pEventHandler->OnField_Focus(bModifier, bShift, pTarget, Value);
 }
 
 void CJS_EventContext::OnField_Blur(bool bModifier,
                                     bool bShift,
                                     CPDF_FormField* pTarget,
-                                    const CFX_WideString& Value) {
+                                    const WideString& Value) {
   m_pEventHandler->OnField_Blur(bModifier, bShift, pTarget, Value);
 }
 
 void CJS_EventContext::OnField_Calculate(CPDF_FormField* pSource,
                                          CPDF_FormField* pTarget,
-                                         CFX_WideString& Value,
+                                         WideString& Value,
                                          bool& bRc) {
   m_pEventHandler->OnField_Calculate(pSource, pTarget, Value, bRc);
 }
 
 void CJS_EventContext::OnField_Format(CPDF_FormField* pTarget,
-                                      CFX_WideString& Value,
+                                      WideString& Value,
                                       bool bWillCommit) {
   m_pEventHandler->OnField_Format(pTarget, Value, bWillCommit);
 }
 
-void CJS_EventContext::OnField_Keystroke(CFX_WideString& strChange,
-                                         const CFX_WideString& strChangeEx,
+void CJS_EventContext::OnField_Keystroke(WideString& strChange,
+                                         const WideString& strChangeEx,
                                          bool bKeyDown,
                                          bool bModifier,
                                          int& nSelEnd,
                                          int& nSelStart,
                                          bool bShift,
                                          CPDF_FormField* pTarget,
-                                         CFX_WideString& Value,
+                                         WideString& Value,
                                          bool bWillCommit,
                                          bool bFieldFull,
                                          bool& bRc) {
@@ -182,13 +181,13 @@
       pTarget, Value, bWillCommit, bFieldFull, bRc);
 }
 
-void CJS_EventContext::OnField_Validate(CFX_WideString& strChange,
-                                        const CFX_WideString& strChangeEx,
+void CJS_EventContext::OnField_Validate(WideString& strChange,
+                                        const WideString& strChangeEx,
                                         bool bKeyDown,
                                         bool bModifier,
                                         bool bShift,
                                         CPDF_FormField* pTarget,
-                                        CFX_WideString& Value,
+                                        WideString& Value,
                                         bool& bRc) {
   m_pEventHandler->OnField_Validate(strChange, strChangeEx, bKeyDown, bModifier,
                                     bShift, pTarget, Value, bRc);
@@ -276,6 +275,6 @@
 }
 
 void CJS_EventContext::OnMenu_Exec(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                                   const CFX_WideString& strTargetName) {
+                                   const WideString& strTargetName) {
   m_pEventHandler->OnMenu_Exec(pFormFillEnv, strTargetName);
 }
diff --git a/fpdfsdk/javascript/cjs_event_context.h b/fpdfsdk/javascript/cjs_event_context.h
index 715bd94..a27bbd7 100644
--- a/fpdfsdk/javascript/cjs_event_context.h
+++ b/fpdfsdk/javascript/cjs_event_context.h
@@ -24,10 +24,10 @@
   ~CJS_EventContext() override;
 
   // IJS_EventContext
-  bool RunScript(const CFX_WideString& script, CFX_WideString* info) override;
+  bool RunScript(const WideString& script, WideString* info) override;
   void OnApp_Init() override;
   void OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                  const CFX_WideString& strTargetName) override;
+                  const WideString& strTargetName) override;
   void OnDoc_WillPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv) override;
   void OnDoc_DidPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv) override;
   void OnDoc_WillSave(CPDFSDK_FormFillEnvironment* pFormFillEnv) override;
@@ -52,37 +52,37 @@
   void OnField_Focus(bool bModifier,
                      bool bShift,
                      CPDF_FormField* pTarget,
-                     const CFX_WideString& Value) override;
+                     const WideString& Value) override;
   void OnField_Blur(bool bModifier,
                     bool bShift,
                     CPDF_FormField* pTarget,
-                    const CFX_WideString& Value) override;
+                    const WideString& Value) override;
   void OnField_Calculate(CPDF_FormField* pSource,
                          CPDF_FormField* pTarget,
-                         CFX_WideString& Value,
+                         WideString& Value,
                          bool& bRc) override;
   void OnField_Format(CPDF_FormField* pTarget,
-                      CFX_WideString& Value,
+                      WideString& Value,
                       bool bWillCommit) override;
-  void OnField_Keystroke(CFX_WideString& strChange,
-                         const CFX_WideString& strChangeEx,
+  void OnField_Keystroke(WideString& strChange,
+                         const WideString& strChangeEx,
                          bool bKeyDown,
                          bool bModifier,
                          int& nSelEnd,
                          int& nSelStart,
                          bool bShift,
                          CPDF_FormField* pTarget,
-                         CFX_WideString& Value,
+                         WideString& Value,
                          bool bWillCommit,
                          bool bFieldFull,
                          bool& bRc) override;
-  void OnField_Validate(CFX_WideString& strChange,
-                        const CFX_WideString& strChangeEx,
+  void OnField_Validate(WideString& strChange,
+                        const WideString& strChangeEx,
                         bool bKeyDown,
                         bool bModifier,
                         bool bShift,
                         CPDF_FormField* pTarget,
-                        CFX_WideString& Value,
+                        WideString& Value,
                         bool& bRc) override;
   void OnScreen_Focus(bool bModifier,
                       bool bShift,
@@ -117,7 +117,7 @@
   void OnBookmark_MouseUp(CPDF_Bookmark* pBookMark) override;
   void OnLink_MouseUp(CPDFSDK_FormFillEnvironment* pFormFillEnv) override;
   void OnMenu_Exec(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                   const CFX_WideString& strTargetName) override;
+                   const WideString& strTargetName) override;
   void OnBatchExec(CPDFSDK_FormFillEnvironment* pFormFillEnv) override;
   void OnConsole_Exec() override;
   void OnExternal_Exec() override;
diff --git a/fpdfsdk/javascript/cjs_runtime.cpp b/fpdfsdk/javascript/cjs_runtime.cpp
index 515bdcb..720a15b 100644
--- a/fpdfsdk/javascript/cjs_runtime.cpp
+++ b/fpdfsdk/javascript/cjs_runtime.cpp
@@ -193,8 +193,7 @@
   return m_pFormFillEnv.Get();
 }
 
-int CJS_Runtime::ExecuteScript(const CFX_WideString& script,
-                               CFX_WideString* info) {
+int CJS_Runtime::ExecuteScript(const WideString& script, WideString* info) {
   FXJSErr error = {};
   int nRet = Execute(script, &error);
   if (nRet < 0) {
@@ -213,13 +212,13 @@
 }
 
 #ifdef PDF_ENABLE_XFA
-CFX_WideString ChangeObjName(const CFX_WideString& str) {
-  CFX_WideString sRet = str;
+WideString ChangeObjName(const WideString& str) {
+  WideString sRet = str;
   sRet.Replace(L"_", L".");
   return sRet;
 }
 
-bool CJS_Runtime::GetValueByName(const CFX_ByteStringC& utf8Name,
+bool CJS_Runtime::GetValueByName(const ByteStringView& utf8Name,
                                  CFXJSE_Value* pValue) {
   v8::Isolate::Scope isolate_scope(GetIsolate());
   v8::HandleScope handle_scope(GetIsolate());
@@ -236,7 +235,7 @@
   return true;
 }
 
-bool CJS_Runtime::SetValueByName(const CFX_ByteStringC& utf8Name,
+bool CJS_Runtime::SetValueByName(const ByteStringView& utf8Name,
                                  CFXJSE_Value* pValue) {
   if (utf8Name.IsEmpty() || !pValue)
     return false;
diff --git a/fpdfsdk/javascript/cjs_runtime.h b/fpdfsdk/javascript/cjs_runtime.h
index bfbc52b..3991995 100644
--- a/fpdfsdk/javascript/cjs_runtime.h
+++ b/fpdfsdk/javascript/cjs_runtime.h
@@ -25,7 +25,7 @@
                     public CFXJS_Engine,
                     public CFX_Observable<CJS_Runtime> {
  public:
-  using FieldEvent = std::pair<CFX_WideString, JS_EVENT_T>;
+  using FieldEvent = std::pair<WideString, JS_EVENT_T>;
 
   static CJS_Runtime* CurrentRuntimeFromIsolate(v8::Isolate* pIsolate);
 
@@ -36,8 +36,7 @@
   IJS_EventContext* NewEventContext() override;
   void ReleaseEventContext(IJS_EventContext* pContext) override;
   CPDFSDK_FormFillEnvironment* GetFormFillEnv() const override;
-  int ExecuteScript(const CFX_WideString& script,
-                    CFX_WideString* info) override;
+  int ExecuteScript(const WideString& script, WideString* info) override;
 
   CJS_EventContext* GetCurrentEventContext() const;
 
@@ -50,9 +49,9 @@
   bool IsBlocking() const { return m_bBlocking; }
 
 #ifdef PDF_ENABLE_XFA
-  bool GetValueByName(const CFX_ByteStringC& utf8Name,
+  bool GetValueByName(const ByteStringView& utf8Name,
                       CFXJSE_Value* pValue) override;
-  bool SetValueByName(const CFX_ByteStringC& utf8Name,
+  bool SetValueByName(const ByteStringView& utf8Name,
                       CFXJSE_Value* pValue) override;
 #endif  // PDF_ENABLE_XFA
 
diff --git a/fpdfsdk/javascript/color.cpp b/fpdfsdk/javascript/color.cpp
index 7bf3cc9..574c81a 100644
--- a/fpdfsdk/javascript/color.cpp
+++ b/fpdfsdk/javascript/color.cpp
@@ -91,7 +91,7 @@
 
   CJS_Value value(pRuntime);
   array.GetElement(pRuntime, 0, value);
-  CFX_ByteString sSpace = value.ToCFXByteString(pRuntime);
+  ByteString sSpace = value.ToCFXByteString(pRuntime);
 
   double d1 = 0;
   double d2 = 0;
@@ -132,73 +132,65 @@
 
 bool color::transparent(CJS_Runtime* pRuntime,
                         CJS_PropValue& vp,
-                        CFX_WideString& sError) {
+                        WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crTransparent);
 }
 
 bool color::black(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crBlack);
 }
 
 bool color::white(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crWhite);
 }
 
-bool color::red(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError) {
+bool color::red(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crRed);
 }
 
 bool color::green(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crGreen);
 }
 
-bool color::blue(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool color::blue(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crBlue);
 }
 
-bool color::cyan(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool color::cyan(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crCyan);
 }
 
 bool color::magenta(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crMagenta);
 }
 
 bool color::yellow(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crYellow);
 }
 
 bool color::dkGray(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crDKGray);
 }
 
-bool color::gray(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool color::gray(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crGray);
 }
 
 bool color::ltGray(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   return PropertyHelper(pRuntime, vp, &m_crLTGray);
 }
 
@@ -221,7 +213,7 @@
 bool color::convert(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   int iSize = params.size();
   if (iSize < 2)
     return false;
@@ -233,7 +225,7 @@
   CFX_Color crSource;
   ConvertArrayToPWLColor(pRuntime, aSource, &crSource);
 
-  CFX_ByteString sDestSpace = params[1].ToCFXByteString(pRuntime);
+  ByteString sDestSpace = params[1].ToCFXByteString(pRuntime);
   int nColorType = COLORTYPE_TRANSPARENT;
 
   if (sDestSpace == "T") {
@@ -257,7 +249,7 @@
 bool color::equal(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   if (params.size() < 2)
     return false;
 
diff --git a/fpdfsdk/javascript/color.h b/fpdfsdk/javascript/color.h
index 5d6a657..5e1e871 100644
--- a/fpdfsdk/javascript/color.h
+++ b/fpdfsdk/javascript/color.h
@@ -17,31 +17,29 @@
   explicit color(CJS_Object* pJSObject);
   ~color() override;
 
-  bool black(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool blue(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool cyan(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool dkGray(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool gray(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool green(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool ltGray(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool magenta(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError);
-  bool red(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+  bool black(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool blue(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool cyan(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool dkGray(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool gray(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool green(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool ltGray(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool magenta(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool red(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool transparent(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError);
-  bool white(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool yellow(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
+                   WideString& sError);
+  bool white(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool yellow(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
 
   bool convert(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool equal(CJS_Runtime* pRuntime,
              const std::vector<CJS_Value>& params,
              CJS_Value& vRet,
-             CFX_WideString& sError);
+             WideString& sError);
 
   static void ConvertPWLColorToArray(CJS_Runtime* pRuntime,
                                      const CFX_Color& color,
diff --git a/fpdfsdk/javascript/console.cpp b/fpdfsdk/javascript/console.cpp
index e9d1308..4f0fd43 100644
--- a/fpdfsdk/javascript/console.cpp
+++ b/fpdfsdk/javascript/console.cpp
@@ -33,21 +33,21 @@
 bool console::clear(CJS_Runtime* pRuntime,
                     const std::vector<CJS_Value>& params,
                     CJS_Value& vRet,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   return true;
 }
 
 bool console::hide(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   return true;
 }
 
 bool console::println(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   if (params.size() < 1) {
     return false;
   }
@@ -57,6 +57,6 @@
 bool console::show(CJS_Runtime* pRuntime,
                    const std::vector<CJS_Value>& params,
                    CJS_Value& vRet,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   return true;
 }
diff --git a/fpdfsdk/javascript/console.h b/fpdfsdk/javascript/console.h
index a7e4d8e..4680220 100644
--- a/fpdfsdk/javascript/console.h
+++ b/fpdfsdk/javascript/console.h
@@ -20,19 +20,19 @@
   bool clear(CJS_Runtime* pRuntime,
              const std::vector<CJS_Value>& params,
              CJS_Value& vRet,
-             CFX_WideString& sError);
+             WideString& sError);
   bool hide(CJS_Runtime* pRuntime,
             const std::vector<CJS_Value>& params,
             CJS_Value& vRet,
-            CFX_WideString& sError);
+            WideString& sError);
   bool println(CJS_Runtime* pRuntime,
                const std::vector<CJS_Value>& params,
                CJS_Value& vRet,
-               CFX_WideString& sError);
+               WideString& sError);
   bool show(CJS_Runtime* pRuntime,
             const std::vector<CJS_Value>& params,
             CJS_Value& vRet,
-            CFX_WideString& sError);
+            WideString& sError);
 };
 
 class CJS_Console : public CJS_Object {
diff --git a/fpdfsdk/javascript/event.cpp b/fpdfsdk/javascript/event.cpp
index 2b00cbc..efc704d 100644
--- a/fpdfsdk/javascript/event.cpp
+++ b/fpdfsdk/javascript/event.cpp
@@ -48,10 +48,10 @@
 
 bool event::change(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   CJS_EventHandler* pEvent =
       pRuntime->GetCurrentEventContext()->GetEventHandler();
-  CFX_WideString& wChange = pEvent->Change();
+  WideString& wChange = pEvent->Change();
   if (vp.IsSetting()) {
     if (vp.GetJSValue()->GetType() == CJS_Value::VT_string)
       vp >> wChange;
@@ -63,7 +63,7 @@
 
 bool event::changeEx(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -76,7 +76,7 @@
 
 bool event::commitKey(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -89,7 +89,7 @@
 
 bool event::fieldFull(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   CJS_EventHandler* pEvent =
       pRuntime->GetCurrentEventContext()->GetEventHandler();
 
@@ -103,7 +103,7 @@
 
 bool event::keyDown(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError) {
+                    WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -116,7 +116,7 @@
 
 bool event::modifier(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -127,9 +127,7 @@
   return true;
 }
 
-bool event::name(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool event::name(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -140,9 +138,7 @@
   return true;
 }
 
-bool event::rc(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError) {
+bool event::rc(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   CJS_EventHandler* pEvent =
       pRuntime->GetCurrentEventContext()->GetEventHandler();
 
@@ -157,25 +153,25 @@
 
 bool event::richChange(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   return true;
 }
 
 bool event::richChangeEx(CJS_Runtime* pRuntime,
                          CJS_PropValue& vp,
-                         CFX_WideString& sError) {
+                         WideString& sError) {
   return true;
 }
 
 bool event::richValue(CJS_Runtime* pRuntime,
                       CJS_PropValue& vp,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   return true;
 }
 
 bool event::selEnd(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   CJS_EventHandler* pEvent =
       pRuntime->GetCurrentEventContext()->GetEventHandler();
 
@@ -193,7 +189,7 @@
 
 bool event::selStart(CJS_Runtime* pRuntime,
                      CJS_PropValue& vp,
-                     CFX_WideString& sError) {
+                     WideString& sError) {
   CJS_EventHandler* pEvent =
       pRuntime->GetCurrentEventContext()->GetEventHandler();
 
@@ -211,7 +207,7 @@
 
 bool event::shift(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -224,7 +220,7 @@
 
 bool event::source(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -237,7 +233,7 @@
 
 bool event::target(CJS_Runtime* pRuntime,
                    CJS_PropValue& vp,
-                   CFX_WideString& sError) {
+                   WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -250,7 +246,7 @@
 
 bool event::targetName(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -261,9 +257,7 @@
   return true;
 }
 
-bool event::type(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError) {
+bool event::type(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
@@ -276,7 +270,7 @@
 
 bool event::value(CJS_Runtime* pRuntime,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   CJS_EventHandler* pEvent =
       pRuntime->GetCurrentEventContext()->GetEventHandler();
 
@@ -286,7 +280,7 @@
   if (!pEvent->m_pValue)
     return false;
 
-  CFX_WideString& val = pEvent->Value();
+  WideString& val = pEvent->Value();
   if (vp.IsSetting())
     vp >> val;
   else
@@ -297,7 +291,7 @@
 
 bool event::willCommit(CJS_Runtime* pRuntime,
                        CJS_PropValue& vp,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   if (!vp.IsGetting())
     return false;
 
diff --git a/fpdfsdk/javascript/event.h b/fpdfsdk/javascript/event.h
index 2be8a0a..8574237 100644
--- a/fpdfsdk/javascript/event.h
+++ b/fpdfsdk/javascript/event.h
@@ -15,48 +15,28 @@
   ~event() override;
 
  public:
-  bool change(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool changeEx(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool commitKey(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool fieldFull(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool keyDown(CJS_Runtime* pRuntime,
-               CJS_PropValue& vp,
-               CFX_WideString& sError);
-  bool modifier(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool name(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool rc(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool richChange(CJS_Runtime* pRuntime,
-                  CJS_PropValue& vp,
-                  CFX_WideString& sError);
+  bool change(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool changeEx(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool commitKey(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool fieldFull(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool keyDown(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool modifier(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool name(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool rc(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool richChange(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
   bool richChangeEx(CJS_Runtime* pRuntime,
                     CJS_PropValue& vp,
-                    CFX_WideString& sError);
-  bool richValue(CJS_Runtime* pRuntime,
-                 CJS_PropValue& vp,
-                 CFX_WideString& sError);
-  bool selEnd(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool selStart(CJS_Runtime* pRuntime,
-                CJS_PropValue& vp,
-                CFX_WideString& sError);
-  bool shift(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool source(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool target(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool targetName(CJS_Runtime* pRuntime,
-                  CJS_PropValue& vp,
-                  CFX_WideString& sError);
-  bool type(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool value(CJS_Runtime* pRuntime, CJS_PropValue& vp, CFX_WideString& sError);
-  bool willCommit(CJS_Runtime* pRuntime,
-                  CJS_PropValue& vp,
-                  CFX_WideString& sError);
+                    WideString& sError);
+  bool richValue(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool selEnd(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool selStart(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool shift(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool source(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool target(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool targetName(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool type(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool value(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
+  bool willCommit(CJS_Runtime* pRuntime, CJS_PropValue& vp, WideString& sError);
 };
 
 class CJS_Event : public CJS_Object {
diff --git a/fpdfsdk/javascript/global.cpp b/fpdfsdk/javascript/global.cpp
index 8dcddf4..9827b2a 100644
--- a/fpdfsdk/javascript/global.cpp
+++ b/fpdfsdk/javascript/global.cpp
@@ -62,13 +62,13 @@
 }
 
 bool JSGlobalAlternate::QueryProperty(const wchar_t* propname) {
-  return CFX_WideString(propname) != L"setPersistent";
+  return WideString(propname) != L"setPersistent";
 }
 
 bool JSGlobalAlternate::DelProperty(CJS_Runtime* pRuntime,
                                     const wchar_t* propname,
-                                    CFX_WideString& sError) {
-  auto it = m_MapGlobal.find(CFX_ByteString::FromUnicode(propname));
+                                    WideString& sError) {
+  auto it = m_MapGlobal.find(ByteString::FromUnicode(propname));
   if (it == m_MapGlobal.end())
     return false;
 
@@ -79,9 +79,9 @@
 bool JSGlobalAlternate::DoProperty(CJS_Runtime* pRuntime,
                                    const wchar_t* propname,
                                    CJS_PropValue& vp,
-                                   CFX_WideString& sError) {
+                                   WideString& sError) {
   if (vp.IsSetting()) {
-    CFX_ByteString sPropName = CFX_ByteString::FromUnicode(propname);
+    ByteString sPropName = ByteString::FromUnicode(propname);
     switch (vp.GetJSValue()->GetType()) {
       case CJS_Value::VT_number: {
         double dData;
@@ -96,7 +96,7 @@
                                   bData, "", v8::Local<v8::Object>(), false);
       }
       case CJS_Value::VT_string: {
-        CFX_ByteString sData;
+        ByteString sData;
         vp >> sData;
         return SetGlobalVariables(sPropName, JS_GlobalDataType::STRING, 0,
                                   false, sData, v8::Local<v8::Object>(), false);
@@ -119,7 +119,7 @@
         break;
     }
   } else {
-    auto it = m_MapGlobal.find(CFX_ByteString::FromUnicode(propname));
+    auto it = m_MapGlobal.find(ByteString::FromUnicode(propname));
     if (it == m_MapGlobal.end()) {
       vp.GetJSValue()->SetNull(pRuntime);
       return true;
@@ -158,7 +158,7 @@
 bool JSGlobalAlternate::setPersistent(CJS_Runtime* pRuntime,
                                       const std::vector<CJS_Value>& params,
                                       CJS_Value& vRet,
-                                      CFX_WideString& sError) {
+                                      WideString& sError) {
   if (params.size() != 2) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -202,7 +202,7 @@
                            pData->bPersistent == 1);
         pRuntime->PutObjectProperty(
             m_pJSObject->ToV8Object(), pData->data.sKey.UTF8Decode(),
-            pRuntime->NewString(pData->data.sData.UTF8Decode().AsStringC()));
+            pRuntime->NewString(pData->data.sData.UTF8Decode().AsStringView()));
         break;
       case JS_GlobalDataType::OBJECT: {
         v8::Local<v8::Object> pObj = pRuntime->NewFxDynamicObj(-1);
@@ -229,7 +229,7 @@
 void JSGlobalAlternate::CommitGlobalPersisitentVariables(
     CJS_Runtime* pRuntime) {
   for (const auto& iter : m_MapGlobal) {
-    CFX_ByteString name = iter.first;
+    ByteString name = iter.first;
     JSGlobalData* pData = iter.second.get();
     if (pData->bDeleted) {
       m_pGlobalData->DeleteGlobalVariable(name);
@@ -267,9 +267,9 @@
 void JSGlobalAlternate::ObjectToArray(CJS_Runtime* pRuntime,
                                       v8::Local<v8::Object> pObj,
                                       CJS_GlobalVariableArray& array) {
-  std::vector<CFX_WideString> pKeyList = pRuntime->GetObjectPropertyNames(pObj);
+  std::vector<WideString> pKeyList = pRuntime->GetObjectPropertyNames(pObj);
   for (const auto& ws : pKeyList) {
-    CFX_ByteString sKey = ws.UTF8Encode();
+    ByteString sKey = ws.UTF8Encode();
     v8::Local<v8::Value> v = pRuntime->GetObjectProperty(pObj, ws);
     switch (CJS_Value::GetValueType(v)) {
       case CJS_Value::VT_number: {
@@ -287,8 +287,7 @@
         array.Add(pObjElement);
       } break;
       case CJS_Value::VT_string: {
-        CFX_ByteString sValue =
-            CJS_Value(pRuntime, v).ToCFXByteString(pRuntime);
+        ByteString sValue = CJS_Value(pRuntime, v).ToCFXByteString(pRuntime);
         CJS_KeyValue* pObjElement = new CJS_KeyValue;
         pObjElement->nType = JS_GlobalDataType::STRING;
         pObjElement->sKey = sKey;
@@ -333,7 +332,7 @@
       case JS_GlobalDataType::STRING:
         pRuntime->PutObjectProperty(
             pObj, pObjData->sKey.UTF8Decode(),
-            pRuntime->NewString(pObjData->sData.UTF8Decode().AsStringC()));
+            pRuntime->NewString(pObjData->sData.UTF8Decode().AsStringView()));
         break;
       case JS_GlobalDataType::OBJECT: {
         v8::Local<v8::Object> pNewObj = pRuntime->NewFxDynamicObj(-1);
@@ -355,11 +354,11 @@
   m_MapGlobal.clear();
 }
 
-bool JSGlobalAlternate::SetGlobalVariables(const CFX_ByteString& propname,
+bool JSGlobalAlternate::SetGlobalVariables(const ByteString& propname,
                                            JS_GlobalDataType nType,
                                            double dData,
                                            bool bData,
-                                           const CFX_ByteString& sData,
+                                           const ByteString& sData,
                                            v8::Local<v8::Object> pData,
                                            bool bDefaultPersistent) {
   if (propname.IsEmpty())
diff --git a/fpdfsdk/javascript/global.h b/fpdfsdk/javascript/global.h
index 364313c..5005b2a 100644
--- a/fpdfsdk/javascript/global.h
+++ b/fpdfsdk/javascript/global.h
@@ -25,7 +25,7 @@
   JS_GlobalDataType nType;
   double dData;
   bool bData;
-  CFX_ByteString sData;
+  ByteString sData;
   v8::Global<v8::Object> pData;
   bool bPersistent;
   bool bDeleted;
@@ -39,26 +39,26 @@
   bool setPersistent(CJS_Runtime* pRuntime,
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
-                     CFX_WideString& sError);
+                     WideString& sError);
   bool QueryProperty(const wchar_t* propname);
   bool DoProperty(CJS_Runtime* pRuntime,
                   const wchar_t* propname,
                   CJS_PropValue& vp,
-                  CFX_WideString& sError);
+                  WideString& sError);
   bool DelProperty(CJS_Runtime* pRuntime,
                    const wchar_t* propname,
-                   CFX_WideString& sError);
+                   WideString& sError);
   void Initial(CPDFSDK_FormFillEnvironment* pFormFillEnv);
 
  private:
   void UpdateGlobalPersistentVariables();
   void CommitGlobalPersisitentVariables(CJS_Runtime* pRuntime);
   void DestroyGlobalPersisitentVariables();
-  bool SetGlobalVariables(const CFX_ByteString& propname,
+  bool SetGlobalVariables(const ByteString& propname,
                           JS_GlobalDataType nType,
                           double dData,
                           bool bData,
-                          const CFX_ByteString& sData,
+                          const ByteString& sData,
                           v8::Local<v8::Object> pData,
                           bool bDefaultPersistent);
   void ObjectToArray(CJS_Runtime* pRuntime,
@@ -66,8 +66,8 @@
                      CJS_GlobalVariableArray& array);
   void PutObjectProperty(v8::Local<v8::Object> obj, CJS_KeyValue* pData);
 
-  std::map<CFX_ByteString, std::unique_ptr<JSGlobalData>> m_MapGlobal;
-  CFX_WideString m_sFilePath;
+  std::map<ByteString, std::unique_ptr<JSGlobalData>> m_MapGlobal;
+  WideString m_sFilePath;
   CJS_GlobalData* m_pGlobalData;
   CPDFSDK_FormFillEnvironment::ObservedPtr m_pFormFillEnv;
 };
diff --git a/fpdfsdk/javascript/ijs_event_context.h b/fpdfsdk/javascript/ijs_event_context.h
index 8428072..5d2d712 100644
--- a/fpdfsdk/javascript/ijs_event_context.h
+++ b/fpdfsdk/javascript/ijs_event_context.h
@@ -20,13 +20,12 @@
 // may trigger new events on top of one another.
 class IJS_EventContext {
  public:
-  virtual bool RunScript(const CFX_WideString& script,
-                         CFX_WideString* info) = 0;
+  virtual bool RunScript(const WideString& script, WideString* info) = 0;
 
   virtual void OnApp_Init() = 0;
 
   virtual void OnDoc_Open(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                          const CFX_WideString& strTargetName) = 0;
+                          const WideString& strTargetName) = 0;
   virtual void OnDoc_WillPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
   virtual void OnDoc_DidPrint(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
   virtual void OnDoc_WillSave(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
@@ -53,38 +52,38 @@
   virtual void OnField_Focus(bool bModifier,
                              bool bShift,
                              CPDF_FormField* pTarget,
-                             const CFX_WideString& Value) = 0;
+                             const WideString& Value) = 0;
   virtual void OnField_Blur(bool bModifier,
                             bool bShift,
                             CPDF_FormField* pTarget,
-                            const CFX_WideString& Value) = 0;
+                            const WideString& Value) = 0;
 
   virtual void OnField_Calculate(CPDF_FormField* pSource,
                                  CPDF_FormField* pTarget,
-                                 CFX_WideString& Value,
+                                 WideString& Value,
                                  bool& bRc) = 0;
   virtual void OnField_Format(CPDF_FormField* pTarget,
-                              CFX_WideString& Value,
+                              WideString& Value,
                               bool bWillCommit) = 0;
-  virtual void OnField_Keystroke(CFX_WideString& strChange,
-                                 const CFX_WideString& strChangeEx,
+  virtual void OnField_Keystroke(WideString& strChange,
+                                 const WideString& strChangeEx,
                                  bool KeyDown,
                                  bool bModifier,
                                  int& nSelEnd,
                                  int& nSelStart,
                                  bool bShift,
                                  CPDF_FormField* pTarget,
-                                 CFX_WideString& Value,
+                                 WideString& Value,
                                  bool bWillCommit,
                                  bool bFieldFull,
                                  bool& bRc) = 0;
-  virtual void OnField_Validate(CFX_WideString& strChange,
-                                const CFX_WideString& strChangeEx,
+  virtual void OnField_Validate(WideString& strChange,
+                                const WideString& strChangeEx,
                                 bool bKeyDown,
                                 bool bModifier,
                                 bool bShift,
                                 CPDF_FormField* pTarget,
-                                CFX_WideString& Value,
+                                WideString& Value,
                                 bool& bRc) = 0;
 
   virtual void OnScreen_Focus(bool bModifier,
@@ -122,7 +121,7 @@
   virtual void OnLink_MouseUp(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
 
   virtual void OnMenu_Exec(CPDFSDK_FormFillEnvironment* pFormFillEnv,
-                           const CFX_WideString&) = 0;
+                           const WideString&) = 0;
   virtual void OnBatchExec(CPDFSDK_FormFillEnvironment* pFormFillEnv) = 0;
   virtual void OnConsole_Exec() = 0;
   virtual void OnExternal_Exec() = 0;
diff --git a/fpdfsdk/javascript/ijs_runtime.h b/fpdfsdk/javascript/ijs_runtime.h
index babc418..a21ce80 100644
--- a/fpdfsdk/javascript/ijs_runtime.h
+++ b/fpdfsdk/javascript/ijs_runtime.h
@@ -28,13 +28,12 @@
   virtual IJS_EventContext* NewEventContext() = 0;
   virtual void ReleaseEventContext(IJS_EventContext* pContext) = 0;
   virtual CPDFSDK_FormFillEnvironment* GetFormFillEnv() const = 0;
-  virtual int ExecuteScript(const CFX_WideString& script,
-                            CFX_WideString* info) = 0;
+  virtual int ExecuteScript(const WideString& script, WideString* info) = 0;
 
 #ifdef PDF_ENABLE_XFA
-  virtual bool GetValueByName(const CFX_ByteStringC& utf8Name,
+  virtual bool GetValueByName(const ByteStringView& utf8Name,
                               CFXJSE_Value* pValue) = 0;
-  virtual bool SetValueByName(const CFX_ByteStringC& utf8Name,
+  virtual bool SetValueByName(const ByteStringView& utf8Name,
                               CFXJSE_Value* pValue) = 0;
 #endif  // PDF_ENABLE_XFA
 
diff --git a/fpdfsdk/javascript/public_methods_embeddertest.cpp b/fpdfsdk/javascript/public_methods_embeddertest.cpp
index 2479366..f6af01f 100644
--- a/fpdfsdk/javascript/public_methods_embeddertest.cpp
+++ b/fpdfsdk/javascript/public_methods_embeddertest.cpp
@@ -103,7 +103,7 @@
   v8::Isolate::Scope isolate_scope(isolate());
   v8::HandleScope handle_scope(isolate());
   v8::Context::Scope context_scope(GetV8Context());
-  CFX_WideString formatted_date;
+  WideString formatted_date;
 
   // 1968-06-25
   formatted_date = CJS_PublicMethods::MakeFormatDate(-47952000000, L"ddmmyy");
diff --git a/fpdfsdk/javascript/report.cpp b/fpdfsdk/javascript/report.cpp
index c9c986d..4550943 100644
--- a/fpdfsdk/javascript/report.cpp
+++ b/fpdfsdk/javascript/report.cpp
@@ -29,7 +29,7 @@
 bool Report::writeText(CJS_Runtime* pRuntime,
                        const std::vector<CJS_Value>& params,
                        CJS_Value& vRet,
-                       CFX_WideString& sError) {
+                       WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
@@ -37,7 +37,7 @@
 bool Report::save(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   // Unsafe, not supported.
   return true;
 }
diff --git a/fpdfsdk/javascript/report.h b/fpdfsdk/javascript/report.h
index c66db80..0f040c6 100644
--- a/fpdfsdk/javascript/report.h
+++ b/fpdfsdk/javascript/report.h
@@ -20,11 +20,11 @@
   bool save(CJS_Runtime* pRuntime,
             const std::vector<CJS_Value>& params,
             CJS_Value& vRet,
-            CFX_WideString& sError);
+            WideString& sError);
   bool writeText(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError);
+                 WideString& sError);
 };
 
 class CJS_Report : public CJS_Object {
diff --git a/fpdfsdk/javascript/resource.cpp b/fpdfsdk/javascript/resource.cpp
index 6113c54..8ca5b2a 100644
--- a/fpdfsdk/javascript/resource.cpp
+++ b/fpdfsdk/javascript/resource.cpp
@@ -6,7 +6,7 @@
 
 #include "fpdfsdk/javascript/resource.h"
 
-CFX_WideString JSGetStringFromID(uint32_t id) {
+WideString JSGetStringFromID(uint32_t id) {
   switch (id) {
     case IDS_STRING_JSALERT:
       return L"Alert";
@@ -54,13 +54,13 @@
   }
 }
 
-CFX_WideString JSFormatErrorString(const char* class_name,
-                                   const char* property_name,
-                                   const CFX_WideString& details) {
-  CFX_WideString result = CFX_WideString::FromLocal(class_name);
+WideString JSFormatErrorString(const char* class_name,
+                               const char* property_name,
+                               const WideString& details) {
+  WideString result = WideString::FromLocal(class_name);
   if (property_name) {
     result += L".";
-    result += CFX_WideString::FromLocal(property_name);
+    result += WideString::FromLocal(property_name);
   }
   result += L": ";
   result += details;
diff --git a/fpdfsdk/javascript/resource.h b/fpdfsdk/javascript/resource.h
index af7788f..3891918 100644
--- a/fpdfsdk/javascript/resource.h
+++ b/fpdfsdk/javascript/resource.h
@@ -32,9 +32,9 @@
 #define IDS_STRING_JSNOPERMISSION 25639
 #define IDS_STRING_JSBADOBJECT 25640
 
-CFX_WideString JSGetStringFromID(uint32_t id);
-CFX_WideString JSFormatErrorString(const char* class_name,
-                                   const char* property_name,
-                                   const CFX_WideString& details);
+WideString JSGetStringFromID(uint32_t id);
+WideString JSFormatErrorString(const char* class_name,
+                               const char* property_name,
+                               const WideString& details);
 
 #endif  // FPDFSDK_JAVASCRIPT_RESOURCE_H_
diff --git a/fpdfsdk/javascript/util.cpp b/fpdfsdk/javascript/util.cpp
index e00f9e1..04f1eb3 100644
--- a/fpdfsdk/javascript/util.cpp
+++ b/fpdfsdk/javascript/util.cpp
@@ -76,7 +76,7 @@
 bool util::printf(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   const size_t iSize = params.size();
   if (iSize < 1)
     return false;
@@ -111,7 +111,7 @@
       continue;
     }
 
-    CFX_WideString strSegment;
+    WideString strSegment;
     switch (ParseDataType(&c_strFormat)) {
       case UTIL_INT:
         strSegment.Format(c_strFormat.c_str(), params[iIndex].ToInt(pRuntime));
@@ -139,7 +139,7 @@
 bool util::printd(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   const size_t iSize = params.size();
   if (iSize < 2)
     return false;
@@ -158,7 +158,7 @@
   }
 
   if (p1.GetType() == CJS_Value::VT_number) {
-    CFX_WideString swResult;
+    WideString swResult;
     switch (p1.ToInt(pRuntime)) {
       case 0:
         swResult.Format(L"D:%04d%02d%02d%02d%02d%02d", jsDate.GetYear(pRuntime),
@@ -231,7 +231,7 @@
     };
 
     for (size_t i = 0; i < FX_ArraySize(cTableAd); ++i) {
-      CFX_WideString sValue;
+      WideString sValue;
       sValue.Format(L"%d", cTableAd[i].iValue);
 
       int iStart = 0;
@@ -271,7 +271,7 @@
 bool util::printx(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError) {
+                  WideString& sError) {
   if (params.size() < 2) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -294,9 +294,9 @@
   return input;
 }
 
-CFX_WideString util::printx(const CFX_WideString& wsFormat,
-                            const CFX_WideString& wsSource) {
-  CFX_WideString wsResult;
+WideString util::printx(const WideString& wsFormat,
+                        const WideString& wsSource) {
+  WideString wsResult;
   FX_STRSIZE iSourceIdx = 0;
   FX_STRSIZE iFormatIdx = 0;
   CaseMode eCaseMode = kPreserveCase;
@@ -385,12 +385,12 @@
 bool util::scand(CJS_Runtime* pRuntime,
                  const std::vector<CJS_Value>& params,
                  CJS_Value& vRet,
-                 CFX_WideString& sError) {
+                 WideString& sError) {
   if (params.size() < 2)
     return false;
 
-  CFX_WideString sFormat = params[0].ToCFXWideString(pRuntime);
-  CFX_WideString sDate = params[1].ToCFXWideString(pRuntime);
+  WideString sFormat = params[0].ToCFXWideString(pRuntime);
+  WideString sDate = params[1].ToCFXWideString(pRuntime);
   double dDate = JS_GetDateTime();
   if (sDate.GetLength() > 0) {
     dDate = CJS_PublicMethods::MakeRegularDate(sDate, sFormat, nullptr);
@@ -408,7 +408,7 @@
 bool util::byteToChar(CJS_Runtime* pRuntime,
                       const std::vector<CJS_Value>& params,
                       CJS_Value& vRet,
-                      CFX_WideString& sError) {
+                      WideString& sError) {
   if (params.size() < 1) {
     sError = JSGetStringFromID(IDS_STRING_JSPARAMERROR);
     return false;
@@ -420,7 +420,7 @@
     return false;
   }
 
-  CFX_WideString wStr(static_cast<wchar_t>(arg));
+  WideString wStr(static_cast<wchar_t>(arg));
   vRet = CJS_Value(pRuntime, wStr.c_str());
   return true;
 }
diff --git a/fpdfsdk/javascript/util.h b/fpdfsdk/javascript/util.h
index 60fa631..ba46e4f 100644
--- a/fpdfsdk/javascript/util.h
+++ b/fpdfsdk/javascript/util.h
@@ -25,26 +25,26 @@
   bool printd(CJS_Runtime* pRuntime,
               const std::vector<CJS_Value>& params,
               CJS_Value& vRet,
-              CFX_WideString& sError);
+              WideString& sError);
   bool printf(CJS_Runtime* pRuntime,
               const std::vector<CJS_Value>& params,
               CJS_Value& vRet,
-              CFX_WideString& sError);
+              WideString& sError);
   bool printx(CJS_Runtime* pRuntime,
               const std::vector<CJS_Value>& params,
               CJS_Value& vRet,
-              CFX_WideString& sError);
+              WideString& sError);
   bool scand(CJS_Runtime* pRuntime,
              const std::vector<CJS_Value>& params,
              CJS_Value& vRet,
-             CFX_WideString& sError);
+             WideString& sError);
   bool byteToChar(CJS_Runtime* pRuntime,
                   const std::vector<CJS_Value>& params,
                   CJS_Value& vRet,
-                  CFX_WideString& sError);
+                  WideString& sError);
 
-  static CFX_WideString printx(const CFX_WideString& cFormat,
-                               const CFX_WideString& cSource);
+  static WideString printx(const WideString& cFormat,
+                           const WideString& cSource);
 
  private:
   friend class CJS_Util_ParseDataType_Test;
diff --git a/fpdfsdk/pdfsdk_fieldaction.h b/fpdfsdk/pdfsdk_fieldaction.h
index 4ee56ac..aec5dca 100644
--- a/fpdfsdk/pdfsdk_fieldaction.h
+++ b/fpdfsdk/pdfsdk_fieldaction.h
@@ -25,12 +25,12 @@
   bool bModifier;
   bool bShift;
   int nCommitKey;
-  CFX_WideString sChange;
-  CFX_WideString sChangeEx;
+  WideString sChange;
+  WideString sChangeEx;
   bool bKeyDown;
   int nSelEnd;
   int nSelStart;
-  CFX_WideString sValue;
+  WideString sValue;
   bool bWillCommit;
   bool bFieldFull;
   bool bRC;
diff --git a/fpdfsdk/pwl/cpwl_appstream.cpp b/fpdfsdk/pwl/cpwl_appstream.cpp
index c7188ad..6a19efb 100644
--- a/fpdfsdk/pwl/cpwl_appstream.cpp
+++ b/fpdfsdk/pwl/cpwl_appstream.cpp
@@ -79,8 +79,8 @@
 class AutoClosedCommand {
  public:
   AutoClosedCommand(std::ostringstream* stream,
-                    CFX_ByteString open,
-                    CFX_ByteString close)
+                    ByteString open,
+                    ByteString close)
       : stream_(stream), close_(close) {
     *stream_ << open << "\n";
   }
@@ -89,7 +89,7 @@
 
  private:
   std::ostringstream* stream_;
-  CFX_ByteString close_;
+  ByteString close_;
 };
 
 class AutoClosedQCommand : public AutoClosedCommand {
@@ -99,8 +99,8 @@
   ~AutoClosedQCommand() override {}
 };
 
-CFX_ByteString GetColorAppStream(const CFX_Color& color,
-                                 const bool& bFillOrStroke) {
+ByteString GetColorAppStream(const CFX_Color& color,
+                             const bool& bFillOrStroke) {
   std::ostringstream sColorStream;
 
   switch (color.nColorType) {
@@ -125,10 +125,10 @@
       break;
   }
 
-  return CFX_ByteString(sColorStream);
+  return ByteString(sColorStream);
 }
 
-CFX_ByteString GetAP_Check(const CFX_FloatRect& crBBox) {
+ByteString GetAP_Check(const CFX_FloatRect& crBBox) {
   const float fWidth = crBBox.right - crBBox.left;
   const float fHeight = crBBox.top - crBBox.bottom;
 
@@ -174,10 +174,10 @@
          << pts[nNext][0].y << " " << kCurveToOperator << "\n";
   }
 
-  return CFX_ByteString(csAP);
+  return ByteString(csAP);
 }
 
-CFX_ByteString GetAP_Circle(const CFX_FloatRect& crBBox) {
+ByteString GetAP_Circle(const CFX_FloatRect& crBBox) {
   std::ostringstream csAP;
 
   float fWidth = crBBox.right - crBBox.left;
@@ -218,10 +218,10 @@
        << pt1.y - py * FX_BEZIER << " " << pt1.x << " " << pt1.y << " "
        << kCurveToOperator << "\n";
 
-  return CFX_ByteString(csAP);
+  return ByteString(csAP);
 }
 
-CFX_ByteString GetAP_Cross(const CFX_FloatRect& crBBox) {
+ByteString GetAP_Cross(const CFX_FloatRect& crBBox) {
   std::ostringstream csAP;
 
   csAP << crBBox.left << " " << crBBox.top << " " << kMoveToOperator << "\n";
@@ -230,10 +230,10 @@
   csAP << crBBox.left << " " << crBBox.bottom << " " << kMoveToOperator << "\n";
   csAP << crBBox.right << " " << crBBox.top << " " << kLineToOperator << "\n";
 
-  return CFX_ByteString(csAP);
+  return ByteString(csAP);
 }
 
-CFX_ByteString GetAP_Diamond(const CFX_FloatRect& crBBox) {
+ByteString GetAP_Diamond(const CFX_FloatRect& crBBox) {
   std::ostringstream csAP;
 
   float fWidth = crBBox.right - crBBox.left;
@@ -250,10 +250,10 @@
   csAP << pt4.x << " " << pt4.y << " " << kLineToOperator << "\n";
   csAP << pt1.x << " " << pt1.y << " " << kLineToOperator << "\n";
 
-  return CFX_ByteString(csAP);
+  return ByteString(csAP);
 }
 
-CFX_ByteString GetAP_Square(const CFX_FloatRect& crBBox) {
+ByteString GetAP_Square(const CFX_FloatRect& crBBox) {
   std::ostringstream csAP;
 
   csAP << crBBox.left << " " << crBBox.top << " " << kMoveToOperator << "\n";
@@ -263,10 +263,10 @@
   csAP << crBBox.left << " " << crBBox.bottom << " " << kLineToOperator << "\n";
   csAP << crBBox.left << " " << crBBox.top << " " << kLineToOperator << "\n";
 
-  return CFX_ByteString(csAP);
+  return ByteString(csAP);
 }
 
-CFX_ByteString GetAP_Star(const CFX_FloatRect& crBBox) {
+ByteString GetAP_Star(const CFX_FloatRect& crBBox) {
   std::ostringstream csAP;
 
   float fRadius = (crBBox.top - crBBox.bottom) / (1 + (float)cos(FX_PI / 5.0f));
@@ -292,10 +292,10 @@
     csAP << px[nNext] << " " << py[nNext] << " " << kLineToOperator << "\n";
   }
 
-  return CFX_ByteString(csAP);
+  return ByteString(csAP);
 }
 
-CFX_ByteString GetAP_HalfCircle(const CFX_FloatRect& crBBox, float fRotate) {
+ByteString GetAP_HalfCircle(const CFX_FloatRect& crBBox, float fRotate) {
   std::ostringstream csAP;
 
   float fWidth = crBBox.right - crBBox.left;
@@ -328,44 +328,44 @@
        << pt3.y + py * FX_BEZIER << " " << pt3.x << " " << pt3.y << " "
        << kCurveToOperator << "\n";
 
-  return CFX_ByteString(csAP);
+  return ByteString(csAP);
 }
 
-CFX_ByteString GetAppStream_Check(const CFX_FloatRect& rcBBox,
-                                  const CFX_Color& crText) {
+ByteString GetAppStream_Check(const CFX_FloatRect& rcBBox,
+                              const CFX_Color& crText) {
   std::ostringstream sAP;
   {
     AutoClosedQCommand q(&sAP);
     sAP << GetColorAppStream(crText, true) << GetAP_Check(rcBBox)
         << kFillOperator << "\n";
   }
-  return CFX_ByteString(sAP);
+  return ByteString(sAP);
 }
 
-CFX_ByteString GetAppStream_Circle(const CFX_FloatRect& rcBBox,
-                                   const CFX_Color& crText) {
+ByteString GetAppStream_Circle(const CFX_FloatRect& rcBBox,
+                               const CFX_Color& crText) {
   std::ostringstream sAP;
   {
     AutoClosedQCommand q(&sAP);
     sAP << GetColorAppStream(crText, true) << GetAP_Circle(rcBBox)
         << kFillOperator << "\n";
   }
-  return CFX_ByteString(sAP);
+  return ByteString(sAP);
 }
 
-CFX_ByteString GetAppStream_Cross(const CFX_FloatRect& rcBBox,
-                                  const CFX_Color& crText) {
+ByteString GetAppStream_Cross(const CFX_FloatRect& rcBBox,
+                              const CFX_Color& crText) {
   std::ostringstream sAP;
   {
     AutoClosedQCommand q(&sAP);
     sAP << GetColorAppStream(crText, false) << GetAP_Cross(rcBBox)
         << kStrokeOperator << "\n";
   }
-  return CFX_ByteString(sAP);
+  return ByteString(sAP);
 }
 
-CFX_ByteString GetAppStream_Diamond(const CFX_FloatRect& rcBBox,
-                                    const CFX_Color& crText) {
+ByteString GetAppStream_Diamond(const CFX_FloatRect& rcBBox,
+                                const CFX_Color& crText) {
   std::ostringstream sAP;
   {
     AutoClosedQCommand q(&sAP);
@@ -373,51 +373,51 @@
         << GetColorAppStream(crText, true) << GetAP_Diamond(rcBBox)
         << kFillOperator << "\n";
   }
-  return CFX_ByteString(sAP);
+  return ByteString(sAP);
 }
 
-CFX_ByteString GetAppStream_Square(const CFX_FloatRect& rcBBox,
-                                   const CFX_Color& crText) {
+ByteString GetAppStream_Square(const CFX_FloatRect& rcBBox,
+                               const CFX_Color& crText) {
   std::ostringstream sAP;
   {
     AutoClosedQCommand q(&sAP);
     sAP << GetColorAppStream(crText, true) << GetAP_Square(rcBBox)
         << kFillOperator << "\n";
   }
-  return CFX_ByteString(sAP);
+  return ByteString(sAP);
 }
 
-CFX_ByteString GetAppStream_Star(const CFX_FloatRect& rcBBox,
-                                 const CFX_Color& crText) {
+ByteString GetAppStream_Star(const CFX_FloatRect& rcBBox,
+                             const CFX_Color& crText) {
   std::ostringstream sAP;
   {
     AutoClosedQCommand q(&sAP);
     sAP << GetColorAppStream(crText, true) << GetAP_Star(rcBBox)
         << kFillOperator << "\n";
   }
-  return CFX_ByteString(sAP);
+  return ByteString(sAP);
 }
 
-CFX_ByteString GetCircleFillAppStream(const CFX_FloatRect& rect,
-                                      const CFX_Color& color) {
+ByteString GetCircleFillAppStream(const CFX_FloatRect& rect,
+                                  const CFX_Color& color) {
   std::ostringstream sAppStream;
-  CFX_ByteString sColor = GetColorAppStream(color, true);
+  ByteString sColor = GetColorAppStream(color, true);
   if (sColor.GetLength() > 0) {
     AutoClosedQCommand q(&sAppStream);
     sAppStream << sColor << GetAP_Circle(rect) << kFillOperator << "\n";
   }
-  return CFX_ByteString(sAppStream);
+  return ByteString(sAppStream);
 }
 
-CFX_ByteString GetCircleBorderAppStream(const CFX_FloatRect& rect,
-                                        float fWidth,
-                                        const CFX_Color& color,
-                                        const CFX_Color& crLeftTop,
-                                        const CFX_Color& crRightBottom,
-                                        BorderStyle nStyle,
-                                        const CPWL_Dash& dash) {
+ByteString GetCircleBorderAppStream(const CFX_FloatRect& rect,
+                                    float fWidth,
+                                    const CFX_Color& color,
+                                    const CFX_Color& crLeftTop,
+                                    const CFX_Color& crRightBottom,
+                                    BorderStyle nStyle,
+                                    const CPWL_Dash& dash) {
   std::ostringstream sAppStream;
-  CFX_ByteString sColor;
+  ByteString sColor;
 
   if (fWidth > 0.0f) {
     AutoClosedQCommand q(&sAppStream);
@@ -502,12 +502,12 @@
       } break;
     }
   }
-  return CFX_ByteString(sAppStream);
+  return ByteString(sAppStream);
 }
 
-CFX_ByteString GetCheckBoxAppStream(const CFX_FloatRect& rcBBox,
-                                    CheckStyle nStyle,
-                                    const CFX_Color& crText) {
+ByteString GetCheckBoxAppStream(const CFX_FloatRect& rcBBox,
+                                CheckStyle nStyle,
+                                const CFX_Color& crText) {
   CFX_FloatRect rcCenter = rcBBox.GetCenterSquare();
   switch (nStyle) {
     default:
@@ -530,9 +530,9 @@
   }
 }
 
-CFX_ByteString GetRadioButtonAppStream(const CFX_FloatRect& rcBBox,
-                                       CheckStyle nStyle,
-                                       const CFX_Color& crText) {
+ByteString GetRadioButtonAppStream(const CFX_FloatRect& rcBBox,
+                                   CheckStyle nStyle,
+                                   const CFX_Color& crText) {
   CFX_FloatRect rcCenter = rcBBox.GetCenterSquare();
   switch (nStyle) {
     default:
@@ -555,33 +555,33 @@
   }
 }
 
-CFX_ByteString GetFontSetString(IPVT_FontMap* pFontMap,
-                                int32_t nFontIndex,
-                                float fFontSize) {
+ByteString GetFontSetString(IPVT_FontMap* pFontMap,
+                            int32_t nFontIndex,
+                            float fFontSize) {
   if (!pFontMap)
-    return CFX_ByteString();
+    return ByteString();
 
-  CFX_ByteString sFontAlias = pFontMap->GetPDFFontAlias(nFontIndex);
+  ByteString sFontAlias = pFontMap->GetPDFFontAlias(nFontIndex);
   if (sFontAlias.GetLength() <= 0 || fFontSize <= 0)
-    return CFX_ByteString();
+    return ByteString();
 
   std::ostringstream sRet;
   sRet << "/" << sFontAlias << " " << fFontSize << " "
        << kSetTextFontAndSizeOperator << "\n";
-  return CFX_ByteString(sRet);
+  return ByteString(sRet);
 }
 
-CFX_ByteString GetWordRenderString(const CFX_ByteString& strWords) {
+ByteString GetWordRenderString(const ByteString& strWords) {
   if (strWords.GetLength() > 0) {
     return PDF_EncodeString(strWords, false) + " " + kShowTextOperator + "\n";
   }
-  return CFX_ByteString();
+  return ByteString();
 }
 
-CFX_ByteString GetEditAppStream(CPWL_EditImpl* pEdit,
-                                const CFX_PointF& ptOffset,
-                                bool bContinuous,
-                                uint16_t SubWord) {
+ByteString GetEditAppStream(CPWL_EditImpl* pEdit,
+                            const CFX_PointF& ptOffset,
+                            bool bContinuous,
+                            uint16_t SubWord) {
   CPWL_EditImpl_Iterator* pIterator = pEdit->GetIterator();
   pIterator->SetAt(0);
 
@@ -597,7 +597,7 @@
     if (bContinuous) {
       if (place.LineCmp(oldplace) != 0) {
         if (sWords.tellp() > 0) {
-          sEditStream << GetWordRenderString(CFX_ByteString(sWords));
+          sEditStream << GetWordRenderString(ByteString(sWords));
           sWords.str("");
         }
 
@@ -624,7 +624,7 @@
       if (pIterator->GetWord(word)) {
         if (word.nFontIndex != nCurFontIndex) {
           if (sWords.tellp() > 0) {
-            sEditStream << GetWordRenderString(CFX_ByteString(sWords));
+            sEditStream << GetWordRenderString(ByteString(sWords));
             sWords.str("");
           }
           sEditStream << GetFontSetString(pEdit->GetFontMap(), word.nFontIndex,
@@ -661,7 +661,7 @@
   }
 
   if (sWords.tellp() > 0) {
-    sEditStream << GetWordRenderString(CFX_ByteString(sWords));
+    sEditStream << GetWordRenderString(ByteString(sWords));
     sWords.str("");
   }
 
@@ -681,14 +681,14 @@
     sAppStream << sEditStream.str();
   }
 
-  return CFX_ByteString(sAppStream);
+  return ByteString(sAppStream);
 }
 
-CFX_ByteString GenerateIconAppStream(CPDF_IconFit& fit,
-                                     CPDF_Stream* pIconStream,
-                                     const CFX_FloatRect& rcIcon) {
+ByteString GenerateIconAppStream(CPDF_IconFit& fit,
+                                 CPDF_Stream* pIconStream,
+                                 const CFX_FloatRect& rcIcon) {
   if (rcIcon.IsEmpty() || !pIconStream)
-    return CFX_ByteString();
+    return ByteString();
 
   CPWL_Icon icon;
   CPWL_Wnd::CreateParams cp;
@@ -698,9 +698,9 @@
   icon.SetPDFStream(pIconStream);
   icon.Move(rcIcon, false, false);
 
-  CFX_ByteString sAlias = icon.GetImageAlias();
+  ByteString sAlias = icon.GetImageAlias();
   if (sAlias.GetLength() <= 0)
-    return CFX_ByteString();
+    return ByteString();
 
   CFX_FloatRect rcPlate = icon.GetClientRect();
   CFX_Matrix mt = icon.GetImageMatrix().GetInverse();
@@ -732,17 +732,17 @@
   }
   icon.Destroy();
 
-  return CFX_ByteString(str);
+  return ByteString(str);
 }
 
-CFX_ByteString GetPushButtonAppStream(const CFX_FloatRect& rcBBox,
-                                      IPVT_FontMap* pFontMap,
-                                      CPDF_Stream* pIconStream,
-                                      CPDF_IconFit& IconFit,
-                                      const CFX_WideString& sLabel,
-                                      const CFX_Color& crText,
-                                      float fFontSize,
-                                      ButtonStyle nLayOut) {
+ByteString GetPushButtonAppStream(const CFX_FloatRect& rcBBox,
+                                  IPVT_FontMap* pFontMap,
+                                  CPDF_Stream* pIconStream,
+                                  CPDF_IconFit& IconFit,
+                                  const WideString& sLabel,
+                                  const CFX_Color& crText,
+                                  float fFontSize,
+                                  ButtonStyle nLayOut) {
   const float fAutoFontScale = 1.0f / 3.0f;
 
   auto pEdit = pdfium::MakeUnique<CPWL_EditImpl>();
@@ -902,7 +902,7 @@
 
   if (!rcLabel.IsEmpty()) {
     pEdit->SetPlateRect(rcLabel);
-    CFX_ByteString sEdit =
+    ByteString sEdit =
         GetEditAppStream(pEdit.get(), CFX_PointF(0.0f, 0.0f), true, 0);
     if (sEdit.GetLength() > 0) {
       AutoClosedCommand bt(&sTemp, kTextBeginOperator, kTextEndOperator);
@@ -911,7 +911,7 @@
   }
 
   if (sTemp.tellp() <= 0)
-    return CFX_ByteString();
+    return ByteString();
 
   std::ostringstream sAppStream;
   {
@@ -923,18 +923,18 @@
                << kEndPathNoFillOrStrokeOperator << "\n";
     sAppStream << sTemp.str().c_str();
   }
-  return CFX_ByteString(sAppStream);
+  return ByteString(sAppStream);
 }
 
-CFX_ByteString GetBorderAppStreamInternal(const CFX_FloatRect& rect,
-                                          float fWidth,
-                                          const CFX_Color& color,
-                                          const CFX_Color& crLeftTop,
-                                          const CFX_Color& crRightBottom,
-                                          BorderStyle nStyle,
-                                          const CPWL_Dash& dash) {
+ByteString GetBorderAppStreamInternal(const CFX_FloatRect& rect,
+                                      float fWidth,
+                                      const CFX_Color& color,
+                                      const CFX_Color& crLeftTop,
+                                      const CFX_Color& crRightBottom,
+                                      BorderStyle nStyle,
+                                      const CPWL_Dash& dash) {
   std::ostringstream sAppStream;
-  CFX_ByteString sColor;
+  ByteString sColor;
 
   float fLeft = rect.left;
   float fRight = rect.right;
@@ -1044,12 +1044,12 @@
     }
   }
 
-  return CFX_ByteString(sAppStream);
+  return ByteString(sAppStream);
 }
 
-CFX_ByteString GetDropButtonAppStream(const CFX_FloatRect& rcBBox) {
+ByteString GetDropButtonAppStream(const CFX_FloatRect& rcBBox) {
   if (rcBBox.IsEmpty())
-    return CFX_ByteString();
+    return ByteString();
 
   std::ostringstream sAppStream;
   {
@@ -1087,13 +1087,13 @@
                << kLineToOperator << " " << kFillOperator << "\n";
   }
 
-  return CFX_ByteString(sAppStream);
+  return ByteString(sAppStream);
 }
 
-CFX_ByteString GetRectFillAppStream(const CFX_FloatRect& rect,
-                                    const CFX_Color& color) {
+ByteString GetRectFillAppStream(const CFX_FloatRect& rect,
+                                const CFX_Color& color) {
   std::ostringstream sAppStream;
-  CFX_ByteString sColor = GetColorAppStream(color, true);
+  ByteString sColor = GetColorAppStream(color, true);
   if (sColor.GetLength() > 0) {
     AutoClosedQCommand q(&sAppStream);
     sAppStream << sColor << rect.left << " " << rect.bottom << " "
@@ -1101,7 +1101,7 @@
                << kAppendRectOperator << " " << kFillOperator << "\n";
   }
 
-  return CFX_ByteString(sAppStream);
+  return ByteString(sAppStream);
 }
 
 }  // namespace
@@ -1177,7 +1177,7 @@
 
   CFX_FloatRect rcClient = rcWindow.GetDeflated(fBorderWidth, fBorderWidth);
   CFX_Color crText(COLORTYPE_GRAY, 0);
-  CFX_ByteString csNameTag;
+  ByteString csNameTag;
   CPDF_DefaultAppearance da = pControl->GetDefaultAppearance();
   if (da.HasColor()) {
     da.GetColor(iColorType, fc);
@@ -1187,10 +1187,10 @@
   if (da.HasFont())
     csNameTag = da.GetFont(&fFontSize);
 
-  CFX_WideString csWCaption;
-  CFX_WideString csNormalCaption;
-  CFX_WideString csRolloverCaption;
-  CFX_WideString csDownCaption;
+  WideString csWCaption;
+  WideString csNormalCaption;
+  WideString csRolloverCaption;
+  WideString csDownCaption;
   if (pControl->HasMKEntry("CA"))
     csNormalCaption = pControl->GetNormalCaption();
 
@@ -1240,7 +1240,7 @@
       widget_->GetInterForm()->GetFormFillEnv()->GetSysHandler());
   font_map.SetAPType("N");
 
-  CFX_ByteString csAP =
+  ByteString csAP =
       GetRectFillAppStream(rcWindow, crBackground) +
       GetBorderAppStreamInternal(rcWindow, fBorderWidth, crBorder, crLeftTop,
                                  crRightBottom, nBorderStyle, dsBorder) +
@@ -1359,7 +1359,7 @@
   }
 
   CheckStyle nStyle = CheckStyle::kCheck;
-  CFX_WideString csWCaption = pControl->GetNormalCaption();
+  WideString csWCaption = pControl->GetNormalCaption();
   if (csWCaption.GetLength() > 0) {
     switch (csWCaption[0]) {
       case L'l':
@@ -1383,12 +1383,12 @@
     }
   }
 
-  CFX_ByteString csAP_N_ON =
+  ByteString csAP_N_ON =
       GetRectFillAppStream(rcWindow, crBackground) +
       GetBorderAppStreamInternal(rcWindow, fBorderWidth, crBorder, crLeftTop,
                                  crRightBottom, nBorderStyle, dsBorder);
 
-  CFX_ByteString csAP_N_OFF = csAP_N_ON;
+  ByteString csAP_N_OFF = csAP_N_ON;
 
   switch (nBorderStyle) {
     case BorderStyle::BEVELED: {
@@ -1406,12 +1406,12 @@
       break;
   }
 
-  CFX_ByteString csAP_D_ON =
+  ByteString csAP_D_ON =
       GetRectFillAppStream(rcWindow, crBackground - 0.25f) +
       GetBorderAppStreamInternal(rcWindow, fBorderWidth, crBorder, crLeftTop,
                                  crRightBottom, nBorderStyle, dsBorder);
 
-  CFX_ByteString csAP_D_OFF = csAP_D_ON;
+  ByteString csAP_D_OFF = csAP_D_ON;
 
   csAP_N_ON += GetCheckBoxAppStream(rcClient, nStyle, crText);
   csAP_D_ON += GetCheckBoxAppStream(rcClient, nStyle, crText);
@@ -1422,7 +1422,7 @@
   Write("D", csAP_D_ON, pControl->GetCheckedAPState());
   Write("D", csAP_D_OFF, "Off");
 
-  CFX_ByteString csAS = widget_->GetAppState();
+  ByteString csAS = widget_->GetAppState();
   if (csAS.IsEmpty())
     widget_->SetAppState("Off");
 }
@@ -1475,7 +1475,7 @@
   }
 
   CheckStyle nStyle = CheckStyle::kCircle;
-  CFX_WideString csWCaption = pControl->GetNormalCaption();
+  WideString csWCaption = pControl->GetNormalCaption();
   if (csWCaption.GetLength() > 0) {
     switch (csWCaption[0]) {
       case L'8':
@@ -1499,7 +1499,7 @@
     }
   }
 
-  CFX_ByteString csAP_N_ON;
+  ByteString csAP_N_ON;
   CFX_FloatRect rcCenter = rcWindow.GetCenterSquare().GetDeflated(1.0f, 1.0f);
   if (nStyle == CheckStyle::kCircle) {
     if (nBorderStyle == BorderStyle::BEVELED) {
@@ -1521,7 +1521,7 @@
                                    crRightBottom, nBorderStyle, dsBorder);
   }
 
-  CFX_ByteString csAP_N_OFF = csAP_N_ON;
+  ByteString csAP_N_OFF = csAP_N_ON;
 
   switch (nBorderStyle) {
     case BorderStyle::BEVELED: {
@@ -1539,7 +1539,7 @@
       break;
   }
 
-  CFX_ByteString csAP_D_ON;
+  ByteString csAP_D_ON;
 
   if (nStyle == CheckStyle::kCircle) {
     CFX_Color crBK = crBackground - 0.25f;
@@ -1563,7 +1563,7 @@
                                    crRightBottom, nBorderStyle, dsBorder);
   }
 
-  CFX_ByteString csAP_D_OFF = csAP_D_ON;
+  ByteString csAP_D_OFF = csAP_D_ON;
 
   csAP_N_ON += GetRadioButtonAppStream(rcClient, nStyle, crText);
   csAP_D_ON += GetRadioButtonAppStream(rcClient, nStyle, crText);
@@ -1574,12 +1574,12 @@
   Write("D", csAP_D_ON, pControl->GetCheckedAPState());
   Write("D", csAP_D_OFF, "Off");
 
-  CFX_ByteString csAS = widget_->GetAppState();
+  ByteString csAS = widget_->GetAppState();
   if (csAS.IsEmpty())
     widget_->SetAppState("Off");
 }
 
-void CPWL_AppStream::SetAsComboBox(const CFX_WideString* sValue) {
+void CPWL_AppStream::SetAsComboBox(const WideString* sValue) {
   CPDF_FormControl* pControl = widget_->GetFormControl();
   CPDF_FormField* pField = pControl->GetField();
   std::ostringstream sBody;
@@ -1623,7 +1623,7 @@
   }
 
   CFX_FloatRect rcContent = pEdit->GetContentRect();
-  CFX_ByteString sEdit = GetEditAppStream(pEdit.get(), CFX_PointF(), true, 0);
+  ByteString sEdit = GetEditAppStream(pEdit.get(), CFX_PointF(), true, 0);
   if (sEdit.GetLength() > 0) {
     sBody << "/Tx ";
     AutoClosedCommand bmc(&sBody, kMarkedSequenceBeginOperator,
@@ -1645,7 +1645,7 @@
 
   sBody << GetDropButtonAppStream(rcButton);
   Write("N",
-        GetBackgroundAppStream() + GetBorderAppStream() + CFX_ByteString(sBody),
+        GetBackgroundAppStream() + GetBorderAppStream() + ByteString(sBody),
         "");
 }
 
@@ -1729,11 +1729,11 @@
           << sList.str();
   }
   Write("N",
-        GetBackgroundAppStream() + GetBorderAppStream() + CFX_ByteString(sBody),
+        GetBackgroundAppStream() + GetBorderAppStream() + ByteString(sBody),
         "");
 }
 
-void CPWL_AppStream::SetAsTextField(const CFX_WideString* sValue) {
+void CPWL_AppStream::SetAsTextField(const WideString* sValue) {
   CPDF_FormControl* pControl = widget_->GetFormControl();
   CPDF_FormField* pField = pControl->GetField();
   std::ostringstream sBody;
@@ -1771,7 +1771,7 @@
   float fFontSize = widget_->GetFontSize();
 
 #ifdef PDF_ENABLE_XFA
-  CFX_WideString sValueTmp;
+  WideString sValueTmp;
   if (!sValue && widget_->GetMixXFAWidget()) {
     sValueTmp = widget_->GetValue(true);
     sValue = &sValueTmp;
@@ -1802,7 +1802,7 @@
   pEdit->SetText(sValue ? *sValue : pField->GetValue());
 
   CFX_FloatRect rcContent = pEdit->GetContentRect();
-  CFX_ByteString sEdit =
+  ByteString sEdit =
       GetEditAppStream(pEdit.get(), CFX_PointF(), !bCharArray, subWord);
 
   if (sEdit.GetLength() > 0) {
@@ -1828,7 +1828,7 @@
   if (bCharArray) {
     switch (widget_->GetBorderStyle()) {
       case BorderStyle::SOLID: {
-        CFX_ByteString sColor =
+        ByteString sColor =
             GetColorAppStream(widget_->GetBorderPWLColor(), false);
         if (sColor.GetLength() > 0) {
           AutoClosedQCommand q(&sLines);
@@ -1851,7 +1851,7 @@
         break;
       }
       case BorderStyle::DASH: {
-        CFX_ByteString sColor =
+        ByteString sColor =
             GetColorAppStream(widget_->GetBorderPWLColor(), false);
         if (sColor.GetLength() > 0) {
           CPWL_Dash dsBorder = CPWL_Dash(3, 3, 0);
@@ -1880,16 +1880,15 @@
   }
 
   Write("N",
-        GetBackgroundAppStream() + GetBorderAppStream() +
-            CFX_ByteString(sLines) + CFX_ByteString(sBody),
+        GetBackgroundAppStream() + GetBorderAppStream() + ByteString(sLines) +
+            ByteString(sBody),
         "");
 }
 
-void CPWL_AppStream::AddImage(const CFX_ByteString& sAPType,
-                              CPDF_Stream* pImage) {
+void CPWL_AppStream::AddImage(const ByteString& sAPType, CPDF_Stream* pImage) {
   CPDF_Stream* pStream = dict_->GetStreamFor(sAPType);
   CPDF_Dictionary* pStreamDict = pStream->GetDict();
-  CFX_ByteString sImageAlias = "IMG";
+  ByteString sImageAlias = "IMG";
 
   if (CPDF_Dictionary* pImageDict = pImage->GetDict()) {
     sImageAlias = pImageDict->GetStringFor("Name");
@@ -1908,9 +1907,9 @@
                                       pImage->GetObjNum());
 }
 
-void CPWL_AppStream::Write(const CFX_ByteString& sAPType,
-                           const CFX_ByteString& sContents,
-                           const CFX_ByteString& sAPState) {
+void CPWL_AppStream::Write(const ByteString& sAPType,
+                           const ByteString& sContents,
+                           const ByteString& sAPState) {
   CPDF_Stream* pStream = nullptr;
   CPDF_Dictionary* pParentDict = nullptr;
   if (sAPState.IsEmpty()) {
@@ -1947,19 +1946,19 @@
                                   sContents.GetLength());
 }
 
-void CPWL_AppStream::Remove(const CFX_ByteString& sAPType) {
+void CPWL_AppStream::Remove(const ByteString& sAPType) {
   dict_->RemoveFor(sAPType);
 }
 
-CFX_ByteString CPWL_AppStream::GetBackgroundAppStream() const {
+ByteString CPWL_AppStream::GetBackgroundAppStream() const {
   CFX_Color crBackground = widget_->GetFillPWLColor();
   if (crBackground.nColorType != COLORTYPE_TRANSPARENT)
     return GetRectFillAppStream(widget_->GetRotatedRect(), crBackground);
 
-  return CFX_ByteString();
+  return ByteString();
 }
 
-CFX_ByteString CPWL_AppStream::GetBorderAppStream() const {
+ByteString CPWL_AppStream::GetBorderAppStream() const {
   CFX_FloatRect rcWindow = widget_->GetRotatedRect();
   CFX_Color crBorder = widget_->GetBorderPWLColor();
   CFX_Color crBackground = widget_->GetFillPWLColor();
diff --git a/fpdfsdk/pwl/cpwl_appstream.h b/fpdfsdk/pwl/cpwl_appstream.h
index 2043c7b..d73e3aa 100644
--- a/fpdfsdk/pwl/cpwl_appstream.h
+++ b/fpdfsdk/pwl/cpwl_appstream.h
@@ -22,19 +22,19 @@
   void SetAsPushButton();
   void SetAsCheckBox();
   void SetAsRadioButton();
-  void SetAsComboBox(const CFX_WideString* sValue);
+  void SetAsComboBox(const WideString* sValue);
   void SetAsListBox();
-  void SetAsTextField(const CFX_WideString* sValue);
+  void SetAsTextField(const WideString* sValue);
 
  private:
-  void AddImage(const CFX_ByteString& sAPType, CPDF_Stream* pImage);
-  void Write(const CFX_ByteString& sAPType,
-             const CFX_ByteString& sContents,
-             const CFX_ByteString& sAPState);
-  void Remove(const CFX_ByteString& sAPType);
+  void AddImage(const ByteString& sAPType, CPDF_Stream* pImage);
+  void Write(const ByteString& sAPType,
+             const ByteString& sContents,
+             const ByteString& sAPState);
+  void Remove(const ByteString& sAPType);
 
-  CFX_ByteString GetBackgroundAppStream() const;
-  CFX_ByteString GetBorderAppStream() const;
+  ByteString GetBackgroundAppStream() const;
+  ByteString GetBorderAppStream() const;
 
   CFX_UnownedPtr<CPDFSDK_Widget> widget_;
   CFX_UnownedPtr<CPDF_Dictionary> dict_;
diff --git a/fpdfsdk/pwl/cpwl_button.cpp b/fpdfsdk/pwl/cpwl_button.cpp
index fc0479b..5c06a98 100644
--- a/fpdfsdk/pwl/cpwl_button.cpp
+++ b/fpdfsdk/pwl/cpwl_button.cpp
@@ -11,7 +11,7 @@
 
 CPWL_Button::~CPWL_Button() {}
 
-CFX_ByteString CPWL_Button::GetClassName() const {
+ByteString CPWL_Button::GetClassName() const {
   return "CPWL_Button";
 }
 
diff --git a/fpdfsdk/pwl/cpwl_button.h b/fpdfsdk/pwl/cpwl_button.h
index f26ae1c..70f5ef1 100644
--- a/fpdfsdk/pwl/cpwl_button.h
+++ b/fpdfsdk/pwl/cpwl_button.h
@@ -15,7 +15,7 @@
   ~CPWL_Button() override;
 
   // CPWL_Wnd
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   void OnCreate(CreateParams* pParamsToAdjust) override;
   bool OnLButtonDown(const CFX_PointF& point, uint32_t nFlag) override;
   bool OnLButtonUp(const CFX_PointF& point, uint32_t nFlag) override;
diff --git a/fpdfsdk/pwl/cpwl_caret.cpp b/fpdfsdk/pwl/cpwl_caret.cpp
index 3d05961..b1040bc 100644
--- a/fpdfsdk/pwl/cpwl_caret.cpp
+++ b/fpdfsdk/pwl/cpwl_caret.cpp
@@ -19,7 +19,7 @@
 
 CPWL_Caret::~CPWL_Caret() {}
 
-CFX_ByteString CPWL_Caret::GetClassName() const {
+ByteString CPWL_Caret::GetClassName() const {
   return "CPWL_Caret";
 }
 
diff --git a/fpdfsdk/pwl/cpwl_caret.h b/fpdfsdk/pwl/cpwl_caret.h
index 3203470..fb0fa89 100644
--- a/fpdfsdk/pwl/cpwl_caret.h
+++ b/fpdfsdk/pwl/cpwl_caret.h
@@ -15,7 +15,7 @@
   ~CPWL_Caret() override;
 
   // CPWL_Wnd
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   void DrawThisAppearance(CFX_RenderDevice* pDevice,
                           const CFX_Matrix& mtUser2Device) override;
   void InvalidateRect(CFX_FloatRect* pRect) override;
diff --git a/fpdfsdk/pwl/cpwl_combo_box.cpp b/fpdfsdk/pwl/cpwl_combo_box.cpp
index 0365194..5bb9124 100644
--- a/fpdfsdk/pwl/cpwl_combo_box.cpp
+++ b/fpdfsdk/pwl/cpwl_combo_box.cpp
@@ -147,7 +147,7 @@
 
 CPWL_ComboBox::~CPWL_ComboBox() {}
 
-CFX_ByteString CPWL_ComboBox::GetClassName() const {
+ByteString CPWL_ComboBox::GetClassName() const {
   return "CPWL_ComboBox";
 }
 
@@ -177,31 +177,31 @@
   CPWL_Wnd::KillFocus();
 }
 
-CFX_WideString CPWL_ComboBox::GetSelectedText() {
+WideString CPWL_ComboBox::GetSelectedText() {
   if (m_pEdit)
     return m_pEdit->GetSelectedText();
 
-  return CFX_WideString();
+  return WideString();
 }
 
-void CPWL_ComboBox::ReplaceSelection(const CFX_WideString& text) {
+void CPWL_ComboBox::ReplaceSelection(const WideString& text) {
   if (m_pEdit)
     m_pEdit->ReplaceSelection(text);
 }
 
-CFX_WideString CPWL_ComboBox::GetText() const {
+WideString CPWL_ComboBox::GetText() const {
   if (m_pEdit) {
     return m_pEdit->GetText();
   }
-  return CFX_WideString();
+  return WideString();
 }
 
-void CPWL_ComboBox::SetText(const CFX_WideString& text) {
+void CPWL_ComboBox::SetText(const WideString& text) {
   if (m_pEdit)
     m_pEdit->SetText(text);
 }
 
-void CPWL_ComboBox::AddString(const CFX_WideString& str) {
+void CPWL_ComboBox::AddString(const WideString& str) {
   if (m_pList)
     m_pList->AddString(str);
 }
diff --git a/fpdfsdk/pwl/cpwl_combo_box.h b/fpdfsdk/pwl/cpwl_combo_box.h
index b431191..c9fa2cd 100644
--- a/fpdfsdk/pwl/cpwl_combo_box.h
+++ b/fpdfsdk/pwl/cpwl_combo_box.h
@@ -50,7 +50,7 @@
   CPWL_Edit* GetEdit() const { return m_pEdit.Get(); }
 
   // CPWL_Wnd:
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   void OnCreate(CreateParams* pParamsToAdjust) override;
   void OnDestroy() override;
   bool OnKeyDown(uint16_t nChar, uint32_t nFlag) override;
@@ -62,14 +62,14 @@
   CFX_FloatRect GetFocusRect() const override;
   void SetFocus() override;
   void KillFocus() override;
-  CFX_WideString GetSelectedText() override;
-  void ReplaceSelection(const CFX_WideString& text) override;
+  WideString GetSelectedText() override;
+  void ReplaceSelection(const WideString& text) override;
 
   void SetFillerNotify(IPWL_Filler_Notify* pNotify);
 
-  CFX_WideString GetText() const;
-  void SetText(const CFX_WideString& text);
-  void AddString(const CFX_WideString& str);
+  WideString GetText() const;
+  void SetText(const WideString& text);
+  void AddString(const WideString& str);
   int32_t GetSelect() const;
   void SetSelect(int32_t nItemIndex);
 
diff --git a/fpdfsdk/pwl/cpwl_edit.cpp b/fpdfsdk/pwl/cpwl_edit.cpp
index 8fbafd0..c71dbe4 100644
--- a/fpdfsdk/pwl/cpwl_edit.cpp
+++ b/fpdfsdk/pwl/cpwl_edit.cpp
@@ -35,18 +35,18 @@
   ASSERT(!m_bFocus);
 }
 
-CFX_ByteString CPWL_Edit::GetClassName() const {
+ByteString CPWL_Edit::GetClassName() const {
   return PWL_CLASSNAME_EDIT;
 }
 
-void CPWL_Edit::SetText(const CFX_WideString& csText) {
-  CFX_WideString swText = csText;
+void CPWL_Edit::SetText(const WideString& csText) {
+  WideString swText = csText;
   if (!HasFlag(PES_RICH)) {
     m_pEdit->SetText(swText);
     return;
   }
 
-  CFX_ByteString sValue = CFX_ByteString::FromUnicode(swText);
+  ByteString sValue = ByteString::FromUnicode(swText);
   std::unique_ptr<CXML_Element> pXML(
       CXML_Element::Parse(sValue.c_str(), sValue.GetLength()));
   if (!pXML) {
@@ -62,7 +62,7 @@
     if (!pSubElement || !pSubElement->GetTagName().EqualNoCase("p"))
       continue;
 
-    CFX_WideString swSection;
+    WideString swSection;
     int nSubChild = pSubElement->CountChildren();
     for (int32_t j = 0; j < nSubChild; j++) {
       CXML_Content* pSubContent = ToContent(pSubElement->GetChild(j));
@@ -443,7 +443,7 @@
   m_pEdit->SetLimitChar(nLimitChar);
 }
 
-void CPWL_Edit::ReplaceSel(const CFX_WideString& wsText) {
+void CPWL_Edit::ReplaceSel(const WideString& wsText) {
   m_pEdit->ClearSelection();
   m_pEdit->InsertText(wsText, FX_CHARSET_Default);
 }
@@ -463,8 +463,8 @@
 
   if (nChar == FWL_VKEY_Delete) {
     if (m_pFillerNotify) {
-      CFX_WideString strChange;
-      CFX_WideString strChangeEx;
+      WideString strChange;
+      WideString strChangeEx;
 
       int nSelStart = 0;
       int nSelEnd = 0;
@@ -532,7 +532,7 @@
 
   if (!IsCTRLpressed(nFlag)) {
     if (m_pFillerNotify) {
-      CFX_WideString swChange;
+      WideString swChange;
 
       int nSelStart = 0;
       int nSelEnd = 0;
@@ -550,7 +550,7 @@
           break;
       }
 
-      CFX_WideString strChangeEx;
+      WideString strChangeEx;
       std::tie(bRC, bExit) = m_pFillerNotify->OnBeforeKeyStroke(
           GetAttachedData(), swChange, strChangeEx, nSelStart, nSelEnd, true,
           nFlag);
diff --git a/fpdfsdk/pwl/cpwl_edit.h b/fpdfsdk/pwl/cpwl_edit.h
index 3e8de04..d61b947 100644
--- a/fpdfsdk/pwl/cpwl_edit.h
+++ b/fpdfsdk/pwl/cpwl_edit.h
@@ -27,8 +27,8 @@
                                float* fPopupRet) = 0;
   virtual std::pair<bool, bool> OnBeforeKeyStroke(
       CPWL_Wnd::PrivateData* pAttached,
-      CFX_WideString& strChange,
-      const CFX_WideString& strChangeEx,
+      WideString& strChange,
+      const WideString& strChangeEx,
       int nSelStart,
       int nSelEnd,
       bool bKeyDown,
@@ -47,7 +47,7 @@
   ~CPWL_Edit() override;
 
   // CPWL_EditCtrl
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   void OnCreated() override;
   void RePosChildWnd() override;
   CFX_FloatRect GetClientRect() const override;
@@ -80,8 +80,8 @@
 
   void CutText();
 
-  void SetText(const CFX_WideString& csText);
-  void ReplaceSel(const CFX_WideString& csText);
+  void SetText(const WideString& csText);
+  void ReplaceSel(const WideString& csText);
 
   bool IsTextFull() const;
 
diff --git a/fpdfsdk/pwl/cpwl_edit_ctrl.cpp b/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
index 7baaaa8..f0fc408 100644
--- a/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_ctrl.cpp
@@ -52,14 +52,14 @@
   }
 }
 
-CFX_WideString CPWL_EditCtrl::GetSelectedText() {
+WideString CPWL_EditCtrl::GetSelectedText() {
   if (m_pEdit)
     return m_pEdit->GetSelectedText();
 
-  return CFX_WideString();
+  return WideString();
 }
 
-void CPWL_EditCtrl::ReplaceSelection(const CFX_WideString& text) {
+void CPWL_EditCtrl::ReplaceSelection(const WideString& text) {
   if (!m_pEdit)
     return;
 
@@ -338,7 +338,7 @@
   }
 }
 
-CFX_WideString CPWL_EditCtrl::GetText() const {
+WideString CPWL_EditCtrl::GetText() const {
   return m_pEdit->GetText();
 }
 
diff --git a/fpdfsdk/pwl/cpwl_edit_ctrl.h b/fpdfsdk/pwl/cpwl_edit_ctrl.h
index eb4470f..37ac320 100644
--- a/fpdfsdk/pwl/cpwl_edit_ctrl.h
+++ b/fpdfsdk/pwl/cpwl_edit_ctrl.h
@@ -25,7 +25,7 @@
   CPWL_EditCtrl();
   ~CPWL_EditCtrl() override;
 
-  CFX_WideString GetText() const;
+  WideString GetText() const;
   void SetSelection(int32_t nStartChar, int32_t nEndChar);
   void GetSelection(int32_t& nStartChar, int32_t& nEndChar) const;
   void ClearSelection();
@@ -60,8 +60,8 @@
   void SetFontSize(float fFontSize) override;
   float GetFontSize() const override;
   void SetCursor() override;
-  CFX_WideString GetSelectedText() override;
-  void ReplaceSelection(const CFX_WideString& text) override;
+  WideString GetSelectedText() override;
+  void ReplaceSelection(const WideString& text) override;
 
   void SetCaret(bool bVisible,
                 const CFX_PointF& ptHead,
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.cpp b/fpdfsdk/pwl/cpwl_edit_impl.cpp
index c44301f..c651999 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_impl.cpp
@@ -43,7 +43,7 @@
                     CPDF_Font* pFont,
                     float fFontSize,
                     const CFX_Matrix& mtUser2Device,
-                    const CFX_ByteString& str,
+                    const ByteString& str,
                     FX_ARGB crTextFill,
                     int32_t nHorzScale) {
   if (!pFont)
@@ -394,7 +394,7 @@
 
 CFXEU_Clear::CFXEU_Clear(CPWL_EditImpl* pEdit,
                          const CPVT_WordRange& wrSel,
-                         const CFX_WideString& swText)
+                         const WideString& swText)
     : m_pEdit(pEdit), m_wrSel(wrSel), m_swText(swText) {
   ASSERT(m_pEdit);
 }
@@ -417,7 +417,7 @@
 CFXEU_InsertText::CFXEU_InsertText(CPWL_EditImpl* pEdit,
                                    const CPVT_WordPlace& wpOldPlace,
                                    const CPVT_WordPlace& wpNewPlace,
-                                   const CFX_WideString& swText,
+                                   const WideString& swText,
                                    int32_t charset)
     : m_pEdit(pEdit),
       m_wpOld(wpOldPlace),
@@ -526,7 +526,7 @@
             DrawTextString(
                 pDevice, CFX_PointF(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
                 pFontMap->GetPDFFont(nFontIndex), fFontSize, mtUser2Device,
-                CFX_ByteString(sTextBuf), crOldFill, nHorzScale);
+                ByteString(sTextBuf), crOldFill, nHorzScale);
 
             sTextBuf.str("");
           }
@@ -553,7 +553,7 @@
     DrawTextString(pDevice,
                    CFX_PointF(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
                    pFontMap->GetPDFFont(nFontIndex), fFontSize, mtUser2Device,
-                   CFX_ByteString(sTextBuf), crOldFill, nHorzScale);
+                   ByteString(sTextBuf), crOldFill, nHorzScale);
   }
 }
 
@@ -736,8 +736,8 @@
   return m_wpCaret;
 }
 
-CFX_WideString CPWL_EditImpl::GetText() const {
-  CFX_WideString swRet;
+WideString CPWL_EditImpl::GetText() const {
+  WideString swRet;
   if (!m_pVT->IsValid())
     return swRet;
 
@@ -757,8 +757,8 @@
   return swRet;
 }
 
-CFX_WideString CPWL_EditImpl::GetRangeText(const CPVT_WordRange& range) const {
-  CFX_WideString swRet;
+WideString CPWL_EditImpl::GetRangeText(const CPVT_WordRange& range) const {
+  WideString swRet;
   if (!m_pVT->IsValid())
     return swRet;
 
@@ -783,7 +783,7 @@
   return swRet;
 }
 
-CFX_WideString CPWL_EditImpl::GetSelectedText() const {
+WideString CPWL_EditImpl::GetSelectedText() const {
   return GetRangeText(m_SelState.ConvertToWordRange());
 }
 
@@ -802,7 +802,7 @@
   return m_SelState.ConvertToWordRange();
 }
 
-void CPWL_EditImpl::SetText(const CFX_WideString& sText) {
+void CPWL_EditImpl::SetText(const WideString& sText) {
   Empty();
   DoInsertText(CPVT_WordPlace(0, 0, -1), sText, FX_CHARSET_Default);
   Paint();
@@ -828,7 +828,7 @@
   return Clear(true, true);
 }
 
-bool CPWL_EditImpl::InsertText(const CFX_WideString& sText, int32_t charset) {
+bool CPWL_EditImpl::InsertText(const WideString& sText, int32_t charset) {
   return InsertText(sText, charset, true, true);
 }
 
@@ -1702,7 +1702,7 @@
   return true;
 }
 
-bool CPWL_EditImpl::InsertText(const CFX_WideString& sText,
+bool CPWL_EditImpl::InsertText(const WideString& sText,
                                int32_t charset,
                                bool bAddUndo,
                                bool bPaint) {
@@ -1836,7 +1836,7 @@
 }
 
 CPVT_WordPlace CPWL_EditImpl::DoInsertText(const CPVT_WordPlace& place,
-                                           const CFX_WideString& sText,
+                                           const WideString& sText,
                                            int32_t charset) {
   CPVT_WordPlace wp = place;
 
@@ -1877,15 +1877,15 @@
   m_Undo.AddItem(std::move(pEditUndoItem));
 }
 
-CFX_ByteString CPWL_EditImpl::GetPDFWordString(int32_t nFontIndex,
-                                               uint16_t Word,
-                                               uint16_t SubWord) {
+ByteString CPWL_EditImpl::GetPDFWordString(int32_t nFontIndex,
+                                           uint16_t Word,
+                                           uint16_t SubWord) {
   IPVT_FontMap* pFontMap = GetFontMap();
   CPDF_Font* pPDFFont = pFontMap->GetPDFFont(nFontIndex);
   if (!pPDFFont)
-    return CFX_ByteString();
+    return ByteString();
 
-  CFX_ByteString sWord;
+  ByteString sWord;
   if (SubWord > 0) {
     Word = SubWord;
   } else {
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.h b/fpdfsdk/pwl/cpwl_edit_impl.h
index 177a052..a63b22c 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.h
+++ b/fpdfsdk/pwl/cpwl_edit_impl.h
@@ -233,7 +233,7 @@
  public:
   CFXEU_Clear(CPWL_EditImpl* pEdit,
               const CPVT_WordRange& wrSel,
-              const CFX_WideString& swText);
+              const WideString& swText);
   ~CFXEU_Clear() override;
 
   // IFX_Edit_UndoItem:
@@ -244,7 +244,7 @@
   CFX_UnownedPtr<CPWL_EditImpl> m_pEdit;
 
   CPVT_WordRange m_wrSel;
-  CFX_WideString m_swText;
+  WideString m_swText;
 };
 
 class CFXEU_InsertText : public IFX_Edit_UndoItem {
@@ -252,7 +252,7 @@
   CFXEU_InsertText(CPWL_EditImpl* pEdit,
                    const CPVT_WordPlace& wpOldPlace,
                    const CPVT_WordPlace& wpNewPlace,
-                   const CFX_WideString& swText,
+                   const WideString& swText,
                    int32_t charset);
   ~CFXEU_InsertText() override;
 
@@ -265,7 +265,7 @@
 
   CPVT_WordPlace m_wpOld;
   CPVT_WordPlace m_wpNew;
-  CFX_WideString m_swText;
+  WideString m_swText;
   int32_t m_nCharset;
 };
 
@@ -323,27 +323,27 @@
   void OnVK_RIGHT(bool bShift, bool bCtrl);
   void OnVK_HOME(bool bShift, bool bCtrl);
   void OnVK_END(bool bShift, bool bCtrl);
-  void SetText(const CFX_WideString& sText);
+  void SetText(const WideString& sText);
   bool InsertWord(uint16_t word, int32_t charset);
   bool InsertReturn();
   bool Backspace();
   bool Delete();
   bool ClearSelection();
-  bool InsertText(const CFX_WideString& sText, int32_t charset);
+  bool InsertText(const WideString& sText, int32_t charset);
   bool Redo();
   bool Undo();
   CPVT_WordPlace WordIndexToWordPlace(int32_t index) const;
   CPVT_WordPlace SearchWordPlace(const CFX_PointF& point) const;
   int32_t GetCaret() const;
   CPVT_WordPlace GetCaretWordPlace() const;
-  CFX_WideString GetSelectedText() const;
-  CFX_WideString GetText() const;
+  WideString GetSelectedText() const;
+  WideString GetText() const;
   float GetFontSize() const;
   uint16_t GetPasswordChar() const;
   CFX_PointF GetScrollPos() const;
   int32_t GetCharArray() const;
   CFX_FloatRect GetContentRect() const;
-  CFX_WideString GetRangeText(const CPVT_WordRange& range) const;
+  WideString GetRangeText(const CPVT_WordRange& range) const;
   int32_t GetHorzScale() const;
   float GetCharSpace() const;
   void SetSelection(int32_t nStartChar, int32_t nEndChar);
@@ -366,15 +366,15 @@
   bool Empty();
 
   CPVT_WordPlace DoInsertText(const CPVT_WordPlace& place,
-                              const CFX_WideString& sText,
+                              const WideString& sText,
                               int32_t charset);
   int32_t GetCharSetFromUnicode(uint16_t word, int32_t nOldCharset);
 
   int32_t GetTotalLines() const;
 
-  CFX_ByteString GetPDFWordString(int32_t nFontIndex,
-                                  uint16_t Word,
-                                  uint16_t SubWord);
+  ByteString GetPDFWordString(int32_t nFontIndex,
+                              uint16_t Word,
+                              uint16_t SubWord);
 
  private:
   friend class CPWL_EditImpl_Iterator;
@@ -408,7 +408,7 @@
   bool Backspace(bool bAddUndo, bool bPaint);
   bool Delete(bool bAddUndo, bool bPaint);
   bool Clear(bool bAddUndo, bool bPaint);
-  bool InsertText(const CFX_WideString& sText,
+  bool InsertText(const WideString& sText,
                   int32_t charset,
                   bool bAddUndo,
                   bool bPaint);
diff --git a/fpdfsdk/pwl/cpwl_font_map.cpp b/fpdfsdk/pwl/cpwl_font_map.cpp
index 8629735..94d5fb8 100644
--- a/fpdfsdk/pwl/cpwl_font_map.cpp
+++ b/fpdfsdk/pwl/cpwl_font_map.cpp
@@ -66,11 +66,11 @@
   return nullptr;
 }
 
-CFX_ByteString CPWL_FontMap::GetPDFFontAlias(int32_t nFontIndex) {
+ByteString CPWL_FontMap::GetPDFFontAlias(int32_t nFontIndex) {
   if (pdfium::IndexInBounds(m_Data, nFontIndex) && m_Data[nFontIndex])
     return m_Data[nFontIndex]->sFontName;
 
-  return CFX_ByteString();
+  return ByteString();
 }
 
 bool CPWL_FontMap::KnowWord(int32_t nFontIndex, uint16_t word) {
@@ -122,15 +122,15 @@
   return word < 0xFF ? word : -1;
 }
 
-CFX_ByteString CPWL_FontMap::GetNativeFontName(int32_t nCharset) {
+ByteString CPWL_FontMap::GetNativeFontName(int32_t nCharset) {
   for (const auto& pData : m_NativeFont) {
     if (pData && pData->nCharset == nCharset)
       return pData->sFontName;
   }
 
-  CFX_ByteString sNew = GetNativeFont(nCharset);
+  ByteString sNew = GetNativeFont(nCharset);
   if (sNew.IsEmpty())
-    return CFX_ByteString();
+    return ByteString();
 
   auto pNewData = pdfium::MakeUnique<CPWL_FontMap_Native>();
   pNewData->nCharset = nCharset;
@@ -148,7 +148,7 @@
   GetFontIndex(kDefaultFontName, FX_CHARSET_ANSI, false);
 }
 
-bool CPWL_FontMap::IsStandardFont(const CFX_ByteString& sFontName) {
+bool CPWL_FontMap::IsStandardFont(const ByteString& sFontName) {
   for (size_t i = 0; i < FX_ArraySize(g_sDEStandardFontName); ++i) {
     if (sFontName == g_sDEStandardFontName[i])
       return true;
@@ -157,8 +157,7 @@
   return false;
 }
 
-int32_t CPWL_FontMap::FindFont(const CFX_ByteString& sFontName,
-                               int32_t nCharset) {
+int32_t CPWL_FontMap::FindFont(const ByteString& sFontName, int32_t nCharset) {
   int32_t i = 0;
   for (const auto& pData : m_Data) {
     if (pData &&
@@ -171,17 +170,17 @@
   return -1;
 }
 
-int32_t CPWL_FontMap::GetFontIndex(const CFX_ByteString& sFontName,
+int32_t CPWL_FontMap::GetFontIndex(const ByteString& sFontName,
                                    int32_t nCharset,
                                    bool bFind) {
   int32_t nFontIndex = FindFont(EncodeFontAlias(sFontName, nCharset), nCharset);
   if (nFontIndex >= 0)
     return nFontIndex;
 
-  CFX_ByteString sAlias;
+  ByteString sAlias;
   CPDF_Font* pFont = bFind ? FindFontSameCharset(&sAlias, nCharset) : nullptr;
   if (!pFont) {
-    CFX_ByteString sTemp = sFontName;
+    ByteString sTemp = sFontName;
     pFont = AddFontToDocument(GetDocument(), sTemp, nCharset);
     sAlias = EncodeFontAlias(sTemp, nCharset);
   }
@@ -189,13 +188,13 @@
   return AddFontData(pFont, sAlias, nCharset);
 }
 
-CPDF_Font* CPWL_FontMap::FindFontSameCharset(CFX_ByteString* sFontAlias,
+CPDF_Font* CPWL_FontMap::FindFontSameCharset(ByteString* sFontAlias,
                                              int32_t nCharset) {
   return nullptr;
 }
 
 int32_t CPWL_FontMap::AddFontData(CPDF_Font* pFont,
-                                  const CFX_ByteString& sFontAlias,
+                                  const ByteString& sFontAlias,
                                   int32_t nCharset) {
   auto pNewData = pdfium::MakeUnique<CPWL_FontMap_Data>();
   pNewData->pFont = pFont;
@@ -205,22 +204,21 @@
   return pdfium::CollectionSize<int32_t>(m_Data) - 1;
 }
 
-void CPWL_FontMap::AddedFont(CPDF_Font* pFont,
-                             const CFX_ByteString& sFontAlias) {}
+void CPWL_FontMap::AddedFont(CPDF_Font* pFont, const ByteString& sFontAlias) {}
 
-CFX_ByteString CPWL_FontMap::GetNativeFont(int32_t nCharset) {
+ByteString CPWL_FontMap::GetNativeFont(int32_t nCharset) {
   if (nCharset == FX_CHARSET_Default)
     nCharset = GetNativeCharset();
 
-  CFX_ByteString sFontName = GetDefaultFontByCharset(nCharset);
+  ByteString sFontName = GetDefaultFontByCharset(nCharset);
   if (!m_pSystemHandler->FindNativeTrueTypeFont(sFontName))
-    return CFX_ByteString();
+    return ByteString();
 
   return sFontName;
 }
 
 CPDF_Font* CPWL_FontMap::AddFontToDocument(CPDF_Document* pDoc,
-                                           CFX_ByteString& sFontName,
+                                           ByteString& sFontName,
                                            uint8_t nCharset) {
   if (IsStandardFont(sFontName))
     return AddStandardFont(pDoc, sFontName);
@@ -229,7 +227,7 @@
 }
 
 CPDF_Font* CPWL_FontMap::AddStandardFont(CPDF_Document* pDoc,
-                                         CFX_ByteString& sFontName) {
+                                         ByteString& sFontName) {
   if (!pDoc)
     return nullptr;
 
@@ -246,7 +244,7 @@
 }
 
 CPDF_Font* CPWL_FontMap::AddSystemFont(CPDF_Document* pDoc,
-                                       CFX_ByteString& sFontName,
+                                       ByteString& sFontName,
                                        uint8_t nCharset) {
   if (!pDoc)
     return nullptr;
@@ -260,15 +258,15 @@
                                                       nCharset);
 }
 
-CFX_ByteString CPWL_FontMap::EncodeFontAlias(const CFX_ByteString& sFontName,
-                                             int32_t nCharset) {
-  CFX_ByteString sPostfix;
+ByteString CPWL_FontMap::EncodeFontAlias(const ByteString& sFontName,
+                                         int32_t nCharset) {
+  ByteString sPostfix;
   sPostfix.Format("_%02X", nCharset);
   return EncodeFontAlias(sFontName) + sPostfix;
 }
 
-CFX_ByteString CPWL_FontMap::EncodeFontAlias(const CFX_ByteString& sFontName) {
-  CFX_ByteString sRet = sFontName;
+ByteString CPWL_FontMap::EncodeFontAlias(const ByteString& sFontName) {
+  ByteString sRet = sFontName;
   sRet.Remove(' ');
   return sRet;
 }
@@ -349,7 +347,7 @@
     {FX_CHARSET_MSWin_Arabic, "Arial"},
     {-1, nullptr}};
 
-CFX_ByteString CPWL_FontMap::GetDefaultFontByCharset(int32_t nCharset) {
+ByteString CPWL_FontMap::GetDefaultFontByCharset(int32_t nCharset) {
   int i = 0;
   while (defaultTTFMap[i].charset != -1) {
     if (nCharset == defaultTTFMap[i].charset)
diff --git a/fpdfsdk/pwl/cpwl_font_map.h b/fpdfsdk/pwl/cpwl_font_map.h
index 9872779..5336949 100644
--- a/fpdfsdk/pwl/cpwl_font_map.h
+++ b/fpdfsdk/pwl/cpwl_font_map.h
@@ -21,12 +21,12 @@
 struct CPWL_FontMap_Data {
   CPDF_Font* pFont;
   int32_t nCharset;
-  CFX_ByteString sFontName;
+  ByteString sFontName;
 };
 
 struct CPWL_FontMap_Native {
   int32_t nCharset;
-  CFX_ByteString sFontName;
+  ByteString sFontName;
 };
 
 class CPWL_FontMap : public IPVT_FontMap {
@@ -36,7 +36,7 @@
 
   // IPVT_FontMap
   CPDF_Font* GetPDFFont(int32_t nFontIndex) override;
-  CFX_ByteString GetPDFFontAlias(int32_t nFontIndex) override;
+  ByteString GetPDFFontAlias(int32_t nFontIndex) override;
   int32_t GetWordFontIndex(uint16_t word,
                            int32_t nCharset,
                            int32_t nFontIndex) override;
@@ -45,47 +45,46 @@
 
   const CPWL_FontMap_Data* GetFontMapData(int32_t nIndex) const;
   static int32_t GetNativeCharset();
-  CFX_ByteString GetNativeFontName(int32_t nCharset);
+  ByteString GetNativeFontName(int32_t nCharset);
 
-  static CFX_ByteString GetDefaultFontByCharset(int32_t nCharset);
+  static ByteString GetDefaultFontByCharset(int32_t nCharset);
   static const FPDF_CharsetFontMap defaultTTFMap[];
 
  protected:
   virtual void Initialize();
   virtual CPDF_Document* GetDocument();
-  virtual CPDF_Font* FindFontSameCharset(CFX_ByteString* sFontAlias,
+  virtual CPDF_Font* FindFontSameCharset(ByteString* sFontAlias,
                                          int32_t nCharset);
-  virtual void AddedFont(CPDF_Font* pFont, const CFX_ByteString& sFontAlias);
+  virtual void AddedFont(CPDF_Font* pFont, const ByteString& sFontAlias);
 
   bool KnowWord(int32_t nFontIndex, uint16_t word);
 
   void Empty();
-  int32_t GetFontIndex(const CFX_ByteString& sFontName,
+  int32_t GetFontIndex(const ByteString& sFontName,
                        int32_t nCharset,
                        bool bFind);
   int32_t AddFontData(CPDF_Font* pFont,
-                      const CFX_ByteString& sFontAlias,
+                      const ByteString& sFontAlias,
                       int32_t nCharset = FX_CHARSET_Default);
 
-  CFX_ByteString EncodeFontAlias(const CFX_ByteString& sFontName,
-                                 int32_t nCharset);
-  CFX_ByteString EncodeFontAlias(const CFX_ByteString& sFontName);
+  ByteString EncodeFontAlias(const ByteString& sFontName, int32_t nCharset);
+  ByteString EncodeFontAlias(const ByteString& sFontName);
 
   std::vector<std::unique_ptr<CPWL_FontMap_Data>> m_Data;
   std::vector<std::unique_ptr<CPWL_FontMap_Native>> m_NativeFont;
 
  private:
-  int32_t FindFont(const CFX_ByteString& sFontName,
+  int32_t FindFont(const ByteString& sFontName,
                    int32_t nCharset = FX_CHARSET_Default);
 
-  CFX_ByteString GetNativeFont(int32_t nCharset);
+  ByteString GetNativeFont(int32_t nCharset);
   CPDF_Font* AddFontToDocument(CPDF_Document* pDoc,
-                               CFX_ByteString& sFontName,
+                               ByteString& sFontName,
                                uint8_t nCharset);
-  bool IsStandardFont(const CFX_ByteString& sFontName);
-  CPDF_Font* AddStandardFont(CPDF_Document* pDoc, CFX_ByteString& sFontName);
+  bool IsStandardFont(const ByteString& sFontName);
+  CPDF_Font* AddStandardFont(CPDF_Document* pDoc, ByteString& sFontName);
   CPDF_Font* AddSystemFont(CPDF_Document* pDoc,
-                           CFX_ByteString& sFontName,
+                           ByteString& sFontName,
                            uint8_t nCharset);
 
   std::unique_ptr<CPDF_Document> m_pPDFDoc;
diff --git a/fpdfsdk/pwl/cpwl_icon.cpp b/fpdfsdk/pwl/cpwl_icon.cpp
index 8a2e31d..e7669b3 100644
--- a/fpdfsdk/pwl/cpwl_icon.cpp
+++ b/fpdfsdk/pwl/cpwl_icon.cpp
@@ -37,12 +37,12 @@
   return CFX_Matrix();
 }
 
-CFX_ByteString CPWL_Icon::GetImageAlias() {
+ByteString CPWL_Icon::GetImageAlias() {
   if (!m_pPDFStream)
-    return CFX_ByteString();
+    return ByteString();
   if (CPDF_Dictionary* pDict = m_pPDFStream->GetDict())
     return pDict->GetStringFor("Name");
-  return CFX_ByteString();
+  return ByteString();
 }
 
 std::pair<float, float> CPWL_Icon::GetIconPosition() {
diff --git a/fpdfsdk/pwl/cpwl_icon.h b/fpdfsdk/pwl/cpwl_icon.h
index 2607e56..e2f792b 100644
--- a/fpdfsdk/pwl/cpwl_icon.h
+++ b/fpdfsdk/pwl/cpwl_icon.h
@@ -28,7 +28,7 @@
   std::pair<float, float> GetImageOffset();
 
   CFX_Matrix GetImageMatrix();
-  CFX_ByteString GetImageAlias();
+  ByteString GetImageAlias();
 
  private:
   // left, bottom
diff --git a/fpdfsdk/pwl/cpwl_list_box.cpp b/fpdfsdk/pwl/cpwl_list_box.cpp
index 4090e79..b5c6293 100644
--- a/fpdfsdk/pwl/cpwl_list_box.cpp
+++ b/fpdfsdk/pwl/cpwl_list_box.cpp
@@ -72,7 +72,7 @@
 
 CPWL_ListBox::~CPWL_ListBox() {}
 
-CFX_ByteString CPWL_ListBox::GetClassName() const {
+ByteString CPWL_ListBox::GetClassName() const {
   return "CPWL_ListBox";
 }
 
@@ -260,8 +260,8 @@
   if (!m_pFillerNotify)
     return false;
 
-  CFX_WideString swChange = GetText();
-  CFX_WideString strChangeEx;
+  WideString swChange = GetText();
+  WideString strChangeEx;
   int nSelStart = 0;
   int nSelEnd = swChange.GetLength();
   bool bRC;
@@ -282,11 +282,11 @@
   return CPWL_Wnd::GetFocusRect();
 }
 
-void CPWL_ListBox::AddString(const CFX_WideString& str) {
+void CPWL_ListBox::AddString(const WideString& str) {
   m_pList->AddString(str);
 }
 
-CFX_WideString CPWL_ListBox::GetText() const {
+WideString CPWL_ListBox::GetText() const {
   return m_pList->GetText();
 }
 
diff --git a/fpdfsdk/pwl/cpwl_list_box.h b/fpdfsdk/pwl/cpwl_list_box.h
index f620ec1..1e028f7 100644
--- a/fpdfsdk/pwl/cpwl_list_box.h
+++ b/fpdfsdk/pwl/cpwl_list_box.h
@@ -44,7 +44,7 @@
   ~CPWL_ListBox() override;
 
   // CPWL_Wnd
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   void OnCreated() override;
   void OnDestroy() override;
   void DrawThisAppearance(CFX_RenderDevice* pDevice,
@@ -66,11 +66,11 @@
   void SetFontSize(float fFontSize) override;
   float GetFontSize() const override;
 
-  virtual CFX_WideString GetText() const;
+  virtual WideString GetText() const;
 
   bool OnNotifySelectionChanged(bool bKeyDown, uint32_t nFlag);
 
-  void AddString(const CFX_WideString& str);
+  void AddString(const WideString& str);
   void SetTopVisibleIndex(int32_t nItemIndex);
   void ScrollToListItem(int32_t nItemIndex);
   void ResetContent();
diff --git a/fpdfsdk/pwl/cpwl_list_impl.cpp b/fpdfsdk/pwl/cpwl_list_impl.cpp
index 94e0606..da455d0 100644
--- a/fpdfsdk/pwl/cpwl_list_impl.cpp
+++ b/fpdfsdk/pwl/cpwl_list_impl.cpp
@@ -29,7 +29,7 @@
   m_pEdit->SetFontMap(pFontMap);
 }
 
-void CPWL_ListCtrl::Item::SetText(const CFX_WideString& text) {
+void CPWL_ListCtrl::Item::SetText(const WideString& text) {
   m_pEdit->SetText(text);
 }
 
@@ -49,7 +49,7 @@
   return word.Word;
 }
 
-CFX_WideString CPWL_ListCtrl::Item::GetText() const {
+WideString CPWL_ListCtrl::Item::GetText() const {
   return m_pEdit->GetText();
 }
 
@@ -310,7 +310,7 @@
   return InnerToOuter(rcItem);
 }
 
-void CPWL_ListCtrl::AddString(const CFX_WideString& str) {
+void CPWL_ListCtrl::AddString(const WideString& str) {
   AddItem(str);
   ReArrange(GetCount() - 1);
 }
@@ -551,13 +551,13 @@
   return -1;
 }
 
-CFX_WideString CPWL_ListCtrl::GetText() const {
+WideString CPWL_ListCtrl::GetText() const {
   if (IsMultipleSel())
     return GetItemText(m_nCaretIndex);
   return GetItemText(m_nSelItem);
 }
 
-void CPWL_ListCtrl::AddItem(const CFX_WideString& str) {
+void CPWL_ListCtrl::AddItem(const WideString& str) {
   auto pListItem = pdfium::MakeUnique<Item>();
   pListItem->SetFontMap(m_pFontMap.Get());
   pListItem->SetFontSize(m_fFontSize);
@@ -630,7 +630,7 @@
   return pdfium::IndexInBounds(m_ListItems, nItemIndex);
 }
 
-CFX_WideString CPWL_ListCtrl::GetItemText(int32_t nIndex) const {
+WideString CPWL_ListCtrl::GetItemText(int32_t nIndex) const {
   if (pdfium::IndexInBounds(m_ListItems, nIndex) && m_ListItems[nIndex])
     return m_ListItems[nIndex]->GetText();
   return L"";
diff --git a/fpdfsdk/pwl/cpwl_list_impl.h b/fpdfsdk/pwl/cpwl_list_impl.h
index 9bb0d29..18ca0a3 100644
--- a/fpdfsdk/pwl/cpwl_list_impl.h
+++ b/fpdfsdk/pwl/cpwl_list_impl.h
@@ -68,13 +68,13 @@
   CFX_FloatRect GetContentRect() const;
 
   int32_t GetItemIndex(const CFX_PointF& point) const;
-  void AddString(const CFX_WideString& str);
+  void AddString(const WideString& str);
   void SetTopItem(int32_t nIndex);
   void Select(int32_t nItemIndex);
   void SetCaret(int32_t nItemIndex);
   void Empty();
   void Cancel();
-  CFX_WideString GetText() const;
+  WideString GetText() const;
 
   void SetFontMap(IPVT_FontMap* pFontMap) { m_pFontMap = pFontMap; }
   void SetFontSize(float fFontSize) { m_fFontSize = fFontSize; }
@@ -102,9 +102,9 @@
 
     void SetRect(const CFX_FloatRect& rect) { m_rcListItem = rect; }
     void SetSelect(bool bSelected) { m_bSelected = bSelected; }
-    void SetText(const CFX_WideString& text);
+    void SetText(const WideString& text);
     void SetFontSize(float fFontSize);
-    CFX_WideString GetText() const;
+    WideString GetText() const;
 
     CFX_FloatRect GetRect() const { return m_rcListItem; }
     bool IsSelected() const { return m_bSelected; }
@@ -142,8 +142,8 @@
   bool IsItemVisible(int32_t nItemIndex) const;
   void SetScrollInfo();
   void SetScrollPosY(float fy);
-  void AddItem(const CFX_WideString& str);
-  CFX_WideString GetItemText(int32_t nIndex) const;
+  void AddItem(const WideString& str);
+  WideString GetItemText(int32_t nIndex) const;
   void SetItemSelect(int32_t nItemIndex, bool bSelected);
   int32_t GetLastSelected() const;
   CFX_PointF GetBTPoint() const {
diff --git a/fpdfsdk/pwl/cpwl_scroll_bar.cpp b/fpdfsdk/pwl/cpwl_scroll_bar.cpp
index 1524729..e50f778 100644
--- a/fpdfsdk/pwl/cpwl_scroll_bar.cpp
+++ b/fpdfsdk/pwl/cpwl_scroll_bar.cpp
@@ -127,7 +127,7 @@
 
 CPWL_SBButton::~CPWL_SBButton() {}
 
-CFX_ByteString CPWL_SBButton::GetClassName() const {
+ByteString CPWL_SBButton::GetClassName() const {
   return "CPWL_SBButton";
 }
 
@@ -325,7 +325,7 @@
 
 CPWL_ScrollBar::~CPWL_ScrollBar() {}
 
-CFX_ByteString CPWL_ScrollBar::GetClassName() const {
+ByteString CPWL_ScrollBar::GetClassName() const {
   return "CPWL_ScrollBar";
 }
 
diff --git a/fpdfsdk/pwl/cpwl_scroll_bar.h b/fpdfsdk/pwl/cpwl_scroll_bar.h
index 44c72cb..48aef16 100644
--- a/fpdfsdk/pwl/cpwl_scroll_bar.h
+++ b/fpdfsdk/pwl/cpwl_scroll_bar.h
@@ -49,7 +49,7 @@
   ~CPWL_SBButton() override;
 
   // CPWL_Wnd
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   void OnCreate(CreateParams* pParamsToAdjust) override;
   void DrawThisAppearance(CFX_RenderDevice* pDevice,
                           const CFX_Matrix& mtUser2Device) override;
@@ -121,7 +121,7 @@
   ~CPWL_ScrollBar() override;
 
   // CPWL_Wnd:
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   void OnCreate(CreateParams* pParamsToAdjust) override;
   void OnDestroy() override;
   void RePosChildWnd() override;
diff --git a/fpdfsdk/pwl/cpwl_special_button.cpp b/fpdfsdk/pwl/cpwl_special_button.cpp
index 53f7f2c..ddca67e 100644
--- a/fpdfsdk/pwl/cpwl_special_button.cpp
+++ b/fpdfsdk/pwl/cpwl_special_button.cpp
@@ -12,7 +12,7 @@
 
 CPWL_PushButton::~CPWL_PushButton() {}
 
-CFX_ByteString CPWL_PushButton::GetClassName() const {
+ByteString CPWL_PushButton::GetClassName() const {
   return "CPWL_PushButton";
 }
 
@@ -25,7 +25,7 @@
 
 CPWL_CheckBox::~CPWL_CheckBox() {}
 
-CFX_ByteString CPWL_CheckBox::GetClassName() const {
+ByteString CPWL_CheckBox::GetClassName() const {
   return "CPWL_CheckBox";
 }
 
@@ -54,7 +54,7 @@
 
 CPWL_RadioButton::~CPWL_RadioButton() {}
 
-CFX_ByteString CPWL_RadioButton::GetClassName() const {
+ByteString CPWL_RadioButton::GetClassName() const {
   return "CPWL_RadioButton";
 }
 
diff --git a/fpdfsdk/pwl/cpwl_special_button.h b/fpdfsdk/pwl/cpwl_special_button.h
index b499542..076b529 100644
--- a/fpdfsdk/pwl/cpwl_special_button.h
+++ b/fpdfsdk/pwl/cpwl_special_button.h
@@ -15,7 +15,7 @@
   ~CPWL_PushButton() override;
 
   // CPWL_Button
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   CFX_FloatRect GetFocusRect() const override;
 };
 
@@ -25,7 +25,7 @@
   ~CPWL_CheckBox() override;
 
   // CPWL_Button
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   bool OnLButtonUp(const CFX_PointF& point, uint32_t nFlag) override;
   bool OnChar(uint16_t nChar, uint32_t nFlag) override;
 
@@ -42,7 +42,7 @@
   ~CPWL_RadioButton() override;
 
   // CPWL_Button
-  CFX_ByteString GetClassName() const override;
+  ByteString GetClassName() const override;
   bool OnLButtonUp(const CFX_PointF& point, uint32_t nFlag) override;
   bool OnChar(uint16_t nChar, uint32_t nFlag) override;
 
diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
index 401fed3..1c1512e 100644
--- a/fpdfsdk/pwl/cpwl_wnd.cpp
+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
@@ -146,7 +146,7 @@
   ASSERT(!m_bCreated);
 }
 
-CFX_ByteString CPWL_Wnd::GetClassName() const {
+ByteString CPWL_Wnd::GetClassName() const {
   return "CPWL_Wnd";
 }
 
@@ -361,11 +361,11 @@
 PWL_IMPLEMENT_MOUSE_METHOD(OnMouseMove)
 #undef PWL_IMPLEMENT_MOUSE_METHOD
 
-CFX_WideString CPWL_Wnd::GetSelectedText() {
-  return CFX_WideString();
+WideString CPWL_Wnd::GetSelectedText() {
+  return WideString();
 }
 
-void CPWL_Wnd::ReplaceSelection(const CFX_WideString& text) {}
+void CPWL_Wnd::ReplaceSelection(const WideString& text) {}
 
 bool CPWL_Wnd::OnMouseWheel(short zDelta,
                             const CFX_PointF& point,
diff --git a/fpdfsdk/pwl/cpwl_wnd.h b/fpdfsdk/pwl/cpwl_wnd.h
index 2fd5077..17ed064 100644
--- a/fpdfsdk/pwl/cpwl_wnd.h
+++ b/fpdfsdk/pwl/cpwl_wnd.h
@@ -152,7 +152,7 @@
   CPWL_Wnd();
   ~CPWL_Wnd() override;
 
-  virtual CFX_ByteString GetClassName() const;
+  virtual ByteString GetClassName() const;
   virtual void InvalidateRect(CFX_FloatRect* pRect);
 
   virtual bool OnKeyDown(uint16_t nChar, uint32_t nFlag);
@@ -179,8 +179,8 @@
   virtual void SetFontSize(float fFontSize);
   virtual float GetFontSize() const;
 
-  virtual CFX_WideString GetSelectedText();
-  virtual void ReplaceSelection(const CFX_WideString& text);
+  virtual WideString GetSelectedText();
+  virtual void ReplaceSelection(const WideString& text);
   virtual CFX_FloatRect GetFocusRect() const;
   virtual CFX_FloatRect GetClientRect() const;