diff --git a/core/fxcrt/css/cfx_csssyntaxparser.cpp b/core/fxcrt/css/cfx_csssyntaxparser.cpp
index 9cc9991..523848c 100644
--- a/core/fxcrt/css/cfx_csssyntaxparser.cpp
+++ b/core/fxcrt/css/cfx_csssyntaxparser.cpp
@@ -33,7 +33,6 @@
                                          int32_t iTextDatSize,
                                          bool bOnlyDeclaration)
     : m_iTextDataLen(0),
-      m_dwCheck(0xFFFFFFFF),
       m_eStatus(CFX_CSSSyntaxStatus::None) {
   ASSERT(pBuffer);
   ASSERT(iBufferSize > 0);
@@ -45,7 +44,7 @@
   m_TextPlane.AttachBuffer(pBuffer, iBufferSize);
 }
 
-CFX_CSSSyntaxParser::~CFX_CSSSyntaxParser() {}
+CFX_CSSSyntaxParser::~CFX_CSSSyntaxParser() = default;
 
 CFX_CSSSyntaxStatus CFX_CSSSyntaxParser::DoSyntaxParse() {
   while (m_eStatus >= CFX_CSSSyntaxStatus::None) {
@@ -189,14 +188,6 @@
   return m_eStatus;
 }
 
-bool CFX_CSSSyntaxParser::IsImportEnabled() const {
-  if ((m_dwCheck & CFX_CSSSYNTAXCHECK_AllowImport) == 0)
-    return false;
-  if (m_ModeStack.size() > 1)
-    return false;
-  return true;
-}
-
 bool CFX_CSSSyntaxParser::AppendChar(wchar_t wch) {
   m_TextPlane.MoveNext();
   if (m_TextData.GetLength() > 0 || wch > ' ') {
diff --git a/core/fxcrt/css/cfx_csssyntaxparser.h b/core/fxcrt/css/cfx_csssyntaxparser.h
index 778f9a3..5e26c6f 100644
--- a/core/fxcrt/css/cfx_csssyntaxparser.h
+++ b/core/fxcrt/css/cfx_csssyntaxparser.h
@@ -49,24 +49,17 @@
   CFX_CSSSyntaxStatus DoSyntaxParse();
   WideStringView GetCurrentString() const;
 
- protected:
+ private:
   void SwitchMode(CFX_CSSSyntaxMode eMode);
   int32_t SwitchToComment();
 
   bool RestoreMode();
   bool AppendChar(wchar_t wch);
   int32_t SaveTextData();
-  bool IsCharsetEnabled() const {
-    return (m_dwCheck & CFX_CSSSYNTAXCHECK_AllowCharset) != 0;
-  }
-  void DisableCharset() { m_dwCheck = CFX_CSSSYNTAXCHECK_AllowImport; }
-  bool IsImportEnabled() const;
-  void DisableImport() { m_dwCheck = 0; }
 
   CFX_CSSTextBuf m_TextData;
   CFX_CSSExtTextBuf m_TextPlane;
   int32_t m_iTextDataLen;
-  uint32_t m_dwCheck;
   CFX_CSSSyntaxMode m_eMode;
   CFX_CSSSyntaxStatus m_eStatus;
   std::stack<CFX_CSSSyntaxMode> m_ModeStack;
