diff --git a/core/fxcrt/widestring.cpp b/core/fxcrt/widestring.cpp
index afd37ef..bda34e1 100644
--- a/core/fxcrt/widestring.cpp
+++ b/core/fxcrt/widestring.cpp
@@ -650,7 +650,20 @@
 
   for (size_t i = 0; i < length; ++i) {
     wchar_t wc = (*this)[i];
-    if (wc <= 0 || wc > 127 || wc != that[i])  // Questionable signedness.
+    if (wc <= 0 || wc > 127 || wc != that[i])
+      return false;
+  }
+  return true;
+}
+
+bool WideString::EqualsASCIINoCase(const ByteStringView& that) const {
+  size_t length = GetLength();
+  if (length != that.GetLength())
+    return false;
+
+  for (size_t i = 0; i < length; ++i) {
+    wchar_t wc = (*this)[i];
+    if (wc <= 0 || wc > 127 || tolower(wc) != tolower(that[i]))
       return false;
   }
   return true;
diff --git a/core/fxcrt/widestring.h b/core/fxcrt/widestring.h
index de7db38..be03731 100644
--- a/core/fxcrt/widestring.h
+++ b/core/fxcrt/widestring.h
@@ -194,6 +194,8 @@
 
   bool IsASCII() const;
   bool EqualsASCII(const ByteStringView& that) const;
+  bool EqualsASCIINoCase(const ByteStringView& that) const;
+
   ByteString ToASCII() const;
   ByteString ToDefANSI() const;
   ByteString ToUTF8() const;
diff --git a/core/fxcrt/widestring_unittest.cpp b/core/fxcrt/widestring_unittest.cpp
index 4354dbe..41465c0 100644
--- a/core/fxcrt/widestring_unittest.cpp
+++ b/core/fxcrt/widestring_unittest.cpp
@@ -1018,6 +1018,15 @@
   EXPECT_FALSE(WideString(L"\u0141").EqualsASCII("\x41"));
 }
 
+TEST(WideString, EqualsASCIINoCase) {
+  EXPECT_TRUE(WideString(L"").EqualsASCIINoCase(""));
+  EXPECT_FALSE(WideString(L"A").EqualsASCIINoCase("b"));
+  EXPECT_TRUE(WideString(L"AbC").EqualsASCIINoCase("aBc"));
+  EXPECT_FALSE(WideString(L"ABc").EqualsASCIINoCase("AeC"));
+  EXPECT_FALSE(WideString(L"\u00c1").EqualsASCIINoCase("\x41"));
+  EXPECT_FALSE(WideString(L"\u0141").EqualsASCIINoCase("\x41"));
+}
+
 TEST(WideString, ToASCII) {
   const char* kResult =
       "x"
