Rename CFX_Char to CFGAS_Char

Bug: pdfium:1567
Change-Id: Id644478976c846742cc73abc2c6c031a6741322f
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/78671
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/testing/fuzzers/pdf_bidi_fuzzer.cc b/testing/fuzzers/pdf_bidi_fuzzer.cc
index 9a54b32..aa4b893 100644
--- a/testing/fuzzers/pdf_bidi_fuzzer.cc
+++ b/testing/fuzzers/pdf_bidi_fuzzer.cc
@@ -9,7 +9,7 @@
 #include "core/fxge/cfx_font.h"
 #include "core/fxge/fx_font.h"
 #include "xfa/fgas/font/cfgas_gefont.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 #include "xfa/fgas/layout/cfx_rtfbreak.h"
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
@@ -31,8 +31,8 @@
   for (wchar_t ch : input)
     rtf_break.AppendChar(ch);
 
-  std::vector<CFX_Char> chars =
+  std::vector<CFGAS_Char> chars =
       rtf_break.GetCurrentLineForTesting()->m_LineChars;
-  CFX_Char::BidiLine(&chars, chars.size());
+  CFGAS_Char::BidiLine(&chars, chars.size());
   return 0;
 }
diff --git a/xfa/fde/cfde_texteditengine.cpp b/xfa/fde/cfde_texteditengine.cpp
index 24192b7..5c02c26 100644
--- a/xfa/fde/cfde_texteditengine.cpp
+++ b/xfa/fde/cfde_texteditengine.cpp
@@ -1072,7 +1072,7 @@
 }
 
 void CFDE_TextEditEngine::RebuildPieces() {
-  text_break_.EndBreak(CFX_Char::BreakType::kParagraph);
+  text_break_.EndBreak(CFGAS_Char::BreakType::kParagraph);
   text_break_.ClearBreakPieces();
 
   char_widths_.clear();
@@ -1091,10 +1091,10 @@
   while (!iter.IsEOF(false)) {
     iter.Next(false);
 
-    CFX_Char::BreakType break_status = text_break_.AppendChar(
+    CFGAS_Char::BreakType break_status = text_break_.AppendChar(
         password_mode_ ? password_alias_ : iter.GetChar());
     if (iter.IsEOF(false) && CFX_BreakTypeNoneOrPiece(break_status))
-      break_status = text_break_.EndBreak(CFX_Char::BreakType::kParagraph);
+      break_status = text_break_.EndBreak(CFGAS_Char::BreakType::kParagraph);
 
     if (CFX_BreakTypeNoneOrPiece(break_status))
       continue;
diff --git a/xfa/fde/cfde_textout.cpp b/xfa/fde/cfde_textout.cpp
index 9c24ea3..5e4ab9f 100644
--- a/xfa/fde/cfde_textout.cpp
+++ b/xfa/fde/cfde_textout.cpp
@@ -213,7 +213,7 @@
   float fWidth = 0.0f;
   float fHeight = 0.0f;
   float fStartPos = pRect->right();
-  CFX_Char::BreakType dwBreakStatus = CFX_Char::BreakType::kNone;
+  CFGAS_Char::BreakType dwBreakStatus = CFGAS_Char::BreakType::kNone;
   bool break_char_is_set = false;
   for (const wchar_t& wch : str) {
     if (!break_char_is_set && (wch == L'\n' || wch == L'\r')) {
@@ -225,7 +225,7 @@
       RetrieveLineWidth(dwBreakStatus, &fStartPos, &fWidth, &fHeight);
   }
 
-  dwBreakStatus = m_pTxtBreak->EndBreak(CFX_Char::BreakType::kParagraph);
+  dwBreakStatus = m_pTxtBreak->EndBreak(CFGAS_Char::BreakType::kParagraph);
   if (!CFX_BreakTypeNoneOrPiece(dwBreakStatus))
     RetrieveLineWidth(dwBreakStatus, &fStartPos, &fWidth, &fHeight);
 
@@ -244,7 +244,7 @@
     pRect->height -= m_fLineSpace - m_fFontSize;
 }
 
-bool CFDE_TextOut::RetrieveLineWidth(CFX_Char::BreakType dwBreakStatus,
+bool CFDE_TextOut::RetrieveLineWidth(CFGAS_Char::BreakType dwBreakStatus,
                                      float* pStartPos,
                                      float* pWidth,
                                      float* pHeight) {
@@ -261,9 +261,9 @@
   }
   m_pTxtBreak->ClearBreakPieces();
 
-  if (dwBreakStatus == CFX_Char::BreakType::kParagraph)
+  if (dwBreakStatus == CFGAS_Char::BreakType::kParagraph)
     m_pTxtBreak->Reset();
-  if (!m_Styles.line_wrap_ && dwBreakStatus == CFX_Char::BreakType::kLine) {
+  if (!m_Styles.line_wrap_ && dwBreakStatus == CFGAS_Char::BreakType::kLine) {
     *pWidth += fLineWidth;
   } else {
     *pWidth = std::max(*pWidth, fLineWidth);
@@ -329,7 +329,7 @@
   m_fLinePos = rect.top;
   size_t start_char = 0;
   int32_t iPieceWidths = 0;
-  CFX_Char::BreakType dwBreakStatus;
+  CFGAS_Char::BreakType dwBreakStatus;
   bool bRet = false;
   for (const auto& wch : str) {
     dwBreakStatus = m_pTxtBreak->AppendChar(wch);
@@ -339,8 +339,8 @@
     bool bEndofLine =
         RetrievePieces(dwBreakStatus, false, rect, &start_char, &iPieceWidths);
     if (bEndofLine && (m_Styles.line_wrap_ ||
-                       dwBreakStatus == CFX_Char::BreakType::kParagraph ||
-                       dwBreakStatus == CFX_Char::BreakType::kPage)) {
+                       dwBreakStatus == CFGAS_Char::BreakType::kParagraph ||
+                       dwBreakStatus == CFGAS_Char::BreakType::kPage)) {
       iPieceWidths = 0;
       ++m_iCurLine;
       m_fLinePos += fLineStep;
@@ -353,7 +353,7 @@
     }
   }
 
-  dwBreakStatus = m_pTxtBreak->EndBreak(CFX_Char::BreakType::kParagraph);
+  dwBreakStatus = m_pTxtBreak->EndBreak(CFGAS_Char::BreakType::kParagraph);
   if (!CFX_BreakTypeNoneOrPiece(dwBreakStatus) && !bRet)
     RetrievePieces(dwBreakStatus, false, rect, &start_char, &iPieceWidths);
 
@@ -361,7 +361,7 @@
   m_pTxtBreak->Reset();
 }
 
-bool CFDE_TextOut::RetrievePieces(CFX_Char::BreakType dwBreakStatus,
+bool CFDE_TextOut::RetrievePieces(CFGAS_Char::BreakType dwBreakStatus,
                                   bool bReload,
                                   const CFX_RectF& rect,
                                   size_t* pStartChar,
@@ -377,7 +377,7 @@
     int32_t iWidth = 0;
     int32_t j = 0;
     for (; j < iPieceChars; j++) {
-      const CFX_Char* pTC = pPiece->GetChar(j);
+      const CFGAS_Char* pTC = pPiece->GetChar(j);
       int32_t iCurCharWidth = std::max(pTC->m_iCharWidth, 0);
       if (m_Styles.single_line_ || !m_Styles.line_wrap_) {
         if (iLineWidth - *pPieceWidths - iWidth < iCurCharWidth) {
@@ -411,7 +411,7 @@
   m_pTxtBreak->ClearBreakPieces();
 
   return m_Styles.single_line_ || m_Styles.line_wrap_ || bNeedReload ||
-         dwBreakStatus == CFX_Char::BreakType::kParagraph;
+         dwBreakStatus == CFGAS_Char::BreakType::kParagraph;
 }
 
 void CFDE_TextOut::AppendPiece(const Piece& piece,
@@ -456,7 +456,7 @@
   size_t start_char = 0;
   size_t piece_count = line->GetSize();
   int32_t piece_widths = 0;
-  CFX_Char::BreakType break_status = CFX_Char::BreakType::kNone;
+  CFGAS_Char::BreakType break_status = CFGAS_Char::BreakType::kNone;
   for (size_t piece_index = 0; piece_index < piece_count; ++piece_index) {
     const Piece* piece = line->GetPieceAtIndex(piece_index);
     if (piece_index == 0) {
@@ -471,7 +471,7 @@
     }
   }
 
-  break_status = m_pTxtBreak->EndBreak(CFX_Char::BreakType::kParagraph);
+  break_status = m_pTxtBreak->EndBreak(CFGAS_Char::BreakType::kParagraph);
   if (!CFX_BreakTypeNoneOrPiece(break_status))
     RetrievePieces(break_status, true, rect, &start_char, &piece_widths);
 
diff --git a/xfa/fde/cfde_textout.h b/xfa/fde/cfde_textout.h
index 97f0d19..da59c82 100644
--- a/xfa/fde/cfde_textout.h
+++ b/xfa/fde/cfde_textout.h
@@ -14,7 +14,7 @@
 #include "core/fxge/dib/fx_dib.h"
 #include "third_party/base/span.h"
 #include "xfa/fde/cfde_data.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 
 class CFGAS_GEFont;
 class CFX_RenderDevice;
@@ -81,7 +81,7 @@
     std::deque<Piece> pieces_;
   };
 
-  bool RetrieveLineWidth(CFX_Char::BreakType dwBreakStatus,
+  bool RetrieveLineWidth(CFGAS_Char::BreakType dwBreakStatus,
                          float* pStartPos,
                          float* pWidth,
                          float* pHeight);
@@ -89,7 +89,7 @@
 
   void Reload(const CFX_RectF& rect);
   void ReloadLinePiece(Line* pLine, const CFX_RectF& rect);
-  bool RetrievePieces(CFX_Char::BreakType dwBreakStatus,
+  bool RetrievePieces(CFGAS_Char::BreakType dwBreakStatus,
                       bool bReload,
                       const CFX_RectF& rect,
                       size_t* pStartChar,
diff --git a/xfa/fgas/layout/BUILD.gn b/xfa/fgas/layout/BUILD.gn
index 99cae13..220751e 100644
--- a/xfa/fgas/layout/BUILD.gn
+++ b/xfa/fgas/layout/BUILD.gn
@@ -9,14 +9,14 @@
 
 source_set("layout") {
   sources = [
+    "cfgas_char.cpp",
+    "cfgas_char.h",
     "cfx_break.cpp",
     "cfx_break.h",
     "cfx_breakline.cpp",
     "cfx_breakline.h",
     "cfx_breakpiece.cpp",
     "cfx_breakpiece.h",
-    "cfx_char.cpp",
-    "cfx_char.h",
     "cfx_linkuserdata.cpp",
     "cfx_linkuserdata.h",
     "cfx_rtfbreak.cpp",
diff --git a/xfa/fgas/layout/cfx_char.cpp b/xfa/fgas/layout/cfgas_char.cpp
similarity index 91%
rename from xfa/fgas/layout/cfx_char.cpp
rename to xfa/fgas/layout/cfgas_char.cpp
index 6c600ae..e36e98e 100644
--- a/xfa/fgas/layout/cfx_char.cpp
+++ b/xfa/fgas/layout/cfgas_char.cpp
@@ -4,7 +4,7 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 
 #include <algorithm>
 
@@ -265,14 +265,16 @@
                         [static_cast<size_t>(eClass)];
 }
 
-void ReverseString(std::vector<CFX_Char>* chars, size_t iStart, size_t iCount) {
+void ReverseString(std::vector<CFGAS_Char>* chars,
+                   size_t iStart,
+                   size_t iCount) {
   DCHECK(pdfium::IndexInBounds(*chars, iStart));
   DCHECK(iStart + iCount <= chars->size());
 
   std::reverse(chars->begin() + iStart, chars->begin() + iStart + iCount);
 }
 
-void SetDeferredRunClass(std::vector<CFX_Char>* chars,
+void SetDeferredRunClass(std::vector<CFGAS_Char>* chars,
                          size_t iStart,
                          size_t iCount,
                          FX_BIDICLASS eValue) {
@@ -284,7 +286,7 @@
     (*chars)[i - 1].m_iBidiClass = eValue;
 }
 
-void SetDeferredRunLevel(std::vector<CFX_Char>* chars,
+void SetDeferredRunLevel(std::vector<CFGAS_Char>* chars,
                          size_t iStart,
                          size_t iCount,
                          int32_t iValue) {
@@ -296,27 +298,27 @@
     (*chars)[i - 1].m_iBidiLevel = static_cast<int16_t>(iValue);
 }
 
-void Classify(std::vector<CFX_Char>* chars, size_t iCount) {
+void Classify(std::vector<CFGAS_Char>* chars, size_t iCount) {
   for (size_t i = 0; i < iCount; ++i) {
-    CFX_Char& cur = (*chars)[i];
+    CFGAS_Char& cur = (*chars)[i];
     cur.m_iBidiClass = FX_GetBidiClass(cur.char_code());
   }
 }
 
-void ClassifyWithTransform(std::vector<CFX_Char>* chars, size_t iCount) {
+void ClassifyWithTransform(std::vector<CFGAS_Char>* chars, size_t iCount) {
   for (size_t i = 0; i < iCount; ++i) {
-    CFX_Char& cur = (*chars)[i];
+    CFGAS_Char& cur = (*chars)[i];
     cur.m_iBidiClass =
         kNTypes[static_cast<size_t>(FX_GetBidiClass(cur.char_code()))];
   }
 }
 
-void ResolveExplicit(std::vector<CFX_Char>* chars, size_t iCount) {
+void ResolveExplicit(std::vector<CFGAS_Char>* chars, size_t iCount) {
   for (size_t i = 0; i < iCount; ++i)
     (*chars)[i].m_iBidiLevel = 0;
 }
 
-void ResolveWeak(std::vector<CFX_Char>* chars, size_t iCount) {
+void ResolveWeak(std::vector<CFGAS_Char>* chars, size_t iCount) {
   if (iCount <= 1)
     return;
   --iCount;
@@ -329,7 +331,7 @@
   FX_BIDICLASS eClsNew;
   size_t i = 0;
   for (; i <= iCount; ++i) {
-    CFX_Char* pTC = &(*chars)[i];
+    CFGAS_Char* pTC = &(*chars)[i];
     eClsCur = pTC->m_iBidiClass;
     if (eClsCur == FX_BIDICLASS::kBN) {
       pTC->m_iBidiLevel = (int16_t)iLevelCur;
@@ -337,7 +339,7 @@
         eClsCur = Direction(iLevelCur);
         pTC->m_iBidiClass = eClsCur;
       } else if (i < iCount) {
-        CFX_Char* pTCNext = &(*chars)[i + 1];
+        CFGAS_Char* pTCNext = &(*chars)[i + 1];
         int32_t iLevelNext, iLevelNew;
         eClsNew = pTCNext->m_iBidiClass;
         iLevelNext = pTCNext->m_iBidiLevel;
@@ -384,12 +386,12 @@
     SetDeferredRunClass(chars, i, iNum, eClsRun);
 }
 
-void ResolveNeutrals(std::vector<CFX_Char>* chars, size_t iCount) {
+void ResolveNeutrals(std::vector<CFGAS_Char>* chars, size_t iCount) {
   if (iCount <= 1)
     return;
   --iCount;
 
-  CFX_Char* pTC;
+  CFGAS_Char* pTC;
   int32_t iLevel = 0;
   size_t i = 0;
   size_t iNum = 0;
@@ -433,7 +435,7 @@
     SetDeferredRunClass(chars, i, iNum, eClsRun);
 }
 
-void ResolveImplicit(std::vector<CFX_Char>* chars, size_t iCount) {
+void ResolveImplicit(std::vector<CFGAS_Char>* chars, size_t iCount) {
   for (size_t i = 0; i < iCount; ++i) {
     FX_BIDICLASS eCls = (*chars)[i].m_iBidiClass;
     if (eCls == FX_BIDICLASS::kBN || eCls <= FX_BIDICLASS::kON ||
@@ -445,7 +447,7 @@
   }
 }
 
-void ResolveWhitespace(std::vector<CFX_Char>* chars, size_t iCount) {
+void ResolveWhitespace(std::vector<CFGAS_Char>* chars, size_t iCount) {
   if (iCount <= 1)
     return;
   iCount--;
@@ -485,7 +487,7 @@
     SetDeferredRunLevel(chars, i, iNum, 0);
 }
 
-size_t ReorderLevel(std::vector<CFX_Char>* chars,
+size_t ReorderLevel(std::vector<CFGAS_Char>* chars,
                     size_t iCount,
                     int32_t iBaseLevel,
                     size_t iStart,
@@ -516,12 +518,12 @@
   return iNum;
 }
 
-void Reorder(std::vector<CFX_Char>* chars, size_t iCount) {
+void Reorder(std::vector<CFGAS_Char>* chars, size_t iCount) {
   for (size_t i = 0; i < iCount;)
     i += ReorderLevel(chars, iCount, 0, i, false);
 }
 
-void Position(std::vector<CFX_Char>* chars, size_t iCount) {
+void Position(std::vector<CFGAS_Char>* chars, size_t iCount) {
   for (size_t i = 0; i < iCount; ++i) {
     if ((*chars)[i].m_iBidiPos > iCount)
       continue;
@@ -533,7 +535,7 @@
 }  // namespace
 
 // static
-void CFX_Char::BidiLine(std::vector<CFX_Char>* chars, size_t iCount) {
+void CFGAS_Char::BidiLine(std::vector<CFGAS_Char>* chars, size_t iCount) {
   DCHECK(iCount <= chars->size());
   if (iCount < 2)
     return;
@@ -549,19 +551,19 @@
   Position(chars, iCount);
 }
 
-CFX_Char::CFX_Char(uint16_t wCharCode) : CFX_Char(wCharCode, 100, 100) {}
+CFGAS_Char::CFGAS_Char(uint16_t wCharCode) : CFGAS_Char(wCharCode, 100, 100) {}
 
-CFX_Char::CFX_Char(uint16_t wCharCode,
-                   int32_t iHorizontalScale,
-                   int32_t iVerticalScale)
+CFGAS_Char::CFGAS_Char(uint16_t wCharCode,
+                       int32_t iHorizontalScale,
+                       int32_t iVerticalScale)
     : m_wCharCode(wCharCode),
       m_iHorizontalScale(iHorizontalScale),
       m_iVerticalScale(iVerticalScale) {}
 
-CFX_Char::CFX_Char(const CFX_Char& other) = default;
+CFGAS_Char::CFGAS_Char(const CFGAS_Char& other) = default;
 
-CFX_Char::~CFX_Char() = default;
+CFGAS_Char::~CFGAS_Char() = default;
 
-FX_CHARTYPE CFX_Char::GetCharType() const {
+FX_CHARTYPE CFGAS_Char::GetCharType() const {
   return FX_GetCharType(m_wCharCode);
 }
diff --git a/xfa/fgas/layout/cfx_char.h b/xfa/fgas/layout/cfgas_char.h
similarity index 75%
rename from xfa/fgas/layout/cfx_char.h
rename to xfa/fgas/layout/cfgas_char.h
index 3e26a62..bfb3472 100644
--- a/xfa/fgas/layout/cfx_char.h
+++ b/xfa/fgas/layout/cfgas_char.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_FGAS_LAYOUT_CFX_CHAR_H_
-#define XFA_FGAS_LAYOUT_CFX_CHAR_H_
+#ifndef XFA_FGAS_LAYOUT_CFGAS_CHAR_H_
+#define XFA_FGAS_LAYOUT_CFGAS_CHAR_H_
 
 #include <stdint.h>
 
@@ -16,7 +16,7 @@
 #include "xfa/fgas/layout/cfx_textuserdata.h"
 #include "xfa/fgas/layout/fx_linebreak.h"
 
-class CFX_Char {
+class CFGAS_Char {
  public:
   enum class BreakType : uint8_t {
     kNone = 0,
@@ -26,14 +26,14 @@
     kPage
   };
 
-  static void BidiLine(std::vector<CFX_Char>* chars, size_t iCount);
+  static void BidiLine(std::vector<CFGAS_Char>* chars, size_t iCount);
 
-  explicit CFX_Char(uint16_t wCharCode);
-  CFX_Char(uint16_t wCharCode,
-           int32_t iHorizontalScale,
-           int32_t iVerticalScale);
-  CFX_Char(const CFX_Char& other);
-  ~CFX_Char();
+  explicit CFGAS_Char(uint16_t wCharCode);
+  CFGAS_Char(uint16_t wCharCode,
+             int32_t iHorizontalScale,
+             int32_t iVerticalScale);
+  CFGAS_Char(const CFGAS_Char& other);
+  ~CFGAS_Char();
 
   FX_CHARTYPE GetCharType() const;
   uint16_t char_code() const { return m_wCharCode; }
@@ -58,4 +58,4 @@
   int32_t m_iVerticalScale;
 };
 
-#endif  // XFA_FGAS_LAYOUT_CFX_CHAR_H_
+#endif  // XFA_FGAS_LAYOUT_CFGAS_CHAR_H_
diff --git a/xfa/fgas/layout/cfx_break.cpp b/xfa/fgas/layout/cfx_break.cpp
index 39ed44c..efe1060 100644
--- a/xfa/fgas/layout/cfx_break.cpp
+++ b/xfa/fgas/layout/cfx_break.cpp
@@ -74,9 +74,9 @@
   if (m_pCurLine->m_LineChars.empty())
     return;
 
-  CFX_Char* tc = m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
-  if (tc->m_dwStatus == CFX_Char::BreakType::kNone)
-    tc->m_dwStatus = CFX_Char::BreakType::kPiece;
+  CFGAS_Char* tc = m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
+  if (tc->m_dwStatus == CFGAS_Char::BreakType::kNone)
+    tc->m_dwStatus = CFGAS_Char::BreakType::kPiece;
 }
 
 bool CFX_Break::IsGreaterThanLineWidth(int32_t width) const {
@@ -121,16 +121,16 @@
   m_pCurLine->m_iStart = std::max(m_pCurLine->m_iStart, m_iLineStart);
 }
 
-CFX_Char* CFX_Break::GetLastChar(int32_t index,
-                                 bool bOmitChar,
-                                 bool bRichText) const {
-  std::vector<CFX_Char>& tca = m_pCurLine->m_LineChars;
+CFGAS_Char* CFX_Break::GetLastChar(int32_t index,
+                                   bool bOmitChar,
+                                   bool bRichText) const {
+  std::vector<CFGAS_Char>& tca = m_pCurLine->m_LineChars;
   if (!pdfium::IndexInBounds(tca, index))
     return nullptr;
 
   int32_t iStart = pdfium::CollectionSize<int32_t>(tca) - 1;
   while (iStart > -1) {
-    CFX_Char* pTC = &tca[iStart--];
+    CFGAS_Char* pTC = &tca[iStart--];
     if (((bRichText && pTC->m_iCharWidth < 0) || bOmitChar) &&
         pTC->GetCharType() == FX_CHARTYPE::kCombination) {
       continue;
diff --git a/xfa/fgas/layout/cfx_break.h b/xfa/fgas/layout/cfx_break.h
index 4f0dcb3..405f4ed 100644
--- a/xfa/fgas/layout/cfx_break.h
+++ b/xfa/fgas/layout/cfx_break.h
@@ -56,7 +56,7 @@
   const CFX_BreakPiece* GetBreakPieceUnstable(int32_t index) const;
   void ClearBreakPieces();
 
-  CFX_Char* GetLastChar(int32_t index, bool bOmitChar, bool bRichText) const;
+  CFGAS_Char* GetLastChar(int32_t index, bool bOmitChar, bool bRichText) const;
   const CFX_BreakLine* GetCurrentLineForTesting() const {
     return m_pCurLine.Get();
   }
diff --git a/xfa/fgas/layout/cfx_breakline.cpp b/xfa/fgas/layout/cfx_breakline.cpp
index 32b50f3..350743a 100644
--- a/xfa/fgas/layout/cfx_breakline.cpp
+++ b/xfa/fgas/layout/cfx_breakline.cpp
@@ -13,7 +13,7 @@
 
 CFX_BreakLine::~CFX_BreakLine() = default;
 
-CFX_Char* CFX_BreakLine::GetChar(int32_t index) {
+CFGAS_Char* CFX_BreakLine::GetChar(int32_t index) {
   DCHECK(pdfium::IndexInBounds(m_LineChars, index));
   return &m_LineChars[index];
 }
diff --git a/xfa/fgas/layout/cfx_breakline.h b/xfa/fgas/layout/cfx_breakline.h
index c432b35..4b69322 100644
--- a/xfa/fgas/layout/cfx_breakline.h
+++ b/xfa/fgas/layout/cfx_breakline.h
@@ -9,15 +9,15 @@
 
 #include <vector>
 
+#include "xfa/fgas/layout/cfgas_char.h"
 #include "xfa/fgas/layout/cfx_breakpiece.h"
-#include "xfa/fgas/layout/cfx_char.h"
 
 class CFX_BreakLine {
  public:
   CFX_BreakLine();
   ~CFX_BreakLine();
 
-  CFX_Char* GetChar(int32_t index);
+  CFGAS_Char* GetChar(int32_t index);
   int32_t GetLineEnd() const;
 
   void Clear();
@@ -26,7 +26,7 @@
   void DecrementArabicCharCount();
   bool HasArabicChar() const { return m_iArabicChars > 0; }
 
-  std::vector<CFX_Char> m_LineChars;
+  std::vector<CFGAS_Char> m_LineChars;
   std::vector<CFX_BreakPiece> m_LinePieces;
   int32_t m_iStart = 0;
   int32_t m_iWidth = 0;
diff --git a/xfa/fgas/layout/cfx_breakpiece.cpp b/xfa/fgas/layout/cfx_breakpiece.cpp
index a954e61..a74c2e5 100644
--- a/xfa/fgas/layout/cfx_breakpiece.cpp
+++ b/xfa/fgas/layout/cfx_breakpiece.cpp
@@ -19,7 +19,7 @@
   return m_iWidth < 0 ? m_iStartPos : m_iStartPos + m_iWidth;
 }
 
-CFX_Char* CFX_BreakPiece::GetChar(int32_t index) const {
+CFGAS_Char* CFX_BreakPiece::GetChar(int32_t index) const {
   DCHECK(index >= 0);
   DCHECK(index < m_iCharCount);
   DCHECK(m_pChars);
diff --git a/xfa/fgas/layout/cfx_breakpiece.h b/xfa/fgas/layout/cfx_breakpiece.h
index a61b764..6dabc46 100644
--- a/xfa/fgas/layout/cfx_breakpiece.h
+++ b/xfa/fgas/layout/cfx_breakpiece.h
@@ -12,7 +12,7 @@
 #include "core/fxcrt/fx_string.h"
 #include "core/fxcrt/retain_ptr.h"
 #include "core/fxcrt/unowned_ptr.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 
 class CFX_TextUserData;
 
@@ -25,11 +25,11 @@
   int32_t GetEndPos() const;
   int32_t GetLength() const { return m_iCharCount; }
 
-  CFX_Char* GetChar(int32_t index) const;
+  CFGAS_Char* GetChar(int32_t index) const;
   WideString GetString() const;
   std::vector<int32_t> GetWidths() const;
 
-  CFX_Char::BreakType m_dwStatus = CFX_Char::BreakType::kPiece;
+  CFGAS_Char::BreakType m_dwStatus = CFGAS_Char::BreakType::kPiece;
   int32_t m_iStartPos = 0;
   int32_t m_iWidth = -1;
   int32_t m_iStartChar = 0;
@@ -41,7 +41,7 @@
   int32_t m_iVerticalScale = 100;
   uint32_t m_dwIdentity = 0;
   uint32_t m_dwCharStyles = 0;
-  UnownedPtr<std::vector<CFX_Char>> m_pChars;
+  UnownedPtr<std::vector<CFGAS_Char>> m_pChars;
   RetainPtr<CFX_TextUserData> m_pUserData;
 };
 
diff --git a/xfa/fgas/layout/cfx_rtfbreak.cpp b/xfa/fgas/layout/cfx_rtfbreak.cpp
index fdc14d8..85fc027 100644
--- a/xfa/fgas/layout/cfx_rtfbreak.cpp
+++ b/xfa/fgas/layout/cfx_rtfbreak.cpp
@@ -17,7 +17,7 @@
 #include "third_party/base/numerics/safe_math.h"
 #include "third_party/base/stl_util.h"
 #include "xfa/fgas/font/cfgas_gefont.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 #include "xfa/fgas/layout/cfx_textpiece.h"
 #include "xfa/fgas/layout/cfx_textuserdata.h"
 #include "xfa/fgas/layout/fx_arabic.h"
@@ -68,30 +68,30 @@
   return true;
 }
 
-CFX_Char::BreakType CFX_RTFBreak::AppendChar(wchar_t wch) {
+CFGAS_Char::BreakType CFX_RTFBreak::AppendChar(wchar_t wch) {
   DCHECK(m_pCurLine);
 
   FX_CHARTYPE chartype = FX_GetCharType(wch);
   m_pCurLine->m_LineChars.emplace_back(wch, m_iHorizontalScale,
                                        m_iVerticalScale);
-  CFX_Char* pCurChar = &m_pCurLine->m_LineChars.back();
+  CFGAS_Char* pCurChar = &m_pCurLine->m_LineChars.back();
   pCurChar->m_iFontSize = m_iFontSize;
   pCurChar->m_dwIdentity = m_dwIdentity;
   pCurChar->m_pUserData = m_pUserData;
 
-  CFX_Char::BreakType dwRet1 = CFX_Char::BreakType::kNone;
+  CFGAS_Char::BreakType dwRet1 = CFGAS_Char::BreakType::kNone;
   if (chartype != FX_CHARTYPE::kCombination &&
       GetUnifiedCharType(m_eCharType) != GetUnifiedCharType(chartype) &&
       m_eCharType != FX_CHARTYPE::kUnknown &&
       IsGreaterThanLineWidth(m_pCurLine->GetLineEnd()) &&
       (m_eCharType != FX_CHARTYPE::kSpace ||
        chartype != FX_CHARTYPE::kControl)) {
-    dwRet1 = EndBreak(CFX_Char::BreakType::kLine);
+    dwRet1 = EndBreak(CFGAS_Char::BreakType::kLine);
     if (!m_pCurLine->m_LineChars.empty())
       pCurChar = &m_pCurLine->m_LineChars.back();
   }
 
-  CFX_Char::BreakType dwRet2 = CFX_Char::BreakType::kNone;
+  CFGAS_Char::BreakType dwRet2 = CFGAS_Char::BreakType::kNone;
   switch (chartype) {
     case FX_CHARTYPE::kTab:
       AppendChar_Tab(pCurChar);
@@ -123,7 +123,7 @@
   return std::max(dwRet1, dwRet2);
 }
 
-void CFX_RTFBreak::AppendChar_Combination(CFX_Char* pCurChar) {
+void CFX_RTFBreak::AppendChar_Combination(CFGAS_Char* pCurChar) {
   FX_SAFE_INT32 iCharWidth = 0;
   int32_t iCharWidthOut;
   if (m_pFont && m_pFont->GetCharWidth(pCurChar->char_code(), &iCharWidthOut))
@@ -132,7 +132,7 @@
   iCharWidth *= m_iFontSize;
   iCharWidth *= m_iHorizontalScale;
   iCharWidth /= 100;
-  CFX_Char* pLastChar = GetLastChar(0, false, true);
+  CFGAS_Char* pLastChar = GetLastChar(0, false, true);
   if (pLastChar && pLastChar->GetCharType() > FX_CHARTYPE::kCombination)
     iCharWidth *= -1;
   else
@@ -150,7 +150,7 @@
   }
 }
 
-void CFX_RTFBreak::AppendChar_Tab(CFX_Char* pCurChar) {
+void CFX_RTFBreak::AppendChar_Tab(CFGAS_Char* pCurChar) {
   if (!(m_dwLayoutStyles & FX_LAYOUTSTYLE_ExpandTab))
     return;
 
@@ -173,34 +173,34 @@
   iLineWidth += iCharWidth;
 }
 
-CFX_Char::BreakType CFX_RTFBreak::AppendChar_Control(CFX_Char* pCurChar) {
-  CFX_Char::BreakType dwRet2 = CFX_Char::BreakType::kNone;
+CFGAS_Char::BreakType CFX_RTFBreak::AppendChar_Control(CFGAS_Char* pCurChar) {
+  CFGAS_Char::BreakType dwRet2 = CFGAS_Char::BreakType::kNone;
   switch (pCurChar->char_code()) {
     case L'\v':
     case 0x2028:
-      dwRet2 = CFX_Char::BreakType::kLine;
+      dwRet2 = CFGAS_Char::BreakType::kLine;
       break;
     case L'\f':
-      dwRet2 = CFX_Char::BreakType::kPage;
+      dwRet2 = CFGAS_Char::BreakType::kPage;
       break;
     case 0x2029:
-      dwRet2 = CFX_Char::BreakType::kParagraph;
+      dwRet2 = CFGAS_Char::BreakType::kParagraph;
       break;
     default:
       if (pCurChar->char_code() == m_wParagraphBreakChar)
-        dwRet2 = CFX_Char::BreakType::kParagraph;
+        dwRet2 = CFGAS_Char::BreakType::kParagraph;
       break;
   }
-  if (dwRet2 != CFX_Char::BreakType::kNone)
+  if (dwRet2 != CFGAS_Char::BreakType::kNone)
     dwRet2 = EndBreak(dwRet2);
 
   return dwRet2;
 }
 
-CFX_Char::BreakType CFX_RTFBreak::AppendChar_Arabic(CFX_Char* pCurChar) {
+CFGAS_Char::BreakType CFX_RTFBreak::AppendChar_Arabic(CFGAS_Char* pCurChar) {
   m_pCurLine->IncrementArabicCharCount();
 
-  CFX_Char* pLastChar = nullptr;
+  CFGAS_Char* pLastChar = nullptr;
   wchar_t wForm;
   bool bAlef = false;
   if (m_eCharType >= FX_CHARTYPE::kArabicAlef &&
@@ -208,7 +208,7 @@
     pLastChar = GetLastChar(1, false, true);
     if (pLastChar) {
       m_pCurLine->m_iWidth -= pLastChar->m_iCharWidth;
-      CFX_Char* pPrevChar = GetLastChar(2, false, true);
+      CFGAS_Char* pPrevChar = GetLastChar(2, false, true);
       wForm = pdfium::arabic::GetFormChar(pLastChar, pPrevChar, pCurChar);
       bAlef = (wForm == 0xFEFF &&
                pLastChar->GetCharType() == FX_CHARTYPE::kArabicAlef);
@@ -232,7 +232,7 @@
       FX_SAFE_INT32 checked_width = m_pCurLine->m_iWidth;
       checked_width += iCharWidthValid;
       if (!checked_width.IsValid())
-        return CFX_Char::BreakType::kNone;
+        return CFGAS_Char::BreakType::kNone;
 
       m_pCurLine->m_iWidth = checked_width.ValueOrDie();
       iCharWidth = 0;
@@ -261,16 +261,16 @@
   FX_SAFE_INT32 checked_width = m_pCurLine->m_iWidth;
   checked_width += iCharWidthValid;
   if (!checked_width.IsValid())
-    return CFX_Char::BreakType::kNone;
+    return CFGAS_Char::BreakType::kNone;
 
   m_pCurLine->m_iWidth = checked_width.ValueOrDie();
 
   if (IsGreaterThanLineWidth(m_pCurLine->GetLineEnd()))
-    return EndBreak(CFX_Char::BreakType::kLine);
-  return CFX_Char::BreakType::kNone;
+    return EndBreak(CFGAS_Char::BreakType::kLine);
+  return CFGAS_Char::BreakType::kNone;
 }
 
-CFX_Char::BreakType CFX_RTFBreak::AppendChar_Others(CFX_Char* pCurChar) {
+CFGAS_Char::BreakType CFX_RTFBreak::AppendChar_Others(CFGAS_Char* pCurChar) {
   FX_CHARTYPE chartype = pCurChar->GetCharType();
   wchar_t wForm = pCurChar->char_code();
   FX_SAFE_INT32 iCharWidth;
@@ -291,41 +291,41 @@
   FX_SAFE_INT32 checked_width = m_pCurLine->m_iWidth;
   checked_width += iCharWidthValid;
   if (!checked_width.IsValid())
-    return CFX_Char::BreakType::kNone;
+    return CFGAS_Char::BreakType::kNone;
 
   m_pCurLine->m_iWidth = checked_width.ValueOrDie();
   if (chartype != FX_CHARTYPE::kSpace &&
       IsGreaterThanLineWidth(m_pCurLine->GetLineEnd())) {
-    return EndBreak(CFX_Char::BreakType::kLine);
+    return EndBreak(CFGAS_Char::BreakType::kLine);
   }
-  return CFX_Char::BreakType::kNone;
+  return CFGAS_Char::BreakType::kNone;
 }
 
-CFX_Char::BreakType CFX_RTFBreak::EndBreak(CFX_Char::BreakType dwStatus) {
-  DCHECK(dwStatus != CFX_Char::BreakType::kNone);
+CFGAS_Char::BreakType CFX_RTFBreak::EndBreak(CFGAS_Char::BreakType dwStatus) {
+  DCHECK(dwStatus != CFGAS_Char::BreakType::kNone);
 
   ++m_dwIdentity;
   if (!m_pCurLine->m_LinePieces.empty()) {
-    if (dwStatus != CFX_Char::BreakType::kPiece)
+    if (dwStatus != CFGAS_Char::BreakType::kPiece)
       m_pCurLine->m_LinePieces.back().m_dwStatus = dwStatus;
     return m_pCurLine->m_LinePieces.back().m_dwStatus;
   }
 
   if (HasLine()) {
     if (m_Lines[m_iReadyLineIndex].m_LinePieces.empty())
-      return CFX_Char::BreakType::kNone;
+      return CFGAS_Char::BreakType::kNone;
 
-    if (dwStatus != CFX_Char::BreakType::kPiece)
+    if (dwStatus != CFGAS_Char::BreakType::kPiece)
       m_Lines[m_iReadyLineIndex].m_LinePieces.back().m_dwStatus = dwStatus;
     return m_Lines[m_iReadyLineIndex].m_LinePieces.back().m_dwStatus;
   }
 
   if (m_pCurLine->m_LineChars.empty())
-    return CFX_Char::BreakType::kNone;
+    return CFGAS_Char::BreakType::kNone;
 
-  CFX_Char* tc = m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
+  CFGAS_Char* tc = m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
   tc->m_dwStatus = dwStatus;
-  if (dwStatus == CFX_Char::BreakType::kPiece)
+  if (dwStatus == CFGAS_Char::BreakType::kPiece)
     return dwStatus;
 
   m_iReadyLineIndex = m_pCurLine == &m_Lines[0] ? 0 : 1;
@@ -342,17 +342,17 @@
   m_pCurLine = pNextLine;
   m_pCurLine->m_iStart = m_iLineStart;
 
-  CFX_Char* pTC = GetLastChar(0, false, true);
+  CFGAS_Char* pTC = GetLastChar(0, false, true);
   m_eCharType = pTC ? pTC->GetCharType() : FX_CHARTYPE::kUnknown;
   return dwStatus;
 }
 
 bool CFX_RTFBreak::EndBreak_SplitLine(CFX_BreakLine* pNextLine,
                                       bool bAllChars,
-                                      CFX_Char::BreakType dwStatus) {
+                                      CFGAS_Char::BreakType dwStatus) {
   bool bDone = false;
   if (IsGreaterThanLineWidth(m_pCurLine->GetLineEnd())) {
-    const CFX_Char* tc =
+    const CFGAS_Char* tc =
         m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
     switch (tc->GetCharType()) {
       case FX_CHARTYPE::kTab:
@@ -374,7 +374,7 @@
     return false;
   }
 
-  const CFX_Char* pCurChars = m_pCurLine->m_LineChars.data();
+  const CFGAS_Char* pCurChars = m_pCurLine->m_LineChars.data();
   CFX_BreakPiece tp;
   tp.m_pChars = &m_pCurLine->m_LineChars;
   bool bNew = true;
@@ -382,7 +382,7 @@
   int32_t iLast = pdfium::CollectionSize<int32_t>(m_pCurLine->m_LineChars) - 1;
   int32_t j = 0;
   for (int32_t i = 0; i <= iLast;) {
-    const CFX_Char* pTC = pCurChars + i;
+    const CFGAS_Char* pTC = pCurChars + i;
     if (bNew) {
       tp.m_iStartChar = i;
       tp.m_iStartPos += tp.m_iWidth;
@@ -398,7 +398,7 @@
       bNew = false;
     }
 
-    if (i == iLast || pTC->m_dwStatus != CFX_Char::BreakType::kNone ||
+    if (i == iLast || pTC->m_dwStatus != CFGAS_Char::BreakType::kNone ||
         pTC->m_dwIdentity != dwIdentity) {
       tp.m_iCharCount = i - j;
       if (pTC->m_dwIdentity == dwIdentity) {
@@ -418,9 +418,9 @@
 }
 
 void CFX_RTFBreak::EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
-                                     CFX_Char::BreakType dwStatus) {
-  CFX_Char* pTC;
-  std::vector<CFX_Char>& chars = m_pCurLine->m_LineChars;
+                                     CFGAS_Char::BreakType dwStatus) {
+  CFGAS_Char* pTC;
+  std::vector<CFGAS_Char>& chars = m_pCurLine->m_LineChars;
   if (!m_bPagination && m_pCurLine->HasArabicChar()) {
     size_t iBidiNum = 0;
     for (size_t i = 0; i < m_pCurLine->m_LineChars.size(); ++i) {
@@ -431,7 +431,7 @@
       if (i == 0)
         pTC->m_iBidiLevel = 1;
     }
-    CFX_Char::BidiLine(&chars, iBidiNum + 1);
+    CFGAS_Char::BidiLine(&chars, iBidiNum + 1);
   } else {
     for (size_t i = 0; i < m_pCurLine->m_LineChars.size(); ++i) {
       pTC = &chars[i];
@@ -442,7 +442,7 @@
   }
 
   CFX_BreakPiece tp;
-  tp.m_dwStatus = CFX_Char::BreakType::kPiece;
+  tp.m_dwStatus = CFGAS_Char::BreakType::kPiece;
   tp.m_iStartPos = m_pCurLine->m_iStart;
   tp.m_pChars = &chars;
 
@@ -467,7 +467,7 @@
       dwIdentity = pTC->m_dwIdentity;
       tp.m_dwIdentity = dwIdentity;
       tp.m_pUserData = pTC->m_pUserData;
-      tp.m_dwStatus = CFX_Char::BreakType::kPiece;
+      tp.m_dwStatus = CFGAS_Char::BreakType::kPiece;
       ++i;
     } else if (iBidiLevel != pTC->m_iBidiLevel ||
                pTC->m_dwIdentity != dwIdentity) {
@@ -509,7 +509,7 @@
 
 void CFX_RTFBreak::EndBreak_Alignment(const std::deque<FX_TPO>& tpos,
                                       bool bAllChars,
-                                      CFX_Char::BreakType dwStatus) {
+                                      CFGAS_Char::BreakType dwStatus) {
   int32_t iNetWidth = m_pCurLine->m_iWidth;
   int32_t iGapChars = 0;
   bool bFind = false;
@@ -521,7 +521,7 @@
     bool bArabic = FX_IsOdd(ttp.m_iBidiLevel);
     int32_t j = bArabic ? 0 : ttp.m_iCharCount - 1;
     while (j > -1 && j < ttp.m_iCharCount) {
-      const CFX_Char* tc = ttp.GetChar(j);
+      const CFGAS_Char* tc = ttp.GetChar(j);
       if (tc->m_eLineBreakType == FX_LINEBREAKTYPE::kDIRECT_BRK)
         ++iGapChars;
 
@@ -549,7 +549,7 @@
   int32_t iOffset = m_iLineWidth - iNetWidth;
   if (iGapChars > 0 && (m_iAlignment == CFX_RTFLineAlignment::Distributed ||
                         (m_iAlignment == CFX_RTFLineAlignment::Justified &&
-                         dwStatus != CFX_Char::BreakType::kParagraph))) {
+                         dwStatus != CFGAS_Char::BreakType::kParagraph))) {
     int32_t iStart = -1;
     for (const auto& tpo : tpos) {
       CFX_BreakPiece& ttp = m_pCurLine->m_LinePieces[tpo.index];
@@ -559,7 +559,7 @@
         ttp.m_iStartPos = iStart;
 
       for (int32_t j = 0; j < ttp.m_iCharCount; ++j) {
-        CFX_Char* tc = ttp.GetChar(j);
+        CFGAS_Char* tc = ttp.GetChar(j);
         if (tc->m_eLineBreakType != FX_LINEBREAKTYPE::kDIRECT_BRK ||
             tc->m_iCharWidth < 0) {
           continue;
@@ -585,7 +585,7 @@
   }
 }
 
-int32_t CFX_RTFBreak::GetBreakPos(std::vector<CFX_Char>& tca,
+int32_t CFX_RTFBreak::GetBreakPos(std::vector<CFGAS_Char>& tca,
                                   bool bAllChars,
                                   bool bOnlyBrk,
                                   int32_t* pEndPos) {
@@ -607,8 +607,8 @@
     iBreakPos = *pEndPos;
   }
 
-  CFX_Char* pCharArray = tca.data();
-  CFX_Char* pCur = pCharArray + iLength;
+  CFGAS_Char* pCharArray = tca.data();
+  CFGAS_Char* pCur = pCharArray + iLength;
   --iLength;
   if (bAllChars)
     pCur->m_eLineBreakType = FX_LINEBREAKTYPE::kUNKNOWN;
@@ -690,7 +690,7 @@
     return;
 
   int32_t iEndPos = pCurLine->GetLineEnd();
-  std::vector<CFX_Char>& curChars = pCurLine->m_LineChars;
+  std::vector<CFGAS_Char>& curChars = pCurLine->m_LineChars;
   int32_t iCharPos = GetBreakPos(curChars, bAllChars, false, &iEndPos);
   if (iCharPos < 0)
     iCharPos = 0;
@@ -703,7 +703,7 @@
   }
 
   pNextLine->m_LineChars =
-      std::vector<CFX_Char>(curChars.begin() + iCharPos, curChars.end());
+      std::vector<CFGAS_Char>(curChars.begin() + iCharPos, curChars.end());
   curChars.erase(curChars.begin() + iCharPos, curChars.end());
   pNextLine->m_iStart = pCurLine->m_iStart;
   pNextLine->m_iWidth = pCurLine->GetLineEnd() - iEndPos;
@@ -715,7 +715,7 @@
       pCurLine->DecrementArabicCharCount();
       pNextLine->IncrementArabicCharCount();
     }
-    pNextLine->m_LineChars[i].m_dwStatus = CFX_Char::BreakType::kNone;
+    pNextLine->m_LineChars[i].m_dwStatus = CFGAS_Char::BreakType::kNone;
   }
 }
 
diff --git a/xfa/fgas/layout/cfx_rtfbreak.h b/xfa/fgas/layout/cfx_rtfbreak.h
index 6d2475c..07db8e2 100644
--- a/xfa/fgas/layout/cfx_rtfbreak.h
+++ b/xfa/fgas/layout/cfx_rtfbreak.h
@@ -39,22 +39,22 @@
 
   void AddPositionedTab(float fTabPos);
 
-  CFX_Char::BreakType EndBreak(CFX_Char::BreakType dwStatus);
+  CFGAS_Char::BreakType EndBreak(CFGAS_Char::BreakType dwStatus);
 
   size_t GetDisplayPos(const CFX_TextPiece* pPiece,
                        std::vector<TextCharPos>* pCharPos) const;
 
-  CFX_Char::BreakType AppendChar(wchar_t wch);
+  CFGAS_Char::BreakType AppendChar(wchar_t wch);
 
  private:
-  void AppendChar_Combination(CFX_Char* pCurChar);
-  void AppendChar_Tab(CFX_Char* pCurChar);
-  CFX_Char::BreakType AppendChar_Control(CFX_Char* pCurChar);
-  CFX_Char::BreakType AppendChar_Arabic(CFX_Char* pCurChar);
-  CFX_Char::BreakType AppendChar_Others(CFX_Char* pCurChar);
+  void AppendChar_Combination(CFGAS_Char* pCurChar);
+  void AppendChar_Tab(CFGAS_Char* pCurChar);
+  CFGAS_Char::BreakType AppendChar_Control(CFGAS_Char* pCurChar);
+  CFGAS_Char::BreakType AppendChar_Arabic(CFGAS_Char* pCurChar);
+  CFGAS_Char::BreakType AppendChar_Others(CFGAS_Char* pCurChar);
   bool GetPositionedTab(int32_t* iTabPos) const;
 
-  int32_t GetBreakPos(std::vector<CFX_Char>& tca,
+  int32_t GetBreakPos(std::vector<CFGAS_Char>& tca,
                       bool bAllChars,
                       bool bOnlyBrk,
                       int32_t* pEndPos);
@@ -63,12 +63,12 @@
                      bool bAllChars);
   bool EndBreak_SplitLine(CFX_BreakLine* pNextLine,
                           bool bAllChars,
-                          CFX_Char::BreakType dwStatus);
+                          CFGAS_Char::BreakType dwStatus);
   void EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
-                         CFX_Char::BreakType dwStatus);
+                         CFGAS_Char::BreakType dwStatus);
   void EndBreak_Alignment(const std::deque<FX_TPO>& tpos,
                           bool bAllChars,
-                          CFX_Char::BreakType dwStatus);
+                          CFGAS_Char::BreakType dwStatus);
 
   bool m_bPagination;
   std::vector<int32_t> m_PositionedTabs;
diff --git a/xfa/fgas/layout/cfx_rtfbreak_unittest.cpp b/xfa/fgas/layout/cfx_rtfbreak_unittest.cpp
index b300cd8..95f2174 100644
--- a/xfa/fgas/layout/cfx_rtfbreak_unittest.cpp
+++ b/xfa/fgas/layout/cfx_rtfbreak_unittest.cpp
@@ -14,7 +14,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "xfa/fgas/font/cfgas_fontmgr.h"
 #include "xfa/fgas/font/cfgas_gefont.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 
 class CFX_RTFBreakTest : public testing::Test {
  public:
@@ -41,9 +41,9 @@
 
   WideString str(L"Input String.");
   for (wchar_t ch : str)
-    EXPECT_EQ(CFX_Char::BreakType::kNone, rtf_break->AppendChar(ch));
+    EXPECT_EQ(CFGAS_Char::BreakType::kNone, rtf_break->AppendChar(ch));
 
-  EXPECT_EQ(CFX_Char::BreakType::kParagraph, rtf_break->AppendChar(L'\n'));
+  EXPECT_EQ(CFGAS_Char::BreakType::kParagraph, rtf_break->AppendChar(L'\n'));
   ASSERT_EQ(1, rtf_break->CountBreakPieces());
   EXPECT_EQ(str + L"\n", rtf_break->GetBreakPieceUnstable(0)->GetString());
 
@@ -53,22 +53,22 @@
 
   str = L"Second str.";
   for (wchar_t ch : str)
-    EXPECT_EQ(CFX_Char::BreakType::kNone, rtf_break->AppendChar(ch));
+    EXPECT_EQ(CFGAS_Char::BreakType::kNone, rtf_break->AppendChar(ch));
 
   // Force the end of the break at the end of the string.
-  rtf_break->EndBreak(CFX_Char::BreakType::kParagraph);
+  rtf_break->EndBreak(CFGAS_Char::BreakType::kParagraph);
   ASSERT_EQ(1, rtf_break->CountBreakPieces());
   EXPECT_EQ(str, rtf_break->GetBreakPieceUnstable(0)->GetString());
 }
 
 TEST_F(CFX_RTFBreakTest, ControlCharacters) {
   auto rtf_break = CreateBreak(FX_LAYOUTSTYLE_ExpandTab);
-  EXPECT_EQ(CFX_Char::BreakType::kLine, rtf_break->AppendChar(L'\v'));
-  EXPECT_EQ(CFX_Char::BreakType::kPage, rtf_break->AppendChar(L'\f'));
+  EXPECT_EQ(CFGAS_Char::BreakType::kLine, rtf_break->AppendChar(L'\v'));
+  EXPECT_EQ(CFGAS_Char::BreakType::kPage, rtf_break->AppendChar(L'\f'));
   const wchar_t kUnicodeParagraphSeparator = 0x2029;
-  EXPECT_EQ(CFX_Char::BreakType::kParagraph,
+  EXPECT_EQ(CFGAS_Char::BreakType::kParagraph,
             rtf_break->AppendChar(kUnicodeParagraphSeparator));
-  EXPECT_EQ(CFX_Char::BreakType::kParagraph, rtf_break->AppendChar(L'\n'));
+  EXPECT_EQ(CFGAS_Char::BreakType::kParagraph, rtf_break->AppendChar(L'\n'));
 
   ASSERT_EQ(1, rtf_break->CountBreakPieces());
   EXPECT_EQ(L"\v", rtf_break->GetBreakPieceUnstable(0)->GetString());
@@ -83,8 +83,8 @@
   for (wchar_t ch : input)
     rtf_break->AppendChar(ch);
 
-  std::vector<CFX_Char> chars =
+  std::vector<CFGAS_Char> chars =
       rtf_break->GetCurrentLineForTesting()->m_LineChars;
-  CFX_Char::BidiLine(&chars, chars.size());
+  CFGAS_Char::BidiLine(&chars, chars.size());
   EXPECT_EQ(3u, chars.size());
 }
diff --git a/xfa/fgas/layout/cfx_txtbreak.cpp b/xfa/fgas/layout/cfx_txtbreak.cpp
index 3de42fc..7d5bf9a 100644
--- a/xfa/fgas/layout/cfx_txtbreak.cpp
+++ b/xfa/fgas/layout/cfx_txtbreak.cpp
@@ -16,7 +16,7 @@
 #include "third_party/base/containers/adapters.h"
 #include "third_party/base/stl_util.h"
 #include "xfa/fgas/font/cfgas_gefont.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 #include "xfa/fgas/layout/fx_arabic.h"
 #include "xfa/fgas/layout/fx_linebreak.h"
 
@@ -51,7 +51,7 @@
   m_iCombWidth = FXSYS_roundf(fCombWidth * kConversionFactor);
 }
 
-void CFX_TxtBreak::AppendChar_Combination(CFX_Char* pCurChar) {
+void CFX_TxtBreak::AppendChar_Combination(CFGAS_Char* pCurChar) {
   wchar_t wch = pCurChar->char_code();
   wchar_t wForm;
   FX_SAFE_INT32 iCharWidth = 0;
@@ -60,7 +60,7 @@
     iCharWidth = m_iCombWidth;
   } else {
     wForm = wch;
-    CFX_Char* pLastChar = GetLastChar(0, false, false);
+    CFGAS_Char* pLastChar = GetLastChar(0, false, false);
     if (pLastChar &&
         (pLastChar->m_dwCharStyles & FX_TXTCHARSTYLE_ArabicShadda) == 0) {
       bool bShadda = false;
@@ -97,42 +97,42 @@
   pCurChar->m_iCharWidth = iCharWidth.ValueOrDefault(0);
 }
 
-void CFX_TxtBreak::AppendChar_Tab(CFX_Char* pCurChar) {
+void CFX_TxtBreak::AppendChar_Tab(CFGAS_Char* pCurChar) {
   m_eCharType = FX_CHARTYPE::kTab;
 }
 
-CFX_Char::BreakType CFX_TxtBreak::AppendChar_Control(CFX_Char* pCurChar) {
+CFGAS_Char::BreakType CFX_TxtBreak::AppendChar_Control(CFGAS_Char* pCurChar) {
   m_eCharType = FX_CHARTYPE::kControl;
-  CFX_Char::BreakType dwRet = CFX_Char::BreakType::kNone;
+  CFGAS_Char::BreakType dwRet = CFGAS_Char::BreakType::kNone;
   if (!m_bSingleLine) {
     wchar_t wch = pCurChar->char_code();
     switch (wch) {
       case L'\v':
       case 0x2028:
-        dwRet = CFX_Char::BreakType::kLine;
+        dwRet = CFGAS_Char::BreakType::kLine;
         break;
       case L'\f':
-        dwRet = CFX_Char::BreakType::kPage;
+        dwRet = CFGAS_Char::BreakType::kPage;
         break;
       case 0x2029:
-        dwRet = CFX_Char::BreakType::kParagraph;
+        dwRet = CFGAS_Char::BreakType::kParagraph;
         break;
       default:
         if (wch == m_wParagraphBreakChar)
-          dwRet = CFX_Char::BreakType::kParagraph;
+          dwRet = CFGAS_Char::BreakType::kParagraph;
         break;
     }
-    if (dwRet != CFX_Char::BreakType::kNone)
+    if (dwRet != CFGAS_Char::BreakType::kNone)
       dwRet = EndBreak(dwRet);
   }
   return dwRet;
 }
 
-CFX_Char::BreakType CFX_TxtBreak::AppendChar_Arabic(CFX_Char* pCurChar) {
+CFGAS_Char::BreakType CFX_TxtBreak::AppendChar_Arabic(CFGAS_Char* pCurChar) {
   FX_CHARTYPE chartype = pCurChar->GetCharType();
   int32_t& iLineWidth = m_pCurLine->m_iWidth;
   wchar_t wForm;
-  CFX_Char* pLastChar = nullptr;
+  CFGAS_Char* pLastChar = nullptr;
   bool bAlef = false;
   if (!m_bCombText && m_eCharType >= FX_CHARTYPE::kArabicAlef &&
       m_eCharType <= FX_CHARTYPE::kArabicDistortion) {
@@ -143,7 +143,7 @@
         iLineWidth -= pLastChar->m_iCharWidth;
       iCharWidth = pLastChar->m_iCharWidth;
 
-      CFX_Char* pPrevChar = GetLastChar(2, true, false);
+      CFGAS_Char* pPrevChar = GetLastChar(2, true, false);
       wForm = pdfium::arabic::GetFormChar(pLastChar, pPrevChar, pCurChar);
       bAlef = (wForm == 0xFEFF &&
                pLastChar->GetCharType() == FX_CHARTYPE::kArabicAlef);
@@ -191,11 +191,11 @@
 
   m_pCurLine->IncrementArabicCharCount();
   if (!m_bSingleLine && IsGreaterThanLineWidth(iLineWidth))
-    return EndBreak(CFX_Char::BreakType::kLine);
-  return CFX_Char::BreakType::kNone;
+    return EndBreak(CFGAS_Char::BreakType::kLine);
+  return CFGAS_Char::BreakType::kNone;
 }
 
-CFX_Char::BreakType CFX_TxtBreak::AppendChar_Others(CFX_Char* pCurChar) {
+CFGAS_Char::BreakType CFX_TxtBreak::AppendChar_Others(CFGAS_Char* pCurChar) {
   FX_CHARTYPE chartype = pCurChar->GetCharType();
   int32_t& iLineWidth = m_pCurLine->m_iWidth;
   FX_SAFE_INT32 iCharWidth = 0;
@@ -224,37 +224,37 @@
   iLineWidth += iCharWidthValid;
   if (!m_bSingleLine && chartype != FX_CHARTYPE::kSpace &&
       IsGreaterThanLineWidth(iLineWidth)) {
-    return EndBreak(CFX_Char::BreakType::kLine);
+    return EndBreak(CFGAS_Char::BreakType::kLine);
   }
 
-  return CFX_Char::BreakType::kNone;
+  return CFGAS_Char::BreakType::kNone;
 }
 
-CFX_Char::BreakType CFX_TxtBreak::AppendChar(wchar_t wch) {
+CFGAS_Char::BreakType CFX_TxtBreak::AppendChar(wchar_t wch) {
   FX_CHARTYPE chartype = FX_GetCharType(wch);
   m_pCurLine->m_LineChars.emplace_back(wch, m_iHorizontalScale,
                                        m_iVerticalScale);
-  CFX_Char* pCurChar = &m_pCurLine->m_LineChars.back();
+  CFGAS_Char* pCurChar = &m_pCurLine->m_LineChars.back();
   pCurChar->m_dwCharStyles = m_iAlignment | (1 << 8);
 
-  CFX_Char::BreakType dwRet1 = CFX_Char::BreakType::kNone;
+  CFGAS_Char::BreakType dwRet1 = CFGAS_Char::BreakType::kNone;
   if (chartype != FX_CHARTYPE::kCombination &&
       GetUnifiedCharType(m_eCharType) != GetUnifiedCharType(chartype) &&
       m_eCharType != FX_CHARTYPE::kUnknown && !m_bSingleLine &&
       IsGreaterThanLineWidth(m_pCurLine->m_iWidth) &&
       (m_eCharType != FX_CHARTYPE::kSpace ||
        chartype != FX_CHARTYPE::kControl)) {
-    dwRet1 = EndBreak(CFX_Char::BreakType::kLine);
+    dwRet1 = EndBreak(CFGAS_Char::BreakType::kLine);
     if (!m_pCurLine->m_LineChars.empty())
       pCurChar = &m_pCurLine->m_LineChars.back();
   }
 
-  CFX_Char::BreakType dwRet2 = CFX_Char::BreakType::kNone;
+  CFGAS_Char::BreakType dwRet2 = CFGAS_Char::BreakType::kNone;
   if (wch == m_wParagraphBreakChar) {
     // This is handled in AppendChar_Control, but it seems like \n and \r
     // don't get matched as control characters so we go into AppendChar_other
     // and never detect the new paragraph ...
-    dwRet2 = CFX_Char::BreakType::kParagraph;
+    dwRet2 = CFGAS_Char::BreakType::kParagraph;
     EndBreak(dwRet2);
   } else {
     switch (chartype) {
@@ -290,7 +290,7 @@
 void CFX_TxtBreak::EndBreak_SplitLine(CFX_BreakLine* pNextLine,
                                       bool bAllChars) {
   bool bDone = false;
-  CFX_Char* pTC;
+  CFGAS_Char* pTC;
   if (!m_bSingleLine && IsGreaterThanLineWidth(m_pCurLine->m_iWidth)) {
     pTC = m_pCurLine->GetChar(m_pCurLine->m_LineChars.size() - 1);
     switch (pTC->GetCharType()) {
@@ -311,11 +311,11 @@
 }
 
 void CFX_TxtBreak::EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
-                                     CFX_Char::BreakType dwStatus) {
+                                     CFGAS_Char::BreakType dwStatus) {
   CFX_BreakPiece tp;
   FX_TPO tpo;
-  CFX_Char* pTC;
-  std::vector<CFX_Char>& chars = m_pCurLine->m_LineChars;
+  CFGAS_Char* pTC;
+  std::vector<CFGAS_Char>& chars = m_pCurLine->m_LineChars;
   if (!m_pCurLine->HasArabicChar()) {
     tp.m_dwStatus = dwStatus;
     tp.m_iStartPos = m_pCurLine->m_iStart;
@@ -341,9 +341,9 @@
     if (i == 0)
       pTC->m_iBidiLevel = 1;
   }
-  CFX_Char::BidiLine(&chars, iBidiNum + 1);
+  CFGAS_Char::BidiLine(&chars, iBidiNum + 1);
 
-  tp.m_dwStatus = CFX_Char::BreakType::kPiece;
+  tp.m_dwStatus = CFGAS_Char::BreakType::kPiece;
   tp.m_iStartPos = m_pCurLine->m_iStart;
   tp.m_pChars = &m_pCurLine->m_LineChars;
   int32_t iBidiLevel = -1;
@@ -361,10 +361,10 @@
       tp.m_dwCharStyles = pTC->m_dwCharStyles;
       tp.m_iHorizontalScale = pTC->horizonal_scale();
       tp.m_iVerticalScale = pTC->vertical_scale();
-      tp.m_dwStatus = CFX_Char::BreakType::kPiece;
+      tp.m_dwStatus = CFGAS_Char::BreakType::kPiece;
     }
     if (iBidiLevel != pTC->m_iBidiLevel ||
-        pTC->m_dwStatus != CFX_Char::BreakType::kNone) {
+        pTC->m_dwStatus != CFGAS_Char::BreakType::kNone) {
       if (iBidiLevel == pTC->m_iBidiLevel) {
         tp.m_dwStatus = pTC->m_dwStatus;
         iCharWidth = pTC->m_iCharWidth;
@@ -414,7 +414,7 @@
 
 void CFX_TxtBreak::EndBreak_Alignment(const std::deque<FX_TPO>& tpos,
                                       bool bAllChars,
-                                      CFX_Char::BreakType dwStatus) {
+                                      CFGAS_Char::BreakType dwStatus) {
   int32_t iNetWidth = m_pCurLine->m_iWidth;
   int32_t iGapChars = 0;
   bool bFind = false;
@@ -426,7 +426,7 @@
     bool bArabic = FX_IsOdd(ttp.m_iBidiLevel);
     int32_t j = bArabic ? 0 : ttp.m_iCharCount - 1;
     while (j > -1 && j < ttp.m_iCharCount) {
-      const CFX_Char* pTC = ttp.GetChar(j);
+      const CFGAS_Char* pTC = ttp.GetChar(j);
       if (pTC->m_eLineBreakType == FX_LINEBREAKTYPE::kDIRECT_BRK)
         iGapChars++;
       if (!bFind || !bAllChars) {
@@ -449,7 +449,7 @@
 
   int32_t iOffset = m_iLineWidth - iNetWidth;
   if (iGapChars > 0 && m_iAlignment & CFX_TxtLineAlignment_Justified &&
-      dwStatus != CFX_Char::BreakType::kParagraph) {
+      dwStatus != CFGAS_Char::BreakType::kParagraph) {
     int32_t iStart = -1;
     for (auto& tpo : tpos) {
       CFX_BreakPiece& ttp = m_pCurLine->m_LinePieces[tpo.index];
@@ -460,7 +460,7 @@
 
       for (int32_t j = 0; j < ttp.m_iCharCount && iGapChars > 0;
            j++, iGapChars--) {
-        CFX_Char* pTC = ttp.GetChar(j);
+        CFGAS_Char* pTC = ttp.GetChar(j);
         if (pTC->m_eLineBreakType != FX_LINEBREAKTYPE::kDIRECT_BRK ||
             pTC->m_iCharWidth < 0) {
           continue;
@@ -485,29 +485,29 @@
   }
 }
 
-CFX_Char::BreakType CFX_TxtBreak::EndBreak(CFX_Char::BreakType dwStatus) {
-  DCHECK(dwStatus != CFX_Char::BreakType::kNone);
+CFGAS_Char::BreakType CFX_TxtBreak::EndBreak(CFGAS_Char::BreakType dwStatus) {
+  DCHECK(dwStatus != CFGAS_Char::BreakType::kNone);
 
   if (!m_pCurLine->m_LinePieces.empty()) {
-    if (dwStatus != CFX_Char::BreakType::kPiece)
+    if (dwStatus != CFGAS_Char::BreakType::kPiece)
       m_pCurLine->m_LinePieces.back().m_dwStatus = dwStatus;
     return m_pCurLine->m_LinePieces.back().m_dwStatus;
   }
 
   if (HasLine()) {
     if (m_Lines[m_iReadyLineIndex].m_LinePieces.empty())
-      return CFX_Char::BreakType::kNone;
+      return CFGAS_Char::BreakType::kNone;
 
-    if (dwStatus != CFX_Char::BreakType::kPiece)
+    if (dwStatus != CFGAS_Char::BreakType::kPiece)
       m_Lines[m_iReadyLineIndex].m_LinePieces.back().m_dwStatus = dwStatus;
     return m_Lines[m_iReadyLineIndex].m_LinePieces.back().m_dwStatus;
   }
 
   if (m_pCurLine->m_LineChars.empty())
-    return CFX_Char::BreakType::kNone;
+    return CFGAS_Char::BreakType::kNone;
 
   m_pCurLine->m_LineChars.back().m_dwStatus = dwStatus;
-  if (dwStatus == CFX_Char::BreakType::kPiece)
+  if (dwStatus == CFGAS_Char::BreakType::kPiece)
     return dwStatus;
 
   m_iReadyLineIndex = m_pCurLine == &m_Lines[0] ? 0 : 1;
@@ -521,17 +521,17 @@
     EndBreak_Alignment(tpos, bAllChars, dwStatus);
 
   m_pCurLine = pNextLine;
-  CFX_Char* pTC = GetLastChar(0, false, false);
+  CFGAS_Char* pTC = GetLastChar(0, false, false);
   m_eCharType = pTC ? pTC->GetCharType() : FX_CHARTYPE::kUnknown;
 
   return dwStatus;
 }
 
-int32_t CFX_TxtBreak::GetBreakPos(std::vector<CFX_Char>* pChars,
+int32_t CFX_TxtBreak::GetBreakPos(std::vector<CFGAS_Char>* pChars,
                                   bool bAllChars,
                                   bool bOnlyBrk,
                                   int32_t* pEndPos) {
-  std::vector<CFX_Char>& chars = *pChars;
+  std::vector<CFGAS_Char>& chars = *pChars;
   int32_t iLength = pdfium::CollectionSize<int32_t>(chars) - 1;
   if (iLength < 1)
     return iLength;
@@ -553,7 +553,7 @@
   FX_LINEBREAKTYPE eType;
   FX_BREAKPROPERTY nCur;
   FX_BREAKPROPERTY nNext;
-  CFX_Char* pCur = &chars[iLength--];
+  CFGAS_Char* pCur = &chars[iLength--];
   if (bAllChars)
     pCur->m_eLineBreakType = FX_LINEBREAKTYPE::kUNKNOWN;
 
@@ -622,7 +622,7 @@
     return;
 
   int32_t iEndPos = pCurLine->m_iWidth;
-  std::vector<CFX_Char>& curChars = pCurLine->m_LineChars;
+  std::vector<CFGAS_Char>& curChars = pCurLine->m_LineChars;
   int32_t iCharPos = GetBreakPos(&curChars, bAllChars, false, &iEndPos);
   if (iCharPos < 0)
     iCharPos = 0;
@@ -630,16 +630,16 @@
   iCharPos++;
   if (iCharPos >= pdfium::CollectionSize<int32_t>(pCurLine->m_LineChars)) {
     pNextLine->Clear();
-    CFX_Char* pTC = &curChars[iCharPos - 1];
+    CFGAS_Char* pTC = &curChars[iCharPos - 1];
     pTC->m_eLineBreakType = FX_LINEBREAKTYPE::kUNKNOWN;
     return;
   }
 
   pNextLine->m_LineChars =
-      std::vector<CFX_Char>(curChars.begin() + iCharPos, curChars.end());
+      std::vector<CFGAS_Char>(curChars.begin() + iCharPos, curChars.end());
   curChars.erase(curChars.begin() + iCharPos, curChars.end());
   pCurLine->m_iWidth = iEndPos;
-  CFX_Char* pTC = &curChars[iCharPos - 1];
+  CFGAS_Char* pTC = &curChars[iCharPos - 1];
   pTC->m_eLineBreakType = FX_LINEBREAKTYPE::kUNKNOWN;
   int32_t iWidth = 0;
   for (size_t i = 0; i < pNextLine->m_LineChars.size(); ++i) {
@@ -648,7 +648,7 @@
       pNextLine->IncrementArabicCharCount();
     }
     iWidth += std::max(0, pNextLine->m_LineChars[i].m_iCharWidth);
-    pNextLine->m_LineChars[i].m_dwStatus = CFX_Char::BreakType::kNone;
+    pNextLine->m_LineChars[i].m_dwStatus = CFGAS_Char::BreakType::kNone;
   }
   pNextLine->m_iWidth = iWidth;
 }
diff --git a/xfa/fgas/layout/cfx_txtbreak.h b/xfa/fgas/layout/cfx_txtbreak.h
index 81e157d..6430f2b 100644
--- a/xfa/fgas/layout/cfx_txtbreak.h
+++ b/xfa/fgas/layout/cfx_txtbreak.h
@@ -11,8 +11,8 @@
 #include <vector>
 
 #include "core/fxcrt/fx_coordinates.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 #include "xfa/fgas/layout/cfx_break.h"
-#include "xfa/fgas/layout/cfx_char.h"
 
 class CFGAS_GEFont;
 class TextCharPos;
@@ -27,9 +27,9 @@
   CFX_TxtLineAlignment_Justified = 1 << 2
 };
 
-inline bool CFX_BreakTypeNoneOrPiece(CFX_Char::BreakType type) {
-  return type == CFX_Char::BreakType::kNone ||
-         type == CFX_Char::BreakType::kPiece;
+inline bool CFX_BreakTypeNoneOrPiece(CFGAS_Char::BreakType type) {
+  return type == CFGAS_Char::BreakType::kNone ||
+         type == CFGAS_Char::BreakType::kPiece;
 }
 
 class CFX_TxtBreak final : public CFX_Break {
@@ -69,27 +69,27 @@
   void SetLineWidth(float fLineWidth);
   void SetAlignment(int32_t iAlignment);
   void SetCombWidth(float fCombWidth);
-  CFX_Char::BreakType EndBreak(CFX_Char::BreakType dwStatus);
+  CFGAS_Char::BreakType EndBreak(CFGAS_Char::BreakType dwStatus);
 
   size_t GetDisplayPos(const Run* pTxtRun, TextCharPos* pCharPos) const;
   std::vector<CFX_RectF> GetCharRects(const Run* pTxtRun, bool bCharBBox) const;
-  CFX_Char::BreakType AppendChar(wchar_t wch);
+  CFGAS_Char::BreakType AppendChar(wchar_t wch);
 
  private:
-  void AppendChar_Combination(CFX_Char* pCurChar);
-  void AppendChar_Tab(CFX_Char* pCurChar);
-  CFX_Char::BreakType AppendChar_Control(CFX_Char* pCurChar);
-  CFX_Char::BreakType AppendChar_Arabic(CFX_Char* pCurChar);
-  CFX_Char::BreakType AppendChar_Others(CFX_Char* pCurChar);
+  void AppendChar_Combination(CFGAS_Char* pCurChar);
+  void AppendChar_Tab(CFGAS_Char* pCurChar);
+  CFGAS_Char::BreakType AppendChar_Control(CFGAS_Char* pCurChar);
+  CFGAS_Char::BreakType AppendChar_Arabic(CFGAS_Char* pCurChar);
+  CFGAS_Char::BreakType AppendChar_Others(CFGAS_Char* pCurChar);
 
   void ResetContextCharStyles();
   void EndBreak_SplitLine(CFX_BreakLine* pNextLine, bool bAllChars);
   void EndBreak_BidiLine(std::deque<FX_TPO>* tpos,
-                         CFX_Char::BreakType dwStatus);
+                         CFGAS_Char::BreakType dwStatus);
   void EndBreak_Alignment(const std::deque<FX_TPO>& tpos,
                           bool bAllChars,
-                          CFX_Char::BreakType dwStatus);
-  int32_t GetBreakPos(std::vector<CFX_Char>* pChars,
+                          CFGAS_Char::BreakType dwStatus);
+  int32_t GetBreakPos(std::vector<CFGAS_Char>* pChars,
                       bool bAllChars,
                       bool bOnlyBrk,
                       int32_t* pEndPos);
diff --git a/xfa/fgas/layout/cfx_txtbreak_unittest.cpp b/xfa/fgas/layout/cfx_txtbreak_unittest.cpp
index 8d1ed6d..5da0635 100644
--- a/xfa/fgas/layout/cfx_txtbreak_unittest.cpp
+++ b/xfa/fgas/layout/cfx_txtbreak_unittest.cpp
@@ -11,7 +11,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "xfa/fgas/font/cfgas_fontmgr.h"
 #include "xfa/fgas/font/cfgas_gefont.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 
 class CFX_TxtBreakTest : public testing::Test {
  public:
@@ -39,8 +39,8 @@
   for (wchar_t ch : input)
     txt_break->AppendChar(ch);
 
-  std::vector<CFX_Char> chars =
+  std::vector<CFGAS_Char> chars =
       txt_break->GetCurrentLineForTesting()->m_LineChars;
-  CFX_Char::BidiLine(&chars, chars.size());
+  CFGAS_Char::BidiLine(&chars, chars.size());
   EXPECT_EQ(3u, chars.size());
 }
diff --git a/xfa/fgas/layout/fx_arabic.cpp b/xfa/fgas/layout/fx_arabic.cpp
index 9681b01..2812c8a 100644
--- a/xfa/fgas/layout/fx_arabic.cpp
+++ b/xfa/fgas/layout/fx_arabic.cpp
@@ -139,7 +139,7 @@
   return g_FX_ArabicFormTables + (unicode - 0x622);
 }
 
-const FX_ARBFORMTABLE* ParseChar(const CFX_Char* pTC,
+const FX_ARBFORMTABLE* ParseChar(const CFGAS_Char* pTC,
                                  wchar_t* wChar,
                                  FX_CHARTYPE* eType) {
   if (!pTC) {
@@ -173,15 +173,15 @@
 namespace arabic {
 
 wchar_t GetFormChar(wchar_t wch, wchar_t prev, wchar_t next) {
-  CFX_Char c(wch);
-  CFX_Char p(prev);
-  CFX_Char n(next);
+  CFGAS_Char c(wch);
+  CFGAS_Char p(prev);
+  CFGAS_Char n(next);
   return GetFormChar(&c, &p, &n);
 }
 
-wchar_t GetFormChar(const CFX_Char* cur,
-                    const CFX_Char* prev,
-                    const CFX_Char* next) {
+wchar_t GetFormChar(const CFGAS_Char* cur,
+                    const CFGAS_Char* prev,
+                    const CFGAS_Char* next) {
   FX_CHARTYPE eCur;
   wchar_t wCur;
   const FX_ARBFORMTABLE* ft = ParseChar(cur, &wCur, &eCur);
diff --git a/xfa/fgas/layout/fx_arabic.h b/xfa/fgas/layout/fx_arabic.h
index ca33aa5..425ba14 100644
--- a/xfa/fgas/layout/fx_arabic.h
+++ b/xfa/fgas/layout/fx_arabic.h
@@ -8,15 +8,15 @@
 #define XFA_FGAS_LAYOUT_FX_ARABIC_H_
 
 #include "core/fxcrt/fx_system.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 
 namespace pdfium {
 namespace arabic {
 
 wchar_t GetFormChar(wchar_t wch, wchar_t prev, wchar_t next);
-wchar_t GetFormChar(const CFX_Char* cur,
-                    const CFX_Char* prev,
-                    const CFX_Char* next);
+wchar_t GetFormChar(const CFGAS_Char* cur,
+                    const CFGAS_Char* prev,
+                    const CFGAS_Char* next);
 
 }  // namespace arabic
 }  // namespace pdfium
diff --git a/xfa/fxfa/cxfa_textlayout.cpp b/xfa/fxfa/cxfa_textlayout.cpp
index 3904e34..df118e4 100644
--- a/xfa/fxfa/cxfa_textlayout.cpp
+++ b/xfa/fxfa/cxfa_textlayout.cpp
@@ -722,7 +722,7 @@
   if (bRet && m_pLoader)
     m_pLoader->pNode = pNode;
   else
-    EndBreak(CFX_Char::BreakType::kParagraph, pLinePos, bSavePieces);
+    EndBreak(CFGAS_Char::BreakType::kParagraph, pLinePos, bSavePieces);
 }
 
 bool CXFA_TextLayout::LoadRichText(
@@ -874,7 +874,7 @@
         m_pLoader->bFilterSpace = true;
     }
     if (bCurLi)
-      EndBreak(CFX_Char::BreakType::kLine, pLinePos, bSavePieces);
+      EndBreak(CFGAS_Char::BreakType::kLine, pLinePos, bSavePieces);
   } else {
     if (pContext)
       eDisplay = pContext->GetDisplay();
@@ -883,9 +883,9 @@
   if (!pContext || bContentNode)
     return true;
 
-  CFX_Char::BreakType dwStatus = (eDisplay == CFX_CSSDisplay::Block)
-                                     ? CFX_Char::BreakType::kParagraph
-                                     : CFX_Char::BreakType::kPiece;
+  CFGAS_Char::BreakType dwStatus = (eDisplay == CFX_CSSDisplay::Block)
+                                       ? CFGAS_Char::BreakType::kParagraph
+                                       : CFGAS_Char::BreakType::kPiece;
   EndBreak(dwStatus, pLinePos, bSavePieces);
   if (eDisplay == CFX_CSSDisplay::Block) {
     *pLinePos += fSpaceBelow;
@@ -906,7 +906,7 @@
                                  float* pLinePos,
                                  float fSpaceAbove,
                                  bool bSavePieces) {
-  CFX_Char::BreakType dwStatus = CFX_Char::BreakType::kNone;
+  CFGAS_Char::BreakType dwStatus = CFGAS_Char::BreakType::kNone;
   int32_t iChar = 0;
   if (m_pLoader)
     iChar = m_pLoader->iChar;
@@ -918,15 +918,15 @@
       wch = 0x20;
 
     dwStatus = m_pBreak->AppendChar(wch);
-    if (dwStatus != CFX_Char::BreakType::kNone &&
-        dwStatus != CFX_Char::BreakType::kPiece) {
+    if (dwStatus != CFGAS_Char::BreakType::kNone &&
+        dwStatus != CFGAS_Char::BreakType::kPiece) {
       AppendTextLine(dwStatus, pLinePos, bSavePieces, false);
       if (IsEnd(bSavePieces)) {
         if (m_pLoader)
           m_pLoader->iChar = i;
         return true;
       }
-      if (dwStatus == CFX_Char::BreakType::kParagraph && m_bRichText)
+      if (dwStatus == CFGAS_Char::BreakType::kParagraph && m_bRichText)
         *pLinePos += fSpaceAbove;
     }
   }
@@ -944,12 +944,12 @@
   return false;
 }
 
-void CXFA_TextLayout::EndBreak(CFX_Char::BreakType dwStatus,
+void CXFA_TextLayout::EndBreak(CFGAS_Char::BreakType dwStatus,
                                float* pLinePos,
                                bool bSavePieces) {
   dwStatus = m_pBreak->EndBreak(dwStatus);
-  if (dwStatus != CFX_Char::BreakType::kNone &&
-      dwStatus != CFX_Char::BreakType::kPiece)
+  if (dwStatus != CFGAS_Char::BreakType::kNone &&
+      dwStatus != CFGAS_Char::BreakType::kPiece)
     AppendTextLine(dwStatus, pLinePos, bSavePieces, true);
 }
 
@@ -1008,7 +1008,7 @@
   }
 }
 
-void CXFA_TextLayout::AppendTextLine(CFX_Char::BreakType dwStatus,
+void CXFA_TextLayout::AppendTextLine(CFGAS_Char::BreakType dwStatus,
                                      float* pLinePos,
                                      bool bSavePieces,
                                      bool bEndBreak) {
@@ -1112,7 +1112,7 @@
   }
 
   m_pBreak->ClearBreakPieces();
-  if (dwStatus == CFX_Char::BreakType::kParagraph) {
+  if (dwStatus == CFGAS_Char::BreakType::kParagraph) {
     m_pBreak->Reset();
     if (!pStyle && bEndBreak) {
       CXFA_Para* para = m_pTextProvider->GetParaIfExists();
diff --git a/xfa/fxfa/cxfa_textlayout.h b/xfa/fxfa/cxfa_textlayout.h
index 398bb0b..41e1197 100644
--- a/xfa/fxfa/cxfa_textlayout.h
+++ b/xfa/fxfa/cxfa_textlayout.h
@@ -20,7 +20,7 @@
 #include "v8/include/cppgc/garbage-collected.h"
 #include "v8/include/cppgc/member.h"
 #include "v8/include/cppgc/visitor.h"
-#include "xfa/fgas/layout/cfx_char.h"
+#include "xfa/fgas/layout/cfgas_char.h"
 #include "xfa/fgas/layout/cfx_textpiece.h"
 #include "xfa/fxfa/fxfa_basic.h"
 
@@ -147,11 +147,11 @@
                   float* pLinePos,
                   float fSpaceAbove,
                   bool bSavePieces);
-  void AppendTextLine(CFX_Char::BreakType dwStatus,
+  void AppendTextLine(CFGAS_Char::BreakType dwStatus,
                       float* pLinePos,
                       bool bSavePieces,
                       bool bEndBreak);
-  void EndBreak(CFX_Char::BreakType dwStatus, float* pLinePos, bool bDefault);
+  void EndBreak(CFGAS_Char::BreakType dwStatus, float* pLinePos, bool bDefault);
   bool IsEnd(bool bSavePieces);
   void UpdateAlign(float fHeight, float fBottom);
   void RenderString(CFX_RenderDevice* pDevice,