From 331664feda6899ec5f803cd4e25ffff54c6d243e Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 15 Oct 2025 19:19:32 +0000 Subject: [PATCH] import UBI webkit2gtk3-2.50.1-0.el9_6 --- .gitignore | 2 +- .webkit2gtk3.metadata | 2 +- SOURCES/glib-2-68.patch | 97 ++++++--------- SOURCES/icu-67.patch | 179 +++++++++++++--------------- SOURCES/webkitgtk-2.48.5.tar.xz.asc | 16 --- SOURCES/webkitgtk-2.50.1.tar.xz.asc | 16 +++ SPECS/webkit2gtk3.spec | 19 +-- 7 files changed, 149 insertions(+), 182 deletions(-) delete mode 100644 SOURCES/webkitgtk-2.48.5.tar.xz.asc create mode 100644 SOURCES/webkitgtk-2.50.1.tar.xz.asc diff --git a/.gitignore b/.gitignore index b5abd4b..910dc3b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -SOURCES/webkitgtk-2.48.5.tar.xz +SOURCES/webkitgtk-2.50.1.tar.xz SOURCES/webkitgtk-keys.gpg diff --git a/.webkit2gtk3.metadata b/.webkit2gtk3.metadata index b2c76d0..51529c2 100644 --- a/.webkit2gtk3.metadata +++ b/.webkit2gtk3.metadata @@ -1,2 +1,2 @@ -5c8b55b9081c75e12d44583d4296fd7a84abc7b1 SOURCES/webkitgtk-2.48.5.tar.xz +b599be86497f57fc5b2eb8b5d60ff181fc651752 SOURCES/webkitgtk-2.50.1.tar.xz 04b10b8a486542c4551269c20b18b5c1c6cb4f94 SOURCES/webkitgtk-keys.gpg diff --git a/SOURCES/glib-2-68.patch b/SOURCES/glib-2-68.patch index 51d6320..70e7390 100644 --- a/SOURCES/glib-2-68.patch +++ b/SOURCES/glib-2-68.patch @@ -1,29 +1,27 @@ -From 05efb0544d81e8d4bd1a9ee7d7224b2ec35812ee Mon Sep 17 00:00:00 2001 +From d7b007e4c066c098216ebe900902994c99ab9f9a Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 8 Aug 2025 10:55:54 -0500 Subject: [PATCH] Revert "[GLib] Remove all GLIB_CHECK_VERSION conditionals" This reverts commit 85b637b69f1c3a6242420b198d1c173477ce0f22. --- - Source/WTF/wtf/URL.h | 4 ++-- - Source/WTF/wtf/glib/GRefPtr.cpp | 2 ++ - Source/WTF/wtf/glib/GRefPtr.h | 3 +++ - Source/WTF/wtf/glib/SocketConnection.cpp | 13 +++++++++++++ - Source/WTF/wtf/glib/URLGLib.cpp | 2 ++ - Source/WebCore/platform/LowPowerModeNotifier.h | 2 ++ - .../platform/glib/LowPowerModeNotifierGLib.cpp | 8 ++++++++ - .../platform/network/soup/CertificateInfoSoup.cpp | 8 ++++++++ - Source/WebKit/NetworkProcess/glib/DNSCache.cpp | 12 ++++++++++++ - Source/WebKit/NetworkProcess/glib/DNSCache.h | 2 ++ - .../NetworkProcess/glib/WebKitCachedResolver.cpp | 6 ++++++ - .../glib/WebKitOverridingResolver.cpp | 4 ++++ - Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp | 6 ++++++ - Source/cmake/OptionsGTK.cmake | 13 ++++++++++++- - Source/cmake/OptionsWPE.cmake | 13 ++++++++++++- - 15 files changed, 94 insertions(+), 4 deletions(-) + Source/WTF/wtf/URL.h | 4 ++-- + Source/WTF/wtf/glib/GRefPtr.h | 2 ++ + Source/WTF/wtf/glib/SocketConnection.cpp | 13 +++++++++++++ + Source/WTF/wtf/glib/URLGLib.cpp | 2 ++ + Source/WebCore/platform/LowPowerModeNotifier.h | 2 ++ + .../platform/glib/LowPowerModeNotifierGLib.cpp | 8 ++++++++ + .../platform/network/soup/CertificateInfoSoup.cpp | 8 ++++++++ + Source/WebKit/NetworkProcess/glib/DNSCache.cpp | 12 ++++++++++++ + Source/WebKit/NetworkProcess/glib/DNSCache.h | 2 ++ + .../NetworkProcess/glib/WebKitCachedResolver.cpp | 6 ++++++ + .../glib/WebKitOverridingResolver.cpp | 4 ++++ + Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp | 6 ++++++ + Source/cmake/OptionsGTK.cmake | 14 ++++++++++++-- + 13 files changed, 79 insertions(+), 4 deletions(-) diff --git a/Source/WTF/wtf/URL.h b/Source/WTF/wtf/URL.h -index 8a7864508a8e..f065677c68ad 100644 +index daa9f726eb0c..a24c68e1934b 100644 --- a/Source/WTF/wtf/URL.h +++ b/Source/WTF/wtf/URL.h @@ -27,7 +27,7 @@ @@ -35,8 +33,8 @@ index 8a7864508a8e..f065677c68ad 100644 #include #endif -@@ -237,7 +237,7 @@ public: - WTF_EXPORT_PRIVATE operator NSURL *() const; +@@ -240,7 +240,7 @@ public: + WTF_EXPORT_PRIVATE static NSURL *emptyNSURL(); #endif -#if USE(GLIB) @@ -44,44 +42,22 @@ index 8a7864508a8e..f065677c68ad 100644 WTF_EXPORT_PRIVATE URL(GUri*); WTF_EXPORT_PRIVATE GRefPtr createGUri() const; #endif -diff --git a/Source/WTF/wtf/glib/GRefPtr.cpp b/Source/WTF/wtf/glib/GRefPtr.cpp -index 4c15aa9866c0..6faa98b7eab2 100644 ---- a/Source/WTF/wtf/glib/GRefPtr.cpp -+++ b/Source/WTF/wtf/glib/GRefPtr.cpp -@@ -207,6 +207,7 @@ template <> void derefGPtr(GDBusNodeInfo* ptr) - g_dbus_node_info_unref(ptr); - } - -+#if HAVE(GURI) - template <> GUri* refGPtr(GUri* ptr) - { - if (ptr) -@@ -219,6 +220,7 @@ template <> void derefGPtr(GUri* ptr) - if (ptr) - g_uri_unref(ptr); - } -+#endif - - template <> - GArray* refGPtr(GArray* ptr) diff --git a/Source/WTF/wtf/glib/GRefPtr.h b/Source/WTF/wtf/glib/GRefPtr.h -index 87a9ef9760bf..d6c71c14a981 100644 +index e4cf3bd45104..9729d6709376 100644 --- a/Source/WTF/wtf/glib/GRefPtr.h +++ b/Source/WTF/wtf/glib/GRefPtr.h -@@ -264,8 +264,11 @@ template <> WTF_EXPORT_PRIVATE GArray* refGPtr(GArray*); - template <> WTF_EXPORT_PRIVATE void derefGPtr(GArray*); - template <> WTF_EXPORT_PRIVATE GResource* refGPtr(GResource*); - template <> WTF_EXPORT_PRIVATE void derefGPtr(GResource*); -+ +@@ -328,7 +328,9 @@ WTF_DEFINE_GREF_TRAITS_INLINE(GMainLoop, g_main_loop_ref, g_main_loop_unref) + WTF_DEFINE_GREF_TRAITS_INLINE(GMappedFile, g_mapped_file_ref, g_mapped_file_unref) + WTF_DEFINE_GREF_TRAITS_INLINE(GPtrArray, g_ptr_array_ref, g_ptr_array_unref) + WTF_DEFINE_GREF_TRAITS_INLINE(GSource, g_source_ref, g_source_unref) +#if HAVE(GURI) - template <> WTF_EXPORT_PRIVATE GUri* refGPtr(GUri*); - template <> WTF_EXPORT_PRIVATE void derefGPtr(GUri*); + WTF_DEFINE_GREF_TRAITS_INLINE(GUri, g_uri_ref, g_uri_unref) +#endif + WTF_DEFINE_GREF_TRAITS_INLINE(GVariantBuilder, g_variant_builder_ref, g_variant_builder_unref) + WTF_DEFINE_GREF_TRAITS_INLINE(GVariant, g_variant_ref_sink, g_variant_unref, g_variant_is_floating) - template inline T* refGPtr(T* ptr) - { diff --git a/Source/WTF/wtf/glib/SocketConnection.cpp b/Source/WTF/wtf/glib/SocketConnection.cpp -index d1185aeb2d47..80a622b83eba 100644 +index 9b8d58d1b916..73423a23211a 100644 --- a/Source/WTF/wtf/glib/SocketConnection.cpp +++ b/Source/WTF/wtf/glib/SocketConnection.cpp @@ -145,7 +145,20 @@ bool SocketConnection::readMessage() @@ -221,7 +197,7 @@ index f32ecca7a300..e81a5433709d 100644 } // namespace WebCore diff --git a/Source/WebKit/NetworkProcess/glib/DNSCache.cpp b/Source/WebKit/NetworkProcess/glib/DNSCache.cpp -index db92010baabf..b717b734e8e8 100644 +index a560e73f58a3..78007d891af1 100644 --- a/Source/WebKit/NetworkProcess/glib/DNSCache.cpp +++ b/Source/WebKit/NetworkProcess/glib/DNSCache.cpp @@ -50,9 +50,17 @@ DNSCache::DNSCacheMap& DNSCache::mapForType(Type type) @@ -353,7 +329,7 @@ index 150d74ed0296..f461e3c695fe 100644 resolverClass->lookup_by_address_async = webkitOverridingResolverLookupByAddressAsync; resolverClass->lookup_by_address_finish = webkitOverridingResolverLookupByAddressFinish; diff --git a/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp b/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp -index 1bf17f0f9b67..ef9f5c2e45f0 100644 +index a9ee8507c28a..eae6ab798c8f 100644 --- a/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp +++ b/Source/WebKit/Shared/glib/ArgumentCodersGLib.cpp @@ -121,11 +121,13 @@ void ArgumentCoder>::encode(Encoder& encoder, const GRe @@ -377,10 +353,10 @@ index 1bf17f0f9b67..ef9f5c2e45f0 100644 +#if GLIB_CHECK_VERSION(2, 69, 0) std::optional> privateKey; decoder >> privateKey; - if (UNLIKELY(!privateKey)) + if (!privateKey) [[unlikely]] @@ -147,6 +150,7 @@ std::optional> ArgumentCoder>: decoder >> privateKeyPKCS11Uri; - if (UNLIKELY(!privateKeyPKCS11Uri)) + if (!privateKeyPKCS11Uri) [[unlikely]] return std::nullopt; +#endif @@ -398,18 +374,19 @@ index 1bf17f0f9b67..ef9f5c2e45f0 100644 issuer = certificate.get(); i++; diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 9c8241ec34fd..62af15d02e3a 100644 +index 5222f5ea81ab..da3d1e19a602 100644 --- a/Source/cmake/OptionsGTK.cmake +++ b/Source/cmake/OptionsGTK.cmake -@@ -7,7 +7,6 @@ SET_PROJECT_VERSION(2 48 5) +@@ -7,8 +7,6 @@ SET_PROJECT_VERSION(2 50 0) set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string") +-# Update Source/WTF/wtf/Platform.h to match required GLib versions. -find_package(GLIB 2.70.0 REQUIRED COMPONENTS gio gio-unix gobject gthread gmodule) find_package(Cairo 1.16.0 REQUIRED) find_package(LibGcrypt 1.7.0 REQUIRED) find_package(Libtasn1 REQUIRED) -@@ -205,6 +204,13 @@ else () +@@ -207,6 +205,13 @@ else () SET_AND_EXPOSE_TO_BUILD(ENABLE_2022_GLIB_API OFF) endif () @@ -423,7 +400,7 @@ index 9c8241ec34fd..62af15d02e3a 100644 EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_INFIX) EXPOSE_STRING_VARIABLE_TO_BUILD(WEBKITGTK_API_VERSION) -@@ -277,6 +283,11 @@ if (ENABLED_COMPILER_SANITIZERS) +@@ -277,6 +282,11 @@ if (ENABLED_COMPILER_SANITIZERS) set(ENABLE_DOCUMENTATION OFF) endif () @@ -436,5 +413,5 @@ index 9c8241ec34fd..62af15d02e3a 100644 find_package(Manette 0.2.4) if (NOT Manette_FOUND) -- -2.50.1 +2.51.0 diff --git a/SOURCES/icu-67.patch b/SOURCES/icu-67.patch index 1294a3c..91ab4d3 100644 --- a/SOURCES/icu-67.patch +++ b/SOURCES/icu-67.patch @@ -1,20 +1,15 @@ -From ebc0c4a088acbc523bda3b935b8c59a6568ae318 Mon Sep 17 00:00:00 2001 +From a70af9258c7608afd5d05a475e65dd9c2b8a34dc Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 27 Mar 2025 15:56:41 -0500 Subject: [PATCH 1/4] Revert "[CMake] Update minimum ICU version to 70.1" This reverts commit 95d71be25d5b838b1171e6b9b2cd526190118fba. --- - Source/cmake/OptionsGTK.cmake | 6 +++--- - Source/cmake/OptionsJSCOnly.cmake | 2 +- - Source/cmake/OptionsMac.cmake | 2 +- - Source/cmake/OptionsPlayStation.cmake | 2 +- - Source/cmake/OptionsWPE.cmake | 6 +++--- - Source/cmake/OptionsWin.cmake | 2 +- - 6 files changed, 10 insertions(+), 10 deletions(-) + Source/cmake/OptionsGTK.cmake | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index 677ab4e49155..57dd75e4d9a8 100644 +index da3d1e19a602..7dc96b5bd53b 100644 --- a/Source/cmake/OptionsGTK.cmake +++ b/Source/cmake/OptionsGTK.cmake @@ -10,11 +10,11 @@ set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string") @@ -33,10 +28,10 @@ index 677ab4e49155..57dd75e4d9a8 100644 find_package(SQLite3 REQUIRED) find_package(Threads REQUIRED) -- -2.49.0 +2.51.0 -From e2a9042fb85253f297f136424460526ebf441d4d Mon Sep 17 00:00:00 2001 +From 27948d5683ad0cfa88b6858455f0c8c719d6b9e9 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 28 Mar 2025 14:45:03 -0500 Subject: [PATCH 2/4] Revert "[JSC] Remove unnecessary ICU version checks" @@ -49,7 +44,7 @@ This reverts commit af62f09a1fad0b72293a7f0d082704d92116cb9a. 3 files changed, 47 insertions(+), 24 deletions(-) diff --git a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp -index 61264bfe23d9..a1c628082dd5 100644 +index 9bf431425007..17c5b1b848d7 100644 --- a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp +++ b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp @@ -457,7 +457,7 @@ static Vector collectElements(JSGlobalObject* globalObject, const IntlD @@ -62,10 +57,10 @@ index 61264bfe23d9..a1c628082dd5 100644 skeletonBuilder.append("00"_s); else diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp -index 67708f1d8d33..0938d2d5b4a5 100644 +index b05c7813294c..c16e6bcee859 100644 --- a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp +++ b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp -@@ -517,10 +517,14 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa +@@ -496,10 +496,14 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa skeletonBuilder.append(" sign-except-zero"_s); break; case SignDisplay::Negative: @@ -85,10 +80,10 @@ index 67708f1d8d33..0938d2d5b4a5 100644 } diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h b/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h -index ddccce2fd112..980da4e3c74a 100644 +index c640b73cc891..e678978e453d 100644 --- a/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h +++ b/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h -@@ -199,12 +199,24 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil +@@ -200,12 +200,24 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil case RoundingMode::Trunc: skeletonBuilder.append(" rounding-mode-down"_s); break; @@ -117,7 +112,7 @@ index ddccce2fd112..980da4e3c74a 100644 case RoundingMode::HalfExpand: skeletonBuilder.append(" rounding-mode-half-up"_s); break; -@@ -217,7 +229,7 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil +@@ -218,7 +230,7 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil } // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#integer-width @@ -126,7 +121,7 @@ index ddccce2fd112..980da4e3c74a 100644 for (unsigned i = 0; i < intlInstance->m_minimumIntegerDigits; ++i) skeletonBuilder.append('0'); -@@ -255,19 +267,23 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil +@@ -256,19 +268,23 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil } case IntlRoundingType::MorePrecision: case IntlRoundingType::LessPrecision: @@ -163,7 +158,7 @@ index ddccce2fd112..980da4e3c74a 100644 break; } } -@@ -278,7 +294,10 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil +@@ -279,7 +295,10 @@ void appendNumberFormatDigitOptionsToSkeleton(IntlType* intlInstance, StringBuil case IntlTrailingZeroDisplay::Auto: break; case IntlTrailingZeroDisplay::StripIfInteger: @@ -176,21 +171,21 @@ index ddccce2fd112..980da4e3c74a 100644 } } -- -2.49.0 +2.51.0 -From 459dffe47b82147919f9ea8e8d4f374389e11ccd Mon Sep 17 00:00:00 2001 +From b6447cd0b4ff59c8d2095ad0d6079e4d19dcf052 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 28 Mar 2025 15:01:00 -0500 Subject: [PATCH 3/4] Revert "[JSC] TimeZone Cache should be per-process level" This reverts commit c779aa30eced87609c7c808d672a8f23c5c4821d. --- - Source/JavaScriptCore/runtime/JSDateMath.cpp | 59 +++++++------------- - 1 file changed, 20 insertions(+), 39 deletions(-) + Source/JavaScriptCore/runtime/JSDateMath.cpp | 61 +++++++------------- + 1 file changed, 21 insertions(+), 40 deletions(-) diff --git a/Source/JavaScriptCore/runtime/JSDateMath.cpp b/Source/JavaScriptCore/runtime/JSDateMath.cpp -index c6a194568dab..756cbccb1668 100644 +index 96993af52d33..a269eb1d3736 100644 --- a/Source/JavaScriptCore/runtime/JSDateMath.cpp +++ b/Source/JavaScriptCore/runtime/JSDateMath.cpp @@ -453,12 +453,9 @@ String DateCache::timeZoneDisplayName(bool isDST) @@ -210,10 +205,10 @@ index c6a194568dab..756cbccb1668 100644 #endif } --static std::tuple> retrieveTimeZoneInformation() +-static std::tuple> retrieveTimeZoneInformation() -{ - Locker locker { timeZoneCacheLock }; -- static NeverDestroyed, uint64_t>> globalCache; +- static NeverDestroyed, uint64_t>> globalCache; - - bool isCacheStale = true; - uint64_t currentID = 0; @@ -222,7 +217,7 @@ index c6a194568dab..756cbccb1668 100644 - isCacheStale = std::get<2>(globalCache.get()) != currentID; -#endif - if (isCacheStale) { -- Vector timeZoneID; +- Vector timeZoneID; - getTimeZoneOverride(timeZoneID); - String canonical; - UErrorCode status = U_ZERO_ERROR; @@ -231,8 +226,8 @@ index c6a194568dab..756cbccb1668 100644 - ASSERT_UNUSED(status, U_SUCCESS(status)); - } - if (U_SUCCESS(status)) { -- Vector canonicalBuffer; -- auto status = callBufferProducingFunction(ucal_getCanonicalTimeZoneID, timeZoneID.data(), timeZoneID.size(), canonicalBuffer, nullptr); +- Vector canonicalBuffer; +- auto status = callBufferProducingFunction(ucal_getCanonicalTimeZoneID, timeZoneID.mutableSpan().data(), timeZoneID.size(), canonicalBuffer, nullptr); - if (U_SUCCESS(status)) - canonical = String(canonicalBuffer); - } @@ -247,7 +242,7 @@ index c6a194568dab..756cbccb1668 100644 DateCache::~DateCache() = default; Ref DateCache::cachedDateInstanceData(double millisecondsFromEpoch) -@@ -519,10 +482,28 @@ Ref DateCache::cachedDateInstanceData(double millisecondsFromE +@@ -519,11 +482,29 @@ Ref DateCache::cachedDateInstanceData(double millisecondsFromE void DateCache::timeZoneCacheSlow() { ASSERT(!m_timeZoneCache); @@ -260,6 +255,7 @@ index c6a194568dab..756cbccb1668 100644 + + String canonical; UErrorCode status = U_ZERO_ERROR; +- cache->m_calendar = std::unique_ptr>(ucal_open(timeZoneID.span().data(), timeZoneID.size(), "", UCAL_DEFAULT, &status)); + if (timeZoneID.isEmpty()) { + status = callBufferProducingFunction(ucal_getHostTimeZone, timeZoneID); + ASSERT_UNUSED(status, U_SUCCESS(status)); @@ -275,16 +271,17 @@ index c6a194568dab..756cbccb1668 100644 + cache->m_canonicalTimeZoneID = WTFMove(canonical); + + status = U_ZERO_ERROR; - cache->m_calendar = std::unique_ptr>(ucal_open(timeZoneID.data(), timeZoneID.size(), "", UCAL_DEFAULT, &status)); ++ cache->m_calendar = std::unique_ptr>(ucal_open(timeZoneID.data(), timeZoneID.size(), "", UCAL_DEFAULT, &status)); ASSERT_UNUSED(status, U_SUCCESS(status)); ucal_setGregorianChange(cache->m_calendar.get(), minECMAScriptTime, &status); // Ignore "unsupported" error. + m_timeZoneCache = std::unique_ptr(cache); -- -2.49.0 +2.51.0 -From af2f8c534482ad7e540ee5da473baff97f05d355 Mon Sep 17 00:00:00 2001 +From dda58836d1af2918a32d80d2ef44e8a13d70edb2 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro -Date: Fri, 28 Mar 2025 15:01:11 -0500 +Date: Fri, 19 Sep 2025 16:25:13 -0500 Subject: [PATCH 4/4] Revert "[JSC] Rebaseline Intl implementation based on lowest dependency ICU 70" @@ -309,7 +306,7 @@ This reverts commit 31a358087be7e5e70c7a03bdfcf89de35628a2a2. 16 files changed, 478 insertions(+), 16 deletions(-) diff --git a/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp b/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp -index e3e7671fcf45..2f2371649667 100644 +index 202e266c55da..9a413dc037a7 100644 --- a/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp +++ b/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp @@ -42,12 +42,16 @@ @@ -329,7 +326,7 @@ index e3e7671fcf45..2f2371649667 100644 WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN -@@ -1446,6 +1450,8 @@ UDateIntervalFormat* IntlDateTimeFormat::createDateIntervalFormatIfNecessary(JSG +@@ -1430,6 +1434,8 @@ UDateIntervalFormat* IntlDateTimeFormat::createDateIntervalFormatIfNecessary(JSG return m_dateIntervalFormat.get(); } @@ -338,7 +335,7 @@ index e3e7671fcf45..2f2371649667 100644 static std::unique_ptr> formattedValueFromDateRange(UDateIntervalFormat& dateIntervalFormat, UDateFormat& dateFormat, double startDate, double endDate, UErrorCode& status) { auto result = std::unique_ptr>(udtitvfmt_openResult(&status)); -@@ -1524,6 +1530,8 @@ static bool dateFieldsPracticallyEqual(const UFormattedValue* formattedValue, UE +@@ -1508,6 +1514,8 @@ static bool dateFieldsPracticallyEqual(const UFormattedValue* formattedValue, UE return !hasSpan; } @@ -347,7 +344,7 @@ index e3e7671fcf45..2f2371649667 100644 JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double startDate, double endDate) { ASSERT(m_dateFormat); -@@ -1542,6 +1550,7 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta +@@ -1526,6 +1534,7 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta auto* dateIntervalFormat = createDateIntervalFormatIfNecessary(globalObject); RETURN_IF_EXCEPTION(scope, { }); @@ -355,7 +352,7 @@ index e3e7671fcf45..2f2371649667 100644 UErrorCode status = U_ZERO_ERROR; auto result = formattedValueFromDateRange(*dateIntervalFormat, *m_dateFormat, startDate, endDate, status); if (U_FAILURE(status)) { -@@ -1579,6 +1588,17 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta +@@ -1563,6 +1572,17 @@ JSValue IntlDateTimeFormat::formatRange(JSGlobalObject* globalObject, double sta replaceNarrowNoBreakSpaceOrThinSpaceWithNormalSpace(buffer); return jsString(vm, String(WTFMove(buffer))); @@ -373,7 +370,7 @@ index e3e7671fcf45..2f2371649667 100644 } JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, double startDate, double endDate) -@@ -1588,6 +1608,7 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou +@@ -1572,6 +1592,7 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou VM& vm = globalObject->vm(); auto scope = DECLARE_THROW_SCOPE(vm); @@ -381,7 +378,7 @@ index e3e7671fcf45..2f2371649667 100644 // http://tc39.es/proposal-intl-DateTimeFormat-formatRange/#sec-partitiondatetimerangepattern startDate = timeClip(startDate); endDate = timeClip(endDate); -@@ -1791,6 +1812,12 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou +@@ -1775,6 +1796,12 @@ JSValue IntlDateTimeFormat::formatRangeToParts(JSGlobalObject* globalObject, dou } return parts; @@ -395,7 +392,7 @@ index e3e7671fcf45..2f2371649667 100644 diff --git a/Source/JavaScriptCore/runtime/IntlDateTimeFormat.h b/Source/JavaScriptCore/runtime/IntlDateTimeFormat.h -index 121417aab9e1..14c476c72f69 100644 +index 782b30b0d2b1..cc81be712327 100644 --- a/Source/JavaScriptCore/runtime/IntlDateTimeFormat.h +++ b/Source/JavaScriptCore/runtime/IntlDateTimeFormat.h @@ -32,6 +32,12 @@ @@ -412,7 +409,7 @@ index 121417aab9e1..14c476c72f69 100644 enum class RelevantExtensionKey : uint8_t; diff --git a/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp b/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp -index b7ef4bab865f..694ab7afea0c 100644 +index 7a739f61e2c1..da457ad03212 100644 --- a/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp +++ b/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp @@ -56,7 +56,6 @@ const ClassInfo IntlDateTimeFormatPrototype::s_info = { "Intl.DateTimeFormat"_s, @@ -437,7 +434,7 @@ index b7ef4bab865f..694ab7afea0c 100644 } diff --git a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp -index a1c628082dd5..78e9106ee0a4 100644 +index 17c5b1b848d7..c066e80ab130 100644 --- a/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp +++ b/Source/JavaScriptCore/runtime/IntlDurationFormat.cpp @@ -36,14 +36,21 @@ @@ -547,7 +544,7 @@ index 69e64f9c8332..b3f781a54ad4 100644 String m_numberingSystem; CString m_dataLocaleWithExtensions; diff --git a/Source/JavaScriptCore/runtime/IntlListFormat.cpp b/Source/JavaScriptCore/runtime/IntlListFormat.cpp -index 8fb342027af5..c25cc5f9e90f 100644 +index 8bc64220a7c7..c24073ce3171 100644 --- a/Source/JavaScriptCore/runtime/IntlListFormat.cpp +++ b/Source/JavaScriptCore/runtime/IntlListFormat.cpp @@ -33,12 +33,19 @@ @@ -656,7 +653,7 @@ index 2d071949e06f..af6f2c2e7b0a 100644 namespace JSC { diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp -index 0938d2d5b4a5..1f0aa041c201 100644 +index c16e6bcee859..1fc664fab1e5 100644 --- a/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp +++ b/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp @@ -43,8 +43,12 @@ @@ -731,7 +728,7 @@ index 0938d2d5b4a5..1f0aa041c201 100644 // Constructing ICU Number Skeletons to configure UNumberFormatter. // https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md -@@ -557,11 +570,120 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa +@@ -536,11 +549,120 @@ void IntlNumberFormat::initializeNumberFormat(JSGlobalObject* globalObject, JSVa return; } @@ -852,15 +849,15 @@ index 0938d2d5b4a5..1f0aa041c201 100644 } // https://tc39.es/ecma402/#sec-formatnumber -@@ -573,6 +695,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con +@@ -552,6 +674,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con value = purifyNaN(value); - Vector buffer; + Vector buffer; +#if HAVE(ICU_U_NUMBER_FORMATTER) ASSERT(m_numberFormatter); UErrorCode status = U_ZERO_ERROR; auto formattedNumber = std::unique_ptr>(unumf_openResult(&status)); -@@ -584,6 +707,12 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con +@@ -563,6 +686,12 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, double value) con status = callBufferProducingFunction(unumf_resultToString, formattedNumber.get(), buffer); if (U_FAILURE(status)) return throwTypeError(globalObject, scope, "Failed to format a number."_s); @@ -873,15 +870,15 @@ index 0938d2d5b4a5..1f0aa041c201 100644 return jsString(vm, String(WTFMove(buffer))); } -@@ -597,6 +726,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV +@@ -576,6 +705,7 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV const auto& string = value.getString(); - Vector buffer; + Vector buffer; +#if HAVE(ICU_U_NUMBER_FORMATTER) ASSERT(m_numberFormatter); UErrorCode status = U_ZERO_ERROR; auto formattedNumber = std::unique_ptr>(unumf_openResult(&status)); -@@ -608,9 +738,16 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV +@@ -587,9 +717,16 @@ JSValue IntlNumberFormat::format(JSGlobalObject* globalObject, IntlMathematicalV status = callBufferProducingFunction(unumf_resultToString, formattedNumber.get(), buffer); if (U_FAILURE(status)) return throwTypeError(globalObject, scope, "Failed to format a BigInt."_s); @@ -898,7 +895,7 @@ index 0938d2d5b4a5..1f0aa041c201 100644 JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, double start, double end) const { VM& vm = globalObject->vm(); -@@ -678,6 +815,7 @@ JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, IntlMathemat +@@ -657,6 +794,7 @@ JSValue IntlNumberFormat::formatRange(JSGlobalObject* globalObject, IntlMathemat return jsString(vm, String({ string, static_cast(length) })); } @@ -906,7 +903,7 @@ index 0938d2d5b4a5..1f0aa041c201 100644 static constexpr int32_t literalField = -1; struct IntlNumberFormatField { -@@ -790,6 +928,7 @@ static Vector flattenFields(Vector +@@ -769,6 +907,7 @@ static Vector flattenFields(Vector return flatten; } @@ -914,7 +911,7 @@ index 0938d2d5b4a5..1f0aa041c201 100644 static bool numberFieldsPracticallyEqual(const UFormattedValue* formattedValue, UErrorCode& status) { auto iterator = std::unique_ptr>(ucfpos_open(&status)); -@@ -1031,6 +1170,7 @@ JSValue IntlNumberFormat::formatRangeToParts(JSGlobalObject* globalObject, IntlM +@@ -1010,6 +1149,7 @@ JSValue IntlNumberFormat::formatRangeToParts(JSGlobalObject* globalObject, IntlM return parts; } @@ -922,15 +919,15 @@ index 0938d2d5b4a5..1f0aa041c201 100644 ASCIILiteral IntlNumberFormat::styleString(Style style) { -@@ -1328,6 +1468,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val +@@ -1307,6 +1447,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val return throwTypeError(globalObject, scope, "failed to open field position iterator"_s); - Vector result; + Vector result; +#if HAVE(ICU_U_NUMBER_FORMATTER) ASSERT(m_numberFormatter); auto formattedNumber = std::unique_ptr>(unumf_openResult(&status)); if (U_FAILURE(status)) -@@ -1342,6 +1483,13 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val +@@ -1321,6 +1462,13 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val if (U_FAILURE(status)) return throwTypeError(globalObject, scope, "Failed to format a number."_s); IntlFieldIterator iterator(*fieldItr.get()); @@ -944,7 +941,7 @@ index 0938d2d5b4a5..1f0aa041c201 100644 auto resultString = String(WTFMove(result)); -@@ -1355,6 +1503,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val +@@ -1334,6 +1482,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, double val return parts; } @@ -952,7 +949,7 @@ index 0938d2d5b4a5..1f0aa041c201 100644 JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathematicalValue&& value, JSString* sourceType) const { VM& vm = globalObject->vm(); -@@ -1399,6 +1548,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathem +@@ -1378,6 +1527,7 @@ JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathem return parts; } @@ -961,7 +958,7 @@ index 0938d2d5b4a5..1f0aa041c201 100644 IntlMathematicalValue IntlMathematicalValue::parseString(JSGlobalObject* globalObject, StringView view) { diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormat.h b/Source/JavaScriptCore/runtime/IntlNumberFormat.h -index 1bd75559a1d6..4928e5cc4d02 100644 +index 65a6795b013f..29d197e462fb 100644 --- a/Source/JavaScriptCore/runtime/IntlNumberFormat.h +++ b/Source/JavaScriptCore/runtime/IntlNumberFormat.h @@ -34,6 +34,25 @@ @@ -990,9 +987,9 @@ index 1bd75559a1d6..4928e5cc4d02 100644 struct UFormattedValue; struct UNumberFormatter; struct UNumberRangeFormatter; -@@ -51,13 +70,17 @@ enum class IntlNotation : uint8_t { Standard, Scientific, Engineering, Compact } - template void setNumberFormatDigitOptions(JSGlobalObject*, IntlType*, JSObject*, unsigned minimumFractionDigitsDefault, unsigned maximumFractionDigitsDefault, IntlNotation); +@@ -52,13 +71,17 @@ template void setNumberFormatDigitOptions(JSGlobalObject*, In template void appendNumberFormatDigitOptionsToSkeleton(IntlType*, StringBuilder&); + template void appendNumberFormatNotationOptionsToSkeleton(IntlType*, StringBuilder&); +#if HAVE(ICU_U_NUMBER_FORMATTER) struct UNumberFormatterDeleter { @@ -1008,7 +1005,7 @@ index 1bd75559a1d6..4928e5cc4d02 100644 class IntlMathematicalValue { WTF_MAKE_TZONE_ALLOCATED(IntlMathematicalValue); -@@ -159,14 +182,20 @@ public: +@@ -162,14 +185,20 @@ public: JSValue format(JSGlobalObject*, double) const; JSValue format(JSGlobalObject*, IntlMathematicalValue&&) const; JSValue formatToParts(JSGlobalObject*, double, JSString* sourceType = nullptr) const; @@ -1029,7 +1026,7 @@ index 1bd75559a1d6..4928e5cc4d02 100644 JSBoundFunction* boundFormat() const { return m_boundFormat.get(); } void setBoundFormat(VM&, JSBoundFunction*); -@@ -212,8 +241,14 @@ private: +@@ -216,8 +245,14 @@ private: static JSValue useGroupingValue(VM&, UseGrouping); WriteBarrier m_boundFormat; @@ -1045,7 +1042,7 @@ index 1bd75559a1d6..4928e5cc4d02 100644 String m_locale; String m_numberingSystem; diff --git a/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp b/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp -index 6459273641c6..026b4269652e 100644 +index d951aa27c715..4e3615ba7242 100644 --- a/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp +++ b/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp @@ -35,12 +35,18 @@ @@ -1114,7 +1111,7 @@ index 6459273641c6..026b4269652e 100644 JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatToParts, (JSGlobalObject* globalObject, CallFrame* callFrame)) { @@ -177,6 +189,7 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatToParts, (JSGlobalOb - if (UNLIKELY(!numberFormat)) + if (!numberFormat) [[unlikely]] return JSValue::encode(throwTypeError(globalObject, scope, "Intl.NumberFormat.prototype.formatToParts called on value that's not a NumberFormat"_s)); +#if HAVE(ICU_U_NUMBER_FORMATTER) @@ -1146,7 +1143,7 @@ index 6459273641c6..026b4269652e 100644 JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncResolvedOptions, (JSGlobalObject* globalObject, CallFrame* callFrame)) { diff --git a/Source/JavaScriptCore/runtime/IntlObject.cpp b/Source/JavaScriptCore/runtime/IntlObject.cpp -index dab995d4c294..51dbe4447db3 100644 +index 8ef1ee678063..f8413f12dec7 100644 --- a/Source/JavaScriptCore/runtime/IntlObject.cpp +++ b/Source/JavaScriptCore/runtime/IntlObject.cpp @@ -169,8 +169,6 @@ namespace JSC { @@ -1173,7 +1170,7 @@ index dab995d4c294..51dbe4447db3 100644 Structure* IntlObject::createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) diff --git a/Source/JavaScriptCore/runtime/IntlPluralRules.cpp b/Source/JavaScriptCore/runtime/IntlPluralRules.cpp -index 584c6ff2c435..af58373c78e8 100644 +index b3e58fc6453f..c451478086f7 100644 --- a/Source/JavaScriptCore/runtime/IntlPluralRules.cpp +++ b/Source/JavaScriptCore/runtime/IntlPluralRules.cpp @@ -36,8 +36,12 @@ @@ -1189,7 +1186,7 @@ index 584c6ff2c435..af58373c78e8 100644 #define U_HIDE_DRAFT_API 1 namespace JSC { -@@ -118,6 +122,7 @@ void IntlPluralRules::initializePluralRules(JSGlobalObject* globalObject, JSValu +@@ -121,6 +125,7 @@ void IntlPluralRules::initializePluralRules(JSGlobalObject* globalObject, JSValu auto locale = m_locale.utf8(); UErrorCode status = U_ZERO_ERROR; @@ -1197,7 +1194,7 @@ index 584c6ff2c435..af58373c78e8 100644 StringBuilder skeletonBuilder; appendNumberFormatDigitOptionsToSkeleton(this, skeletonBuilder); -@@ -132,11 +137,36 @@ void IntlPluralRules::initializePluralRules(JSGlobalObject* globalObject, JSValu +@@ -135,11 +140,36 @@ void IntlPluralRules::initializePluralRules(JSGlobalObject* globalObject, JSValu return; } @@ -1234,7 +1231,7 @@ index 584c6ff2c435..af58373c78e8 100644 m_pluralRules = std::unique_ptr(uplrules_openForType(locale.data(), m_type == Type::Ordinal ? UPLURAL_TYPE_ORDINAL : UPLURAL_TYPE_CARDINAL, &status)); if (U_FAILURE(status)) { -@@ -230,6 +260,7 @@ JSValue IntlPluralRules::select(JSGlobalObject* globalObject, double value) cons +@@ -234,6 +264,7 @@ JSValue IntlPluralRules::select(JSGlobalObject* globalObject, double value) cons UErrorCode status = U_ZERO_ERROR; @@ -1242,7 +1239,7 @@ index 584c6ff2c435..af58373c78e8 100644 auto formattedNumber = std::unique_ptr>(unumf_openResult(&status)); if (U_FAILURE(status)) return throwTypeError(globalObject, scope, "failed to select plural value"_s); -@@ -241,8 +272,17 @@ JSValue IntlPluralRules::select(JSGlobalObject* globalObject, double value) cons +@@ -245,8 +276,17 @@ JSValue IntlPluralRules::select(JSGlobalObject* globalObject, double value) cons if (U_FAILURE(status)) return throwTypeError(globalObject, scope, "failed to select plural value"_s); return jsString(vm, String(WTFMove(buffer))); @@ -1260,7 +1257,7 @@ index 584c6ff2c435..af58373c78e8 100644 JSValue IntlPluralRules::selectRange(JSGlobalObject* globalObject, double start, double end) const { ASSERT(m_numberRangeFormatter); -@@ -268,5 +308,6 @@ JSValue IntlPluralRules::selectRange(JSGlobalObject* globalObject, double start, +@@ -272,5 +312,6 @@ JSValue IntlPluralRules::selectRange(JSGlobalObject* globalObject, double start, return throwTypeError(globalObject, scope, "failed to select plural value"_s); return jsString(vm, String(WTFMove(buffer))); } @@ -1268,10 +1265,10 @@ index 584c6ff2c435..af58373c78e8 100644 } // namespace JSC diff --git a/Source/JavaScriptCore/runtime/IntlPluralRules.h b/Source/JavaScriptCore/runtime/IntlPluralRules.h -index 26b7d72b16aa..7f476e03ca03 100644 +index 0f95f5e5eab5..848def6a50d4 100644 --- a/Source/JavaScriptCore/runtime/IntlPluralRules.h +++ b/Source/JavaScriptCore/runtime/IntlPluralRules.h -@@ -69,9 +69,12 @@ public: +@@ -73,9 +73,12 @@ public: void initializePluralRules(JSGlobalObject*, JSValue locales, JSValue options); JSValue select(JSGlobalObject*, double value) const; @@ -1285,7 +1282,7 @@ index 26b7d72b16aa..7f476e03ca03 100644 private: IntlPluralRules(VM&, Structure*); DECLARE_DEFAULT_FINISH_CREATION; -@@ -82,8 +85,15 @@ private: +@@ -85,8 +88,15 @@ private: enum class Type : bool { Cardinal, Ordinal }; std::unique_ptr m_pluralRules; @@ -1302,7 +1299,7 @@ index 26b7d72b16aa..7f476e03ca03 100644 String m_locale; unsigned m_minimumIntegerDigits { 1 }; diff --git a/Source/JavaScriptCore/runtime/IntlPluralRulesPrototype.cpp b/Source/JavaScriptCore/runtime/IntlPluralRulesPrototype.cpp -index aae2cabe2aa7..6c908d3a7d53 100644 +index 48688c0dedbb..9854d9a7d363 100644 --- a/Source/JavaScriptCore/runtime/IntlPluralRulesPrototype.cpp +++ b/Source/JavaScriptCore/runtime/IntlPluralRulesPrototype.cpp @@ -33,7 +33,9 @@ @@ -1382,7 +1379,7 @@ index c6c1fa0cd228..85d7e85469a7 100644 } // namespace JSC diff --git a/Source/JavaScriptCore/runtime/JSDateMath.cpp b/Source/JavaScriptCore/runtime/JSDateMath.cpp -index 756cbccb1668..087bff354328 100644 +index a269eb1d3736..a58abd12197a 100644 --- a/Source/JavaScriptCore/runtime/JSDateMath.cpp +++ b/Source/JavaScriptCore/runtime/JSDateMath.cpp @@ -81,11 +81,24 @@ @@ -1426,11 +1423,11 @@ index 756cbccb1668..087bff354328 100644 +#else +static icu::TimeZone* toICUTimeZone(OpaqueICUTimeZone* timeZone) +{ -+ return std::bit_cast(timeZone); ++ return (icu::TimeZone*)timeZone; +} +static OpaqueICUTimeZone* toOpaqueICUTimeZone(icu::TimeZone* timeZone) +{ -+ return std::bit_cast(timeZone); ++ return (OpaqueICUTimeZone*)timeZone; +} +#endif + @@ -1461,7 +1458,7 @@ index 756cbccb1668..087bff354328 100644 } +#else + auto& timeZoneCache = *toICUTimeZone(this->timeZoneCache()); -+ if (inputTimeType != WTF::LocalTime) { ++ if (inputTimeType != TimeType::LocalTime) { + constexpr bool isLocalTime = false; + timeZoneCache.getOffset(millisecondsFromEpoch, isLocalTime, rawOffset, dstOffset, status); + if (U_FAILURE(status)) @@ -1546,7 +1543,7 @@ index 756cbccb1668..087bff354328 100644 m_timeZoneCache = std::unique_ptr(cache); +#else + if (!timeZoneID.isEmpty()) { -+ m_timeZoneCache = std::unique_ptr(toOpaqueICUTimeZone(icu::TimeZone::createTimeZone(icu::UnicodeString(timeZoneID.data(), timeZoneID.size())))); ++ m_timeZoneCache = std::unique_ptr(toOpaqueICUTimeZone(icu::TimeZone::createTimeZone(icu::UnicodeString(timeZoneID.span().data(), timeZoneID.size())))); + return; + } + // Do not use icu::TimeZone::createDefault. ICU internally has a cache for timezone and createDefault returns this cached value. @@ -1556,17 +1553,5 @@ index 756cbccb1668..087bff354328 100644 void DateCache::resetIfNecessarySlow() -- -2.49.0 +2.51.0 -diff --git a/Source/JavaScriptCore/runtime/JSDateMath.cpp b/Source/JavaScriptCore/runtime/JSDateMath.cpp -index 087bff354328..997cfae0f8e6 100644 ---- a/Source/JavaScriptCore/runtime/JSDateMath.cpp -+++ b/Source/JavaScriptCore/runtime/JSDateMath.cpp -@@ -74,6 +74,7 @@ - - #include "ExceptionHelpers.h" - #include "VM.h" -+#include - #include - #include - #include diff --git a/SOURCES/webkitgtk-2.48.5.tar.xz.asc b/SOURCES/webkitgtk-2.48.5.tar.xz.asc deleted file mode 100644 index f7337db..0000000 --- a/SOURCES/webkitgtk-2.48.5.tar.xz.asc +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCgAdFiEEAToBJ6ycZbNP+mJSbBAJtpOXU5MFAmiMe7UACgkQbBAJtpOX -U5MrwA//TJ0W7S9Nbs2p4OIs6lQv+ntLrTVZAKFu+AUYJ/r3sUp9awGGivS37ZC8 -gh33JDqzt9pm1sVXGNTB8NmEcRUu9QfsEsJUUEnk7n6dLmQr8Cb7aXK8b4ma8Mgo -zLpuU5rHPtZ5Cx7Y3wXw0mNBf2ZcvHrFfVhDrrgziIMUu9dcuOVI3inEvfh8CKcO -a+j+j1qNvxLGgPOfkXZH/cvGckCLxJuQ+/aX0k/3Top6mSHJTeMxtU7K2bSkgQmC -GoSoRqOFLPBp2UxAKWYcgr8kh7wjt5mov3NtNyMmCC6bjwtwX3ClLjgQfHekS5Iu -niPm9Q/FoF1JSbiXrpPf8KZVTUg9D1lzQFvJYHl9w5gWGE6wgjxX7TM1ooYvW0Gr -v9FBDIXGlXid+hBx8j0igRQW/V6sH5uSt690m5ElZj4KkJ6+uhLkIMcSGc6HYWhI -vtCNytTGd9wsAB97bYvcJv/qEW94hnGSdE0HvarAcdZbO52oljOAtqzaYi7Hw111 -expNG3FU98UTWX0LHsv1c5/z9ph7x5EFyipkBML5J9LT8KV/+IrXPBkXQ45yaf3D -s+KpRlkxFGj9uFhRgl4OLR4UrSfgEkrAPnVud2zrIik+A4mHgX9y8FKmktFioJhU -faiEXzPzrHgMeEtlJW8vvWVoO9ZgIsYKma9sOn8aU/f7yjFak4I= -=KRFp ------END PGP SIGNATURE----- diff --git a/SOURCES/webkitgtk-2.50.1.tar.xz.asc b/SOURCES/webkitgtk-2.50.1.tar.xz.asc new file mode 100644 index 0000000..4f3cbbe --- /dev/null +++ b/SOURCES/webkitgtk-2.50.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEAToBJ6ycZbNP+mJSbBAJtpOXU5MFAmjomvIACgkQbBAJtpOX +U5MKLA//dJPkd8EGP2qxUJMBDYjiewIcZFq8hEUWnScsgmVcUQQIeogEugswNGhU +iPe5VVcnl0xQlPa007DjR6IQjrWi6gwnXMN4stSBRG83UnRZucU7LePbQFXQVwzX +vkXBUmFf5B5KksSuAe2ZNMGN+fH33fanicnTEnH0M6di7LVN6pTs29ne+4n0Pixm +s6exN4ufp6+9vPHw45z9QQOLCJg/rXx+3jxljpUM+BUMGurQINVPHdI4x2Kh8ki+ +bj5+4YZKu9vKamixB6xtTYHc11k3Y3+DcUUg79rP83ImbCEKCS7/NLgZGfXhDflH +Ehdna57kbHkiIsu2+0M620eH14yHeAdCYAMukeF6+0MYC4cp5LzIKlM+HBypSKjt +7X/aSq7SqhiHpTvbuImVfsyDjo1uqzDBCuZ0w2nbBgROFDZTNL0K/mwvvJYlXhWE +gAdetGBCqOVSI67wxxCK9mnY26jKgGgv/7UWbX0wwTvmaj2yHzWe2WhrPbxSbeHI +HFWkLG5PyL9zrV1bMyHDs6h9lbWIfKMDKrUVw5u7WtgKJaQcJVbHXXxy3TTPcr9q +AB/wXg1o7OVFhuvMUFrjvdiQcmoxoHH40wPKtv1/eT5mTiQA28RoTEWmsTkPirjf +jPr8Y1RsbqObFzz36OscH/qT/KavXdwIUWX4WeA+gXe0z776NS8= +=syt3 +-----END PGP SIGNATURE----- diff --git a/SPECS/webkit2gtk3.spec b/SPECS/webkit2gtk3.spec index 0a3a5d2..de0748c 100644 --- a/SPECS/webkit2gtk3.spec +++ b/SPECS/webkit2gtk3.spec @@ -10,9 +10,8 @@ %global with_gamepad 1 %endif -# FIXME: Clang is preferred: https://skia.org/docs/user/build/#supported-and-preferred-compilers -# But Clang toolchain is broken on i686: https://issues.redhat.com/browse/RHEL-59586 -# So, for now we'll use GCC instead. +# Clang is preferred: https://skia.org/docs/user/build/#supported-and-preferred-compilers +%global toolchain clang # We run out of memory if building with LTO enabled on i686. %ifarch %{ix86} @@ -20,8 +19,8 @@ %endif Name: webkit2gtk3 -Version: 2.48.5 -Release: 1%{?dist} +Version: 2.50.1 +Release: 0%{?dist} Summary: GTK Web content engine library License: LGPLv2 @@ -47,14 +46,14 @@ Patch: evolution-sandbox-warning.patch ## ## Upstream patches to remove, hopefully after next update ## - + # No patches currently! :) BuildRequires: bison BuildRequires: bubblewrap +BuildRequires: clang BuildRequires: cmake BuildRequires: flex -BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: git BuildRequires: gnupg2 @@ -326,6 +325,12 @@ export NINJA_STATUS="[%f/%t][%e] " %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir %changelog +* Tue Oct 14 2025 Michael Catanzaro - 2.50.1-1 +- Update to 2.50.1 + +* Wed Oct 01 2025 Michael Catanzaro - 2.50.0-1 +- Update to 2.50.0 + * Fri Aug 08 2025 Michael Catanzaro - 2.48.5-1 - Update to 2.48.5