From 7816e88f62f2da31954d17cc5c755d88ebe1625f Mon Sep 17 00:00:00 2001 From: Helio Chissini de Castro Date: Wed, 31 May 2017 15:43:14 +0200 Subject: [PATCH] Prep webengine 5.9.0 --- .gitignore | 1 + ...nsource-src-5.9.0-webrtc-neon-detect.patch | 27 + ...nsource-src-5.9.0-system-nspr-prtime.patch | 54 + ...-opensource-src-5.9.0-system-icu-utf.patch | 552 ++++++ ...bengine-opensource-src-5.9.0-no-sse2.patch | 1700 +++++++---------- ...-opensource-src-5.9.-openmax-dl-neon.patch | 29 +- ...ngine-opensource-src-5.9.0-linux-pri.patch | 33 + ...e-opensource-src-5.9.0-no-icudtl-dat.patch | 21 +- qt5-qtwebengine.spec | 91 +- ...urce-src-5.6.0-beta-fix-extractcflag.patch | 12 - ...ngine-opensource-src-5.7.0-linux-pri.patch | 26 - ...ngine-opensource-src-5.7.1-skia-neon.patch | 15 - ...e-opensource-src-5.8.0-fix-dead-keys.patch | 40 - ...source-src-5.8.0-fix-open-in-new-tab.patch | 46 - ...ine-opensource-src-5.8.0-pdfium-gcc7.patch | 600 ------ qtwebengine-opensource-src-5.8.0-qt57.patch | 12 - ...-opensource-src-5.8.0-system-icu-utf.patch | 362 ---- ...nsource-src-5.8.0-system-nspr-prtime.patch | 48 - ...bengine-opensource-src-5.8.0-v8-gcc7.patch | 71 - ...nsource-src-5.8.0-webrtc-neon-detect.patch | 32 - ...engine-opensource-src-5.8.0-wtf-gcc7.patch | 12 - sources | 2 +- 22 files changed, 1414 insertions(+), 2372 deletions(-) create mode 100644 0001-qtwebengine-opensource-src-5.9.0-webrtc-neon-detect.patch create mode 100644 0002-qtwebengine-opensource-src-5.9.0-system-nspr-prtime.patch create mode 100644 0003-qtwebengine-opensource-src-5.9.0-system-icu-utf.patch rename qtwebengine-opensource-src-5.8.0-no-sse2.patch => 0004-qtwebengine-opensource-src-5.9.0-no-sse2.patch (73%) rename qtwebengine-opensource-src-5.7.1-openmax-dl-neon.patch => 0005-qtwebengine-opensource-src-5.9.-openmax-dl-neon.patch (72%) create mode 100644 0006-qtwebengine-opensource-src-5.9.0-linux-pri.patch rename qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch => 0007-qtwebengine-opensource-src-5.9.0-no-icudtl-dat.patch (69%) delete mode 100644 qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag.patch delete mode 100644 qtwebengine-opensource-src-5.7.0-linux-pri.patch delete mode 100644 qtwebengine-opensource-src-5.7.1-skia-neon.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-fix-dead-keys.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-fix-open-in-new-tab.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-pdfium-gcc7.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-qt57.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-system-icu-utf.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-system-nspr-prtime.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-v8-gcc7.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-webrtc-neon-detect.patch delete mode 100644 qtwebengine-opensource-src-5.8.0-wtf-gcc7.patch diff --git a/.gitignore b/.gitignore index 0983a72..3eee6b2 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /qtwebengine-opensource-src-5.7.0-clean.tar.xz /qtwebengine-opensource-src-5.7.1-clean.tar.xz /qtwebengine-opensource-src-5.8.0-clean.tar.xz +/qtwebengine-opensource-src-5.9.0-clean.tar.xz diff --git a/0001-qtwebengine-opensource-src-5.9.0-webrtc-neon-detect.patch b/0001-qtwebengine-opensource-src-5.9.0-webrtc-neon-detect.patch new file mode 100644 index 0000000..7c48a10 --- /dev/null +++ b/0001-qtwebengine-opensource-src-5.9.0-webrtc-neon-detect.patch @@ -0,0 +1,27 @@ +From bef192680ca3c78493c064d7b4a21b79afa92c3e Mon Sep 17 00:00:00 2001 +From: Helio Chissini de Castro +Date: Wed, 31 May 2017 10:41:10 +0200 +Subject: [PATCH] qtwebengine-opensource-src-5.9.0-webrtc-neon-detect + +--- + src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn b/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn +index 8bed25e27..b0cc2a5e3 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn ++++ b/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn +@@ -93,9 +93,7 @@ rtc_static_library("system_wrappers") { + if (is_linux) { + defines += [ "WEBRTC_THREAD_RR" ] + +- if (!build_with_chromium) { +- deps += [ ":cpu_features_linux" ] +- } ++ deps += [ ":cpu_features_linux" ] + + libs += [ "rt" ] + } +-- +2.13.0 + diff --git a/0002-qtwebengine-opensource-src-5.9.0-system-nspr-prtime.patch b/0002-qtwebengine-opensource-src-5.9.0-system-nspr-prtime.patch new file mode 100644 index 0000000..5bc39ee --- /dev/null +++ b/0002-qtwebengine-opensource-src-5.9.0-system-nspr-prtime.patch @@ -0,0 +1,54 @@ +From 60434d58353db516e795e12817e1953700f9e5e4 Mon Sep 17 00:00:00 2001 +From: Helio Chissini de Castro +Date: Wed, 31 May 2017 10:46:36 +0200 +Subject: [PATCH] qtwebengine-opensource-src-5.9.0-system-nspr-prtime + +--- + src/3rdparty/chromium/base/BUILD.gn | 2 -- + src/3rdparty/chromium/base/time/pr_time_unittest.cc | 2 +- + src/3rdparty/chromium/base/time/time.cc | 2 +- + 3 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/src/3rdparty/chromium/base/BUILD.gn b/src/3rdparty/chromium/base/BUILD.gn +index f2672cba7..66f2be1ff 100644 +--- a/src/3rdparty/chromium/base/BUILD.gn ++++ b/src/3rdparty/chromium/base/BUILD.gn +@@ -833,8 +833,6 @@ component("base") { + "third_party/dmg_fp/g_fmt.cc", + "third_party/icu/icu_utf.cc", + "third_party/icu/icu_utf.h", +- "third_party/nspr/prtime.cc", +- "third_party/nspr/prtime.h", + "third_party/superfasthash/superfasthash.c", + "threading/non_thread_safe.h", + "threading/non_thread_safe_impl.cc", +diff --git a/src/3rdparty/chromium/base/time/pr_time_unittest.cc b/src/3rdparty/chromium/base/time/pr_time_unittest.cc +index 3f1a348ae..8f1a11e51 100644 +--- a/src/3rdparty/chromium/base/time/pr_time_unittest.cc ++++ b/src/3rdparty/chromium/base/time/pr_time_unittest.cc +@@ -7,7 +7,7 @@ + + #include "base/compiler_specific.h" + #include "base/macros.h" +-#include "base/third_party/nspr/prtime.h" ++#include + #include "base/time/time.h" + #include "build/build_config.h" + #include "testing/gtest/include/gtest/gtest.h" +diff --git a/src/3rdparty/chromium/base/time/time.cc b/src/3rdparty/chromium/base/time/time.cc +index 4e942015f..29fde71dd 100644 +--- a/src/3rdparty/chromium/base/time/time.cc ++++ b/src/3rdparty/chromium/base/time/time.cc +@@ -13,8 +13,8 @@ + #include "base/lazy_instance.h" + #include "base/logging.h" + #include "base/macros.h" ++#include + #include "base/strings/stringprintf.h" +-#include "base/third_party/nspr/prtime.h" + #include "build/build_config.h" + + namespace base { +-- +2.13.0 + diff --git a/0003-qtwebengine-opensource-src-5.9.0-system-icu-utf.patch b/0003-qtwebengine-opensource-src-5.9.0-system-icu-utf.patch new file mode 100644 index 0000000..c7fc67f --- /dev/null +++ b/0003-qtwebengine-opensource-src-5.9.0-system-icu-utf.patch @@ -0,0 +1,552 @@ +From 63abd7883643841941505c82d42589d8d6814478 Mon Sep 17 00:00:00 2001 +From: Helio Chissini de Castro +Date: Wed, 31 May 2017 11:16:12 +0200 +Subject: [PATCH] qtwebengine-opensource-src-5.9.0-system-icu-utf + +--- + src/3rdparty/chromium/base/BUILD.gn | 2 -- + src/3rdparty/chromium/base/files/file_path.cc | 6 ++--- + src/3rdparty/chromium/base/json/json_parser.cc | 28 ++++++++++---------- + src/3rdparty/chromium/base/json/string_escape.cc | 2 +- + src/3rdparty/chromium/base/strings/pattern.cc | 9 +++---- + src/3rdparty/chromium/base/strings/string_split.cc | 2 +- + src/3rdparty/chromium/base/strings/string_util.cc | 10 ++++---- + .../base/strings/utf_string_conversion_utils.cc | 28 ++++++++++---------- + .../chromium/base/third_party/icu/icu_utf.cc | 30 +++++++++++----------- + .../browser/devtools/devtools_io_context.cc | 4 +-- + .../chromium/net/cert/internal/parse_name.cc | 6 ++--- + .../chromium/ui/base/ime/input_method_chromeos.cc | 2 +- + src/3rdparty/chromium/ui/gfx/utf16_indexing.cc | 4 +-- + 13 files changed, 65 insertions(+), 68 deletions(-) + +diff --git a/src/3rdparty/chromium/base/BUILD.gn b/src/3rdparty/chromium/base/BUILD.gn +index 66f2be1ff..51faf08ad 100644 +--- a/src/3rdparty/chromium/base/BUILD.gn ++++ b/src/3rdparty/chromium/base/BUILD.gn +@@ -831,8 +831,6 @@ component("base") { + "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", + "threading/non_thread_safe.h", + "threading/non_thread_safe_impl.cc", +diff --git a/src/3rdparty/chromium/base/files/file_path.cc b/src/3rdparty/chromium/base/files/file_path.cc +index cff862ae1..b17b46e5f 100644 +--- a/src/3rdparty/chromium/base/files/file_path.cc ++++ b/src/3rdparty/chromium/base/files/file_path.cc +@@ -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) +@@ -1156,9 +1156,9 @@ inline int HFSReadNextNonIgnorableCodepoint(const char* string, + 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 --git a/src/3rdparty/chromium/base/json/json_parser.cc b/src/3rdparty/chromium/base/json/json_parser.cc +index cd427da9e..82ff9773c 100644 +--- a/src/3rdparty/chromium/base/json/json_parser.cc ++++ b/src/3rdparty/chromium/base/json/json_parser.cc +@@ -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 { +@@ -630,21 +630,21 @@ bool JSONParser::ConsumeStringRaw(StringBuilder* out) { + + while (CanConsume(1)) { + 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); + continue; + } + + if (next_char == '"') { +- --index_; // Rewind by one because of CBU8_NEXT. ++ --index_; // Rewind by one because of U8_NEXT. + out->Swap(&string); + return true; + } +@@ -774,10 +774,10 @@ bool JSONParser::DecodeUTF16(std::string* dest_string) { + + // 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 +@@ -794,24 +794,24 @@ bool JSONParser::DecodeUTF16(std::string* dest_string) { + + 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)) + return false; + +- CBU8_APPEND_UNSAFE(code_unit8, offset, code_unit16_high); ++ U8_APPEND_UNSAFE(code_unit8, offset, code_unit16_high); + } + + dest_string->append(code_unit8); +@@ -828,9 +828,9 @@ void JSONParser::DecodeUTF8(const int32_t& point, StringBuilder* dest) { + } 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(std::string(utf8_units, offset)); + } +diff --git a/src/3rdparty/chromium/base/json/string_escape.cc b/src/3rdparty/chromium/base/json/string_escape.cc +index f67fa93bf..907b80a73 100644 +--- a/src/3rdparty/chromium/base/json/string_escape.cc ++++ b/src/3rdparty/chromium/base/json/string_escape.cc +@@ -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 { + +diff --git a/src/3rdparty/chromium/base/strings/pattern.cc b/src/3rdparty/chromium/base/strings/pattern.cc +index af30aab86..7df8f7255 100644 +--- a/src/3rdparty/chromium/base/strings/pattern.cc ++++ b/src/3rdparty/chromium/base/strings/pattern.cc +@@ -3,8 +3,7 @@ + // found in the LICENSE file. + + #include "base/strings/pattern.h" +- +-#include "base/third_party/icu/icu_utf.h" ++#include + + namespace base { + +@@ -39,7 +38,7 @@ static void EatSameChars(const CHAR** pattern, const CHAR* pattern_end, + const CHAR* string_next = *string; + base_icu::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 { +@@ -136,7 +135,7 @@ struct NextCharUTF8 { + base_icu::UChar32 operator()(const char** p, const char* end) { + base_icu::UChar32 c; + int offset = 0; +- CBU8_NEXT(*p, offset, end - *p, c); ++ U8_NEXT(*p, offset, end - *p, c); + *p += offset; + return c; + } +@@ -146,7 +145,7 @@ struct NextCharUTF16 { + base_icu::UChar32 operator()(const char16** p, const char16* end) { + base_icu::UChar32 c; + int offset = 0; +- CBU16_NEXT(*p, offset, end - *p, c); ++ U16_NEXT(*p, offset, end - *p, c); + *p += offset; + return c; + } +diff --git a/src/3rdparty/chromium/base/strings/string_split.cc b/src/3rdparty/chromium/base/strings/string_split.cc +index a8180b24d..ac771a0f0 100644 +--- a/src/3rdparty/chromium/base/strings/string_split.cc ++++ b/src/3rdparty/chromium/base/strings/string_split.cc +@@ -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 --git a/src/3rdparty/chromium/base/strings/string_util.cc b/src/3rdparty/chromium/base/strings/string_util.cc +index cb668ed7f..542f12819 100644 +--- a/src/3rdparty/chromium/base/strings/string_util.cc ++++ b/src/3rdparty/chromium/base/strings/string_util.cc +@@ -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 { +@@ -357,19 +357,19 @@ void TruncateUTF8ToByteSize(const std::string& input, + } + 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); ++ U8_NEXT(data, char_index, truncation_length, code_point); + if (!IsValidCharacter(code_point) || + !IsValidCodepoint(code_point)) { + char_index = prev - 1; +@@ -522,7 +522,7 @@ bool IsStringUTF8(const StringPiece& str) { + + 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 --git a/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc b/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc +index 3101a6028..7f7d84b3c 100644 +--- a/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc ++++ b/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc +@@ -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 @@ bool ReadUnicodeCharacter(const char* src, + // 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 @@ bool ReadUnicodeCharacter(const char16* src, + 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 @@ size_t WriteUnicodeCharacter(uint32_t code_point, std::string* output) { + } + + +- // 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 --git a/src/3rdparty/chromium/base/third_party/icu/icu_utf.cc b/src/3rdparty/chromium/base/third_party/icu/icu_utf.cc +index 2b67c5d9c..7ca6a6e0f 100644 +--- a/src/3rdparty/chromium/base/third_party/icu/icu_utf.cc ++++ b/src/3rdparty/chromium/base/third_party/icu/icu_utf.cc +@@ -17,7 +17,7 @@ + * that would otherwise be too long as macros. + */ + +-#include "base/third_party/icu/icu_utf.h" ++#include + + namespace base_icu { + +@@ -35,14 +35,14 @@ namespace base_icu { + * + * @deprecated ICU 2.4. Obsolete, see utf_old.h. + */ +-#define CBUTF8_ERROR_VALUE_1 0x15 ++#define UTF8_ERROR_VALUE_1 0x15 + + /** + * See documentation on UTF8_ERROR_VALUE_1 for details. + * + * @deprecated ICU 2.4. Obsolete, see utf_old.h. + */ +-#define CBUTF8_ERROR_VALUE_2 0x9f ++#define UTF8_ERROR_VALUE_2 0x9f + + + /** +@@ -51,7 +51,7 @@ namespace base_icu { + * + * @deprecated ICU 2.4. Obsolete, see utf_old.h. + */ +-#define CBUTF_ERROR_VALUE 0xffff ++#define UTF_ERROR_VALUE 0xffff + + /* + * This table could be replaced on many machines by +@@ -103,7 +103,7 @@ utf8_minLegal[4]={ 0, 0x80, 0x800, 0x10000 }; + + static const UChar32 + utf8_errorValue[6]={ +- CBUTF8_ERROR_VALUE_1, CBUTF8_ERROR_VALUE_2, CBUTF_ERROR_VALUE, 0x10ffff, ++ UTF8_ERROR_VALUE_1, UTF8_ERROR_VALUE_2, UTF_ERROR_VALUE, 0x10ffff, + 0x3ffffff, 0x7fffffff + }; + +@@ -135,11 +135,11 @@ UChar32 utf8_nextCharSafeBody(const uint8_t* s, + UChar32 c, + UBool strict) { + int32_t i = *pi; +- uint8_t count = CBU8_COUNT_TRAIL_BYTES(c); ++ uint8_t count = U8_COUNT_TRAIL_BYTES(c); + if((i)+count<=(length)) { + uint8_t trail, illegal = 0; + +- CBU8_MASK_LEAD_BYTE((c), count); ++ U8_MASK_LEAD_BYTE((c), count); + /* count==0 for illegally leading trail bytes and the illegal bytes 0xfe and 0xff */ + switch(count) { + /* each branch falls through to the next one */ +@@ -169,9 +169,9 @@ UChar32 utf8_nextCharSafeBody(const uint8_t* s, + break; + case 0: + if(strict>=0) { +- return CBUTF8_ERROR_VALUE_1; ++ return UTF8_ERROR_VALUE_1; + } else { +- return CBU_SENTINEL; ++ return U_SENTINEL; + } + /* no default branch to optimize switch() - all values are covered */ + } +@@ -189,21 +189,21 @@ UChar32 utf8_nextCharSafeBody(const uint8_t* s, + + /* correct sequence - all trail bytes have (b7..b6)==(10)? */ + /* illegal is also set if count>=4 */ +- if(illegal || (c)0 && CBU8_IS_TRAIL(s[i])) { ++ while(count>0 && U8_IS_TRAIL(s[i])) { + ++(i); + --count; + } + if(strict>=0) { + c=utf8_errorValue[errorCount-count]; + } else { +- c=CBU_SENTINEL; ++ c=U_SENTINEL; + } +- } else if((strict)>0 && CBU_IS_UNICODE_NONCHAR(c)) { ++ } else if((strict)>0 && U_IS_UNICODE_NONCHAR(c)) { + /* strict: forbid non-characters like U+fffe */ + c=utf8_errorValue[count]; + } +@@ -211,13 +211,13 @@ UChar32 utf8_nextCharSafeBody(const uint8_t* s, + /* error handling */ + int32_t i0 = i; + /* don't just set (i)=(length) in case there is an illegal sequence */ +- while((i)<(length) && CBU8_IS_TRAIL(s[i])) { ++ while((i)<(length) && U8_IS_TRAIL(s[i])) { + ++(i); + } + if(strict>=0) { + c=utf8_errorValue[i-i0]; + } else { +- c=CBU_SENTINEL; ++ c=U_SENTINEL; + } + } + *pi=i; +diff --git a/src/3rdparty/chromium/content/browser/devtools/devtools_io_context.cc b/src/3rdparty/chromium/content/browser/devtools/devtools_io_context.cc +index 55f65f8c3..a7d616115 100644 +--- a/src/3rdparty/chromium/content/browser/devtools/devtools_io_context.cc ++++ b/src/3rdparty/chromium/content/browser/devtools/devtools_io_context.cc +@@ -8,7 +8,7 @@ + #include "base/files/file_util.h" + #include "base/strings/string_number_conversions.h" + #include "base/strings/string_util.h" +-#include "base/third_party/icu/icu_utf.h" ++#include + #include "content/public/browser/browser_thread.h" + + namespace content { +@@ -87,7 +87,7 @@ void Stream::ReadOnFileThread(off_t position, size_t max_size, + } 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 --git a/src/3rdparty/chromium/net/cert/internal/parse_name.cc b/src/3rdparty/chromium/net/cert/internal/parse_name.cc +index bb9b64051..5eaeb52d0 100644 +--- a/src/3rdparty/chromium/net/cert/internal/parse_name.cc ++++ b/src/3rdparty/chromium/net/cert/internal/parse_name.cc +@@ -10,7 +10,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 + + namespace net { + +@@ -35,7 +35,7 @@ bool ConvertBmpStringValue(const der::Input& in, std::string* out) { + + // 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); +@@ -55,7 +55,7 @@ bool ConvertUniversalStringValue(const der::Input& in, std::string* out) { + 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 --git a/src/3rdparty/chromium/ui/base/ime/input_method_chromeos.cc b/src/3rdparty/chromium/ui/base/ime/input_method_chromeos.cc +index a8ac9028f..8fa5d2a64 100644 +--- a/src/3rdparty/chromium/ui/base/ime/input_method_chromeos.cc ++++ b/src/3rdparty/chromium/ui/base/ime/input_method_chromeos.cc +@@ -17,7 +17,7 @@ + #include "base/strings/string_util.h" + #include "base/strings/utf_string_conversions.h" + #include "base/sys_info.h" +-#include "base/third_party/icu/icu_utf.h" ++#include + #include "ui/base/ime/chromeos/ime_keyboard.h" + #include "ui/base/ime/chromeos/input_method_manager.h" + #include "ui/base/ime/composition_text.h" +diff --git a/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc b/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc +index c7f38de0d..08a0ff5fb 100644 +--- a/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc ++++ b/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc +@@ -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) { +-- +2.13.0 + diff --git a/qtwebengine-opensource-src-5.8.0-no-sse2.patch b/0004-qtwebengine-opensource-src-5.9.0-no-sse2.patch similarity index 73% rename from qtwebengine-opensource-src-5.8.0-no-sse2.patch rename to 0004-qtwebengine-opensource-src-5.9.0-no-sse2.patch index ee15329..5df622b 100644 --- a/qtwebengine-opensource-src-5.8.0-no-sse2.patch +++ b/0004-qtwebengine-opensource-src-5.9.0-no-sse2.patch @@ -1,6 +1,64 @@ -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/breakpad/src/build/common.gypi qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/breakpad/src/build/common.gypi ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/breakpad/src/build/common.gypi 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/breakpad/src/build/common.gypi 2017-03-05 17:26:14.507159420 +0100 +From 844246bd10971ec348f044bc7a13acb17b9ce033 Mon Sep 17 00:00:00 2001 +From: Helio Chissini de Castro +Date: Wed, 31 May 2017 14:38:20 +0200 +Subject: [PATCH] qtwebengine-opensource-src-5.9.0-no-sse2 + +--- + .../chromium/breakpad/src/build/common.gypi | 8 +- + src/3rdparty/chromium/cc/BUILD.gn | 39 +- + src/3rdparty/chromium/media/BUILD.gn | 20 + + src/3rdparty/chromium/media/base/BUILD.gn | 48 +- + src/3rdparty/chromium/media/base/media.cc | 4 + + .../chromium/media/base/simd/convert_yuv_to_rgb.h | 34 + + .../media/base/simd/convert_yuv_to_rgb_mmx.asm | 24 + + .../media/base/simd/convert_yuv_to_rgb_x86.cc | 56 + + src/3rdparty/chromium/media/base/simd/filter_yuv.h | 6 + + .../chromium/media/base/simd/filter_yuv_mmx.cc | 79 + + .../chromium/media/base/simd/sinc_resampler_sse.cc | 50 + + .../chromium/media/base/simd/vector_math_sse.cc | 118 + + src/3rdparty/chromium/media/base/sinc_resampler.cc | 81 +- + src/3rdparty/chromium/media/base/sinc_resampler.h | 4 + + .../chromium/media/base/sinc_resampler_perftest.cc | 4 + + .../chromium/media/base/sinc_resampler_unittest.cc | 5 + + src/3rdparty/chromium/media/base/vector_math.cc | 150 +- + src/3rdparty/chromium/media/base/vector_math.h | 5 + + .../chromium/media/base/vector_math_perftest.cc | 35 +- + .../chromium/media/base/vector_math_testing.h | 2 +- + .../chromium/media/base/vector_math_unittest.cc | 4 + + src/3rdparty/chromium/media/base/yuv_convert.cc | 50 +- + .../chromium/media/base/yuv_convert_perftest.cc | 79 +- + .../chromium/media/base/yuv_convert_unittest.cc | 159 +- + src/3rdparty/chromium/skia/BUILD.gn | 52 +- + src/3rdparty/chromium/skia/ext/convolver.cc | 11 +- + src/3rdparty/chromium/skia/ext/convolver.h | 1 + + .../Source/modules/webaudio/AudioParamTimeline.cpp | 8 +- + .../Source/platform/audio/DirectConvolver.cpp | 40 +- + .../WebKit/Source/platform/audio/DirectConvolver.h | 7 + + .../WebKit/Source/platform/audio/SincResampler.cpp | 31 +- + .../WebKit/Source/platform/audio/SincResampler.h | 7 + + .../WebKit/Source/platform/audio/VectorMath.cpp | 97 +- + .../WebKit/Source/platform/audio/VectorMath.h | 23 + + .../graphics/cpu/x86/WebGLImageConversionSSE.h | 2 +- + .../platform/graphics/gpu/WebGLImageConversion.cpp | 12 +- + src/3rdparty/chromium/third_party/qcms/BUILD.gn | 17 +- + .../webrtc/common_audio/real_fourier.cc | 9 + + src/3rdparty/chromium/v8/BUILD.gn | 72 +- + src/3rdparty/chromium/v8/src/make-v8-sse2-gyp.sh | 56 + + src/3rdparty/chromium/v8/src/v8.gyp | 12 +- + src/3rdparty/chromium/v8/src/v8_sse2.gyp | 2313 ++++++++++++++++++++ + src/core/core_module.pro | 30 +- + 43 files changed, 3537 insertions(+), 327 deletions(-) + create mode 100644 src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_mmx.asm + create mode 100644 src/3rdparty/chromium/media/base/simd/filter_yuv_mmx.cc + create mode 100644 src/3rdparty/chromium/media/base/simd/sinc_resampler_sse.cc + create mode 100644 src/3rdparty/chromium/media/base/simd/vector_math_sse.cc + create mode 100644 src/3rdparty/chromium/v8/src/make-v8-sse2-gyp.sh + create mode 100644 src/3rdparty/chromium/v8/src/v8_sse2.gyp + +diff --git a/src/3rdparty/chromium/breakpad/src/build/common.gypi b/src/3rdparty/chromium/breakpad/src/build/common.gypi +index b9466a325..8ad78e24f 100644 +--- a/src/3rdparty/chromium/breakpad/src/build/common.gypi ++++ b/src/3rdparty/chromium/breakpad/src/build/common.gypi @@ -80,8 +80,8 @@ # The system root for cross-compiles. Default: none. 'sysroot%': '', @@ -8,7 +66,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/breakpad/src/bu - # On Linux, we build with sse2 for Chromium builds. - 'disable_sse2%': 0, + # Do not assume SSE2 by default (Fedora patch). -+ 'disable_sse2%': 1 ++ 'disable_sse2%': 1, }, 'target_arch%': '<(target_arch)', @@ -30,29 +88,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/breakpad/src/bu ], 'ldflags': [ '-m32', -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/build/common.gypi qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/build/common.gypi ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/build/common.gypi 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/build/common.gypi 2017-03-05 17:26:14.612157862 +0100 -@@ -3861,15 +3861,7 @@ - # value used during computation does not change depending on - # how the compiler optimized the code, since the value is - # always kept in its specified precision. -- # -- # Refer to http://crbug.com/348761 for rationale behind SSE2 -- # being a minimum requirement for 32-bit Linux builds and -- # http://crbug.com/313032 for an example where this has "bit" -- # us in the past. - 'cflags': [ -- '-msse2', -- '-mfpmath=sse', -- '-mmmx', # Allows mmintrin.h for MMX intrinsics. - '-m32', - ], - 'ldflags': [ -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/cc/BUILD.gn qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/cc/BUILD.gn ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/cc/BUILD.gn 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/cc/BUILD.gn 2017-03-05 17:38:41.416050535 +0100 -@@ -537,13 +537,6 @@ +diff --git a/src/3rdparty/chromium/cc/BUILD.gn b/src/3rdparty/chromium/cc/BUILD.gn +index e461a898d..b50659b89 100644 +--- a/src/3rdparty/chromium/cc/BUILD.gn ++++ b/src/3rdparty/chromium/cc/BUILD.gn +@@ -567,13 +567,6 @@ component("cc") { "trees/tree_synchronizer.h", ] @@ -66,7 +106,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/cc/BUILD.gn qtw configs += [ "//build/config:precompiled_headers" ] public_deps = [ -@@ -553,6 +546,7 @@ +@@ -583,6 +576,7 @@ component("cc") { deps = [ "//base", "//base/third_party/dynamic_annotations", @@ -74,7 +114,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/cc/BUILD.gn qtw "//cc/proto", "//cc/surfaces:surface_id", "//gpu", -@@ -581,6 +575,36 @@ +@@ -612,6 +606,37 @@ component("cc") { } } @@ -108,81 +148,46 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/cc/BUILD.gn qtw + } +} + - source_set("test_support") { ++ + static_library("test_support") { testonly = true sources = [ -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/cc/cc.gyp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/cc/cc.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/cc/cc.gyp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/cc/cc.gyp 2017-03-05 17:26:26.081987615 +0100 -@@ -602,14 +602,6 @@ - 'includes': [ - '../build/android/increase_size_for_speed.gypi', - ], -- 'conditions': [ -- ['target_arch == "ia32" or target_arch == "x64"', { -- 'sources': [ -- 'raster/texture_compressor_etc1_sse.cc', -- 'raster/texture_compressor_etc1_sse.h', -- ], -- }], -- ], - }, - { - # GN version: "//cc/proto" -@@ -678,6 +670,7 @@ - '<(DEPTH)/ui/events/events.gyp:events_base', - '<(DEPTH)/ui/gfx/gfx.gyp:gfx', - '<(DEPTH)/ui/gfx/gfx.gyp:gfx_geometry', -+ 'cc_opts', - ], - 'defines': [ - 'CC_SURFACES_IMPLEMENTATION=1', -@@ -714,5 +707,41 @@ - '../build/android/increase_size_for_speed.gypi', - ], - }, -+ { -+ 'target_name': 'cc_opts', -+ 'type': 'static_library', -+ 'conditions': [ -+ ['target_arch == "ia32" or target_arch == "x64"', { -+ 'defines': [ -+ 'CC_IMPLEMENTATION=1', -+ ], -+ 'dependencies': [ -+ 'cc_opts_sse', -+ ] -+ }], -+ ], -+ }, -+ { -+ 'target_name': 'cc_opts_sse', -+ 'type': 'static_library', -+ 'dependencies': [ -+ '<(DEPTH)/base/base.gyp:base', -+ ], -+ 'conditions': [ -+ ['target_arch == "ia32" or target_arch == "x64"', { -+ 'defines': [ -+ 'CC_IMPLEMENTATION=1', -+ ], -+ 'sources': [ -+ # Conditional compilation for SSE2 code on x86 and x64 machines -+ 'raster/texture_compressor_etc1_sse.cc', -+ 'raster/texture_compressor_etc1_sse.h', -+ ], -+ 'cflags': [ -+ '-msse2', -+ ], -+ }], -+ ], -+ }, - ], +diff --git a/src/3rdparty/chromium/media/BUILD.gn b/src/3rdparty/chromium/media/BUILD.gn +index 652aad4d9..063254830 100644 +--- a/src/3rdparty/chromium/media/BUILD.gn ++++ b/src/3rdparty/chromium/media/BUILD.gn +@@ -832,6 +832,26 @@ component("shared_memory_support") { + "//base", + "//ui/gfx/geometry", + ] ++ if (current_cpu == "x86" || current_cpu == "x64") { ++ deps += [ ++ ":shared_memory_support_sse", ++ ] ++ } ++} ++ ++if (current_cpu == "x86" || current_cpu == "x64") { ++ source_set("shared_memory_support_sse") { ++ sources = [ ++ "base/simd/vector_math_sse.cc", ++ ] ++ configs += [ ++ "//media:media_config", ++ "//media:media_implementation", ++ ] ++ if (!is_win) { ++ cflags = [ "-msse" ] ++ } ++ } } -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/BUILD.gn qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/BUILD.gn ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/BUILD.gn 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/BUILD.gn 2017-03-05 17:26:26.082987600 +0100 -@@ -312,13 +312,13 @@ + + # TODO(watk): Refactor tests that could be made to run on Android. See +diff --git a/src/3rdparty/chromium/media/base/BUILD.gn b/src/3rdparty/chromium/media/base/BUILD.gn +index d288ec787..fac712c00 100644 +--- a/src/3rdparty/chromium/media/base/BUILD.gn ++++ b/src/3rdparty/chromium/media/base/BUILD.gn +@@ -336,11 +336,12 @@ target(link_target_type, "base") { } if (current_cpu == "x86" || current_cpu == "x64") { @@ -198,11 +203,9 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/BUIL + ":media_sse", + ":media_sse2", ] -- deps += [ ":media_yasm" ] + deps += [ ":media_yasm" ] } - - if (is_linux || is_win) { -@@ -534,10 +534,47 @@ +@@ -539,10 +540,47 @@ source_set("perftests") { } if (current_cpu == "x86" || current_cpu == "x64") { @@ -250,9 +253,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/BUIL "simd/convert_yuv_to_rgb_sse.asm", "simd/convert_yuva_to_argb_mmx.asm", "simd/empty_register_state_mmx.asm", -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/media.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/media.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/media.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/media.cc 2017-03-05 17:44:02.063267153 +0100 +diff --git a/src/3rdparty/chromium/media/base/media.cc b/src/3rdparty/chromium/media/base/media.cc +index 38daf05b8..bb43b405f 100644 +--- a/src/3rdparty/chromium/media/base/media.cc ++++ b/src/3rdparty/chromium/media/base/media.cc @@ -10,6 +10,8 @@ #include "base/metrics/field_trial.h" #include "base/trace_event/trace_event.h" @@ -262,7 +266,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/medi #include "media/base/yuv_convert.h" #if defined(OS_ANDROID) -@@ -40,6 +42,8 @@ +@@ -40,6 +42,8 @@ class MediaInitializer { TRACE_EVENT_WARMUP_CATEGORY("media"); // Perform initialization of libraries which require runtime CPU detection. @@ -271,10 +275,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/medi InitializeCPUSpecificYUVConversions(); #if !defined(MEDIA_DISABLE_FFMPEG) -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb.h 2017-03-05 17:26:26.083987585 +0100 -@@ -65,6 +65,17 @@ +diff --git a/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb.h b/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb.h +index a421ff566..8373fde90 100644 +--- a/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb.h ++++ b/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb.h +@@ -65,6 +65,17 @@ MEDIA_EXPORT void ConvertYUVToRGB32_SSE(const uint8_t* yplane, int rgbstride, YUVType yuv_type); @@ -292,9 +297,9 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd MEDIA_EXPORT void ConvertYUVAToARGB_MMX(const uint8_t* yplane, const uint8_t* uplane, const uint8_t* vplane, -@@ -124,6 +135,13 @@ - ptrdiff_t width, - const int16_t* convert_table); +@@ -86,6 +97,13 @@ MEDIA_EXPORT void ScaleYUVToRGB32Row_C(const uint8_t* y_buf, + ptrdiff_t source_dx, + const int16_t* convert_table); +MEDIA_EXPORT void ConvertYUVToRGB32Row_MMX(const uint8_t* yplane, + const uint8_t* uplane, @@ -303,12 +308,12 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd + ptrdiff_t width, + const int16_t* convert_table); + - MEDIA_EXPORT void ConvertYUVToRGB32Row_SSE(const uint8_t* yplane, - const uint8_t* uplane, - const uint8_t* vplane, -@@ -131,6 +149,14 @@ - ptrdiff_t width, - const int16_t* convert_table); + MEDIA_EXPORT void LinearScaleYUVToRGB32Row_C(const uint8_t* y_buf, + const uint8_t* u_buf, + const uint8_t* v_buf, +@@ -94,6 +112,14 @@ MEDIA_EXPORT void LinearScaleYUVToRGB32Row_C(const uint8_t* y_buf, + ptrdiff_t source_dx, + const int16_t* convert_table); +MEDIA_EXPORT void ScaleYUVToRGB32Row_MMX(const uint8_t* y_buf, + const uint8_t* u_buf, @@ -318,12 +323,12 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd + ptrdiff_t source_dx, + const int16_t* convert_table); + - MEDIA_EXPORT void ScaleYUVToRGB32Row_SSE(const uint8_t* y_buf, - const uint8_t* u_buf, - const uint8_t* v_buf, -@@ -147,6 +173,14 @@ - ptrdiff_t source_dx, - const int16_t* convert_table); + MEDIA_EXPORT void LinearScaleYUVToRGB32RowWithRange_C( + const uint8_t* y_buf, + const uint8_t* u_buf, +@@ -104,6 +130,14 @@ MEDIA_EXPORT void LinearScaleYUVToRGB32RowWithRange_C( + int source_dx, + const int16_t* convert_table); +MEDIA_EXPORT void LinearScaleYUVToRGB32Row_MMX(const uint8_t* y_buf, + const uint8_t* u_buf, @@ -333,13 +338,15 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd + ptrdiff_t source_dx, + const int16_t* convert_table); + - MEDIA_EXPORT void LinearScaleYUVToRGB32Row_SSE(const uint8_t* y_buf, - const uint8_t* u_buf, - const uint8_t* v_buf, -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_mmx.asm qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_mmx.asm ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_mmx.asm 1970-01-01 01:00:00.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_mmx.asm 2017-03-05 17:26:26.167986340 +0100 -@@ -0,0 +1,23 @@ + } // namespace media + + // Assembly functions are declared without namespace. +diff --git a/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_mmx.asm b/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_mmx.asm +new file mode 100644 +index 000000000..3650c9f73 +--- /dev/null ++++ b/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_mmx.asm +@@ -0,0 +1,24 @@ +; Copyright (c) 2011 The Chromium Authors. All rights reserved. +; Use of this source code is governed by a BSD-style license that can be +; found in the LICENSE file. @@ -363,13 +370,43 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd +; const int16* convert_table); +%define SYMBOL ConvertYUVToRGB32Row_MMX +%include "convert_yuv_to_rgb_mmx.inc" -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_x86.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_x86.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_x86.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_x86.cc 2017-03-05 17:26:26.167986340 +0100 -@@ -47,6 +47,34 @@ ++ +diff --git a/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_x86.cc b/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_x86.cc +index a06799bfd..819bb60a8 100644 +--- a/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_x86.cc ++++ b/src/3rdparty/chromium/media/base/simd/convert_yuv_to_rgb_x86.cc +@@ -47,6 +47,62 @@ void ConvertYUVAToARGB_MMX(const uint8_t* yplane, EmptyRegisterState(); } ++void ConvertYUVToRGB32_MMX(const uint8_t* yplane, ++ const uint8_t* uplane, ++ const uint8_t* vplane, ++ uint8_t* rgbframe, ++ int width, ++ int height, ++ int ystride, ++ int uvstride, ++ int rgbstride, ++ YUVType yuv_type) { ++ unsigned int y_shift = GetVerticalShift(yuv_type); ++ for (int y = 0; y < height; ++y) { ++ uint8_t* rgb_row = rgbframe + y * rgbstride; ++ const uint8_t* y_ptr = yplane + y * ystride; ++ const uint8_t* u_ptr = uplane + (y >> y_shift) * uvstride; ++ const uint8_t* v_ptr = vplane + (y >> y_shift) * uvstride; ++ ++ ConvertYUVToRGB32Row_MMX(y_ptr, ++ u_ptr, ++ v_ptr, ++ rgb_row, ++ width, ++ GetLookupTable(yuv_type)); ++ } ++ ++ EmptyRegisterState(); ++} ++ +void ConvertYUVToRGB32_MMX(const uint8_t* yplane, + const uint8_t* uplane, + const uint8_t* vplane, @@ -401,10 +438,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd void ConvertYUVToRGB32_SSE(const uint8_t* yplane, const uint8_t* uplane, const uint8_t* vplane, -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/filter_yuv.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/filter_yuv.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/filter_yuv.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/filter_yuv.h 2017-03-05 17:26:26.167986340 +0100 -@@ -20,6 +20,12 @@ +diff --git a/src/3rdparty/chromium/media/base/simd/filter_yuv.h b/src/3rdparty/chromium/media/base/simd/filter_yuv.h +index af30bd133..206fb7f11 100644 +--- a/src/3rdparty/chromium/media/base/simd/filter_yuv.h ++++ b/src/3rdparty/chromium/media/base/simd/filter_yuv.h +@@ -20,6 +20,12 @@ MEDIA_EXPORT void FilterYUVRows_C(uint8_t* ybuf, int source_width, uint8_t source_y_fraction); @@ -417,9 +455,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd MEDIA_EXPORT void FilterYUVRows_SSE2(uint8_t* ybuf, const uint8_t* y0_ptr, const uint8_t* y1_ptr, -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/filter_yuv_mmx.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/filter_yuv_mmx.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/filter_yuv_mmx.cc 1970-01-01 01:00:00.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/filter_yuv_mmx.cc 2017-03-05 17:26:26.167986340 +0100 +diff --git a/src/3rdparty/chromium/media/base/simd/filter_yuv_mmx.cc b/src/3rdparty/chromium/media/base/simd/filter_yuv_mmx.cc +new file mode 100644 +index 000000000..416aca699 +--- /dev/null ++++ b/src/3rdparty/chromium/media/base/simd/filter_yuv_mmx.cc @@ -0,0 +1,79 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be @@ -500,9 +540,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd +#endif + +} // namespace media -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/sinc_resampler_sse.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/sinc_resampler_sse.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/sinc_resampler_sse.cc 1970-01-01 01:00:00.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/sinc_resampler_sse.cc 2017-03-05 17:26:26.168986325 +0100 +diff --git a/src/3rdparty/chromium/media/base/simd/sinc_resampler_sse.cc b/src/3rdparty/chromium/media/base/simd/sinc_resampler_sse.cc +new file mode 100644 +index 000000000..c5d03dc48 +--- /dev/null ++++ b/src/3rdparty/chromium/media/base/simd/sinc_resampler_sse.cc @@ -0,0 +1,50 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be @@ -554,9 +596,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd +} + +} // namespace media -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/vector_math_sse.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/vector_math_sse.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd/vector_math_sse.cc 1970-01-01 01:00:00.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/simd/vector_math_sse.cc 2017-03-05 17:26:26.168986325 +0100 +diff --git a/src/3rdparty/chromium/media/base/simd/vector_math_sse.cc b/src/3rdparty/chromium/media/base/simd/vector_math_sse.cc +new file mode 100644 +index 000000000..c2121225c +--- /dev/null ++++ b/src/3rdparty/chromium/media/base/simd/vector_math_sse.cc @@ -0,0 +1,118 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be @@ -676,9 +720,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/simd + +} // namespace vector_math +} // namespace media -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc_resampler.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/sinc_resampler.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc_resampler.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/sinc_resampler.cc 2017-03-05 17:26:26.168986325 +0100 +diff --git a/src/3rdparty/chromium/media/base/sinc_resampler.cc b/src/3rdparty/chromium/media/base/sinc_resampler.cc +index cffb0c9d6..010775544 100644 +--- a/src/3rdparty/chromium/media/base/sinc_resampler.cc ++++ b/src/3rdparty/chromium/media/base/sinc_resampler.cc @@ -81,17 +81,12 @@ #include #include @@ -699,7 +744,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc #endif namespace media { -@@ -112,10 +107,41 @@ +@@ -112,10 +107,41 @@ static double SincScaleFactor(double io_ratio) { return sinc_scale_factor; } @@ -741,7 +786,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc SincResampler::SincResampler(double io_sample_rate_ratio, int request_frames, const ReadCB& read_cb) -@@ -343,46 +369,7 @@ +@@ -328,46 +354,7 @@ float SincResampler::Convolve_C(const float* input_ptr, const float* k1, kernel_interpolation_factor * sum2); } @@ -789,10 +834,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc float SincResampler::Convolve_NEON(const float* input_ptr, const float* k1, const float* k2, double kernel_interpolation_factor) { -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc_resampler.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/sinc_resampler.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc_resampler.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/sinc_resampler.h 2017-03-05 17:26:26.169986310 +0100 -@@ -36,6 +36,10 @@ +diff --git a/src/3rdparty/chromium/media/base/sinc_resampler.h b/src/3rdparty/chromium/media/base/sinc_resampler.h +index afbd2abc9..9e3df2c55 100644 +--- a/src/3rdparty/chromium/media/base/sinc_resampler.h ++++ b/src/3rdparty/chromium/media/base/sinc_resampler.h +@@ -36,6 +36,10 @@ class MEDIA_EXPORT SincResampler { kKernelStorageSize = kKernelSize * (kKernelOffsetCount + 1), }; @@ -803,9 +849,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc // Callback type for providing more data into the resampler. Expects |frames| // of data to be rendered into |destination|; zero padded if not enough frames // are available to satisfy the request. -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc_resampler_perftest.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/sinc_resampler_perftest.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc_resampler_perftest.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/sinc_resampler_perftest.cc 2017-03-05 17:26:26.169986310 +0100 +diff --git a/src/3rdparty/chromium/media/base/sinc_resampler_perftest.cc b/src/3rdparty/chromium/media/base/sinc_resampler_perftest.cc +index 9cb7f4f2e..285382490 100644 +--- a/src/3rdparty/chromium/media/base/sinc_resampler_perftest.cc ++++ b/src/3rdparty/chromium/media/base/sinc_resampler_perftest.cc @@ -4,6 +4,7 @@ #include "base/bind.h" @@ -814,7 +861,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc #include "base/time/time.h" #include "build/build_config.h" #include "media/base/sinc_resampler.h" -@@ -61,6 +62,9 @@ +@@ -61,6 +62,9 @@ TEST(SincResamplerPerfTest, Convolve) { &resampler, SincResampler::Convolve_C, true, "unoptimized_aligned"); #if defined(CONVOLVE_FUNC) @@ -824,9 +871,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc RunConvolveBenchmark( &resampler, SincResampler::CONVOLVE_FUNC, true, "optimized_aligned"); RunConvolveBenchmark( -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc_resampler_unittest.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/sinc_resampler_unittest.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc_resampler_unittest.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/sinc_resampler_unittest.cc 2017-03-05 17:26:26.169986310 +0100 +diff --git a/src/3rdparty/chromium/media/base/sinc_resampler_unittest.cc b/src/3rdparty/chromium/media/base/sinc_resampler_unittest.cc +index 8dd346ee4..7401eee96 100644 +--- a/src/3rdparty/chromium/media/base/sinc_resampler_unittest.cc ++++ b/src/3rdparty/chromium/media/base/sinc_resampler_unittest.cc @@ -10,6 +10,7 @@ #include "base/bind.h" @@ -835,7 +883,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc #include "base/macros.h" #include "base/strings/string_number_conversions.h" #include "base/time/time.h" -@@ -166,6 +167,10 @@ +@@ -166,6 +167,10 @@ TEST(SincResamplerTest, DISABLED_SetRatioBench) { static const double kKernelInterpolationFactor = 0.5; TEST(SincResamplerTest, Convolve) { @@ -846,9 +894,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/sinc // Initialize a dummy resampler. MockSource mock_source; SincResampler resampler( -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math.cc 2017-03-05 17:26:26.170986295 +0100 +diff --git a/src/3rdparty/chromium/media/base/vector_math.cc b/src/3rdparty/chromium/media/base/vector_math.cc +index 578290538..e041d8d4c 100644 +--- a/src/3rdparty/chromium/media/base/vector_math.cc ++++ b/src/3rdparty/chromium/media/base/vector_math.cc @@ -7,12 +7,17 @@ #include @@ -924,7 +973,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect void FMAC(const float src[], float scale, int len, float dest[]) { // Ensure |src| and |dest| are 16-byte aligned. DCHECK_EQ(0u, reinterpret_cast(src) & (kRequiredAlignment - 1)); -@@ -89,111 +126,6 @@ +@@ -89,111 +126,6 @@ std::pair EWMAAndMaxPower_C( return result; } @@ -1036,10 +1085,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect #if defined(ARCH_CPU_ARM_FAMILY) && defined(USE_NEON) void FMAC_NEON(const float src[], float scale, int len, float dest[]) { const int rem = len % 4; -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math.h 2017-03-05 17:26:26.170986295 +0100 -@@ -15,6 +15,11 @@ +diff --git a/src/3rdparty/chromium/media/base/vector_math.h b/src/3rdparty/chromium/media/base/vector_math.h +index a148ca050..0a2cb06f6 100644 +--- a/src/3rdparty/chromium/media/base/vector_math.h ++++ b/src/3rdparty/chromium/media/base/vector_math.h +@@ -15,6 +15,11 @@ namespace vector_math { // Required alignment for inputs and outputs to all vector math functions enum { kRequiredAlignment = 16 }; @@ -1051,9 +1101,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect // Multiply each element of |src| (up to |len|) by |scale| and add to |dest|. // |src| and |dest| must be aligned by kRequiredAlignment. MEDIA_EXPORT void FMAC(const float src[], float scale, int len, float dest[]); -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math_perftest.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math_perftest.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math_perftest.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math_perftest.cc 2017-03-05 17:26:26.171986280 +0100 +diff --git a/src/3rdparty/chromium/media/base/vector_math_perftest.cc b/src/3rdparty/chromium/media/base/vector_math_perftest.cc +index 59b259dc2..c4c89a3b5 100644 +--- a/src/3rdparty/chromium/media/base/vector_math_perftest.cc ++++ b/src/3rdparty/chromium/media/base/vector_math_perftest.cc @@ -5,6 +5,7 @@ #include @@ -1062,7 +1113,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect #include "base/memory/aligned_memory.h" #include "base/time/time.h" #include "build/build_config.h" -@@ -82,15 +83,11 @@ +@@ -82,15 +83,11 @@ class VectorMathPerfTest : public testing::Test { DISALLOW_COPY_AND_ASSIGN(VectorMathPerfTest); }; @@ -1079,7 +1130,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect #endif // Benchmark for each optimized vector_math::FMAC() method. -@@ -99,6 +96,9 @@ +@@ -99,6 +96,9 @@ TEST_F(VectorMathPerfTest, FMAC) { RunBenchmark( vector_math::FMAC_C, true, "vector_math_fmac", "unoptimized"); #if defined(FMAC_FUNC) @@ -1089,7 +1140,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect // Benchmark FMAC_FUNC() with unaligned size. ASSERT_NE((kVectorSize - 1) % (vector_math::kRequiredAlignment / sizeof(float)), 0U); -@@ -112,12 +112,24 @@ +@@ -112,12 +112,24 @@ TEST_F(VectorMathPerfTest, FMAC) { #endif } @@ -1114,7 +1165,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect // Benchmark FMUL_FUNC() with unaligned size. ASSERT_NE((kVectorSize - 1) % (vector_math::kRequiredAlignment / sizeof(float)), 0U); -@@ -131,6 +143,14 @@ +@@ -131,6 +143,14 @@ TEST_F(VectorMathPerfTest, FMUL) { #endif } @@ -1129,7 +1180,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect // Benchmark for each optimized vector_math::EWMAAndMaxPower() method. TEST_F(VectorMathPerfTest, EWMAAndMaxPower) { // Benchmark EWMAAndMaxPower_C(). -@@ -139,6 +159,9 @@ +@@ -139,6 +159,9 @@ TEST_F(VectorMathPerfTest, EWMAAndMaxPower) { "vector_math_ewma_and_max_power", "unoptimized"); #if defined(EWMAAndMaxPower_FUNC) @@ -1139,17 +1190,18 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect // Benchmark EWMAAndMaxPower_FUNC() with unaligned size. ASSERT_NE((kVectorSize - 1) % (vector_math::kRequiredAlignment / sizeof(float)), 0U); -@@ -156,4 +179,6 @@ +@@ -156,4 +179,6 @@ TEST_F(VectorMathPerfTest, EWMAAndMaxPower) { #endif } +#undef EWMAAndMaxPower_FUNC + } // namespace media -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math_testing.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math_testing.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math_testing.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math_testing.h 2017-03-05 17:26:26.171986280 +0100 -@@ -19,7 +19,7 @@ +diff --git a/src/3rdparty/chromium/media/base/vector_math_testing.h b/src/3rdparty/chromium/media/base/vector_math_testing.h +index 9240fbf54..b0b304409 100644 +--- a/src/3rdparty/chromium/media/base/vector_math_testing.h ++++ b/src/3rdparty/chromium/media/base/vector_math_testing.h +@@ -19,7 +19,7 @@ MEDIA_EXPORT void FMUL_C(const float src[], float scale, int len, float dest[]); MEDIA_EXPORT std::pair EWMAAndMaxPower_C( float initial_value, const float src[], int len, float smoothing_factor); @@ -1158,9 +1210,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect MEDIA_EXPORT void FMAC_SSE(const float src[], float scale, int len, float dest[]); MEDIA_EXPORT void FMUL_SSE(const float src[], float scale, int len, -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math_unittest.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math_unittest.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vector_math_unittest.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/vector_math_unittest.cc 2017-03-05 17:26:26.172986265 +0100 +diff --git a/src/3rdparty/chromium/media/base/vector_math_unittest.cc b/src/3rdparty/chromium/media/base/vector_math_unittest.cc +index 3fcb3fad4..c4e8586aa 100644 +--- a/src/3rdparty/chromium/media/base/vector_math_unittest.cc ++++ b/src/3rdparty/chromium/media/base/vector_math_unittest.cc @@ -9,6 +9,7 @@ #include @@ -1169,7 +1222,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect #include "base/memory/aligned_memory.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringize_macros.h" -@@ -78,6 +79,7 @@ +@@ -78,6 +79,7 @@ TEST_F(VectorMathTest, FMAC) { #if defined(ARCH_CPU_X86_FAMILY) { @@ -1177,7 +1230,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect SCOPED_TRACE("FMAC_SSE"); FillTestVectors(kInputFillValue, kOutputFillValue); vector_math::FMAC_SSE( -@@ -119,6 +121,7 @@ +@@ -119,6 +121,7 @@ TEST_F(VectorMathTest, FMUL) { #if defined(ARCH_CPU_X86_FAMILY) { @@ -1185,7 +1238,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect SCOPED_TRACE("FMUL_SSE"); FillTestVectors(kInputFillValue, kOutputFillValue); vector_math::FMUL_SSE( -@@ -227,6 +230,7 @@ +@@ -227,6 +230,7 @@ class EWMATestScenario { #if defined(ARCH_CPU_X86_FAMILY) { @@ -1193,9 +1246,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/vect SCOPED_TRACE("EWMAAndMaxPower_SSE"); const std::pair& result = vector_math::EWMAAndMaxPower_SSE( initial_value_, data_.get(), data_len_, smoothing_factor_); -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_convert.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/yuv_convert.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_convert.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/yuv_convert.cc 2017-03-05 17:26:26.173986250 +0100 +diff --git a/src/3rdparty/chromium/media/base/yuv_convert.cc b/src/3rdparty/chromium/media/base/yuv_convert.cc +index 2cdd9b1fd..2fc643416 100644 +--- a/src/3rdparty/chromium/media/base/yuv_convert.cc ++++ b/src/3rdparty/chromium/media/base/yuv_convert.cc @@ -32,7 +32,7 @@ #include "media/base/simd/convert_yuv_to_rgb.h" #include "media/base/simd/filter_yuv.h" @@ -1205,7 +1259,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ #if defined(COMPILER_MSVC) #include #else -@@ -133,7 +133,7 @@ +@@ -133,7 +133,7 @@ static const int16_t* g_table_rec709_ptr = NULL; // Empty SIMD registers state after using them. void EmptyRegisterStateStub() {} @@ -1214,7 +1268,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ void EmptyRegisterStateIntrinsic() { _mm_empty(); } #endif typedef void (*EmptyRegisterStateProc)(); -@@ -247,34 +247,46 @@ +@@ -247,34 +247,46 @@ void InitializeCPUSpecificYUVConversions() { // Assembly code confuses MemorySanitizer. Also not available in iOS builds. #if defined(ARCH_CPU_X86_FAMILY) && !defined(MEMORY_SANITIZER) && \ !defined(OS_IOS) @@ -1278,10 +1332,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ if (cpu.has_ssse3()) { g_convert_rgb24_to_yuv_proc_ = &ConvertRGB24ToYUV_SSSE3; -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_convert_perftest.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/yuv_convert_perftest.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_convert_perftest.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/yuv_convert_perftest.cc 2017-03-05 17:26:26.173986250 +0100 -@@ -71,6 +71,29 @@ +diff --git a/src/3rdparty/chromium/media/base/yuv_convert_perftest.cc b/src/3rdparty/chromium/media/base/yuv_convert_perftest.cc +index ddf777cf3..f5520fd58 100644 +--- a/src/3rdparty/chromium/media/base/yuv_convert_perftest.cc ++++ b/src/3rdparty/chromium/media/base/yuv_convert_perftest.cc +@@ -71,6 +71,29 @@ class YUVConvertPerfTest : public testing::Test { DISALLOW_COPY_AND_ASSIGN(YUVConvertPerfTest); }; @@ -1311,7 +1366,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST_F(YUVConvertPerfTest, ConvertYUVToRGB32Row_SSE) { ASSERT_TRUE(base::CPU().has_sse()); -@@ -161,9 +184,32 @@ +@@ -161,9 +184,32 @@ TEST_F(YUVConvertPerfTest, I422AlphaToARGBRow_SSSE3) { } #endif @@ -1347,7 +1402,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST_F(YUVConvertPerfTest, ScaleYUVToRGB32Row_SSE) { ASSERT_TRUE(base::CPU().has_sse()); -@@ -190,6 +236,32 @@ +@@ -190,6 +236,32 @@ TEST_F(YUVConvertPerfTest, ScaleYUVToRGB32Row_SSE) { kPerfTestIterations / total_time_seconds, "runs/s", true); } @@ -1380,7 +1435,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST_F(YUVConvertPerfTest, LinearScaleYUVToRGB32Row_SSE) { ASSERT_TRUE(base::CPU().has_sse()); -@@ -215,7 +287,6 @@ +@@ -215,7 +287,6 @@ TEST_F(YUVConvertPerfTest, LinearScaleYUVToRGB32Row_SSE) { "yuv_convert_perftest", "", "LinearScaleYUVToRGB32Row_SSE", kPerfTestIterations / total_time_seconds, "runs/s", true); } @@ -1388,10 +1443,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ #endif // !defined(ARCH_CPU_ARM_FAMILY) && !defined(ARCH_CPU_MIPS_FAMILY) -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_convert_unittest.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/yuv_convert_unittest.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_convert_unittest.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/base/yuv_convert_unittest.cc 2017-03-05 17:26:26.174986235 +0100 -@@ -643,6 +643,37 @@ +diff --git a/src/3rdparty/chromium/media/base/yuv_convert_unittest.cc b/src/3rdparty/chromium/media/base/yuv_convert_unittest.cc +index ec872c89b..801466add 100644 +--- a/src/3rdparty/chromium/media/base/yuv_convert_unittest.cc ++++ b/src/3rdparty/chromium/media/base/yuv_convert_unittest.cc +@@ -643,6 +643,37 @@ TEST(YUVConvertTest, RGB32ToYUV_SSE2_MatchReference) { EXPECT_EQ(0, error); } @@ -1429,7 +1485,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST(YUVConvertTest, ConvertYUVToRGB32Row_SSE) { base::CPU cpu; if (!cpu.has_sse()) { -@@ -674,9 +705,40 @@ +@@ -674,9 +705,40 @@ TEST(YUVConvertTest, ConvertYUVToRGB32Row_SSE) { kWidth * kBpp)); } @@ -1473,7 +1529,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST(YUVConvertTest, ScaleYUVToRGB32Row_SSE) { base::CPU cpu; if (!cpu.has_sse()) { -@@ -711,6 +773,40 @@ +@@ -711,6 +773,40 @@ TEST(YUVConvertTest, ScaleYUVToRGB32Row_SSE) { kWidth * kBpp)); } @@ -1514,7 +1570,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST(YUVConvertTest, LinearScaleYUVToRGB32Row_SSE) { base::CPU cpu; if (!cpu.has_sse()) { -@@ -744,7 +840,6 @@ +@@ -744,7 +840,6 @@ TEST(YUVConvertTest, LinearScaleYUVToRGB32Row_SSE) { rgb_bytes_converted.get(), kWidth * kBpp)); } @@ -1522,7 +1578,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST(YUVConvertTest, FilterYUVRows_C_OutOfBounds) { std::unique_ptr src(new uint8_t[16]); -@@ -761,6 +856,30 @@ +@@ -761,6 +856,30 @@ TEST(YUVConvertTest, FilterYUVRows_C_OutOfBounds) { } } @@ -1553,7 +1609,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST(YUVConvertTest, FilterYUVRows_SSE2_OutOfBounds) { base::CPU cpu; if (!cpu.has_sse2()) { -@@ -782,6 +901,38 @@ +@@ -782,6 +901,38 @@ TEST(YUVConvertTest, FilterYUVRows_SSE2_OutOfBounds) { } } @@ -1592,172 +1648,55 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/base/yuv_ TEST(YUVConvertTest, FilterYUVRows_SSE2_UnalignedDestination) { base::CPU cpu; if (!cpu.has_sse2()) { -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/BUILD.gn qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/BUILD.gn ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/BUILD.gn 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/BUILD.gn 2017-03-05 17:26:26.175986220 +0100 -@@ -805,6 +805,26 @@ - "//base", - "//ui/gfx/geometry", - ] -+ if (current_cpu == "x86" || current_cpu == "x64") { -+ deps += [ -+ ":shared_memory_support_sse", -+ ] -+ } -+} -+ -+if (current_cpu == "x86" || current_cpu == "x64") { -+ source_set("shared_memory_support_sse") { -+ sources = [ -+ "base/simd/vector_math_sse.cc", -+ ] -+ configs += [ -+ "//media:media_config", -+ "//media:media_implementation", -+ ] -+ if (!is_win) { -+ cflags = [ "-msse" ] -+ } -+ } - } - - # TODO(watk): Refactor tests that could be made to run on Android. See -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/media.gyp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/media.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/media/media.gyp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/media/media.gyp 2017-03-05 17:51:56.424188330 +0100 -@@ -1020,12 +1020,12 @@ - ['target_arch=="ia32" or target_arch=="x64"', { - 'dependencies': [ - 'media_asm', -+ 'media_mmx', -+ 'media_sse', -+ 'media_sse2', - ], - 'sources': [ -- 'base/simd/convert_rgb_to_yuv_sse2.cc', -- 'base/simd/convert_rgb_to_yuv_ssse3.cc', - 'base/simd/convert_yuv_to_rgb_x86.cc', -- 'base/simd/filter_yuv_sse2.cc', - ], - }], - ['OS!="linux" and OS!="win"', { -@@ -1616,6 +1616,11 @@ - 'USE_NEON' - ], - }], -+ ['target_arch=="ia32" or target_arch=="x64"', { -+ 'dependencies': [ -+ 'shared_memory_support_sse' -+ ], -+ }], - ], - }, - { -@@ -1633,6 +1638,7 @@ - 'type': 'static_library', - 'sources': [ - 'base/simd/convert_rgb_to_yuv_ssse3.asm', -+ 'base/simd/convert_yuv_to_rgb_mmx.asm', - 'base/simd/convert_yuv_to_rgb_sse.asm', - 'base/simd/convert_yuva_to_argb_mmx.asm', - 'base/simd/empty_register_state_mmx.asm', -@@ -1713,6 +1719,75 @@ - '../third_party/yasm/yasm_compile.gypi', - ], - }, -+ { -+ # GN version: //media/base:media_mmx -+ 'target_name': 'media_mmx', -+ 'type': 'static_library', -+ 'cflags': [ -+ '-mmmx', -+ ], -+ 'defines': [ -+ 'MEDIA_IMPLEMENTATION', -+ ], -+ 'include_dirs': [ -+ '..', -+ ], -+ 'sources': [ -+ 'base/simd/filter_yuv_mmx.cc', -+ ], -+ }, -+ { -+ # GN version: //media/base:media_sse -+ 'target_name': 'media_sse', -+ 'type': 'static_library', -+ 'cflags': [ -+ '-msse', -+ ], -+ 'defines': [ -+ 'MEDIA_IMPLEMENTATION', -+ ], -+ 'include_dirs': [ -+ '..', -+ ], -+ 'sources': [ -+ 'base/simd/sinc_resampler_sse.cc', -+ ], -+ }, -+ { -+ # GN version: //media/base:media_sse2 -+ 'target_name': 'media_sse2', -+ 'type': 'static_library', -+ 'cflags': [ -+ '-msse2', -+ ], -+ 'defines': [ -+ 'MEDIA_IMPLEMENTATION', -+ ], -+ 'include_dirs': [ -+ '..', -+ ], -+ 'sources': [ -+ 'base/simd/convert_rgb_to_yuv_sse2.cc', -+ 'base/simd/convert_rgb_to_yuv_ssse3.cc', -+ 'base/simd/filter_yuv_sse2.cc', -+ ], -+ }, -+ { -+ 'target_name': 'shared_memory_support_sse', -+ 'type': 'static_library', -+ 'cflags': [ -+ '-msse', -+ ], -+ 'defines': [ -+ 'MEDIA_IMPLEMENTATION', -+ ], -+ 'include_dirs': [ -+ '..', -+ ], -+ 'sources': [ -+ 'base/simd/vector_math_sse.cc', -+ ], -+ }, - ], # targets - }], - ['OS=="win"', { -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/BUILD.gn qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/BUILD.gn ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/BUILD.gn 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/BUILD.gn 2017-03-05 17:56:08.829413581 +0100 -@@ -329,11 +329,6 @@ - if (!is_ios) { - sources += [ "ext/platform_canvas.cc" ] - } -- if (!is_ios && (current_cpu == "x86" || current_cpu == "x64")) { -- sources += [ "ext/convolver_SSE2.cc" ] -- } else if (current_cpu == "mipsel" && mips_dsp_rev >= 2) { -- sources += [ "ext/convolver_mips_dspr2.cc" ] -- } - - # The skia gypi values are relative to the skia_dir, so we need to rebase. - sources += gypi_skia_core.sources -@@ -642,7 +637,15 @@ +diff --git a/src/3rdparty/chromium/skia/BUILD.gn b/src/3rdparty/chromium/skia/BUILD.gn +index 55854ffe6..9a1d4ec0f 100644 +--- a/src/3rdparty/chromium/skia/BUILD.gn ++++ b/src/3rdparty/chromium/skia/BUILD.gn +@@ -1,38 +1,3 @@ +-# Copyright (c) 2013 The Chromium Authors. All rights reserved. +-# Use of this source code is governed by a BSD-style license that can be +-# found in the LICENSE file. +- +-import("//build/config/features.gni") +-import("//build/config/ui.gni") +-import("//printing/features/features.gni") +-import("//testing/test.gni") +-import("//third_party/skia/gn/shared_sources.gni") +- +-if (current_cpu == "arm") { +- import("//build/config/arm.gni") +-} +-if (current_cpu == "mipsel" || current_cpu == "mips64el") { +- import("//build/config/mips.gni") +-} +- +-skia_support_gpu = !is_ios +-skia_support_pdf = !is_ios && (enable_basic_printing || enable_print_preview) +- +-# When building Chrome for iOS with GYP, the target cpu is not known during +-# the invocation of gyp. This cause the iOS build to use non-optimised skia. +-# Replicate this with GN to avoid introducing regression as recommended by +-# the OWNERS of skia. +- +-declare_args() { +- skia_whitelist_serialized_typefaces = false +- +- # TODO(crbug.com/607933): Once GYP is no longer supported, port iOS to use +- # optimised skia. +- skia_build_no_opts = is_ios +-} +- +-# External-facing config for dependent code. +-config("skia_config") { + include_dirs = [ + "config", + "ext", +@@ -608,7 +573,15 @@ source_set("skia_opts") { if (skia_build_no_opts) { - sources = gypi_skia_opts.none_sources + sources = skia_opts.none_sources } else if (current_cpu == "x86" || current_cpu == "x64") { -- sources = gypi_skia_opts.sse2_sources -+ sources = gypi_skia_opts.sse2_sources + +- sources = skia_opts.sse2_sources ++ sources = skia_opts.sse2_sources + + [ + # Chrome-specific. + "ext/convolver_SSE2.cc", @@ -1768,11 +1707,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/BUILD.gn q + } deps += [ ":skia_opts_avx", - ":skia_opts_avx2", -@@ -677,6 +680,13 @@ + ":skia_opts_hsw", +@@ -644,6 +617,13 @@ source_set("skia_opts") { if (mips_dsp_rev >= 1) { - sources = gypi_skia_opts.mips_dsp_sources + sources = skia_opts.mips_dsp_sources + if (mips_dsp_rev >= 2) { + sources += [ + # Chrome-specific. @@ -1781,12 +1720,13 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/BUILD.gn q + ] + } } else { - sources = gypi_skia_opts.none_sources + sources = skia_opts.none_sources } -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/ext/convolver.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/ext/convolver.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/ext/convolver.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/ext/convolver.cc 2017-03-05 17:26:26.176986205 +0100 -@@ -362,10 +362,13 @@ +diff --git a/src/3rdparty/chromium/skia/ext/convolver.cc b/src/3rdparty/chromium/skia/ext/convolver.cc +index 092fefaa9..4b40ffd2c 100644 +--- a/src/3rdparty/chromium/skia/ext/convolver.cc ++++ b/src/3rdparty/chromium/skia/ext/convolver.cc +@@ -362,10 +362,13 @@ struct ConvolveProcs { void SetupSIMD(ConvolveProcs *procs) { #ifdef SIMD_SSE2 @@ -1804,9 +1744,10 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/ext/convol #elif defined SIMD_MIPS_DSPR2 procs->extra_horizontal_reads = 3; procs->convolve_vertically = &ConvolveVertically_mips_dspr2; -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/ext/convolver.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/ext/convolver.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/ext/convolver.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/ext/convolver.h 2017-03-05 17:26:26.239985269 +0100 +diff --git a/src/3rdparty/chromium/skia/ext/convolver.h b/src/3rdparty/chromium/skia/ext/convolver.h +index 1f33d4c0f..f7cd4770a 100644 +--- a/src/3rdparty/chromium/skia/ext/convolver.h ++++ b/src/3rdparty/chromium/skia/ext/convolver.h @@ -11,6 +11,7 @@ #include @@ -1815,215 +1756,11 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/ext/convol #include "third_party/skia/include/core/SkSize.h" #include "third_party/skia/include/core/SkTypes.h" -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/skia_chrome.gypi qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/skia_chrome.gypi ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/skia_chrome.gypi 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/skia_chrome.gypi 2017-03-05 17:26:26.239985269 +0100 -@@ -9,6 +9,7 @@ - { - 'dependencies': [ - 'skia_library', -+ 'skia_chrome_opts', - '../base/base.gyp:base', - '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', - ], -@@ -67,22 +68,16 @@ - 'ext/skia_utils_base.cc', - ], - }], -+ ['OS == "ios"', { -+ 'dependencies!': [ -+ 'skia_chrome_opts', -+ ], -+ }], - [ 'OS != "android" and (OS != "linux" or use_cairo==1)', { - 'sources!': [ - 'ext/bitmap_platform_device_skia.cc', - ], - }], -- [ 'OS != "ios" and target_arch != "arm" and target_arch != "mipsel" and \ -- target_arch != "arm64" and target_arch != "mips64el"', { -- 'sources': [ -- 'ext/convolver_SSE2.cc', -- ], -- }], -- [ 'target_arch == "mipsel" and mips_dsp_rev >= 2',{ -- 'sources': [ -- 'ext/convolver_mips_dspr2.cc', -- ], -- }], - ], - - 'target_conditions': [ -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/skia.gyp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/skia.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/skia.gyp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/skia.gyp 2017-03-05 17:26:26.239985269 +0100 -@@ -128,6 +128,37 @@ - # targets that are not dependent upon the component type - 'targets': [ - { -+ 'target_name': 'skia_chrome_opts', -+ 'type': 'static_library', -+ 'include_dirs': [ -+ '..', -+ 'config', -+ '../third_party/skia/include/core', -+ ], -+ 'conditions': [ -+ [ 'os_posix == 1 and OS != "mac" and OS != "android" and \ -+ target_arch != "arm" and target_arch != "mipsel" and \ -+ target_arch != "arm64" and target_arch != "mips64el"', { -+ 'cflags': [ -+ '-msse2', -+ ], -+ }], -+ [ 'target_arch != "arm" and target_arch != "mipsel" and \ -+ target_arch != "arm64" and target_arch != "mips64el"', { -+ 'sources': [ -+ 'ext/convolver_SSE2.cc', -+ 'ext/convolver_SSE2.h', -+ ], -+ }], -+ [ 'target_arch == "mipsel" and mips_dsp_rev >= 2',{ -+ 'sources': [ -+ 'ext/convolver_mips_dspr2.cc', -+ 'ext/convolver_mips_dspr2.h', -+ ], -+ }], -+ ], -+ }, -+ { - 'target_name': 'image_operations_bench', - # The optimize: 'max' scattered throughout are particularly - # important when compiled by MSVC 2013, which seems -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/skia_library_opts.gyp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/skia_library_opts.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/skia/skia_library_opts.gyp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/skia/skia_library_opts.gyp 2017-03-05 17:26:26.239985269 +0100 -@@ -19,10 +19,22 @@ - }, - - 'targets': [ -- # SSE files have to be built in a separate target, because gcc needs -- # different -msse flags for different SSE levels which enable use of SSE -- # intrinsics but also allow emission of SSE2 instructions for scalar code. -- # gyp does not allow per-file compiler flags. -+ # Due to an unfortunate intersection of lameness between gcc and gyp, -+ # we have to build the *_SSE2.cpp files in a separate target. The -+ # gcc lameness is that, in order to compile SSE2 intrinsics code, it -+ # must be passed the -msse2 flag. However, with this flag, it may -+ # emit SSE2 instructions even for scalar code, such as the CPUID -+ # test used to test for the presence of SSE2. So that, and all other -+ # code must be compiled *without* -msse2. The gyp lameness is that it -+ # does not allow file-specific CFLAGS, so we must create this extra -+ # target for those files to be compiled with -msse2. -+ # -+ # This is actually only a problem on 32-bit Linux (all Intel Macs have -+ # SSE2, Linux x86_64 has SSE2 by definition, and MSC will happily emit -+ # SSE2 from instrinsics, which generating plain ol' 386 for everything -+ # else). However, to keep the .gyp file simple and avoid platform-specific -+ # build breakage, we do this on all platforms. -+ - # For about the same reason, we need to compile the ARM opts files - # separately as well. - { -@@ -45,12 +57,13 @@ - ], - 'include_dirs': [ '<@(include_dirs)' ], - 'conditions': [ -+ [ 'os_posix == 1 and OS != "mac" and OS != "android" and \ -+ target_arch != "arm" and target_arch != "arm64" and \ -+ target_arch != "mipsel" and target_arch != "mips64el"', { -+ 'cflags': [ '-msse2' ], -+ }], - [ 'target_arch != "arm" and target_arch != "mipsel" and \ - target_arch != "arm64" and target_arch != "mips64el"', { -- # Chrome builds with -msse2 locally, so sse2_sources could in theory -- # be in the regular skia target. But we need skia_opts for arm -- # anyway, so putting sse2_sources here is simpler than making this -- # conditionally a type none target on x86. - 'sources': [ '<@(sse2_sources)' ], - 'dependencies': [ - 'skia_opts_ssse3', -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/qcms/BUILD.gn qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/qcms/BUILD.gn ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/qcms/BUILD.gn 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/qcms/BUILD.gn 2017-03-05 17:26:26.240985255 +0100 -@@ -31,8 +31,8 @@ - ] - - if (current_cpu == "x86" || current_cpu == "x64") { -- defines = [ "SSE2_ENABLE" ] -- sources += [ "src/transform-sse2.c" ] -+ defines = [ "SSE2_ENABLE" ] # runtime detection -+ deps = [ "qcms_sse2" ] - } - } - -@@ -75,3 +75,15 @@ - public_configs = [ ":qcms_config" ] - } - } -+ -+source_set("qcms_sse2") { -+ configs -= [ "//build/config/compiler:chromium_code" ] -+ configs += [ "//build/config/compiler:no_chromium_code" ] -+ public_configs = [ ":qcms_config" ] -+ -+ if (current_cpu == "x86" || current_cpu == "x64") { -+ defines = [ "SSE2_ENABLE" ] -+ sources = [ "src/transform-sse2.c" ] -+ cflags = [ "-msse2" ] -+ } -+} -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/qcms/qcms.gyp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/qcms/qcms.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/qcms/qcms.gyp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/qcms/qcms.gyp 2017-03-05 18:01:48.843328633 +0100 -@@ -52,10 +52,10 @@ - 'conditions': [ - ['target_arch=="ia32" or target_arch=="x64"', { - 'defines': [ -- 'SSE2_ENABLE', -+ 'SSE2_ENABLE', # runtime detection - ], -- 'sources': [ -- 'src/transform-sse2.c', -+ 'dependencies': [ -+ 'qcms_sse2', - ], - }], - ], -@@ -68,6 +68,29 @@ - }], - ], - }, -+ { -+ 'target_name': 'qcms_sse2', -+ 'type': 'static_library', -+ 'conditions': [ -+ ['target_arch == "ia32" or target_arch == "x64"', { -+ 'defines': [ -+ 'SSE2_ENABLE', -+ ], -+ 'sources': [ -+ # Conditional compilation for SSE2 code on x86 and x64 machines -+ 'src/transform-sse2.c', -+ ], -+ 'cflags': [ -+ '-msse2', -+ ], -+ }], -+ ], -+ 'direct_dependent_settings': { -+ 'include_dirs': [ -+ './src', -+ ], -+ }, -+ }, - ], - 'conditions': [ - ['disable_qcms == 0', { -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp 2017-03-05 17:26:26.240985255 +0100 -@@ -32,7 +32,7 @@ +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp +index 8e558f439..20ba17688 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/modules/webaudio/AudioParamTimeline.cpp +@@ -31,7 +31,7 @@ #include "wtf/MathExtras.h" #include @@ -2032,36 +1769,37 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web #include #endif -@@ -575,7 +575,7 @@ - // First handle linear and exponential ramps which require looking ahead to the next event. - if (nextEventType == ParamEvent::LinearRampToValue) { - const float valueDelta = value2 - value1; +@@ -662,7 +662,7 @@ float AudioParamTimeline::valuesForFrameRangeImpl(size_t startFrame, + // the next event. + if (nextEventType == ParamEvent::LinearRampToValue) { + const float valueDelta = value2 - value1; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - // Minimize in-loop operations. Calculate starting value and increment. Next step: value += inc. - // value = value1 + (currentFrame/sampleRate - time1) * k * (value2 - value1); - // inc = 4 / sampleRate * k * (value2 - value1); -@@ -738,7 +738,7 @@ - for (; writeIndex < fillToFrame; ++writeIndex) - values[writeIndex] = target; - } else { + if (fillToFrame > writeIndex) { + // Minimize in-loop operations. Calculate starting value and increment. + // Next step: value += inc. +@@ -841,7 +841,7 @@ float AudioParamTimeline::valuesForFrameRangeImpl(size_t startFrame, + for (; writeIndex < fillToFrame; ++writeIndex) + values[writeIndex] = target; + } else { -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - // Resolve recursion by expanding constants to achieve a 4-step loop unrolling. - // v1 = v0 + (t - v0) * c - // v2 = v1 + (t - v1) * c -@@ -843,7 +843,7 @@ - // Render the stretched curve data using linear interpolation. Oversampled - // curve data can be provided if sharp discontinuities are desired. - unsigned k = 0; + if (fillToFrame > writeIndex) { + // Resolve recursion by expanding constants to achieve a 4-step + // loop unrolling. +@@ -959,7 +959,7 @@ float AudioParamTimeline::valuesForFrameRangeImpl(size_t startFrame, + // Oversampled curve data can be provided if sharp discontinuities are + // desired. + unsigned k = 0; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - const __m128 vCurveVirtualIndex = _mm_set_ps1(curveVirtualIndex); - const __m128 vCurvePointsPerFrame = _mm_set_ps1(curvePointsPerFrame); - const __m128 vNumberOfCurvePointsM1 = _mm_set_ps1(numberOfCurvePoints - 1); -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp 2017-03-05 18:09:17.132624414 +0100 + if (fillToFrame > writeIndex) { + const __m128 vCurveVirtualIndex = _mm_set_ps1(curveVirtualIndex); + const __m128 vCurvePointsPerFrame = +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp +index a77ec195c..d76c2d015 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp @@ -26,6 +26,9 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -2072,7 +1810,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web #include "platform/audio/DirectConvolver.h" #if OS(MACOSX) -@@ -35,22 +38,44 @@ +@@ -35,21 +38,45 @@ #include "platform/audio/VectorMath.h" #include "wtf/CPU.h" @@ -2092,68 +1830,68 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web +#ifndef BUILD_ONLY_THE_SSE2_PARTS + DirectConvolver::DirectConvolver(size_t inputBlockSize) - : m_inputBlockSize(inputBlockSize) - , m_buffer(inputBlockSize * 2) - { +- : m_inputBlockSize(inputBlockSize), m_buffer(inputBlockSize * 2) {} ++ : m_inputBlockSize(inputBlockSize), m_buffer(inputBlockSize * 2) ++{ +#if CPU(X86) + base::CPU cpu; + m_haveSSE2 = cpu.has_sse2(); +#endif - } - ++} +#endif -+ + +#ifdef BUILD_ONLY_THE_SSE2_PARTS +void DirectConvolver::m_processSSE2(AudioFloatArray* convolutionKernel, const float* sourceP, float* destP, size_t framesToProcess) +#else - void DirectConvolver::process(AudioFloatArray* convolutionKernel, const float* sourceP, float* destP, size_t framesToProcess) + void DirectConvolver::process(AudioFloatArray* convolutionKernel, + const float* sourceP, + float* destP, +- size_t framesToProcess) { ++ size_t framesToProcess) +#endif - { -+#if CPU(X86) && !defined(__SSE2__) ++{ ++#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) + if (m_haveSSE2) { + m_processSSE2(convolutionKernel, sourceP, destP, framesToProcess); + return; + } +#endif - ASSERT(framesToProcess == m_inputBlockSize); - if (framesToProcess != m_inputBlockSize) - return; -@@ -82,7 +107,7 @@ - #endif // CPU(X86) + ASSERT(framesToProcess == m_inputBlockSize); + if (framesToProcess != m_inputBlockSize) + return; +@@ -83,7 +110,7 @@ void DirectConvolver::process(AudioFloatArray* convolutionKernel, + #endif // CPU(X86) #else - size_t i = 0; + size_t i = 0; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - // Convolution using SSE2. Currently only do this if both |kernelSize| and |framesToProcess| - // are multiples of 4. If not, use the straightforward loop below. - -@@ -392,7 +417,7 @@ - } - destP[i++] = sum; + // Convolution using SSE2. Currently only do this if both |kernelSize| and + // |framesToProcess| are multiples of 4. If not, use the straightforward loop + // below. +@@ -397,7 +424,7 @@ void DirectConvolver::process(AudioFloatArray* convolutionKernel, + } + destP[i++] = sum; } -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - } + } #endif - #endif // OS(MACOSX) -@@ -401,10 +426,14 @@ - memcpy(m_buffer.data(), inputP, sizeof(float) * framesToProcess); + #endif // OS(MACOSX) +@@ -406,8 +433,9 @@ void DirectConvolver::process(AudioFloatArray* convolutionKernel, + memcpy(m_buffer.data(), inputP, sizeof(float) * framesToProcess); } +#ifndef BUILD_ONLY_THE_SSE2_PARTS -+ - void DirectConvolver::reset() - { - m_buffer.zero(); + void DirectConvolver::reset() { + m_buffer.zero(); } - +- +#endif -+ - } // namespace blink - -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.h 2017-03-05 17:26:26.241985240 +0100 + } // namespace blink +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.h b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.h +index 848f6aa73..78ea0d84c 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.h ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.h @@ -32,6 +32,7 @@ #include "platform/PlatformExport.h" #include "platform/audio/AudioArray.h" @@ -2162,27 +1900,23 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web #include "wtf/Noncopyable.h" namespace blink { -@@ -50,6 +51,11 @@ - size_t m_inputBlockSize; +@@ -54,6 +55,12 @@ class PLATFORM_EXPORT DirectConvolver { + size_t m_inputBlockSize; - AudioFloatArray m_buffer; + AudioFloatArray m_buffer; + +#if CPU(X86) + bool m_haveSSE2; + void m_processSSE2(AudioFloatArray* convolutionKernel, const float* sourceP, float* destP, size_t framesToProcess); +#endif ++ }; - } // namespace blink -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolverSSE2.cpp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolverSSE2.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolverSSE2.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolverSSE2.cpp 2017-03-05 17:26:26.242985225 +0100 -@@ -0,0 +1,2 @@ -+#define BUILD_ONLY_THE_SSE2_PARTS -+#include "DirectConvolver.cpp" -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.cpp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.cpp 2017-03-05 17:26:26.242985225 +0100 + } // namespace blink +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.cpp +index e7ca2c77d..a0ad93953 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.cpp ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.cpp @@ -26,15 +26,22 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ @@ -2206,60 +1940,64 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web + // Input buffer layout, dividing the total buffer into regions (r0 - r5): // - // |----------------|----------------------------------------------------------------|----------------| -@@ -64,6 +71,8 @@ + // |----------------|-----------------------------------------|----------------| +@@ -66,6 +73,8 @@ namespace blink { +#ifndef BUILD_ONLY_THE_SSE2_PARTS + - SincResampler::SincResampler(double scaleFactor, unsigned kernelSize, unsigned numberOfKernelOffsets) - : m_scaleFactor(scaleFactor) - , m_kernelSize(kernelSize) -@@ -77,6 +86,10 @@ - , m_sourceProvider(nullptr) - , m_isBufferPrimed(false) - { + SincResampler::SincResampler(double scaleFactor, + unsigned kernelSize, + unsigned numberOfKernelOffsets) +@@ -81,6 +90,10 @@ SincResampler::SincResampler(double scaleFactor, + m_sourceFramesAvailable(0), + m_sourceProvider(nullptr), + m_isBufferPrimed(false) { +#if CPU(X86) + base::CPU cpu; + m_haveSSE2 = cpu.has_sse2(); +#endif - initializeKernel(); + initializeKernel(); } -@@ -193,8 +206,20 @@ - } +@@ -200,10 +213,22 @@ void SincResampler::process(const float* source, + remaining -= framesThisTime; + } } ++#endif //BUILD_ONLY_THE_SSE2_PARTS -+#endif -+ +#ifdef BUILD_ONLY_THE_SSE2_PARTS +void SincResampler::m_processSSE2(AudioSourceProvider* sourceProvider, float* destination, size_t framesToProcess) +#else - void SincResampler::process(AudioSourceProvider* sourceProvider, float* destination, size_t framesToProcess) + void SincResampler::process(AudioSourceProvider* sourceProvider, + float* destination, +- size_t framesToProcess) { ++ size_t framesToProcess) +#endif - { ++{ +#if CPU(X86) && !defined(__SSE2__) + if (m_haveSSE2) { + m_processSSE2(sourceProvider, destination, framesToProcess); + return; + } +#endif - bool isGood = sourceProvider && m_blockSize > m_kernelSize && m_inputBuffer.size() >= m_blockSize + m_kernelSize && !(m_kernelSize % 2); - ASSERT(isGood); - if (!isGood) -@@ -256,7 +281,7 @@ - { - float input; + bool isGood = sourceProvider && m_blockSize > m_kernelSize && + m_inputBuffer.size() >= m_blockSize + m_kernelSize && + !(m_kernelSize % 2); +@@ -269,7 +294,7 @@ void SincResampler::process(AudioSourceProvider* sourceProvider, + { + float input; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed seperately. - while ((reinterpret_cast(inputP) & 0x0F) && n) { - CONVOLVE_ONE_SAMPLE -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.h 2017-03-05 17:26:26.305984290 +0100 + // If the sourceP address is not 16-byte aligned, the first several + // frames (at most three) should be processed seperately. + while ((reinterpret_cast(inputP) & 0x0F) && n) { +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.h b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.h +index b96ec94cf..4b6b3293e 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.h ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResampler.h @@ -33,6 +33,7 @@ #include "platform/audio/AudioArray.h" #include "platform/audio/AudioSourceProvider.h" @@ -2268,29 +2006,25 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web #include "wtf/Noncopyable.h" namespace blink { -@@ -84,6 +85,11 @@ +@@ -96,6 +97,12 @@ class PLATFORM_EXPORT SincResampler { - // The buffer is primed once at the very beginning of processing. - bool m_isBufferPrimed; + // The buffer is primed once at the very beginning of processing. + bool m_isBufferPrimed; + +#if CPU(X86) -+ bool m_haveSSE2; -+ void m_processSSE2(AudioSourceProvider*, float* destination, size_t framesToProcess); ++ bool m_haveSSE2; ++ void m_processSSE2(AudioSourceProvider*, float* destination, size_t framesToProcess); +#endif ++ }; }; - } // namespace blink -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResamplerSSE2.cpp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResamplerSSE2.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResamplerSSE2.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/SincResamplerSSE2.cpp 2017-03-05 17:26:26.305984290 +0100 -@@ -0,0 +1,2 @@ -+#define BUILD_ONLY_THE_SSE2_PARTS -+#include "SincResampler.cpp" -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.cpp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.cpp 2017-03-05 17:26:26.306984275 +0100 -@@ -22,6 +22,9 @@ - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + } // namespace blink +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.cpp +index 8f3592cd7..ba9fc1a73 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.cpp ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.cpp +@@ -23,6 +23,9 @@ + * DAMAGE. */ +// include this first to get it before the CPU() function-like macro @@ -2299,7 +2033,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web #include "platform/audio/VectorMath.h" #include "wtf/Assertions.h" #include "wtf/CPU.h" -@@ -32,10 +35,14 @@ +@@ -33,10 +36,14 @@ #include #endif @@ -2315,7 +2049,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web #if HAVE(ARM_NEON_INTRINSICS) #include #endif -@@ -118,11 +125,25 @@ +@@ -165,15 +172,30 @@ void vclip(const float* sourceP, } #else @@ -2327,167 +2061,181 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web +static base::CPU cpu; +#endif + - void vsma(const float* sourceP, int sourceStride, const float* scale, float* destP, int destStride, size_t framesToProcess) - { + void vsma(const float* sourceP, + int sourceStride, + const float* scale, + float* destP, + int destStride, + size_t framesToProcess) { +- int n = framesToProcess; +#if CPU(X86) && !defined(__SSE2__) + if (cpu.has_sse2()) { + blink::VectorMath::SSE2::vsma(sourceP, sourceStride, scale, destP, destStride, framesToProcess); + return; + } +#endif - int n = framesToProcess; ++ ++int n = framesToProcess; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - if ((sourceStride == 1) && (destStride == 1)) { - float k = *scale; - -@@ -193,9 +214,15 @@ + if ((sourceStride == 1) && (destStride == 1)) { + float k = *scale; - void vsmul(const float* sourceP, int sourceStride, const float* scale, float* destP, int destStride, size_t framesToProcess) - { +@@ -269,9 +291,16 @@ void vsmul(const float* sourceP, + float* destP, + int destStride, + size_t framesToProcess) { +#if CPU(X86) && !defined(__SSE2__) + if (cpu.has_sse2()) { + blink::VectorMath::SSE2::vsmul(sourceP, sourceStride, scale, destP, destStride, framesToProcess); + return; + } +#endif - int n = framesToProcess; ++ + int n = framesToProcess; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - if ((sourceStride == 1) && (destStride == 1)) { - float k = *scale; + if ((sourceStride == 1) && (destStride == 1)) { + float k = *scale; -@@ -266,16 +293,22 @@ - sourceP += sourceStride; - destP += destStride; +@@ -360,7 +389,7 @@ void vsmul(const float* sourceP, + sourceP += sourceStride; + destP += destStride; } -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - } + } #endif } - - void vadd(const float* source1P, int sourceStride1, const float* source2P, int sourceStride2, float* destP, int destStride, size_t framesToProcess) - { +@@ -372,9 +401,16 @@ void vadd(const float* source1P, + float* destP, + int destStride, + size_t framesToProcess) { +- int n = framesToProcess; +#if CPU(X86) && !defined(__SSE2__) + if (cpu.has_sse2()) { + blink::VectorMath::SSE2::vadd(source1P, sourceStride1, source2P, sourceStride2, destP, destStride, framesToProcess); + return; + } +#endif - int n = framesToProcess; -#if CPU(X86) || CPU(X86_64) ++ int n = framesToProcess; ++ +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - if ((sourceStride1 ==1) && (sourceStride2 == 1) && (destStride == 1)) { - // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed separately. - while ((reinterpret_cast(source1P) & 0x0F) && n) { -@@ -378,17 +411,23 @@ - source2P += sourceStride2; - destP += destStride; + if ((sourceStride1 == 1) && (sourceStride2 == 1) && (destStride == 1)) { + // If the sourceP address is not 16-byte aligned, the first several frames + // (at most three) should be processed separately. +@@ -501,7 +537,7 @@ void vadd(const float* source1P, + source2P += sourceStride2; + destP += destStride; } -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - } + } #endif } - - void vmul(const float* source1P, int sourceStride1, const float* source2P, int sourceStride2, float* destP, int destStride, size_t framesToProcess) - { +@@ -513,9 +549,16 @@ void vmul(const float* source1P, + float* destP, + int destStride, + size_t framesToProcess) { +- int n = framesToProcess; +#if CPU(X86) && !defined(__SSE2__) + if (cpu.has_sse2()) { + blink::VectorMath::SSE2::vmul(source1P, sourceStride1, source2P, sourceStride2, destP, destStride, framesToProcess); + return; + } +#endif - - int n = framesToProcess; ++ ++int n = framesToProcess; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - if ((sourceStride1 == 1) && (sourceStride2 == 1) && (destStride == 1)) { - // If the source1P address is not 16-byte aligned, the first several frames (at most three) should be processed separately. - while ((reinterpret_cast(source1P) & 0x0F) && n) { -@@ -460,8 +499,14 @@ - - void zvmul(const float* real1P, const float* imag1P, const float* real2P, const float* imag2P, float* realDestP, float* imagDestP, size_t framesToProcess) - { + if ((sourceStride1 == 1) && (sourceStride2 == 1) && (destStride == 1)) { + // If the source1P address is not 16-byte aligned, the first several frames + // (at most three) should be processed separately. +@@ -614,8 +657,15 @@ void zvmul(const float* real1P, + float* realDestP, + float* imagDestP, + size_t framesToProcess) { +#if CPU(X86) && !defined(__SSE2__) + if (cpu.has_sse2()) { + blink::VectorMath::SSE2::zvmul(real1P, imag1P, real2P, imag2P, realDestP, imagDestP, framesToProcess); + return; + } +#endif - unsigned i = 0; ++ + unsigned i = 0; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - // Only use the SSE optimization in the very common case that all addresses are 16-byte aligned. - // Otherwise, fall through to the scalar code below. - if (!(reinterpret_cast(real1P) & 0x0F) -@@ -516,10 +561,16 @@ - - void vsvesq(const float* sourceP, int sourceStride, float* sumP, size_t framesToProcess) - { + // Only use the SSE optimization in the very common case that all addresses + // are 16-byte aligned. Otherwise, fall through to the scalar code below. + if (!(reinterpret_cast(real1P) & 0x0F) && +@@ -671,10 +721,17 @@ void vsvesq(const float* sourceP, + int sourceStride, + float* sumP, + size_t framesToProcess) { +- int n = framesToProcess; +#if CPU(X86) && !defined(__SSE2__) + if (cpu.has_sse2()) { + blink::VectorMath::SSE2::vsvesq(sourceP, sourceStride, sumP, framesToProcess); + return; + } +#endif - int n = framesToProcess; - float sum = 0; ++ ++ int n = framesToProcess; + float sum = 0; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - if (sourceStride == 1) { - // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed separately. - while ((reinterpret_cast(sourceP) & 0x0F) && n) { -@@ -581,10 +632,16 @@ - - void vmaxmgv(const float* sourceP, int sourceStride, float* maxP, size_t framesToProcess) - { + if (sourceStride == 1) { + // If the sourceP address is not 16-byte aligned, the first several frames + // (at most three) should be processed separately. +@@ -740,10 +797,16 @@ void vmaxmgv(const float* sourceP, + int sourceStride, + float* maxP, + size_t framesToProcess) { +#if CPU(X86) && !defined(__SSE2__) + if (cpu.has_sse2()) { + blink::VectorMath::SSE2::vmaxmgv(sourceP, sourceStride, maxP, framesToProcess); + return; + } +#endif - int n = framesToProcess; - float max = 0; + int n = framesToProcess; + float max = 0; -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - if (sourceStride == 1) { - // If the sourceP address is not 16-byte aligned, the first several frames (at most three) should be processed separately. - while ((reinterpret_cast(sourceP) & 0x0F) && n) { -@@ -648,6 +705,8 @@ - *maxP = max; - } - + if (sourceStride == 1) { + // If the sourceP address is not 16-byte aligned, the first several frames + // (at most three) should be processed separately. +@@ -839,6 +902,7 @@ void vclip(const float* sourceP, + float* destP, + int destStride, + size_t framesToProcess) { +#ifndef BUILD_ONLY_THE_SSE2_PARTS -+ - void vclip(const float* sourceP, int sourceStride, const float* lowThresholdP, const float* highThresholdP, float* destP, int destStride, size_t framesToProcess) - { - int n = framesToProcess; -@@ -678,6 +737,12 @@ - } + int n = framesToProcess; + float lowThreshold = *lowThresholdP; + float highThreshold = *highThresholdP; +@@ -888,6 +952,11 @@ void vclip(const float* sourceP, + destP += destStride; + } } - +#endif + +#ifdef BUILD_ONLY_THE_SSE2_PARTS +} // namespace SSE2 +#endif -+ - #endif // OS(MACOSX) - } // namespace VectorMath -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.h 2017-03-05 17:26:26.306984275 +0100 -@@ -26,6 +26,7 @@ + #endif // OS(MACOSX) + +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.h b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.h +index 8f375071c..d92e5b85e 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.h ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMath.h +@@ -27,6 +27,7 @@ #define VectorMath_h #include "platform/PlatformExport.h" @@ -2495,9 +2243,9 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web #include "wtf/build_config.h" #include -@@ -55,6 +56,28 @@ - // Copies elements while clipping values to the threshold inputs. - PLATFORM_EXPORT void vclip(const float* sourceP, int sourceStride, const float* lowThresholdP, const float* highThresholdP, float* destP, int destStride, size_t framesToProcess); +@@ -97,6 +98,28 @@ PLATFORM_EXPORT void vclip(const float* sourceP, + int destStride, + size_t framesToProcess); +#if CPU(X86) +namespace SSE2 { @@ -2521,70 +2269,13 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web +} +#endif + - } // namespace VectorMath - } // namespace blink - -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMathSSE2.cpp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMathSSE2.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMathSSE2.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/VectorMathSSE2.cpp 2017-03-05 17:26:26.307984260 +0100 -@@ -0,0 +1,2 @@ -+#define BUILD_ONLY_THE_SSE2_PARTS -+#include "VectorMath.cpp" -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/blink_platform.gyp 2017-03-05 17:26:26.307984260 +0100 -@@ -392,6 +392,11 @@ - '<(DEPTH)/third_party/openmax_dl/dl/dl.gyp:openmax_dl', - ], - }], -+ ['target_arch == "ia32"', { -+ 'dependencies': [ -+ 'blink_sse2', -+ ], -+ }], - ['target_arch=="arm"', { - 'dependencies': [ - 'blink_arm_neon', -@@ -406,6 +411,36 @@ - }], - ], - }, -+ { -+ 'target_name': 'blink_sse2', -+ 'conditions': [ -+ ['target_arch=="ia32"', { -+ 'type': 'static_library', -+ 'dependencies': [ -+ '<(DEPTH)/third_party/khronos/khronos.gyp:khronos_headers', -+ '../config.gyp:config', -+ '../wtf/wtf.gyp:wtf', -+ 'blink_common', -+ 'blink_heap_asm_stubs', -+ ], -+ 'defines': [ -+ 'BLINK_PLATFORM_IMPLEMENTATION=1', -+ 'INSIDE_BLINK', -+ ], -+ 'sources': [ -+ 'audio/DirectConvolverSSE2.cpp', -+ 'audio/SincResamplerSSE2.cpp', -+ 'audio/VectorMathSSE2.cpp', -+ ], -+ 'cflags': [ -+ '-msse2', -+ '-mfpmath=sse', -+ ], -+ },{ # target_arch != "ia32" -+ 'type': 'none', -+ }], -+ ], -+ }, - # The *NEON.cpp files fail to compile when -mthumb is passed. Force - # them to build in ARM mode. - # See https://bugs.webkit.org/show_bug.cgi?id=62916. -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h 2017-03-05 17:26:26.308984245 +0100 + } // namespace VectorMath + } // namespace blink + +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h b/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h +index e30fcb464..4b3437057 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h @@ -5,7 +5,7 @@ #ifndef WebGLImageConversionSSE_h #define WebGLImageConversionSSE_h @@ -2594,66 +2285,100 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/Web #include -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp 2017-03-05 17:26:26.309984231 +0100 -@@ -423,7 +423,7 @@ - const uint32_t* source32 = reinterpret_cast_ptr(source); - uint32_t* destination32 = reinterpret_cast_ptr(destination); +diff --git a/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp b/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp +index be417ea88..e79034424 100644 +--- a/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp ++++ b/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/gpu/WebGLImageConversion.cpp +@@ -441,7 +441,7 @@ void unpack( + const uint32_t* source32 = reinterpret_cast_ptr(source); + uint32_t* destination32 = reinterpret_cast_ptr(destination); -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - SIMD::unpackOneRowOfBGRA8LittleToRGBA8(source32, destination32, pixelsPerRow); + SIMD::unpackOneRowOfBGRA8LittleToRGBA8(source32, destination32, pixelsPerRow); #endif - for (unsigned i = 0; i < pixelsPerRow; ++i) { -@@ -442,7 +442,7 @@ - - template<> void unpack(const uint16_t* source, uint8_t* destination, unsigned pixelsPerRow) - { + #if HAVE(MIPS_MSA_INTRINSICS) +@@ -467,7 +467,7 @@ void unpack( + const uint16_t* source, + uint8_t* destination, + unsigned pixelsPerRow) { -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - SIMD::unpackOneRowOfRGBA5551LittleToRGBA8(source, destination, pixelsPerRow); + SIMD::unpackOneRowOfRGBA5551LittleToRGBA8(source, destination, pixelsPerRow); #endif #if HAVE(ARM_NEON_INTRINSICS) -@@ -464,7 +464,7 @@ - - template<> void unpack(const uint16_t* source, uint8_t* destination, unsigned pixelsPerRow) - { +@@ -496,7 +496,7 @@ void unpack( + const uint16_t* source, + uint8_t* destination, + unsigned pixelsPerRow) { -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - SIMD::unpackOneRowOfRGBA4444LittleToRGBA8(source, destination, pixelsPerRow); + SIMD::unpackOneRowOfRGBA4444LittleToRGBA8(source, destination, pixelsPerRow); #endif #if HAVE(ARM_NEON_INTRINSICS) -@@ -630,7 +630,7 @@ - // FIXME: this routine is lossy and must be removed. - template<> void pack(const uint8_t* source, uint8_t* destination, unsigned pixelsPerRow) - { +@@ -711,7 +711,7 @@ void pack(const uint8_t* source, + uint8_t* destination, + unsigned pixelsPerRow) { -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - SIMD::packOneRowOfRGBA8LittleToR8(source, destination, pixelsPerRow); + SIMD::packOneRowOfRGBA8LittleToR8(source, destination, pixelsPerRow); #endif - for (unsigned i = 0; i < pixelsPerRow; ++i) { -@@ -667,7 +667,7 @@ - // FIXME: this routine is lossy and must be removed. - template<> void pack(const uint8_t* source, uint8_t* destination, unsigned pixelsPerRow) - { + #if HAVE(MIPS_MSA_INTRINSICS) +@@ -768,7 +768,7 @@ void pack(const uint8_t* source, + uint8_t* destination, + unsigned pixelsPerRow) { -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - SIMD::packOneRowOfRGBA8LittleToRA8(source, destination, pixelsPerRow); + SIMD::packOneRowOfRGBA8LittleToRA8(source, destination, pixelsPerRow); #endif - for (unsigned i = 0; i < pixelsPerRow; ++i) { -@@ -741,7 +741,7 @@ - // FIXME: this routine is lossy and must be removed. - template<> void pack(const uint8_t* source, uint8_t* destination, unsigned pixelsPerRow) - { + #if HAVE(MIPS_MSA_INTRINSICS) +@@ -880,7 +880,7 @@ void pack(const uint8_t* source, + uint8_t* destination, + unsigned pixelsPerRow) { -#if CPU(X86) || CPU(X86_64) +#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) - SIMD::packOneRowOfRGBA8LittleToRGBA8(source, destination, pixelsPerRow); - #else - for (unsigned i = 0; i < pixelsPerRow; ++i) { -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/common_audio/real_fourier.cc qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/webrtc/common_audio/real_fourier.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/common_audio/real_fourier.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/third_party/webrtc/common_audio/real_fourier.cc 2017-03-05 18:14:44.694725685 +0100 + SIMD::packOneRowOfRGBA8LittleToRGBA8(source, destination, pixelsPerRow); + #endif + #if HAVE(MIPS_MSA_INTRINSICS) +diff --git a/src/3rdparty/chromium/third_party/qcms/BUILD.gn b/src/3rdparty/chromium/third_party/qcms/BUILD.gn +index 1183569be..771dd02c8 100644 +--- a/src/3rdparty/chromium/third_party/qcms/BUILD.gn ++++ b/src/3rdparty/chromium/third_party/qcms/BUILD.gn +@@ -30,8 +30,8 @@ static_library("qcms") { + ] + + if (current_cpu == "x86" || current_cpu == "x64") { +- defines = [ "SSE2_ENABLE" ] +- sources += [ "src/transform-sse2.c" ] ++ defines = [ "SSE2_ENABLE" ] # runtime detection ++ deps = [ "qcms_sse2" ] + } + } + +@@ -74,3 +74,16 @@ if (!disable_qcms) { + public_configs = [ ":qcms_config" ] + } + } ++ ++source_set("qcms_sse2") { ++ configs -= [ "//build/config/compiler:chromium_code" ] ++ configs += [ "//build/config/compiler:no_chromium_code" ] ++ public_configs = [ ":qcms_config" ] ++ ++ if (current_cpu == "x86" || current_cpu == "x64") { ++ defines = [ "SSE2_ENABLE" ] ++ sources = [ "src/transform-sse2.c" ] ++ cflags = [ "-msse2" ] ++ } ++} ++ +diff --git a/src/3rdparty/chromium/third_party/webrtc/common_audio/real_fourier.cc b/src/3rdparty/chromium/third_party/webrtc/common_audio/real_fourier.cc +index e721346f3..ef5a4e4a7 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/common_audio/real_fourier.cc ++++ b/src/3rdparty/chromium/third_party/webrtc/common_audio/real_fourier.cc @@ -14,6 +14,7 @@ #include "webrtc/common_audio/real_fourier_ooura.h" #include "webrtc/common_audio/real_fourier_openmax.h" @@ -2662,7 +2387,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/web namespace webrtc { -@@ -23,7 +24,15 @@ +@@ -23,7 +24,15 @@ const size_t RealFourier::kFftBufferAlignment = 32; std::unique_ptr RealFourier::Create(int fft_order) { #if defined(RTC_USE_OPENMAX_DL) @@ -2678,34 +2403,15 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/web #else return std::unique_ptr(new RealFourierOoura(fft_order)); #endif -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/tools/gyp/pylib/gyp/generator/ninja.py qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/tools/gyp/pylib/gyp/generator/ninja.py ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/tools/gyp/pylib/gyp/generator/ninja.py 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/tools/gyp/pylib/gyp/generator/ninja.py 2017-03-05 17:26:26.310984216 +0100 -@@ -1345,6 +1345,8 @@ - # Make sure that we have relative paths to our out/(Release|Debug), where we generate our .pri file, and then prepend $$PWD to them. - prefixed_objects = ['$$PWD/' + o for o in toAbsPaths(objects)] - prefixed_archives = ['$$PWD/' + o for o in toAbsPaths(libs)] -+ if len(solibs): -+ prefixed_solibs = ['$$PWD/' + so for so in toAbsPaths(solibs)] - - pri_file.write("QMAKE_LFLAGS += %s\n" % qmakeLiteral(' '.join(prefixed_lflags))) - pri_file.write("OBJECTS += %s\n" % qmakeLiteral(' '.join(prefixed_objects))) -@@ -1353,6 +1355,8 @@ - pri_file.write("LIBS_PRIVATE += -Wl,--start-group %s -Wl,--end-group\n" % qmakeLiteral(' '.join(prefixed_archives))) - else: - pri_file.write("LIBS_PRIVATE += %s\n" % qmakeLiteral(' '.join(prefixed_archives))) -+ if len(solibs): -+ pri_file.write("LIBS_PRIVATE += %s\n" % qmakeLiteral(' '.join(prefixed_solibs))) - # External libs have to come after objects/archives, the linker resolve them in order. - pri_file.write("LIBS_PRIVATE += %s\n" % qmakeLiteral(' '.join(prefixed_library_dirs + prefixed_libraries))) - # Make sure that if ninja modifies one of the inputs, qmake/make will link again. -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/BUILD.gn qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/v8/BUILD.gn ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/BUILD.gn 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/v8/BUILD.gn 2017-03-05 18:22:29.296777508 +0100 -@@ -1523,41 +1523,41 @@ - - if (v8_target_cpu == "x86") { - sources += [ +diff --git a/src/3rdparty/chromium/v8/BUILD.gn b/src/3rdparty/chromium/v8/BUILD.gn +index 9b209dfff..d88261d53 100644 +--- a/src/3rdparty/chromium/v8/BUILD.gn ++++ b/src/3rdparty/chromium/v8/BUILD.gn +@@ -1769,43 +1769,41 @@ v8_static_library("v8_base") { + + if (v8_current_cpu == "x86") { + sources += [ ### gcmole(arch:ia32) ### +- "src/builtins/ia32/builtins-ia32.cc", - "src/compiler/ia32/code-generator-ia32.cc", - "src/compiler/ia32/instruction-codes-ia32.h", - "src/compiler/ia32/instruction-scheduler-ia32.cc", @@ -2721,7 +2427,6 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/BUILD.gn qtw - "src/ia32/assembler-ia32-inl.h", - "src/ia32/assembler-ia32.cc", - "src/ia32/assembler-ia32.h", -- "src/ia32/builtins-ia32.cc", - "src/ia32/code-stubs-ia32.cc", - "src/ia32/code-stubs-ia32.h", - "src/ia32/codegen-ia32.cc", @@ -2734,6 +2439,8 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/BUILD.gn qtw - "src/ia32/interface-descriptors-ia32.cc", - "src/ia32/macro-assembler-ia32.cc", - "src/ia32/macro-assembler-ia32.h", +- "src/ia32/simulator-ia32.cc", +- "src/ia32/simulator-ia32.h", - "src/ic/ia32/access-compiler-ia32.cc", - "src/ic/ia32/handler-compiler-ia32.cc", - "src/ic/ia32/ic-compiler-ia32.cc", @@ -2777,37 +2484,13 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/BUILD.gn qtw + "src/regexp/x87/regexp-macro-assembler-x87.cc", + "src/regexp/x87/regexp-macro-assembler-x87.h", ] - } else if (v8_target_cpu == "x64") { - sources += [ -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/gypfiles/standalone.gypi qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/v8/gypfiles/standalone.gypi ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/gypfiles/standalone.gypi 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/v8/gypfiles/standalone.gypi 2017-03-05 18:20:24.988636550 +0100 -@@ -159,6 +159,9 @@ - }, { - 'gomadir': '>v8_sse2.gyp -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/v8.gyp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/v8/src/v8.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/v8.gyp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/v8/src/v8.gyp 2017-03-05 17:30:17.500552662 +0100 -@@ -36,6 +36,14 @@ - 'v8_experimental_extra_library_files%': [], - 'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)', - 'remove_v8base_debug_symbols%': 0, -+ 'conditions': [ -+ # build V8 shared on ia32 so we can swap x87 vs. SSE2 builds -+ ['target_arch == "ia32"', { -+ 'v8_component%': 'shared_library', -+ }, { -+ 'v8_component%': '<(component)', -+ }], -+ ], - }, - 'includes': ['../gypfiles/toolchain.gypi', '../gypfiles/features.gypi'], - 'targets': [ -@@ -49,8 +57,8 @@ +diff --git a/src/3rdparty/chromium/v8/src/v8.gyp b/src/3rdparty/chromium/v8/src/v8.gyp +index 020ec0928..2add932fc 100644 +--- a/src/3rdparty/chromium/v8/src/v8.gyp ++++ b/src/3rdparty/chromium/v8/src/v8.gyp +@@ -51,8 +51,8 @@ }, { 'toolsets': ['target'], }], @@ -2894,16 +2563,16 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/v8.gyp q 'sources': [ # Note: on non-Windows we still build this file so that gyp # has some sources to link into the component. -@@ -161,7 +169,7 @@ +@@ -151,7 +151,7 @@ 'js2c', ], }], - ['component=="shared_library"', { + ['v8_component=="shared_library"', { 'defines': [ - 'V8_SHARED', 'BUILDING_V8_SHARED', -@@ -253,7 +261,7 @@ + ], +@@ -243,7 +243,7 @@ 'toolsets': ['target'], 'dependencies': ['js2c'], }], @@ -2911,17 +2580,17 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/v8.gyp q + ['v8_component=="shared_library"', { 'defines': [ 'BUILDING_V8_SHARED', - 'V8_SHARED', -@@ -281,7 +289,7 @@ + ], +@@ -270,7 +270,7 @@ 'natives_blob', ], }], - ['component=="shared_library"', { + ['v8_component=="shared_library"', { 'defines': [ - 'V8_SHARED', 'BUILDING_V8_SHARED', -@@ -1608,7 +1616,7 @@ + ], +@@ -1727,7 +1727,7 @@ # See http://crbug.com/485155. 'msvs_shard': 4, }], @@ -2929,10 +2598,12 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/v8.gyp q + ['v8_component=="shared_library"', { 'defines': [ 'BUILDING_V8_SHARED', - 'V8_SHARED', -diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/v8_sse2.gyp qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/v8/src/v8_sse2.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/v8_sse2.gyp 1970-01-01 01:00:00.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/3rdparty/chromium/v8/src/v8_sse2.gyp 2017-03-05 18:25:37.781958850 +0100 + ], +diff --git a/src/3rdparty/chromium/v8/src/v8_sse2.gyp b/src/3rdparty/chromium/v8/src/v8_sse2.gyp +new file mode 100644 +index 000000000..140b071a6 +--- /dev/null ++++ b/src/3rdparty/chromium/v8/src/v8_sse2.gyp @@ -0,0 +1,2313 @@ +# Generated from v8.gyp by make-v8-sse2-gyp.sh +# Copyright 2012 the V8 project authors. All rights reserved. @@ -5247,11 +4918,12 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/v8_sse2. + }, + ], +} -diff -Nur qtwebengine-opensource-src-5.8.0/src/core/core_module.pro qtwebengine-opensource-src-5.8.0-no-sse2/src/core/core_module.pro ---- qtwebengine-opensource-src-5.8.0/src/core/core_module.pro 2017-01-03 11:35:11.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/core/core_module.pro 2017-03-05 17:30:17.502552632 +0100 -@@ -9,6 +9,29 @@ - error("Could not find the linking information that gyp should have generated.") +diff --git a/src/core/core_module.pro b/src/core/core_module.pro +index 44e8ac613..7fe1a49e9 100644 +--- a/src/core/core_module.pro ++++ b/src/core/core_module.pro +@@ -10,6 +10,29 @@ linking_pri = $$OUT_PWD/$$getConfigDir()/$${TARGET}.pri + error("Could not find the linking information that gn should have generated.") } +# find the shared libraries in the link line @@ -5280,7 +4952,7 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/core/core_module.pro qtwebengine- load(qt_module) api_library_name = qtwebenginecoreapi$$qtPlatformTargetSuffix() -@@ -74,7 +97,12 @@ +@@ -100,7 +123,12 @@ icu.files = $$OUT_PWD/$$getConfigDir()/icudtl.dat locales.path = $$[QT_INSTALL_TRANSLATIONS]/qtwebengine_locales resources.CONFIG += no_check_exist resources.path = $$[QT_INSTALL_DATA]/resources @@ -5294,18 +4966,6 @@ diff -Nur qtwebengine-opensource-src-5.8.0/src/core/core_module.pro qtwebengine- !use?(system_icu) { icu.CONFIG += no_check_exist -diff -Nur qtwebengine-opensource-src-5.8.0/src/core/qtwebengine.gypi qtwebengine-opensource-src-5.8.0-no-sse2/src/core/qtwebengine.gypi ---- qtwebengine-opensource-src-5.8.0/src/core/qtwebengine.gypi 2017-01-03 11:35:11.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-no-sse2/src/core/qtwebengine.gypi 2017-03-05 17:30:17.503552617 +0100 -@@ -63,6 +63,11 @@ - }, - }, - 'conditions': [ -+ ['target_arch=="ia32"', { -+ 'dependencies': [ -+ '<(chromium_src_dir)/v8/src/v8_sse2.gyp:v8_sse2', -+ ], -+ }], - ['OS=="win" and win_use_allocator_shim==1', { - 'dependencies': [ - '<(chromium_src_dir)/base/allocator/allocator.gyp:allocator', +-- +2.13.0 + diff --git a/qtwebengine-opensource-src-5.7.1-openmax-dl-neon.patch b/0005-qtwebengine-opensource-src-5.9.-openmax-dl-neon.patch similarity index 72% rename from qtwebengine-opensource-src-5.7.1-openmax-dl-neon.patch rename to 0005-qtwebengine-opensource-src-5.9.-openmax-dl-neon.patch index 08ff6e5..732be1a 100644 --- a/qtwebengine-opensource-src-5.7.1-openmax-dl-neon.patch +++ b/0005-qtwebengine-opensource-src-5.9.-openmax-dl-neon.patch @@ -1,6 +1,17 @@ -diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp ---- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp 2016-11-07 15:46:18.000000000 +0100 -+++ qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp 2016-12-03 22:50:19.369158276 +0100 +From 8bad8aac82444a9e1feda3f1a8b214b81be8a8fc Mon Sep 17 00:00:00 2001 +From: Helio Chissini de Castro +Date: Wed, 31 May 2017 15:02:52 +0200 +Subject: [PATCH] qtwebengine-opensource-src-5.9.-openmax-dl-neon + +--- + .../chromium/third_party/openmax_dl/dl/dl.gyp | 9 ---- + .../third_party/openmax_dl/dl/sp/src/arm/detect.c | 56 ++++++++++++++++++---- + 2 files changed, 48 insertions(+), 17 deletions(-) + +diff --git a/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp b/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp +index 2b0826fe1..20b4b1f35 100644 +--- a/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp ++++ b/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp @@ -219,15 +219,6 @@ 'conditions': [ ['arm_neon_optional==1', { @@ -17,9 +28,10 @@ diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/open 'sources': [ # Detection routine 'sp/src/arm/detect.c', -diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c ---- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2016-11-07 15:46:18.000000000 +0100 -+++ qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2016-12-03 22:48:13.745095083 +0100 +diff --git a/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c b/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c +index 57bfe4089..94a3f7ddc 100644 +--- a/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c ++++ b/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c @@ -9,13 +9,57 @@ * */ @@ -82,7 +94,7 @@ diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/open } static void SetFFTRoutines() { -@@ -24,13 +68,9 @@ +@@ -24,13 +68,9 @@ static void SetFFTRoutines() { * forward and inverse FFTs */ if (omxSP_HasArmNeon()) { @@ -96,3 +108,6 @@ diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/open omxSP_FFTFwd_RToCCS_F32 = omxSP_FFTFwd_RToCCS_F32_Sfs_vfp; omxSP_FFTInv_CCSToR_F32 = omxSP_FFTInv_CCSToR_F32_Sfs_vfp; } +-- +2.13.0 + diff --git a/0006-qtwebengine-opensource-src-5.9.0-linux-pri.patch b/0006-qtwebengine-opensource-src-5.9.0-linux-pri.patch new file mode 100644 index 0000000..92c12de --- /dev/null +++ b/0006-qtwebengine-opensource-src-5.9.0-linux-pri.patch @@ -0,0 +1,33 @@ +From a7885b823a2d3fc853f532fb5ae3a43a3e9967c0 Mon Sep 17 00:00:00 2001 +From: Helio Chissini de Castro +Date: Wed, 31 May 2017 15:13:15 +0200 +Subject: [PATCH] qtwebengine-opensource-src-5.9.0-linux-pri + +--- + src/core/config/linux.pri | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri +index 24951cd07..c28e3b312 100644 +--- a/src/core/config/linux.pri ++++ b/src/core/config/linux.pri +@@ -147,4 +147,16 @@ host_build { + use?(system_icu): gn_args += use_system_icu=true icu_use_data_file=false + use?(system_ffmpeg): gn_args += use_system_ffmpeg=true + #use?(system_protobuf): gn_args += use_system_protobuf=true ++ ++ # some more system packages, that are not checked for for some reason ++ gn_args += use_system_re2=true ++ ++ # yasm is only used on x86, and passing use_system_yasm makes the build fail on ++ # other architectures (e.g., ARM), so make it conditional on the architecture ++ contains(QT_ARCH, "x86_64")|contains(QT_ARCH, "i386") { ++ gn_args += use_system_yasm=true ++ } ++ ++ #link libpci instead of dlopening it, our Qt packaging depends on it anyway ++ gn_args += linux_link_libpci=true + } +-- +2.13.0 + diff --git a/qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch b/0007-qtwebengine-opensource-src-5.9.0-no-icudtl-dat.patch similarity index 69% rename from qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch rename to 0007-qtwebengine-opensource-src-5.9.0-no-icudtl-dat.patch index 00cbfc2..bf97a76 100644 --- a/qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch +++ b/0007-qtwebengine-opensource-src-5.9.0-no-icudtl-dat.patch @@ -1,7 +1,17 @@ -diff -ur qtwebengine-opensource-src-5.6.0/src/core/web_engine_library_info.cpp qtwebengine-opensource-src-5.6.0-no-icudtl-dat/src/core/web_engine_library_info.cpp ---- qtwebengine-opensource-src-5.6.0/src/core/web_engine_library_info.cpp 2016-03-03 17:02:28.000000000 +0100 -+++ qtwebengine-opensource-src-5.6.0-no-icudtl-dat/src/core/web_engine_library_info.cpp 2016-03-18 03:08:24.385444415 +0100 -@@ -207,24 +207,7 @@ +From 99294d646e58bcbedc5987a1816fed592290566f Mon Sep 17 00:00:00 2001 +From: Helio Chissini de Castro +Date: Wed, 31 May 2017 15:16:56 +0200 +Subject: [PATCH] qtwebengine-opensource-src-5.9.0-no-icudtl-dat + +--- + src/core/web_engine_library_info.cpp | 17 ----------------- + 1 file changed, 17 deletions(-) + +diff --git a/src/core/web_engine_library_info.cpp b/src/core/web_engine_library_info.cpp +index f46f8f425..96cd48ac4 100644 +--- a/src/core/web_engine_library_info.cpp ++++ b/src/core/web_engine_library_info.cpp +@@ -254,24 +254,7 @@ QString icuDataPath() #if defined(OS_MACOSX) && defined(QT_MAC_FRAMEWORK_BUILD) return getResourcesPath(frameworkBundle()); #else @@ -26,3 +36,6 @@ diff -ur qtwebengine-opensource-src-5.6.0/src/core/web_engine_library_info.cpp q return potentialResourcesPath; #endif } +-- +2.13.0 + diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec index 5ddbf65..b039a74 100644 --- a/qt5-qtwebengine.spec +++ b/qt5-qtwebengine.spec @@ -40,8 +40,8 @@ Summary: Qt5 - QtWebEngine components Name: qt5-qtwebengine -Version: 5.8.0 -Release: 14%{?dist} +Version: 5.9.0 +Release: 1%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -51,68 +51,40 @@ URL: http://www.qt.io # cleaned tarball with patent-encumbered codecs removed from the bundled FFmpeg # wget http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtwebengine-opensource-src-5.8.0.tar.xz # ./clean_qtwebengine.sh 5.8.0 -Source0: qtwebengine-opensource-src-%{version}-clean.tar.xz +Source0: https://download.qt.io/official_releases/qt/5.9/5.9.0/submodules/qtwebengine-opensource-src-5.9.0.tar.xz # cleanup scripts used above Source1: clean_qtwebengine.sh Source2: clean_ffmpeg.sh Source3: get_free_ffmpeg_source_files.py # macros Source10: macros.qt5-qtwebengine -# some tweaks to linux.pri (system libs, link libpci, run unbundling script) -Patch0: qtwebengine-opensource-src-5.7.0-linux-pri.patch -# quick hack to avoid checking for the nonexistent icudtl.dat and silence the -# resulting warnings - not upstreamable as is because it removes the fallback -# mechanism for the ICU data directory (which is not used in our builds because -# we use the system ICU, which embeds the data statically) completely -Patch1: qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch -# fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the -# ARM flags with our %%qmake_qt5 macro, including for the next patch -Patch2: qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag.patch -# disable NEON vector instructions on ARM where the NEON code FTBFS due to -# GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495 -# otherwise, we use the arm-fpu-fix below instead (which this patch contains) -Patch3: qtwebengine-opensource-src-5.7.1-no-neon.patch +# webrtc: enable the CPU feature detection for ARM Linux also for Chromium +Patch0: 0001-qtwebengine-opensource-src-5.9.0-webrtc-neon-detect.patch # use the system NSPR prtime (based on Debian patch) # We already depend on NSPR, so it is useless to copy these functions here. # Debian uses this just fine, and I don't see relevant modifications either. -Patch4: qtwebengine-opensource-src-5.8.0-system-nspr-prtime.patch +Patch1: 0002-qtwebengine-opensource-src-5.9.0-system-nspr-prtime.patch # use the system ICU UTF functions # We already depend on ICU, so it is useless to copy these functions here. # I checked the history of that directory, and other than the renames I am # undoing, there were no modifications at all. Must be applied after Patch5. -Patch5: qtwebengine-opensource-src-5.8.0-system-icu-utf.patch +Patch2: 0003-qtwebengine-opensource-src-5.9.0-system-icu-utf.patch # do not require SSE2 on i686 # cumulative revert of upstream reviews 187423002, 308003004, 511773002 (parts # relevant to QtWebEngine only), 516543004, 1152053004 and 1161853008, along # with some custom fixes and improvements # also build V8 shared and twice on i686 (once for x87, once for SSE2) # TODO: For 5.9, we will need the GN files updated (where not done yet), too. -Patch6: qtwebengine-opensource-src-5.8.0-no-sse2.patch -# fix ARM NEON handling in webrtc gyp files -# Fix video_processing.gypi to only build NEON files when actually requested -# (i.e., not if arm_neon=0 arm_neon_optional=0). -Patch7: qtwebengine-opensource-src-5.7.0-webrtc-neon.patch -# fix missing ARM -mfpu setting (see the comment in the no-neon patch above) -Patch9: qtwebengine-opensource-src-5.7.1-arm-fpu-fix.patch +Patch3: 0004-qtwebengine-opensource-src-5.9.0-no-sse2.patch # remove Android dependencies from openmax_dl ARM NEON detection (detect.c) -Patch10: qtwebengine-opensource-src-5.7.1-openmax-dl-neon.patch -# chromium-skia: build SkUtilsArm.cpp also on non-Android ARM -Patch11: qtwebengine-opensource-src-5.7.1-skia-neon.patch -# webrtc: enable the CPU feature detection for ARM Linux also for Chromium -Patch12: qtwebengine-opensource-src-5.8.0-webrtc-neon-detect.patch -# fix FTBFS in V8 with GCC 7 (by Ben Noordhuis, backported from Chromium RPM) -Patch13: qtwebengine-opensource-src-5.8.0-v8-gcc7.patch -# fix FTBFS in PDFium with GCC 7: backport upstream cleanup removing that code -# https://codereview.chromium.org/2154503002 -Patch14: qtwebengine-opensource-src-5.8.0-pdfium-gcc7.patch -# fix FTBFS in the WTF part of Blink/WebKit with GCC 7 -Patch15: qtwebengine-opensource-src-5.8.0-wtf-gcc7.patch -# FTBFS using qt < 5.8 -Patch20: qtwebengine-opensource-src-5.8.0-qt57.patch -# upstream fix for blank pages when a link opens in a new tab -Patch100: qtwebengine-opensource-src-5.8.0-fix-open-in-new-tab.patch -# upstream fix for non-functional dead keys in text fields -Patch101: qtwebengine-opensource-src-5.8.0-fix-dead-keys.patch +Patch4: 0005-qtwebengine-opensource-src-5.9.-openmax-dl-neon.patch +# some tweaks to linux.pri (system libs, link libpci, run unbundling script) +Patch5: 0006-qtwebengine-opensource-src-5.9.0-linux-pri.patch +# quick hack to avoid checking for the nonexistent icudtl.dat and silence the +# resulting warnings - not upstreamable as is because it removes the fallback +# mechanism for the ICU data directory (which is not used in our builds because +# we use the system ICU, which embeds the data statically) completely +Patch6: 0007-qtwebengine-opensource-src-5.9.0-no-icudtl-dat.patch %if 0%{?fedora} && 0%{?fedora} < 25 # work around missing qt5_qtwebengine_arches macro on F24 @@ -340,28 +312,16 @@ BuildArch: noarch %prep -%setup -q -n %{qt_module}-opensource-src-%{version}%{?prerelease:-%{prerelease}} -%patch0 -p1 -b .linux-pri -%patch1 -p1 -b .no-icudtl-dat -%patch2 -p1 -b .fix-extractcflag +%setup -q -n %{qt_module}-opensource-src-%{version} %if 0%{?arm_neon} -%patch9 -p1 -b .arm-fpu-fix -%else -%patch3 -p1 -b .no-neon +%patch0 -p1 -b .webrtc-neon-detect %endif -%patch4 -p1 -b .system-nspr-prtime -%patch5 -p1 -b .system-icu-utf -%patch6 -p1 -b .no-sse2 -%patch7 -p1 -b .webrtc-neon -%patch10 -p1 -b .openmax-dl-neon -%patch11 -p1 -b .skia-neon -%patch12 -p1 -b .webrtc-neon-detect -%patch13 -p1 -b .v8-gcc7 -%patch14 -p1 -b .pdfium-gcc7 -%patch15 -p1 -b .wtf-gcc7 -%patch20 -p1 -b .qt57 -%patch100 -p1 -b .fix-open-in-new-tab -%patch101 -p1 -b .fix-dead-keys +%patch1 -p1 -b .system-nspr-prtime +%patch2 -p1 -b .system-icu-utf +%patch3 -p1 -b .no-sse2 +%patch4 -p1 -b .openmax-dl-neon +%patch5 -p1 -b .linux-pri +%patch6 -p1 -b .no-icudtl # fix // in #include in content/renderer/gpu to avoid debugedit failure sed -i -e 's!gpu//!gpu/!g' \ src/3rdparty/chromium/content/renderer/gpu/compositor_forwarding_message_filter.cc @@ -572,6 +532,9 @@ done %changelog +* Wed May 31 2017 Helio Chissini de Castro - 5.9.0-1 +- Upstream official release + * Sat May 13 2017 Rex Dieter - 5.8.0-14 - fix rpm macros diff --git a/qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag.patch b/qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag.patch deleted file mode 100644 index 8beae69..0000000 --- a/qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.6.0-beta/tools/qmake/mkspecs/features/functions.prf qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag/tools/qmake/mkspecs/features/functions.prf ---- qtwebengine-opensource-src-5.6.0-beta/tools/qmake/mkspecs/features/functions.prf 2015-12-14 16:27:24.000000000 +0100 -+++ qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag/tools/qmake/mkspecs/features/functions.prf 2016-01-10 18:15:23.942032985 +0100 -@@ -87,7 +87,7 @@ - } - - defineReplace(extractCFlag) { -- CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS -+ CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS $$QMAKE_CFLAGS_RELEASE - OPTION = $$find(CFLAGS, $$1) - OPTION = $$split(OPTION, =) - return ($$member(OPTION, 1)) diff --git a/qtwebengine-opensource-src-5.7.0-linux-pri.patch b/qtwebengine-opensource-src-5.7.0-linux-pri.patch deleted file mode 100644 index 321a1d7..0000000 --- a/qtwebengine-opensource-src-5.7.0-linux-pri.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.7.0/src/core/config/linux.pri qtwebengine-opensource-src-5.7.0-linux-pri/src/core/config/linux.pri ---- qtwebengine-opensource-src-5.7.0/src/core/config/linux.pri 2016-06-07 06:20:06.000000000 +0200 -+++ qtwebengine-opensource-src-5.7.0-linux-pri/src/core/config/linux.pri 2016-07-17 22:18:17.312471202 +0200 -@@ -46,3 +46,22 @@ - use?(system_icu): GYP_CONFIG += use_system_icu=1 icu_use_data_file_flag=0 - use?(system_ffmpeg): GYP_CONFIG += use_system_ffmpeg=1 - use?(system_protobuf): GYP_CONFIG += use_system_protobuf=1 -+ -+# some more system packages, that are not checked for for some reason -+GYP_CONFIG += use_system_re2=1 -+ -+# yasm is only used on x86, and passing use_system_yasm makes the build fail on -+# other architectures (e.g., ARM), so make it conditional on the architecture -+contains(QT_ARCH, "x86_64")|contains(QT_ARCH, "i386") { -+ GYP_CONFIG += use_system_yasm=1 -+} -+ -+# link libpci instead of dlopening it, our Qt packaging depends on it anyway -+GYP_CONFIG += linux_link_libpci=1 -+ -+# run the unbundling script Chromium provides -+CHROMIUM_SRC_DIR = "$$QTWEBENGINE_ROOT/$$getChromiumSrcDir()" -+R_G_F_PY = "$$CHROMIUM_SRC_DIR/build/linux/unbundle/replace_gyp_files.py" -+R_G_F_PY_ARGS = "-D use_system_re2=1" -+log("Running python $$R_G_F_PY $$R_G_F_PY_ARGS$${EOL}") -+!system("python $$R_G_F_PY $$R_G_F_PY_ARGS"): error("-- unbundling failed") diff --git a/qtwebengine-opensource-src-5.7.1-skia-neon.patch b/qtwebengine-opensource-src-5.7.1-skia-neon.patch deleted file mode 100644 index c9b385b..0000000 --- a/qtwebengine-opensource-src-5.7.1-skia-neon.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/skia/skia_library.gypi qtwebengine-opensource-src-5.7.1-skia-neon/src/3rdparty/chromium/skia/skia_library.gypi ---- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/skia/skia_library.gypi 2016-11-07 15:46:18.000000000 +0100 -+++ qtwebengine-opensource-src-5.7.1-skia-neon/src/3rdparty/chromium/skia/skia_library.gypi 2016-12-04 14:34:12.531877529 +0100 -@@ -159,6 +159,11 @@ - '../build/android/ndk.gyp:cpu_features', - ], - }], -+ [ 'OS != "android" and target_arch == "arm"', { -+ 'sources': [ -+ '../third_party/skia/src/core/SkUtilsArm.cpp', -+ ], -+ }], - [ 'desktop_linux == 1 or chromeos == 1 or qt_os=="embedded_linux"', { - 'dependencies': [ - '../build/linux/system.gyp:fontconfig', diff --git a/qtwebengine-opensource-src-5.8.0-fix-dead-keys.patch b/qtwebengine-opensource-src-5.8.0-fix-dead-keys.patch deleted file mode 100644 index a0cf81c..0000000 --- a/qtwebengine-opensource-src-5.8.0-fix-dead-keys.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 31374ba98829e984c7600419c0e5fa71b96fc530 Mon Sep 17 00:00:00 2001 -From: Peter Varga -Date: Fri, 24 Mar 2017 14:31:02 +0100 -Subject: Forward input method events to RWHV in widget - -Task-number: QTBUG-58362 -Change-Id: Id4cf57c60da17538b224bb9bc91277c324c6a55d -Reviewed-by: Viktor Engelmann -Reviewed-by: Allan Sandfeld Jensen ---- - .../render_widget_host_view_qt_delegate_widget.cpp | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp -index 14c4d72..fd58a07 100644 ---- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp -+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp -@@ -84,10 +84,19 @@ protected: - { - m_client->forwardEvent(event); - } -+ void inputMethodEvent(QInputMethodEvent *event) override -+ { -+ m_client->forwardEvent(event); -+ } - QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override - { - return m_client->updatePaintNode(oldNode); - } -+ -+ QVariant inputMethodQuery(Qt::InputMethodQuery query) const override -+ { -+ return m_client->inputMethodQuery(query); -+ } - private: - RenderWidgetHostViewQtDelegateClient *m_client; - }; --- -cgit v1.0-4-g1e03 - diff --git a/qtwebengine-opensource-src-5.8.0-fix-open-in-new-tab.patch b/qtwebengine-opensource-src-5.8.0-fix-open-in-new-tab.patch deleted file mode 100644 index c95a712..0000000 --- a/qtwebengine-opensource-src-5.8.0-fix-open-in-new-tab.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 8e147ed3be7740092de233a2a7c67ec890069649 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20Br=C3=BCning?= -Date: Mon, 13 Mar 2017 11:13:56 +0100 -Subject: Remove stale parent connection when initializing delegate as a child - -When clicking on a blank link target, the constructor of the -RenderWidgetHostViewQtDelegateWidget instance for the newly created -view is called with the originating QWebEngineView as its parent -and will connect its removeParentBeforeParentDelete slot to the -originating view's destroyed signal. - -This leads to the situation where the delegate's parent will be set to -null when the originating view is closed, causing the view to display -only an empty widget with the actual web contents remaining live in -the background. - -This patch removes the connection to the old view when initializing -the delegate as a child of the QWebEnginePagePrivate instance. The -addition to the layout updates the parent and child relationship -between the view and the delegate internally. - -Task-number: QTBUG-58381 -Change-Id: I448380478c2bcfcfbddaee8a35caf46010e57972 -Reviewed-by: Florian Bruhin -Reviewed-by: Joerg Bornemann ---- - src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp -index e7ad5b1..14c4d72 100644 ---- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp -+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp -@@ -163,6 +163,9 @@ void RenderWidgetHostViewQtDelegateWidget::initAsChild(WebContentsAdapterClient* - - QWebEnginePagePrivate *pagePrivate = static_cast(container); - if (pagePrivate->view) { -+ if (parentWidget()) -+ disconnect(parentWidget(), &QObject::destroyed, -+ this, &RenderWidgetHostViewQtDelegateWidget::removeParentBeforeParentDelete); - pagePrivate->view->layout()->addWidget(this); - pagePrivate->view->setFocusProxy(this); - show(); --- -cgit v1.0-4-g1e03 - diff --git a/qtwebengine-opensource-src-5.8.0-pdfium-gcc7.patch b/qtwebengine-opensource-src-5.8.0-pdfium-gcc7.patch deleted file mode 100644 index ce2c180..0000000 --- a/qtwebengine-opensource-src-5.8.0-pdfium-gcc7.patch +++ /dev/null @@ -1,600 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp 2017-03-06 13:04:01.784297561 +0100 -@@ -454,7 +454,7 @@ - } - - void app::ClearTimerCommon(const CJS_Value& param) { -- if (param.GetType() != CJS_Value::VT_fxobject) -+ if (param.GetType() != CJS_Value::VT_object) - return; - - v8::Local pObj = param.ToV8Object(); -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp 2017-03-06 13:04:01.783297575 +0100 -@@ -411,22 +411,20 @@ - - int nlength = params.size(); - if (nlength == 9) { -- if (params[8].GetType() == CJS_Value::VT_fxobject) { -+ if (params[8].GetType() == CJS_Value::VT_object) { - v8::Local pObj = params[8].ToV8Object(); -- { -- if (FXJS_GetObjDefnID(pObj) == CJS_PrintParamsObj::g_nObjDefnID) { -- if (CJS_Object* pJSObj = params[8].ToCJSObject()) { -- if (PrintParamsObj* pprintparamsObj = -- (PrintParamsObj*)pJSObj->GetEmbedObject()) { -- bUI = pprintparamsObj->bUI; -- nStart = pprintparamsObj->nStart; -- nEnd = pprintparamsObj->nEnd; -- bSilent = pprintparamsObj->bSilent; -- bShrinkToFit = pprintparamsObj->bShrinkToFit; -- bPrintAsImage = pprintparamsObj->bPrintAsImage; -- bReverse = pprintparamsObj->bReverse; -- bAnnotations = pprintparamsObj->bAnnotations; -- } -+ if (FXJS_GetObjDefnID(pObj) == CJS_PrintParamsObj::g_nObjDefnID) { -+ if (CJS_Object* pJSObj = params[8].ToCJSObject()) { -+ if (PrintParamsObj* pprintparamsObj = -+ static_cast(pJSObj->GetEmbedObject())) { -+ bUI = pprintparamsObj->bUI; -+ nStart = pprintparamsObj->nStart; -+ nEnd = pprintparamsObj->nEnd; -+ bSilent = pprintparamsObj->bSilent; -+ bShrinkToFit = pprintparamsObj->bShrinkToFit; -+ bPrintAsImage = pprintparamsObj->bPrintAsImage; -+ bReverse = pprintparamsObj->bReverse; -+ bAnnotations = pprintparamsObj->bAnnotations; - } - } - } -@@ -597,18 +595,16 @@ - v8::Local pObj = params[0].ToV8Object(); - v8::Local pValue = FXJS_GetObjectElement(isolate, pObj, L"cURL"); - if (!pValue.IsEmpty()) -- strURL = -- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); -+ strURL = CJS_Value(pRuntime, pValue).ToCFXWideString(); - - pValue = FXJS_GetObjectElement(isolate, pObj, L"bFDF"); -- bFDF = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToBool(); -+ bFDF = CJS_Value(pRuntime, pValue).ToBool(); - - pValue = FXJS_GetObjectElement(isolate, pObj, L"bEmpty"); -- bEmpty = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToBool(); -+ bEmpty = CJS_Value(pRuntime, pValue).ToBool(); - - pValue = FXJS_GetObjectElement(isolate, pObj, L"aFields"); -- aFields.Attach( -- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToV8Array()); -+ aFields.Attach(CJS_Value(pRuntime, pValue).ToV8Array()); - } - - CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm(); -@@ -691,25 +687,22 @@ - v8::Local pObj = params[0].ToV8Object(); - - v8::Local pValue = FXJS_GetObjectElement(isolate, pObj, L"bUI"); -- bUI = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToInt(); -+ bUI = CJS_Value(pRuntime, pValue).ToInt(); - - pValue = FXJS_GetObjectElement(isolate, pObj, L"cTo"); -- cTo = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); -+ cTo = CJS_Value(pRuntime, pValue).ToCFXWideString(); - - pValue = FXJS_GetObjectElement(isolate, pObj, L"cCc"); -- cCc = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); -+ cCc = CJS_Value(pRuntime, pValue).ToCFXWideString(); - - pValue = FXJS_GetObjectElement(isolate, pObj, L"cBcc"); -- cBcc = -- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); -+ cBcc = CJS_Value(pRuntime, pValue).ToCFXWideString(); - - pValue = FXJS_GetObjectElement(isolate, pObj, L"cSubject"); -- cSubject = -- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); -+ cSubject = CJS_Value(pRuntime, pValue).ToCFXWideString(); - - pValue = FXJS_GetObjectElement(isolate, pObj, L"cMsg"); -- cMsg = -- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString(); -+ cMsg = CJS_Value(pRuntime, pValue).ToCFXWideString(); - } - - pRuntime->BeginBlock(); -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp 2017-03-06 13:04:01.785297546 +0100 -@@ -17,63 +17,6 @@ - #include "fpdfsdk/javascript/cjs_context.h" - #include "fpdfsdk/javascript/resource.h" - --// Helper class for compile-time calculation of hash values in order to --// avoid having global object initializers. --template --struct CHash; -- --// Only needed to hash single-character strings. --template --struct CHash { -- static const unsigned value = N; --}; -- --template --struct CHash { -- static const unsigned value = (ACC * 1313LLU + N) & 0xFFFFFFFF; --}; -- --template --struct CHash { -- static const unsigned value = CHash::value, Ns...>::value; --}; -- --const unsigned int JSCONST_nStringHash = -- CHash<'s', 't', 'r', 'i', 'n', 'g'>::value; --const unsigned int JSCONST_nNumberHash = -- CHash<'n', 'u', 'm', 'b', 'e', 'r'>::value; --const unsigned int JSCONST_nBoolHash = -- CHash<'b', 'o', 'o', 'l', 'e', 'a', 'n'>::value; --const unsigned int JSCONST_nDateHash = CHash<'d', 'a', 't', 'e'>::value; --const unsigned int JSCONST_nObjectHash = -- CHash<'o', 'b', 'j', 'e', 'c', 't'>::value; --const unsigned int JSCONST_nFXobjHash = CHash<'f', 'x', 'o', 'b', 'j'>::value; --const unsigned int JSCONST_nNullHash = CHash<'n', 'u', 'l', 'l'>::value; --const unsigned int JSCONST_nUndefHash = -- CHash<'u', 'n', 'd', 'e', 'f', 'i', 'n', 'e', 'd'>::value; -- --static unsigned JS_CalcHash(const wchar_t* main) { -- return (unsigned)FX_HashCode_GetW(CFX_WideStringC(main), false); --} -- --#ifndef NDEBUG --class HashVerify { -- public: -- HashVerify(); --} g_hashVerify; -- --HashVerify::HashVerify() { -- ASSERT(JSCONST_nStringHash == JS_CalcHash(kFXJSValueNameString)); -- ASSERT(JSCONST_nNumberHash == JS_CalcHash(kFXJSValueNameNumber)); -- ASSERT(JSCONST_nBoolHash == JS_CalcHash(kFXJSValueNameBoolean)); -- ASSERT(JSCONST_nDateHash == JS_CalcHash(kFXJSValueNameDate)); -- ASSERT(JSCONST_nObjectHash == JS_CalcHash(kFXJSValueNameObject)); -- ASSERT(JSCONST_nFXobjHash == JS_CalcHash(kFXJSValueNameFxobj)); -- ASSERT(JSCONST_nNullHash == JS_CalcHash(kFXJSValueNameNull)); -- ASSERT(JSCONST_nUndefHash == JS_CalcHash(kFXJSValueNameUndefined)); --} --#endif -- - BEGIN_JS_STATIC_CONST(CJS_Global) - END_JS_STATIC_CONST() - -@@ -335,9 +278,8 @@ - CFX_WideString ws = - FXJS_ToString(isolate, FXJS_GetArrayElement(isolate, pKeyList, i)); - CFX_ByteString sKey = ws.UTF8Encode(); -- - v8::Local v = FXJS_GetObjectElement(isolate, pObj, ws); -- switch (GET_VALUE_TYPE(v)) { -+ switch (CJS_Value::GetValueType(v)) { - case CJS_Value::VT_number: { - CJS_KeyValue* pObjElement = new CJS_KeyValue; - pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER; -@@ -353,8 +295,7 @@ - array.Add(pObjElement); - } break; - case CJS_Value::VT_string: { -- CFX_ByteString sValue = -- CJS_Value(pRuntime, v, CJS_Value::VT_string).ToCFXByteString(); -+ CFX_ByteString sValue = CJS_Value(pRuntime, v).ToCFXByteString(); - CJS_KeyValue* pObjElement = new CJS_KeyValue; - pObjElement->nType = JS_GLOBALDATA_TYPE_STRING; - pObjElement->sKey = sKey; -@@ -500,26 +441,3 @@ - m_mapGlobal[propname] = pNewData; - return TRUE; - } -- --CJS_Value::Type GET_VALUE_TYPE(v8::Local p) { -- const unsigned int nHash = JS_CalcHash(FXJS_GetTypeof(p)); -- -- if (nHash == JSCONST_nUndefHash) -- return CJS_Value::VT_undefined; -- if (nHash == JSCONST_nNullHash) -- return CJS_Value::VT_null; -- if (nHash == JSCONST_nStringHash) -- return CJS_Value::VT_string; -- if (nHash == JSCONST_nNumberHash) -- return CJS_Value::VT_number; -- if (nHash == JSCONST_nBoolHash) -- return CJS_Value::VT_boolean; -- if (nHash == JSCONST_nDateHash) -- return CJS_Value::VT_date; -- if (nHash == JSCONST_nObjectHash) -- return CJS_Value::VT_object; -- if (nHash == JSCONST_nFXobjHash) -- return CJS_Value::VT_fxobject; -- -- return CJS_Value::VT_unknown; --} -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h 2017-03-06 13:04:01.783297575 +0100 -@@ -111,7 +111,7 @@ - CJS_Object* pJSObj = (CJS_Object*)FXJS_GetPrivate(isolate, info.Holder()); - C* pObj = reinterpret_cast(pJSObj->GetEmbedObject()); - CFX_WideString sError; -- CJS_PropValue propValue(CJS_Value(pRuntime, value, CJS_Value::VT_unknown)); -+ CJS_PropValue propValue(CJS_Value(pRuntime, value)); - propValue.StartSetting(); - if (!(pObj->*M)(pContext, propValue, sError)) { - FXJS_Error(isolate, JSFormatErrorString(class_name_string, prop_name_string, -@@ -149,7 +149,7 @@ - IJS_Context* pContext = pRuntime->GetCurrentContext(); - std::vector parameters; - for (unsigned int i = 0; i < (unsigned int)info.Length(); i++) { -- parameters.push_back(CJS_Value(pRuntime, info[i], CJS_Value::VT_unknown)); -+ parameters.push_back(CJS_Value(pRuntime, info[i])); - } - CJS_Value valueRes(pRuntime); - CJS_Object* pJSObj = (CJS_Object*)FXJS_GetPrivate(isolate, info.Holder()); -@@ -404,7 +404,7 @@ - CFX_WideString propname = CFX_WideString::FromUTF8( - CFX_ByteStringC(*utf8_value, utf8_value.length())); - CFX_WideString sError; -- CJS_PropValue PropValue(CJS_Value(pRuntime, value, CJS_Value::VT_unknown)); -+ CJS_PropValue PropValue(CJS_Value(pRuntime, value)); - PropValue.StartSetting(); - if (!pObj->DoProperty(pContext, propname.c_str(), PropValue, sError)) { - FXJS_Error(isolate, JSFormatErrorString(class_name, "PutProperty", sError)); -@@ -447,7 +447,7 @@ - IJS_Context* pContext = pRuntime->GetCurrentContext(); - std::vector parameters; - for (unsigned int i = 0; i < (unsigned int)info.Length(); i++) { -- parameters.push_back(CJS_Value(pRuntime, info[i], CJS_Value::VT_unknown)); -+ parameters.push_back(CJS_Value(pRuntime, info[i])); - } - CJS_Value valueRes(pRuntime); - CFX_WideString sError; -@@ -485,6 +485,4 @@ - } \ - } - --CJS_Value::Type GET_VALUE_TYPE(v8::Local p); -- - #endif // FPDFSDK_JAVASCRIPT_JS_DEFINE_H_ -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp 2017-03-06 13:10:30.896809956 +0100 -@@ -22,11 +22,10 @@ - return *(double*)g_nan; - } - --CJS_Value::CJS_Value(CJS_Runtime* pRuntime) -- : m_eType(VT_unknown), m_pJSRuntime(pRuntime) {} -+CJS_Value::CJS_Value(CJS_Runtime* pRuntime) : m_pJSRuntime(pRuntime) {} - --CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local pValue, Type t) -- : m_eType(t), m_pValue(pValue), m_pJSRuntime(pRuntime) {} -+CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local pValue) -+ : m_pValue(pValue), m_pJSRuntime(pRuntime) {} - - CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const int& iValue) - : m_pJSRuntime(pRuntime) { -@@ -48,23 +47,11 @@ - operator=(dValue); - } - --CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local pJsObj) -- : m_pJSRuntime(pRuntime) { -- operator=(pJsObj); --} -- - CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pJsObj) - : m_pJSRuntime(pRuntime) { - operator=(pJsObj); - } - --CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Document* pJsDoc) -- : m_pJSRuntime(pRuntime) { -- m_eType = VT_object; -- if (pJsDoc) -- m_pValue = pJsDoc->ToV8Object(); --} -- - CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr) - : m_pJSRuntime(pRuntime) { - operator=(pWstr); -@@ -84,19 +71,17 @@ - - CJS_Value::CJS_Value(const CJS_Value& other) = default; - --void CJS_Value::Attach(v8::Local pValue, Type t) { -+void CJS_Value::Attach(v8::Local pValue) { - m_pValue = pValue; -- m_eType = t; - } - - void CJS_Value::Attach(CJS_Value* pValue) { - if (pValue) -- Attach(pValue->ToV8Value(), pValue->GetType()); -+ Attach(pValue->ToV8Value()); - } - - void CJS_Value::Detach() { - m_pValue = v8::Local(); -- m_eType = VT_unknown; - } - - int CJS_Value::ToInt() const { -@@ -146,7 +131,7 @@ - - void CJS_Value::MaybeCoerceToNumber() { - bool bAllowNaN = false; -- if (m_eType == VT_string) { -+ if (GetType() == VT_string) { - CFX_ByteString bstr = ToCFXByteString(); - if (bstr.GetLength() == 0) - return; -@@ -162,32 +147,26 @@ - if (std::isnan(num->Value()) && !bAllowNaN) - return; - m_pValue = num; -- m_eType = VT_number; - } - - void CJS_Value::operator=(int iValue) { - m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), iValue); -- m_eType = VT_number; - } - - void CJS_Value::operator=(bool bValue) { - m_pValue = FXJS_NewBoolean(m_pJSRuntime->GetIsolate(), bValue); -- m_eType = VT_boolean; - } - - void CJS_Value::operator=(double dValue) { - m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), dValue); -- m_eType = VT_number; - } - - void CJS_Value::operator=(float fValue) { - m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), fValue); -- m_eType = VT_number; - } - - void CJS_Value::operator=(v8::Local pObj) { - m_pValue = FXJS_NewObject(m_pJSRuntime->GetIsolate(), pObj); -- m_eType = VT_fxobject; - } - - void CJS_Value::operator=(CJS_Object* pObj) { -@@ -195,21 +174,12 @@ - operator=(pObj->ToV8Object()); - } - --void CJS_Value::operator=(CJS_Document* pJsDoc) { -- m_eType = VT_object; -- if (pJsDoc) { -- m_pValue = pJsDoc->ToV8Object(); -- } --} -- - void CJS_Value::operator=(const FX_WCHAR* pWstr) { - m_pValue = FXJS_NewString(m_pJSRuntime->GetIsolate(), (wchar_t*)pWstr); -- m_eType = VT_string; - } - - void CJS_Value::SetNull() { - m_pValue = FXJS_NewNull(); -- m_eType = VT_null; - } - - void CJS_Value::operator=(const FX_CHAR* pStr) { -@@ -219,36 +189,34 @@ - void CJS_Value::operator=(CJS_Array& array) { - m_pValue = - FXJS_NewObject2(m_pJSRuntime->GetIsolate(), (v8::Local)array); -- m_eType = VT_object; - } - - void CJS_Value::operator=(CJS_Date& date) { - m_pValue = FXJS_NewDate(m_pJSRuntime->GetIsolate(), (double)date); -- m_eType = VT_date; - } - - void CJS_Value::operator=(CJS_Value value) { - m_pValue = value.ToV8Value(); -- m_eType = value.m_eType; - m_pJSRuntime = value.m_pJSRuntime; - } - --CJS_Value::Type CJS_Value::GetType() const { -- if (m_pValue.IsEmpty()) -+// static -+CJS_Value::Type CJS_Value::GetValueType(v8::Local value) { -+ if (value.IsEmpty()) - return VT_unknown; -- if (m_pValue->IsString()) -+ if (value->IsString()) - return VT_string; -- if (m_pValue->IsNumber()) -+ if (value->IsNumber()) - return VT_number; -- if (m_pValue->IsBoolean()) -+ if (value->IsBoolean()) - return VT_boolean; -- if (m_pValue->IsDate()) -+ if (value->IsDate()) - return VT_date; -- if (m_pValue->IsObject()) -+ if (value->IsObject()) - return VT_object; -- if (m_pValue->IsNull()) -+ if (value->IsNull()) - return VT_null; -- if (m_pValue->IsUndefined()) -+ if (value->IsUndefined()) - return VT_undefined; - return VT_unknown; - } -@@ -427,7 +395,7 @@ - return; - v8::Local p = - FXJS_GetArrayElement(m_pJSRuntime->GetIsolate(), m_pArray, index); -- value.Attach(p, CJS_Value::VT_object); -+ value.Attach(p); - } - - void CJS_Array::SetElement(unsigned index, CJS_Value value) { -@@ -899,7 +867,7 @@ - v8::Local v8Value = - FXJS_GetObjectElement(pRuntime->GetIsolate(), pObj, property); - if (!v8Value->IsUndefined()) -- result[i] = CJS_Value(pRuntime, v8Value, CJS_Value::VT_unknown); -+ result[i] = CJS_Value(pRuntime, v8Value); - } - va_end(ap); - return result; -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h 2017-03-06 13:04:01.784297561 +0100 -@@ -27,20 +27,17 @@ - VT_boolean, - VT_date, - VT_object, -- VT_fxobject, - VT_null, - VT_undefined - }; - - CJS_Value(CJS_Runtime* pRuntime); -- CJS_Value(CJS_Runtime* pRuntime, v8::Local pValue, Type t); -+ CJS_Value(CJS_Runtime* pRuntime, v8::Local pValue); - CJS_Value(CJS_Runtime* pRuntime, const int& iValue); - CJS_Value(CJS_Runtime* pRuntime, const double& dValue); - CJS_Value(CJS_Runtime* pRuntime, const float& fValue); - CJS_Value(CJS_Runtime* pRuntime, const bool& bValue); -- CJS_Value(CJS_Runtime* pRuntime, v8::Local); -- CJS_Value(CJS_Runtime* pRuntime, CJS_Object*); -- CJS_Value(CJS_Runtime* pRuntime, CJS_Document*); -+ CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pObj); - CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr); - CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr); - CJS_Value(CJS_Runtime* pRuntime, CJS_Array& array); -@@ -49,11 +46,12 @@ - CJS_Value(const CJS_Value& other); - - void SetNull(); -- void Attach(v8::Local pValue, Type t); -+ void Attach(v8::Local pValue); - void Attach(CJS_Value* pValue); - void Detach(); - -- Type GetType() const; -+ static Type GetValueType(v8::Local value); -+ Type GetType() const { return GetValueType(m_pValue); } - int ToInt() const; - bool ToBool() const; - double ToDouble() const; -@@ -66,8 +64,7 @@ - v8::Local ToV8Value() const; - - // Replace the current |m_pValue| with a v8::Number if possible -- // to make one from the current |m_pValue|, updating |m_eType| -- // as appropriate to indicate the result. -+ // to make one from the current |m_pValue|. - void MaybeCoerceToNumber(); - - void operator=(int iValue); -@@ -75,7 +72,6 @@ - void operator=(double val); - void operator=(float val); - void operator=(CJS_Object* val); -- void operator=(CJS_Document* val); - void operator=(v8::Local val); - void operator=(CJS_Array& val); - void operator=(CJS_Date& val); -@@ -91,7 +87,6 @@ - CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime; } - - protected: -- Type m_eType; - v8::Local m_pValue; - CJS_Runtime* m_pJSRuntime; - }; -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp 2017-03-06 13:06:10.884476877 +0100 -@@ -10,15 +10,6 @@ - - #include "core/fxcrt/include/fx_basic.h" - --const wchar_t kFXJSValueNameString[] = L"string"; --const wchar_t kFXJSValueNameNumber[] = L"number"; --const wchar_t kFXJSValueNameBoolean[] = L"boolean"; --const wchar_t kFXJSValueNameDate[] = L"date"; --const wchar_t kFXJSValueNameObject[] = L"object"; --const wchar_t kFXJSValueNameFxobj[] = L"fxobj"; --const wchar_t kFXJSValueNameNull[] = L"null"; --const wchar_t kFXJSValueNameUndefined[] = L"undefined"; -- - // Keep this consistent with the values defined in gin/public/context_holder.h - // (without actually requiring a dependency on gin itself for the standalone - // embedders of PDFIum). The value we want to use is: -@@ -540,26 +531,6 @@ - .ToLocalChecked()); - } - --const wchar_t* FXJS_GetTypeof(v8::Local pObj) { -- if (pObj.IsEmpty()) -- return nullptr; -- if (pObj->IsString()) -- return kFXJSValueNameString; -- if (pObj->IsNumber()) -- return kFXJSValueNameNumber; -- if (pObj->IsBoolean()) -- return kFXJSValueNameBoolean; -- if (pObj->IsDate()) -- return kFXJSValueNameDate; -- if (pObj->IsObject()) -- return kFXJSValueNameObject; -- if (pObj->IsNull()) -- return kFXJSValueNameNull; -- if (pObj->IsUndefined()) -- return kFXJSValueNameUndefined; -- return nullptr; --} -- - void FXJS_SetPrivate(v8::Isolate* pIsolate, - v8::Local pObj, - void* p) { -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h 2017-03-06 13:06:40.283062272 +0100 -@@ -118,15 +118,6 @@ - FXJS_PerIsolateData(); - }; - --extern const wchar_t kFXJSValueNameString[]; --extern const wchar_t kFXJSValueNameNumber[]; --extern const wchar_t kFXJSValueNameBoolean[]; --extern const wchar_t kFXJSValueNameDate[]; --extern const wchar_t kFXJSValueNameObject[]; --extern const wchar_t kFXJSValueNameFxobj[]; --extern const wchar_t kFXJSValueNameNull[]; --extern const wchar_t kFXJSValueNameUndefined[]; -- - class FXJS_ArrayBufferAllocator : public v8::ArrayBuffer::Allocator { - void* Allocate(size_t length) override; - void* AllocateUninitialized(size_t length) override; -@@ -209,7 +200,6 @@ - bool bStatic = false); - v8::Local FXJS_GetThisObj(v8::Isolate* pIsolate); - int FXJS_GetObjDefnID(v8::Local pObj); --const wchar_t* FXJS_GetTypeof(v8::Local pObj); - - void FXJS_SetPrivate(v8::Isolate* pIsolate, - v8::Local pObj, diff --git a/qtwebengine-opensource-src-5.8.0-qt57.patch b/qtwebengine-opensource-src-5.8.0-qt57.patch deleted file mode 100644 index 480ae11..0000000 --- a/qtwebengine-opensource-src-5.8.0-qt57.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up qtwebengine-opensource-src-5.8.0/src/core/proxy_config_service_qt.cpp.qt58 qtwebengine-opensource-src-5.8.0/src/core/proxy_config_service_qt.cpp ---- qtwebengine-opensource-src-5.8.0/src/core/proxy_config_service_qt.cpp.qt58 2017-01-03 04:35:11.000000000 -0600 -+++ qtwebengine-opensource-src-5.8.0/src/core/proxy_config_service_qt.cpp 2017-03-24 14:43:55.120363292 -0500 -@@ -109,7 +109,7 @@ net::ProxyConfigService::ConfigAvailabil - } - m_qtApplicationProxy = qtProxy; - m_qtProxyConfig = net::ProxyConfig(); --#if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) -+#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) - if (qtProxy.type() == QNetworkProxy::NoProxy - && QNetworkProxyFactory::usesSystemConfiguration()) { - *config = systemConfig; diff --git a/qtwebengine-opensource-src-5.8.0-system-icu-utf.patch b/qtwebengine-opensource-src-5.8.0-system-icu-utf.patch deleted file mode 100644 index dff88b5..0000000 --- a/qtwebengine-opensource-src-5.8.0-system-icu-utf.patch +++ /dev/null @@ -1,362 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/base.gypi ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi 2017-03-05 16:48:14.206027229 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/base.gypi 2017-03-05 16:50:49.266714740 +0100 -@@ -674,8 +674,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/xdg_mime/xdgmime.h', - 'threading/non_thread_safe.h', -diff -ur qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/BUILD.gn ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2017-03-05 16:48:14.207027214 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/BUILD.gn 2017-03-05 16:50:49.267714725 +0100 -@@ -801,8 +801,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", - "threading/non_thread_safe.h", - "threading/non_thread_safe_impl.cc", -diff -ur qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/files/file_path.cc qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/files/file_path.cc ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/files/file_path.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/files/file_path.cc 2017-03-05 16:50:49.267714725 +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) -@@ -1150,9 +1150,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-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/json/json_parser.cc qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/json/json_parser.cc ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/json/json_parser.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/json/json_parser.cc 2017-03-05 16:50:49.268714710 +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 { -@@ -631,8 +631,8 @@ - int32_t next_char = 0; - - while (CanConsume(1)) { -- 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)) { - ReportError(JSONReader::JSON_UNSUPPORTED_ENCODING, 1); - return false; -@@ -725,7 +725,7 @@ - return false; - } - } else if (next_char == '"') { -- --index_; // Rewind by one because of CBU8_NEXT. -+ --index_; // Rewind by one because of U8_NEXT. - out->Swap(&string); - return true; - } else { -@@ -765,10 +765,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 -@@ -785,24 +785,24 @@ - - 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)) - return false; - -- CBU8_APPEND_UNSAFE(code_unit8, offset, code_unit16_high); -+ U8_APPEND_UNSAFE(code_unit8, offset, code_unit16_high); - } - - dest_string->append(code_unit8); -@@ -819,9 +819,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(std::string(utf8_units, offset)); - } -diff -ur qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/json/string_escape.cc qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/json/string_escape.cc ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/json/string_escape.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/json/string_escape.cc 2017-03-05 16:50:49.268714710 +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 { - -diff -ur qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/pattern.cc qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/strings/pattern.cc ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/pattern.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/strings/pattern.cc 2017-03-05 16:50:49.404712681 +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-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_split.cc qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_split.cc ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_split.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_split.cc 2017-03-05 16:50:49.404712681 +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-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_util.cc qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_util.cc ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/string_util.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/strings/string_util.cc 2017-03-05 16:50:49.404712681 +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 { -@@ -357,19 +357,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; -@@ -522,7 +522,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-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/base/strings/utf_string_conversion_utils.cc 2017-03-05 16:50:49.404712681 +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-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc ---- qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-icu-utf/src/3rdparty/chromium/ui/gfx/utf16_indexing.cc 2017-03-05 16:50:49.405712666 +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) { diff --git a/qtwebengine-opensource-src-5.8.0-system-nspr-prtime.patch b/qtwebengine-opensource-src-5.8.0-system-nspr-prtime.patch deleted file mode 100644 index 4f17325..0000000 --- a/qtwebengine-opensource-src-5.8.0-system-nspr-prtime.patch +++ /dev/null @@ -1,48 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/base.gypi qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/base.gypi 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi 2017-03-05 16:48:14.206027229 +0100 -@@ -676,8 +676,6 @@ - 'third_party/dmg_fp/g_fmt.cc', - 'third_party/icu/icu_utf.cc', - 'third_party/icu/icu_utf.h', -- 'third_party/nspr/prtime.cc', -- 'third_party/nspr/prtime.h', - 'third_party/superfasthash/superfasthash.c', - 'third_party/xdg_mime/xdgmime.h', - 'threading/non_thread_safe.h', -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/BUILD.gn 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2017-03-05 16:48:14.207027214 +0100 -@@ -803,8 +803,6 @@ - "third_party/dmg_fp/g_fmt.cc", - "third_party/icu/icu_utf.cc", - "third_party/icu/icu_utf.h", -- "third_party/nspr/prtime.cc", -- "third_party/nspr/prtime.h", - "third_party/superfasthash/superfasthash.c", - "threading/non_thread_safe.h", - "threading/non_thread_safe_impl.cc", -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2017-03-05 16:48:14.208027199 +0100 -@@ -7,7 +7,7 @@ - - #include "base/compiler_specific.h" - #include "base/macros.h" --#include "base/third_party/nspr/prtime.h" -+#include - #include "base/time/time.h" - #include "build/build_config.h" - #include "testing/gtest/include/gtest/gtest.h" -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/time/time.cc qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/time/time.cc 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc 2017-03-05 16:48:14.298025856 +0100 -@@ -14,7 +14,7 @@ - #include "base/logging.h" - #include "base/macros.h" - #include "base/strings/stringprintf.h" --#include "base/third_party/nspr/prtime.h" -+#include - #include "build/build_config.h" - - namespace base { diff --git a/qtwebengine-opensource-src-5.8.0-v8-gcc7.patch b/qtwebengine-opensource-src-5.8.0-v8-gcc7.patch deleted file mode 100644 index 8a87503..0000000 --- a/qtwebengine-opensource-src-5.8.0-v8-gcc7.patch +++ /dev/null @@ -1,71 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects-body-descriptors.h qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects-body-descriptors.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects-body-descriptors.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects-body-descriptors.h 2017-03-06 02:05:57.848394582 +0100 -@@ -99,7 +99,7 @@ - - template - static inline void IterateBody(HeapObject* obj, int object_size) { -- IterateBody(obj); -+ IterateBody(obj); - } - }; - -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects.h qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects.h 2017-03-06 02:05:57.990392454 +0100 -@@ -3193,22 +3193,10 @@ - public: - typedef Shape ShapeT; - -- // Wrapper methods -- inline uint32_t Hash(Key key) { -- if (Shape::UsesSeed) { -- return Shape::SeededHash(key, GetHeap()->HashSeed()); -- } else { -- return Shape::Hash(key); -- } -- } -- -- inline uint32_t HashForObject(Key key, Object* object) { -- if (Shape::UsesSeed) { -- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -- } else { -- return Shape::HashForObject(key, object); -- } -- } -+ // Wrapper methods. Defined in src/objects-inl.h -+ // to break a cycle with src/heap/heap.h. -+ inline uint32_t Hash(Key key); -+ inline uint32_t HashForObject(Key key, Object* object); - - // Returns a new HashTable object. - MUST_USE_RESULT static Handle New( -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects-inl.h qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects-inl.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects-inl.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects-inl.h 2017-03-06 02:05:57.992392424 +0100 -@@ -38,6 +38,25 @@ - namespace v8 { - namespace internal { - -+template -+uint32_t HashTable::Hash(Key key) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHash(key, GetHeap()->HashSeed()); -+ } else { -+ return Shape::Hash(key); -+ } -+} -+ -+template -+uint32_t HashTable::HashForObject(Key key, -+ Object* object) { -+ if (Shape::UsesSeed) { -+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object); -+ } else { -+ return Shape::HashForObject(key, object); -+ } -+} -+ - PropertyDetails::PropertyDetails(Smi* smi) { - value_ = smi->value(); - } diff --git a/qtwebengine-opensource-src-5.8.0-webrtc-neon-detect.patch b/qtwebengine-opensource-src-5.8.0-webrtc-neon-detect.patch deleted file mode 100644 index 8e26dbe..0000000 --- a/qtwebengine-opensource-src-5.8.0-webrtc-neon-detect.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn qtwebengine-opensource-src-5.8.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2017-03-05 17:08:43.547748044 +0100 -@@ -108,9 +108,7 @@ - if (is_linux) { - defines += [ "WEBRTC_THREAD_RR" ] - -- if (!build_with_chromium) { -- deps += [ ":cpu_features_linux" ] -- } -+ deps += [ ":cpu_features_linux" ] - - libs += [ "rt" ] - } -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp qtwebengine-opensource-src-5.8.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp 2017-03-05 17:07:01.869254856 +0100 -@@ -112,12 +112,8 @@ - 'defines': [ - 'WEBRTC_THREAD_RR', - ], -- 'conditions': [ -- ['build_with_chromium==0', { -- 'dependencies': [ -- 'cpu_features_webrtc.gyp:cpu_features_linux', -- ], -- }], -+ 'dependencies': [ -+ 'cpu_features_webrtc.gyp:cpu_features_linux', - ], - 'link_settings': { - 'libraries': [ '-lrt', ], diff --git a/qtwebengine-opensource-src-5.8.0-wtf-gcc7.patch b/qtwebengine-opensource-src-5.8.0-wtf-gcc7.patch deleted file mode 100644 index f679530..0000000 --- a/qtwebengine-opensource-src-5.8.0-wtf-gcc7.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h qtwebengine-opensource-src-5.8.0-wtf-gcc7/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h ---- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h 2017-01-03 10:28:53.000000000 +0100 -+++ qtwebengine-opensource-src-5.8.0-wtf-gcc7/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h 2017-03-07 03:00:44.783316233 +0100 -@@ -542,6 +542,8 @@ - return *this; - } - -+inline void swapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b); -+ - template - inline void LinkedHashSet::swap(LinkedHashSet& other) - { diff --git a/sources b/sources index 805aa50..fb92ca3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (qtwebengine-opensource-src-5.8.0-clean.tar.xz) = 18a49156da8d2e21fb0fe4781646c753c82d616964dd14b0651a1097b2a79a5ddb852dbdcc838d1e9e9a4ec460dd77fbab78a03672f5e827ab061fdf97db4a25 +SHA512 (qtwebengine-opensource-src-5.9.0-clean.tar.xz) = b80070b267bffb29a17f8fbf9da8c9f9fe6d59c12bccb3710370b1c830f0f162199341266da6c24563e75f17f6f9d850fd762f58ab1fafc2535f432d6180c98c