diff --git a/core/fxcrt/css/cfx_cssselector.cpp b/core/fxcrt/css/cfx_cssselector.cpp
index 9f3eeb5..53f00b0 100644
--- a/core/fxcrt/css/cfx_cssselector.cpp
+++ b/core/fxcrt/css/cfx_cssselector.cpp
@@ -25,9 +25,12 @@
 
 }  // namespace
 
-CFX_CSSSelector::CFX_CSSSelector(const wchar_t* psz, int32_t iLen)
+CFX_CSSSelector::CFX_CSSSelector(const wchar_t* psz,
+                                 int32_t iLen,
+                                 std::unique_ptr<CFX_CSSSelector> next)
     : name_hash_(
-          FX_HashCode_GetW(WideStringView(psz, iLen), /*bIgnoreCase=*/true)) {}
+          FX_HashCode_GetW(WideStringView(psz, iLen), /*bIgnoreCase=*/true)),
+      next_(std::move(next)) {}
 
 CFX_CSSSelector::~CFX_CSSSelector() = default;
 
@@ -52,12 +55,11 @@
   for (psz = pStart; psz < pEnd;) {
     wchar_t wch = *psz;
     if ((isascii(wch) && isalpha(wch)) || wch == '*') {
-      int32_t iNameLen = wch == '*' ? 1 : GetCSSNameLen(psz, pEnd);
-      auto new_head = std::make_unique<CFX_CSSSelector>(psz, iNameLen);
-      if (head) {
+      if (head)
         head->set_is_descendant();
-        new_head->set_next(std::move(head));
-      }
+      int32_t iNameLen = wch == '*' ? 1 : GetCSSNameLen(psz, pEnd);
+      auto new_head =
+          std::make_unique<CFX_CSSSelector>(psz, iNameLen, std::move(head));
       head = std::move(new_head);
       psz += iNameLen;
     } else if (wch == ' ') {
diff --git a/core/fxcrt/css/cfx_cssselector.h b/core/fxcrt/css/cfx_cssselector.h
index 5839779..91778ab 100644
--- a/core/fxcrt/css/cfx_cssselector.h
+++ b/core/fxcrt/css/cfx_cssselector.h
@@ -8,7 +8,6 @@
 #define CORE_FXCRT_CSS_CFX_CSSSELECTOR_H_
 
 #include <memory>
-#include <utility>
 
 #include "core/fxcrt/fx_string.h"
 
@@ -16,23 +15,21 @@
  public:
   static std::unique_ptr<CFX_CSSSelector> FromString(WideStringView str);
 
-  CFX_CSSSelector(const wchar_t* psz, int32_t iLen);
+  CFX_CSSSelector(const wchar_t* psz,
+                  int32_t iLen,
+                  std::unique_ptr<CFX_CSSSelector> next);
   ~CFX_CSSSelector();
 
   bool is_descendant() const { return is_descendant_; }
   uint32_t name_hash() const { return name_hash_; }
   const CFX_CSSSelector* next_selector() const { return next_.get(); }
 
-  void set_next(std::unique_ptr<CFX_CSSSelector> pNext) {
-    next_ = std::move(pNext);
-  }
-
  private:
   void set_is_descendant() { is_descendant_ = true; }
 
   bool is_descendant_ = false;
   const uint32_t name_hash_;
-  std::unique_ptr<CFX_CSSSelector> next_;
+  const std::unique_ptr<CFX_CSSSelector> next_;
 };
 
 #endif  // CORE_FXCRT_CSS_CFX_CSSSELECTOR_H_
