| Index: third_party/WebKit/Source/wtf/text/UTF8.cpp
|
| diff --git a/third_party/WebKit/Source/wtf/text/UTF8.cpp b/third_party/WebKit/Source/wtf/text/UTF8.cpp
|
| index 0beca10497c8e8411d13883305a172c28b264b45..a258db81b99a483309b80078de146aed8053d9c3 100644
|
| --- a/third_party/WebKit/Source/wtf/text/UTF8.cpp
|
| +++ b/third_party/WebKit/Source/wtf/text/UTF8.cpp
|
| @@ -442,5 +442,23 @@ bool equalLatin1WithUTF8(const LChar* a, const LChar* aEnd, const char* b, const
|
| return equalWithUTF8Internal(a, aEnd, b, bEnd);
|
| }
|
|
|
| +bool isUTF8andNotASCII(const char* data, size_t length)
|
| +{
|
| + // This cast is necessary because U8_NEXT uses int32_ts.
|
| + int32_t srcLen = static_cast<int32_t>(length);
|
| + int32_t charIndex = 0;
|
| + bool isASCIIOnly = true;
|
| +
|
| + while (charIndex < srcLen) {
|
| + int32_t codePoint;
|
| + if (static_cast<uint8_t>(data[charIndex]) >= 0x80)
|
| + isASCIIOnly = false;
|
| + U8_NEXT(data, charIndex, srcLen, codePoint);
|
| + if (!U_IS_UNICODE_CHAR(codePoint))
|
| + return false;
|
| + }
|
| + return !isASCIIOnly;
|
| +}
|
| +
|
| } // namespace Unicode
|
| } // namespace WTF
|
|
|