diff options
author | Evangelos Foutras | 2022-12-08 01:21:42 +0000 |
---|---|---|
committer | Evangelos Foutras | 2022-12-08 01:21:42 +0000 |
commit | a90c5ad1c9c0b947d86223d6f9fb30f6cf897c19 (patch) | |
tree | 54aa1c73538cbdd5f24a3223e5fc8ee84e96d7d3 | |
parent | 282fc828039433e0d1d41e1f749851cc2118fddd (diff) | |
download | aur-a90c5ad1c9c0b947d86223d6f9fb30f6cf897c19.tar.gz |
fix date parsing w/ ICU 72 (FS#76773)
-rw-r--r-- | PKGBUILD | 8 | ||||
-rw-r--r-- | chromium-icu72.patch | 114 | ||||
-rw-r--r-- | v8-enhance-Date-parser-to-take-Unicode-SPACE.patch | 58 |
3 files changed, 179 insertions, 1 deletions
@@ -5,7 +5,7 @@ pkgname=chromium pkgver=108.0.5359.98 -pkgrel=1 +pkgrel=2 _launcher_ver=8 _gcc_patchset=2 pkgdesc="A web browser built for speed, simplicity, and security" @@ -26,6 +26,8 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz re-fix-TFLite-build-error-on-linux-with-system-zlib.patch + chromium-icu72.patch + v8-enhance-Date-parser-to-take-Unicode-SPACE.patch REVERT-roll-src-third_party-ffmpeg-m102.patch REVERT-roll-src-third_party-ffmpeg-m106.patch disable-GlobalMediaControlsCastStartStop.patch @@ -35,6 +37,8 @@ sha256sums=('60b6137971e3cb2947477f654491ed4f517ab88ea2807fa3b89fcce34b83561e' '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' '40ef8af65e78901bb8554eddbbb5ebc55c0b8e7927f6ca51b2a353d1c7c50652' '9015b9d6d5b4c1e7248d6477a4b4b6bd6a3ebdc57225d2d8efcd79fc61790716' + 'dabb5ab204b63be73d3c5c8b7c1fa74053105a285852ba3bbc4fb77646608572' + 'b83406a881d66627757d9cbc05e345cbb2bd395a48b6d4c970e5e1cb3f6ed454' '30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44' '4c12d31d020799d31355faa7d1fe2a5a807f7458e7f0c374adf55edb37032152' '7f3b1b22d6a271431c1f9fc92b6eb49c6d80b8b3f868bdee07a6a1a16630a302' @@ -102,6 +106,8 @@ prepare() { # Upstream fixes patch -Np1 -i ../re-fix-TFLite-build-error-on-linux-with-system-zlib.patch + patch -Np1 -i ../chromium-icu72.patch + patch -Np1 -d v8 <../v8-enhance-Date-parser-to-take-Unicode-SPACE.patch # Revert ffmpeg roll requiring new channel layout API support # https://crbug.com/1325301 diff --git a/chromium-icu72.patch b/chromium-icu72.patch new file mode 100644 index 000000000000..b8ebcd3b7d59 --- /dev/null +++ b/chromium-icu72.patch @@ -0,0 +1,114 @@ +From 2c4d3c61aa33f3169e7923ea3433c71e3df0952f Mon Sep 17 00:00:00 2001 +From: Frank Tang <ftang@chromium.org> +Date: Mon, 7 Nov 2022 22:08:05 +0000 +Subject: [PATCH 1/2] Prepare for ICU72 landing + +The date format may output U+202F Narrow SPACE between time +and AM/PM. So switch to use UTF8 and not restrict to ASCII which +will break when the output is not only ASCII. + +Bug: 1371208 +Change-Id: I05f9daadfba5c45d618f15ae23340da373f2f36a +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4007076 +Reviewed-by: Daniel Rubery <drubery@chromium.org> +Commit-Queue: Frank Tang <ftang@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1068343} + +(cherry picked from commit ce2ffed84b95e2b7c068d6f066d86cd034212425) +--- + .../safe_browsing/content/browser/web_ui/safe_browsing_ui.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc b/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc +index 92597a9d3a4..e6e7514a082 100644 +--- a/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc ++++ b/components/safe_browsing/content/browser/web_ui/safe_browsing_ui.cc +@@ -457,7 +457,7 @@ namespace { + std::string UserReadableTimeFromMillisSinceEpoch(int64_t time_in_milliseconds) { + base::Time time = + base::Time::UnixEpoch() + base::Milliseconds(time_in_milliseconds); +- return base::UTF16ToASCII(base::TimeFormatShortDateAndTime(time)); ++ return base::UTF16ToUTF8(base::TimeFormatShortDateAndTime(time)); + } + + void AddStoreInfo(const DatabaseManagerInfo::DatabaseInfo::StoreInfo store_info, + +From 8ba9d96da703978655cddf07d58b0a15f0a43a10 Mon Sep 17 00:00:00 2001 +From: Frank Tang <ftang@chromium.org> +Date: Tue, 8 Nov 2022 00:13:16 +0000 +Subject: [PATCH 2/2] Prepare the landing of ICU72/Unicode 15 + +See +https://www.unicode.org/emoji/charts-15.0/emoji-released.html +https://www.unicode.org/charts/PDF/U1F680.pdf +https://www.unicode.org/charts/PDF/U1FA70.pdf +for the newly added emoji to +Transport and Map Symbols +Symbols and Pictographs Extended-A blocks. + +Update the kIsCJKIdeographOrSymbolRanges to Unicode 15 +Needed to avoid test breakage of +CharacterTest.HammerEmojiVsCJKIdeographOrSymbol + +Bug: 1371208 +Change-Id: Ic7b319ba18f3aded46b252d8b484e3b1bc43eff4 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4007098 +Reviewed-by: Stephen Chenney <schenney@chromium.org> +Commit-Queue: Frank Tang <ftang@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1068422} + +(cherry picked from commit d93a774bf6fac8ddaaa1041ea6ad2dd8e5ff4539) +--- + .../platform/text/character_property_data.h | 24 +++++++++---------- + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/third_party/blink/renderer/platform/text/character_property_data.h b/third_party/blink/renderer/platform/text/character_property_data.h +index 9005c20a379..ee690563c28 100644 +--- a/third_party/blink/renderer/platform/text/character_property_data.h ++++ b/third_party/blink/renderer/platform/text/character_property_data.h +@@ -107,7 +107,7 @@ static const UChar32 kIsCJKIdeographOrSymbolRanges[] = { + 0x1F3FB, 0x1F3FF, + + // Transport +- 0x1F6DD, 0x1F6DF, ++ 0x1F6DC, 0x1F6DF, + + // Colored circles and squares for use with emoji. + 0x1F7E0, 0x1F7EB, +@@ -118,25 +118,25 @@ static const UChar32 kIsCJKIdeographOrSymbolRanges[] = { + 0x1F900, 0x1F90F, + // ZIPPER-MOUTH FACE...SIGN OF THE HORNS + 0x1F910, 0x1F918, 0x1F919, 0x1F97F, 0x1F980, 0x1F9BF, 0x1F9C0, 0x1F9FF, +- // Clothing +- 0x1FA70, 0x1FA74, +- // Medical symbols +- 0x1FA78, 0x1FA7C, ++ // Clothing, heart and Medical symbols ++ 0x1FA70, 0x1FA7C, + // Toys and sport symbols +- 0x1FA80, 0x1FA86, ++ 0x1FA80, 0x1FA88, + // Miscellaneous objects +- 0x1FA90, 0x1FAAC, + // Animals and nature +- 0x1FAB0, 0x1FABA, ++ 0x1FA90, 0x1FABD, ++ // Animal + // Body parts + // People +- 0x1FAC0, 0x1FAC5, ++ 0x1FABF, 0x1FAC5, ++ // animal-mammal ++ 0x1FACE, 0x1FACF, + // Food and drink +- 0x1FAD0, 0x1FAD9, ++ 0x1FAD0, 0x1FADB, + // Face +- 0x1FAE0, 0x1FAE7, ++ 0x1FAE0, 0x1FAE8, + // Hand +- 0x1FAF0, 0x1FAF6, ++ 0x1FAF0, 0x1FAF8, + }; + + // https://html.spec.whatwg.org/C/#prod-potentialcustomelementname diff --git a/v8-enhance-Date-parser-to-take-Unicode-SPACE.patch b/v8-enhance-Date-parser-to-take-Unicode-SPACE.patch new file mode 100644 index 000000000000..7458834083df --- /dev/null +++ b/v8-enhance-Date-parser-to-take-Unicode-SPACE.patch @@ -0,0 +1,58 @@ +From 81dd64c3705f89653859a5d0001dd0ca983a92e2 Mon Sep 17 00:00:00 2001 +From: Frank Tang <ftang@chromium.org> +Date: Wed, 16 Nov 2022 09:18:45 -0800 +Subject: [PATCH] [intl] Enhance Date parser to take Unicode SPACE + +This is needed to prepare for the landing of ICU72. +Allow U+202F in the Date String, which the toLocaleString("en-US") +will generate w/ ICU72. + +Bug: v8:13494 +Change-Id: I41b83c4094ce3d0737a72dcd6310b52c68fdcdca +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4027341 +Reviewed-by: Yang Guo <yangguo@chromium.org> +Reviewed-by: Jungshik Shin <jshin@chromium.org> +Commit-Queue: Frank Tang <ftang@chromium.org> +Cr-Commit-Position: refs/heads/main@{#84308} + +(cherry picked from commit 2ada52cffbff11074abfaac18938bf02d85454f5) +--- + src/date/dateparser-inl.h | 2 +- + src/date/dateparser.h | 4 +++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/date/dateparser-inl.h b/src/date/dateparser-inl.h +index 623986d2b1..b45479dc51 100644 +--- a/src/date/dateparser-inl.h ++++ b/src/date/dateparser-inl.h +@@ -192,7 +192,7 @@ DateParser::DateToken DateParser::DateStringTokenizer<CharType>::Scan() { + if (in_->Skip('+')) return DateToken::Symbol('+'); + if (in_->Skip('.')) return DateToken::Symbol('.'); + if (in_->Skip(')')) return DateToken::Symbol(')'); +- if (in_->IsAsciiAlphaOrAbove()) { ++ if (in_->IsAsciiAlphaOrAbove() && !in_->IsWhiteSpaceChar()) { + DCHECK_EQ(KeywordTable::kPrefixLength, 3); + uint32_t buffer[3] = {0, 0, 0}; + int length = in_->ReadWord(buffer, 3); +diff --git a/src/date/dateparser.h b/src/date/dateparser.h +index 1a0a0b15ab..59b2f3c9fd 100644 +--- a/src/date/dateparser.h ++++ b/src/date/dateparser.h +@@ -91,7 +91,8 @@ class DateParser : public AllStatic { + // Return word length. + int ReadWord(uint32_t* prefix, int prefix_size) { + int len; +- for (len = 0; IsAsciiAlphaOrAbove(); Next(), len++) { ++ for (len = 0; IsAsciiAlphaOrAbove() && !IsWhiteSpaceChar(); ++ Next(), len++) { + if (len < prefix_size) prefix[len] = AsciiAlphaToLower(ch_); + } + for (int i = len; i < prefix_size; i++) prefix[i] = 0; +@@ -115,6 +116,7 @@ class DateParser : public AllStatic { + bool IsEnd() const { return ch_ == 0; } + bool IsAsciiDigit() const { return IsDecimalDigit(ch_); } + bool IsAsciiAlphaOrAbove() const { return ch_ >= 'A'; } ++ bool IsWhiteSpaceChar() const { return IsWhiteSpace(ch_); } + bool IsAsciiSign() const { return ch_ == '+' || ch_ == '-'; } + + // Return 1 for '+' and -1 for '-'. |