Index: third_party/WebKit/Source/wtf/text/StringImpl.h |
diff --git a/third_party/WebKit/Source/wtf/text/StringImpl.h b/third_party/WebKit/Source/wtf/text/StringImpl.h |
index d93f6d2df50c89e268b5c9a73a2f02f666063488..f30ec2af721b2f93a7d801cdd1d2091ff7276758 100644 |
--- a/third_party/WebKit/Source/wtf/text/StringImpl.h |
+++ b/third_party/WebKit/Source/wtf/text/StringImpl.h |
@@ -52,7 +52,7 @@ struct SubstringTranslator; |
struct UCharBufferTranslator; |
template<typename> class RetainPtr; |
-enum TextCaseSensitivity { TextCaseSensitive, TextCaseInsensitive }; |
+enum TextCaseSensitivity { TextCaseSensitive, TextCaseASCIIInsensitive, TextCaseInsensitive }; |
enum StripBehavior { StripExtraWhiteSpace, DoNotStripWhiteSpace }; |
@@ -374,6 +374,7 @@ public: |
size_t findIgnoringCase(const LChar*, unsigned index = 0); |
ALWAYS_INLINE size_t findIgnoringCase(const char* s, unsigned index = 0) { return findIgnoringCase(reinterpret_cast<const LChar*>(s), index); } |
size_t findIgnoringCase(StringImpl*, unsigned index = 0); |
+ size_t findIgnoringASCIICase(StringImpl*, unsigned index = 0); |
size_t findNextLineStart(unsigned index = UINT_MAX); |
@@ -386,11 +387,13 @@ public: |
bool startsWith(const char*, unsigned matchLength) const; |
bool startsWith(const StringImpl*) const; |
bool startsWithIgnoringCase(const StringImpl*) const; |
+ bool startsWithIgnoringASCIICase(const StringImpl*) const; |
bool endsWith(UChar) const; |
bool endsWith(const char*, unsigned matchLength) const; |
bool endsWith(const StringImpl*) const; |
bool endsWithIgnoringCase(const StringImpl*) const; |
+ bool endsWithIgnoringASCIICase(const StringImpl*) const; |
PassRefPtr<StringImpl> replace(UChar, UChar); |
PassRefPtr<StringImpl> replace(UChar, StringImpl*); |
@@ -506,20 +509,19 @@ inline bool equalIgnoringASCIICase(const CharacterTypeA* a, const CharacterTypeB |
} |
template<typename CharacterTypeA, typename CharacterTypeB> |
-bool startsWithIgnoringASCIICase(const CharacterTypeA& reference, const CharacterTypeB& prefix) |
+inline bool equalIgnoringASCIICase(const CharacterTypeA& a, const CharacterTypeB& b) |
{ |
- unsigned prefixLength = prefix.length(); |
- if (prefixLength > reference.length()) |
+ unsigned length = b.length(); |
+ if (a.length() != length) |
return false; |
- |
- if (reference.is8Bit()) { |
- if (prefix.is8Bit()) |
- return equalIgnoringASCIICase(reference.characters8(), prefix.characters8(), prefixLength); |
- return equalIgnoringASCIICase(reference.characters8(), prefix.characters16(), prefixLength); |
- } |
- if (prefix.is8Bit()) |
- return equalIgnoringASCIICase(reference.characters16(), prefix.characters8(), prefixLength); |
- return equalIgnoringASCIICase(reference.characters16(), prefix.characters16(), prefixLength); |
+ if (a.is8Bit()) { |
+ if (b.is8Bit()) |
+ return equalIgnoringASCIICase(a.characters8(), b.characters8(), length); |
+ return equalIgnoringASCIICase(a.characters8(), b.characters16(), length); |
+ } |
+ if (b.is8Bit()) |
+ return equalIgnoringASCIICase(a.characters16(), b.characters8(), length); |
+ return equalIgnoringASCIICase(a.characters16(), b.characters16(), length); |
} |
template<typename CharacterType> |
@@ -769,6 +771,7 @@ using WTF::equal; |
using WTF::equalNonNull; |
using WTF::TextCaseSensitivity; |
using WTF::TextCaseSensitive; |
+using WTF::TextCaseASCIIInsensitive; |
using WTF::TextCaseInsensitive; |
#endif |