diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/BUILD.gn --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2017-12-25 12:16:23.250517752 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/BUILD.gn 2017-12-25 12:26:21.502411527 +0100 @@ -859,8 +859,6 @@ "third_party/dmg_fp/dmg_fp.h", "third_party/dmg_fp/dtoa_wrapper.cc", "third_party/dmg_fp/g_fmt.cc", - "third_party/icu/icu_utf.cc", - "third_party/icu/icu_utf.h", "third_party/superfasthash/superfasthash.c", "third_party/valgrind/memcheck.h", "threading/platform_thread.h", diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/files/file_path.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/files/file_path.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/files/file_path.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/files/file_path.cc 2017-12-25 12:26:21.503411511 +0100 @@ -18,7 +18,7 @@ #if defined(OS_MACOSX) #include "base/mac/scoped_cftyperef.h" -#include "base/third_party/icu/icu_utf.h" +#include #endif #if defined(OS_WIN) @@ -1163,9 +1163,9 @@ int* index) { int codepoint = 0; while (*index < length && codepoint == 0) { - // CBU8_NEXT returns a value < 0 in error cases. For purposes of string + // U8_NEXT returns a value < 0 in error cases. For purposes of string // comparison, we just use that value and flag it with DCHECK. - CBU8_NEXT(string, *index, length, codepoint); + U8_NEXT(string, *index, length, codepoint); DCHECK_GT(codepoint, 0); if (codepoint > 0) { // Check if there is a subtable for this upper byte. diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/json/json_parser.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/json/json_parser.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/json/json_parser.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/json/json_parser.cc 2017-12-25 12:29:56.210138445 +0100 @@ -16,7 +16,7 @@ #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversion_utils.h" #include "base/strings/utf_string_conversions.h" -#include "base/third_party/icu/icu_utf.h" +#include #include "base/values.h" namespace base { @@ -482,14 +482,14 @@ // string character and the terminating closing quote. while (CanConsume(2)) { int start_index = index_; - pos_ = start_pos_ + index_; // CBU8_NEXT is postcrement. - CBU8_NEXT(start_pos_, index_, length, next_char); + pos_ = start_pos_ + index_; // U8_NEXT is postcrement. + U8_NEXT(start_pos_, index_, length, next_char); if (next_char < 0 || !IsValidCharacter(next_char)) { if ((options_ & JSON_REPLACE_INVALID_CHARACTERS) == 0) { ReportError(JSONReader::JSON_UNSUPPORTED_ENCODING, 1); return false; } - CBU8_NEXT(start_pos_, start_index, length, next_char); + U8_NEXT(start_pos_, start_index, length, next_char); string.Convert(); string.AppendString(kUnicodeReplacementString, arraysize(kUnicodeReplacementString) - 1); @@ -497,7 +497,7 @@ } if (next_char == '"') { - --index_; // Rewind by one because of CBU8_NEXT. + --index_; // Rewind by one because of U8_NEXT. *out = std::move(string); return true; } @@ -633,10 +633,10 @@ // If this is a high surrogate, consume the next code unit to get the // low surrogate. - if (CBU16_IS_SURROGATE(code_unit16_high)) { + if (U16_IS_SURROGATE(code_unit16_high)) { // Make sure this is the high surrogate. If not, it's an encoding // error. - if (!CBU16_IS_SURROGATE_LEAD(code_unit16_high)) + if (!U16_IS_SURROGATE_LEAD(code_unit16_high)) return false; // Make sure that the token has more characters to consume the @@ -653,20 +653,20 @@ NextNChars(3); - if (!CBU16_IS_TRAIL(code_unit16_low)) { + if (!U16_IS_TRAIL(code_unit16_low)) { return false; } uint32_t code_point = - CBU16_GET_SUPPLEMENTARY(code_unit16_high, code_unit16_low); + U16_GET_SUPPLEMENTARY(code_unit16_high, code_unit16_low); if (!IsValidCharacter(code_point)) return false; offset = 0; - CBU8_APPEND_UNSAFE(code_unit8, offset, code_point); + U8_APPEND_UNSAFE(code_unit8, offset, code_point); } else { // Not a surrogate. - DCHECK(CBU16_IS_SINGLE(code_unit16_high)); + DCHECK(U16_IS_SINGLE(code_unit16_high)); if (!IsValidCharacter(code_unit16_high)) { if ((options_ & JSON_REPLACE_INVALID_CHARACTERS) == 0) { return false; @@ -675,7 +675,7 @@ return true; } - CBU8_APPEND_UNSAFE(code_unit8, offset, code_unit16_high); + U8_APPEND_UNSAFE(code_unit8, offset, code_unit16_high); } dest_string->append(code_unit8, offset); @@ -692,9 +692,9 @@ } else { char utf8_units[4] = { 0 }; int offset = 0; - CBU8_APPEND_UNSAFE(utf8_units, offset, point); + U8_APPEND_UNSAFE(utf8_units, offset, point); dest->Convert(); - // CBU8_APPEND_UNSAFE can overwrite up to 4 bytes, so utf8_units may not be + // U8_APPEND_UNSAFE can overwrite up to 4 bytes, so utf8_units may not be // zero terminated at this point. |offset| contains the correct length. dest->AppendString(utf8_units, offset); } diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/json/string_escape.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/json/string_escape.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/json/string_escape.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/json/string_escape.cc 2017-12-25 12:36:34.186118210 +0100 @@ -14,7 +14,7 @@ #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversion_utils.h" #include "base/strings/utf_string_conversions.h" -#include "base/third_party/icu/icu_utf.h" +#include namespace base { @@ -92,7 +92,7 @@ for (int32_t i = 0; i < length; ++i) { uint32_t code_point; if (!ReadUnicodeCharacter(str.data(), length, &i, &code_point) || - code_point == static_cast(CBU_SENTINEL) || + code_point == static_cast(U_SENTINEL) || !IsValidCharacter(code_point)) { code_point = kReplacementCodePoint; did_replacement = true; diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/pattern.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/strings/pattern.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/pattern.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/strings/pattern.cc 2017-12-25 12:26:21.545410871 +0100 @@ -4,13 +4,13 @@ #include "base/strings/pattern.h" -#include "base/third_party/icu/icu_utf.h" +#include namespace base { namespace { -static bool IsWildcard(base_icu::UChar32 character) { +static bool IsWildcard(UChar32 character) { return character == '*' || character == '?'; } @@ -37,9 +37,9 @@ // Check if the chars match, if so, increment the ptrs. const CHAR* pattern_next = *pattern; const CHAR* string_next = *string; - base_icu::UChar32 pattern_char = next(&pattern_next, pattern_end); + UChar32 pattern_char = next(&pattern_next, pattern_end); if (pattern_char == next(&string_next, string_end) && - pattern_char != CBU_SENTINEL) { + pattern_char != U_SENTINEL) { *pattern = pattern_next; *string = string_next; } else { @@ -133,20 +133,20 @@ } struct NextCharUTF8 { - base_icu::UChar32 operator()(const char** p, const char* end) { - base_icu::UChar32 c; + UChar32 operator()(const char** p, const char* end) { + UChar32 c; int offset = 0; - CBU8_NEXT(*p, offset, end - *p, c); + U8_NEXT(*p, offset, end - *p, c); *p += offset; return c; } }; struct NextCharUTF16 { - base_icu::UChar32 operator()(const char16** p, const char16* end) { - base_icu::UChar32 c; + UChar32 operator()(const char16** p, const char16* end) { + UChar32 c; int offset = 0; - CBU16_NEXT(*p, offset, end - *p, c); + U16_NEXT(*p, offset, end - *p, c); *p += offset; return c; } diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_split.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_split.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_split.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_split.cc 2017-12-25 12:26:21.545410871 +0100 @@ -8,7 +8,7 @@ #include "base/logging.h" #include "base/strings/string_util.h" -#include "base/third_party/icu/icu_utf.h" +#include namespace base { diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_util.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_util.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_util.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_util.cc 2017-12-25 12:26:21.546410856 +0100 @@ -25,7 +25,7 @@ #include "base/memory/singleton.h" #include "base/strings/utf_string_conversion_utils.h" #include "base/strings/utf_string_conversions.h" -#include "base/third_party/icu/icu_utf.h" +#include #include "build/build_config.h" namespace base { @@ -372,19 +372,19 @@ } DCHECK_LE(byte_size, static_cast(std::numeric_limits::max())); - // Note: This cast is necessary because CBU8_NEXT uses int32_ts. + // Note: This cast is necessary because U8_NEXT uses int32_ts. int32_t truncation_length = static_cast(byte_size); int32_t char_index = truncation_length - 1; const char* data = input.data(); - // Using CBU8, we will move backwards from the truncation point + // Using U8, we will move backwards from the truncation point // to the beginning of the string looking for a valid UTF8 // character. Once a full UTF8 character is found, we will // truncate the string to the end of that character. while (char_index >= 0) { int32_t prev = char_index; - base_icu::UChar32 code_point = 0; - CBU8_NEXT(data, char_index, truncation_length, code_point); + UChar32 code_point = 0; + U8_NEXT(data, char_index, truncation_length, code_point); if (!IsValidCharacter(code_point) || !IsValidCodepoint(code_point)) { char_index = prev - 1; @@ -537,7 +537,7 @@ while (char_index < src_len) { int32_t code_point; - CBU8_NEXT(src, char_index, src_len, code_point); + U8_NEXT(src, char_index, src_len, code_point); if (!IsValidCharacter(code_point)) return false; } diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc 2017-12-25 12:26:21.546410856 +0100 @@ -4,7 +4,7 @@ #include "base/strings/utf_string_conversion_utils.h" -#include "base/third_party/icu/icu_utf.h" +#include namespace base { @@ -18,7 +18,7 @@ // use a signed type for code_point. But this function returns false // on error anyway, so code_point_out is unsigned. int32_t code_point; - CBU8_NEXT(src, *char_index, src_len, code_point); + U8_NEXT(src, *char_index, src_len, code_point); *code_point_out = static_cast(code_point); // The ICU macro above moves to the next char, we want to point to the last @@ -33,16 +33,16 @@ int32_t src_len, int32_t* char_index, uint32_t* code_point) { - if (CBU16_IS_SURROGATE(src[*char_index])) { - if (!CBU16_IS_SURROGATE_LEAD(src[*char_index]) || + if (U16_IS_SURROGATE(src[*char_index])) { + if (!U16_IS_SURROGATE_LEAD(src[*char_index]) || *char_index + 1 >= src_len || - !CBU16_IS_TRAIL(src[*char_index + 1])) { + !U16_IS_TRAIL(src[*char_index + 1])) { // Invalid surrogate pair. return false; } // Valid surrogate pair. - *code_point = CBU16_GET_SUPPLEMENTARY(src[*char_index], + *code_point = U16_GET_SUPPLEMENTARY(src[*char_index], src[*char_index + 1]); (*char_index)++; } else { @@ -76,30 +76,30 @@ } - // CBU8_APPEND_UNSAFE can append up to 4 bytes. + // U8_APPEND_UNSAFE can append up to 4 bytes. size_t char_offset = output->length(); size_t original_char_offset = char_offset; - output->resize(char_offset + CBU8_MAX_LENGTH); + output->resize(char_offset + U8_MAX_LENGTH); - CBU8_APPEND_UNSAFE(&(*output)[0], char_offset, code_point); + U8_APPEND_UNSAFE(&(*output)[0], char_offset, code_point); - // CBU8_APPEND_UNSAFE will advance our pointer past the inserted character, so + // U8_APPEND_UNSAFE will advance our pointer past the inserted character, so // it will represent the new length of the string. output->resize(char_offset); return char_offset - original_char_offset; } size_t WriteUnicodeCharacter(uint32_t code_point, string16* output) { - if (CBU16_LENGTH(code_point) == 1) { + if (U16_LENGTH(code_point) == 1) { // Thie code point is in the Basic Multilingual Plane (BMP). output->push_back(static_cast(code_point)); return 1; } // Non-BMP characters use a double-character encoding. size_t char_offset = output->length(); - output->resize(char_offset + CBU16_MAX_LENGTH); - CBU16_APPEND_UNSAFE(&(*output)[0], char_offset, code_point); - return CBU16_MAX_LENGTH; + output->resize(char_offset + U16_MAX_LENGTH); + U16_APPEND_UNSAFE(&(*output)[0], char_offset, code_point); + return U16_MAX_LENGTH; } // Generalized Unicode converter ----------------------------------------------- diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/content/browser/devtools/devtools_io_context.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/content/browser/devtools/devtools_io_context.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/content/browser/devtools/devtools_io_context.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/content/browser/devtools/devtools_io_context.cc 2017-12-25 12:37:08.791629561 +0100 @@ -10,7 +10,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" #include "base/task_scheduler/post_task.h" -#include "base/third_party/icu/icu_utf.h" +#include #include "base/threading/thread_restrictions.h" #include "content/public/browser/browser_thread.h" @@ -92,7 +92,7 @@ } else { // Provided client has requested sufficient large block, make their // life easier by not truncating in the middle of a UTF-8 character. - if (size_got > 6 && !CBU8_IS_SINGLE(buffer[size_got - 1])) { + if (size_got > 6 && !U8_IS_SINGLE(buffer[size_got - 1])) { base::TruncateUTF8ToByteSize(buffer, size_got, &buffer); size_got = buffer.size(); } else { diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/net/cert/internal/parse_name.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/net/cert/internal/parse_name.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/net/cert/internal/parse_name.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/net/cert/internal/parse_name.cc 2017-12-25 12:34:58.610528544 +0100 @@ -9,7 +9,7 @@ #include "base/strings/utf_string_conversion_utils.h" #include "base/strings/utf_string_conversions.h" #include "base/sys_byteorder.h" -#include "base/third_party/icu/icu_utf.h" +#include #if !defined(OS_NACL) #include "net/base/net_string_util.h" @@ -38,7 +38,7 @@ // BMPString only supports codepoints in the Basic Multilingual Plane; // surrogates are not allowed. - if (CBU_IS_SURROGATE(c)) + if (U_IS_SURROGATE(c)) return false; } return base::UTF16ToUTF8(in_16bit.data(), in_16bit.size(), out); @@ -58,7 +58,7 @@ for (const uint32_t c : in_32bit) { // UniversalString is UCS-4 in big-endian order. uint32_t codepoint = base::NetToHost32(c); - if (!CBU_IS_UNICODE_CHAR(codepoint)) + if (!U_IS_UNICODE_CHAR(codepoint)) return false; base::WriteUnicodeCharacter(codepoint, out); diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py 2017-12-25 12:20:43.585562853 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py 2017-12-25 12:41:57.071558915 +0100 @@ -526,7 +526,6 @@ 'base/task_scheduler/task_traits.cc', 'base/third_party/dmg_fp/dtoa_wrapper.cc', 'base/third_party/dmg_fp/g_fmt.cc', - 'base/third_party/icu/icu_utf.cc', 'base/threading/post_task_and_reply_impl.cc', 'base/threading/sequence_local_storage_map.cc', 'base/threading/sequenced_task_runner_handle.cc', @@ -679,7 +678,7 @@ 'base/allocator/allocator_shim.cc', 'base/allocator/allocator_shim_default_dispatch_to_glibc.cc', ]) - libs.extend(['-lrt', '-lnspr4']) + libs.extend(['-lrt', '-lnspr4', '-licuuc']) static_libraries['libevent']['include_dirs'].extend([ os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'linux') ]) diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/tools/gn/BUILD.gn qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/tools/gn/BUILD.gn --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/tools/gn/BUILD.gn 2017-12-25 12:16:48.744131902 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/tools/gn/BUILD.gn 2017-12-25 12:26:21.547410841 +0100 @@ -278,6 +278,7 @@ libs = [ "nspr4", + "icuuc", ] } diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/ui/base/ime/input_method_chromeos.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/ui/base/ime/input_method_chromeos.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/ui/base/ime/input_method_chromeos.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/ui/base/ime/input_method_chromeos.cc 2017-12-25 12:40:50.356500963 +0100 @@ -17,7 +17,6 @@ #include "base/logging.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" -#include "base/third_party/icu/icu_utf.h" #include "chromeos/system/devicemode.h" #include "ui/base/ime/chromeos/ime_keyboard.h" #include "ui/base/ime/chromeos/input_method_manager.h" diff -ur qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc --- qtwebengine-everywhere-src-5.10.0-system-nspr-prtime/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc 2017-11-28 14:06:53.000000000 +0100 +++ qtwebengine-everywhere-src-5.10.0-system-icu-utf/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc 2017-12-25 12:26:21.547410841 +0100 @@ -5,13 +5,13 @@ #include "ui/gfx/utf16_indexing.h" #include "base/logging.h" -#include "base/third_party/icu/icu_utf.h" +#include namespace gfx { bool IsValidCodePointIndex(const base::string16& s, size_t index) { return index == 0 || index == s.length() || - !(CBU16_IS_TRAIL(s[index]) && CBU16_IS_LEAD(s[index - 1])); + !(U16_IS_TRAIL(s[index]) && U16_IS_LEAD(s[index - 1])); } ptrdiff_t UTF16IndexToOffset(const base::string16& s, size_t base, size_t pos) {