From 578977e239f2054127b46b2e61e6f784078fbcee Mon Sep 17 00:00:00 2001 From: Ting-Wei Lan Date: Wed, 18 Oct 2023 20:43:29 +0800 Subject: chromium: Chromium 117.0.5938.149 -> 118.0.5993.70 --- chromium/chromium/chromium-freetype-r1195323.patch | 102 ++++++++++++++++ chromium/chromium/chromium-gcc-12-r1181503.patch | 30 ----- chromium/chromium/chromium-gcc-12-r1193203.patch | 42 +++++++ chromium/chromium/chromium-gcc-12-r1196995.patch | 35 ++++++ chromium/chromium/chromium-gcc-12-r1197890.patch | 126 +++++++++++++++++++ chromium/chromium/chromium-gcc-12-r1204857.patch | 32 +++++ .../chromium/chromium-partition_root-gcc-12.patch | 133 +++++++++++++++++++++ .../chromium/chromium-stub-unrar-wrapper.patch | 49 ++++++-- chromium/chromium/chromium.spec | 15 ++- 9 files changed, 518 insertions(+), 46 deletions(-) create mode 100644 chromium/chromium/chromium-freetype-r1195323.patch delete mode 100644 chromium/chromium/chromium-gcc-12-r1181503.patch create mode 100644 chromium/chromium/chromium-gcc-12-r1193203.patch create mode 100644 chromium/chromium/chromium-gcc-12-r1196995.patch create mode 100644 chromium/chromium/chromium-gcc-12-r1197890.patch create mode 100644 chromium/chromium/chromium-gcc-12-r1204857.patch create mode 100644 chromium/chromium/chromium-partition_root-gcc-12.patch diff --git a/chromium/chromium/chromium-freetype-r1195323.patch b/chromium/chromium/chromium-freetype-r1195323.patch new file mode 100644 index 0000000..94720af --- /dev/null +++ b/chromium/chromium/chromium-freetype-r1195323.patch @@ -0,0 +1,102 @@ +From ed354d00aeda84693611b14baa56a287557a26b5 Mon Sep 17 00:00:00 2001 +From: Munira Tursunova +Date: Tue, 12 Sep 2023 11:54:48 +0000 +Subject: [PATCH] Add check for use_system_freetype when importing private + freetype header +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In [0] the include of private freetype header was added, which caused +build breakage when use_system_freetype=true, see [1]. + +This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag. + +[0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485 +[1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0 + +Bug: 1429581 +Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428 +Commit-Queue: Munira Tursunova +Reviewed-by: Dominik Röttsches +Reviewed-by: Rick Byers +Cr-Commit-Position: refs/heads/main@{#1195323} +--- + third_party/BUILD.gn | 6 ++++++ + third_party/blink/renderer/platform/BUILD.gn | 1 + + .../renderer/platform/fonts/simple_font_data.cc | 12 +++++++++++- + 3 files changed, 18 insertions(+), 1 deletion(-) + +diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn +index 7b086f95413ff..4ce797ebad722 100644 +--- a/third_party/BUILD.gn ++++ b/third_party/BUILD.gn +@@ -2,6 +2,7 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + ++import("//build/buildflag_header.gni") + import("//build/config/features.gni") + import("//build/config/freetype/freetype.gni") + import("//third_party/harfbuzz-ng/harfbuzz.gni") +@@ -65,3 +66,8 @@ component("freetype_harfbuzz") { + public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ] + } + } ++ ++buildflag_header("freetype_buildflags") { ++ header = "freetype_buildflags.h" ++ flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ] ++} +diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn +index 591d2f939605b..f6a2cd2168d1e 100644 +--- a/third_party/blink/renderer/platform/BUILD.gn ++++ b/third_party/blink/renderer/platform/BUILD.gn +@@ -1717,6 +1717,7 @@ component("platform") { + "//services/viz/public/cpp/gpu", + "//skia", + "//skia:skcms", ++ "//third_party:freetype_buildflags", + "//third_party:freetype_harfbuzz", + "//third_party/abseil-cpp:absl", + "//third_party/blink/public:image_resources", +diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc +index abe06f35c14a5..b2bfd88f0d85d 100644 +--- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc ++++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc +@@ -48,7 +48,7 @@ + #include "third_party/blink/renderer/platform/wtf/math_extras.h" + #include "third_party/blink/renderer/platform/wtf/text/character_names.h" + #include "third_party/blink/renderer/platform/wtf/text/unicode.h" +-#include "third_party/freetype/src/src/autofit/afws-decl.h" ++#include "third_party/freetype_buildflags.h" + #include "third_party/skia/include/core/SkFontMetrics.h" + #include "third_party/skia/include/core/SkPath.h" + #include "third_party/skia/include/core/SkTypeface.h" +@@ -57,12 +57,22 @@ + #include "ui/gfx/geometry/skia_conversions.h" + #include "v8/include/v8.h" + ++#if !BUILDFLAG(USE_SYSTEM_FREETYPE) ++#include "third_party/freetype/src/src/autofit/afws-decl.h" ++#endif ++ + namespace blink { + + constexpr float kSmallCapsFontSizeMultiplier = 0.7f; + constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f; ++ ++#if !BUILDFLAG(USE_SYSTEM_FREETYPE) + constexpr int32_t kFontObjectsMemoryConsumption = + std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec)); ++#else ++// sizeof(AF_LatinMetricsRec) = 2128 ++constexpr int32_t kFontObjectsMemoryConsumption = 2128; ++#endif + + SimpleFontData::SimpleFontData(const FontPlatformData& platform_data, + scoped_refptr custom_data, +-- +2.41.0 + diff --git a/chromium/chromium/chromium-gcc-12-r1181503.patch b/chromium/chromium/chromium-gcc-12-r1181503.patch deleted file mode 100644 index de097cf..0000000 --- a/chromium/chromium/chromium-gcc-12-r1181503.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5a8dfcaf84b5af5aeb738702651e98bfc43d6d45 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann -Date: Wed, 9 Aug 2023 15:36:26 +0000 -Subject: [PATCH] IWYU: add memory for std::unique_ptr in //third_party/ipcz - -Bug: 957519 -Change-Id: I600f415a59206da283046b638a4f68eda0892ac7 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4754274 -Commit-Queue: Stephan Hartmann -Reviewed-by: Robert Sesek -Cr-Commit-Position: refs/heads/main@{#1181503} ---- - third_party/ipcz/src/ipcz/router_link.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/third_party/ipcz/src/ipcz/router_link.h b/third_party/ipcz/src/ipcz/router_link.h -index 09bc5626d9956..619638cc7f18b 100644 ---- a/third_party/ipcz/src/ipcz/router_link.h -+++ b/third_party/ipcz/src/ipcz/router_link.h -@@ -7,6 +7,7 @@ - - #include - #include -+#include - #include - #include - --- -2.41.0 - diff --git a/chromium/chromium/chromium-gcc-12-r1193203.patch b/chromium/chromium/chromium-gcc-12-r1193203.patch new file mode 100644 index 0000000..20779f3 --- /dev/null +++ b/chromium/chromium/chromium-gcc-12-r1193203.patch @@ -0,0 +1,42 @@ +From e3cec7e4af731f27b39773671a9951ebcb97a0d1 Mon Sep 17 00:00:00 2001 +From: Ivan Murashov +Date: Wed, 6 Sep 2023 19:40:47 +0000 +Subject: [PATCH] IWYU: Add includes for size_t and int64_t usage into + sensor_reading.h + +Otherwise build fails when building with use_custom_libcxx=false. +The errors example: +services/device/public/cpp/generic_sensor/sensor_reading.h:17:40: +error: use of undeclared identifier 'int64_t' +services/device/public/cpp/generic_sensor/sensor_reading.h:35:5: +error: unknown type name 'int64_t' +services/device/public/cpp/generic_sensor/sensor_reading.h:58:20: +error: unknown type name 'size_t'; did you mean 'std::size_t'? + +Bug: 957519 +Change-Id: Iec9bb821eb6284cf38d93c1cec90846e2f615fab +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4838935 +Reviewed-by: Reilly Grant +Commit-Queue: Ivan Murashov +Cr-Commit-Position: refs/heads/main@{#1193203} +--- + services/device/public/cpp/generic_sensor/sensor_reading.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/services/device/public/cpp/generic_sensor/sensor_reading.h b/services/device/public/cpp/generic_sensor/sensor_reading.h +index 7df8278649a23..c653bec632cc6 100644 +--- a/services/device/public/cpp/generic_sensor/sensor_reading.h ++++ b/services/device/public/cpp/generic_sensor/sensor_reading.h +@@ -5,6 +5,9 @@ + #ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_ + #define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_ + ++#include ++#include ++ + #include + + namespace device { +-- +2.41.0 + diff --git a/chromium/chromium/chromium-gcc-12-r1196995.patch b/chromium/chromium/chromium-gcc-12-r1196995.patch new file mode 100644 index 0000000..bc8fc9f --- /dev/null +++ b/chromium/chromium/chromium-gcc-12-r1196995.patch @@ -0,0 +1,35 @@ +From ef7513096d041e9278edda3fd7515921ae378d72 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz +Date: Fri, 15 Sep 2023 06:46:15 +0000 +Subject: [PATCH] IWYU: usage of std::atomic requires include in + lightweight_detector.h +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Bug: 957519 +Change-Id: Ib6e3b67b9e741af58c78c924c5756b80d37c3e67 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4866063 +Commit-Queue: José Dapena Paz +Reviewed-by: Jonathan Metzman +Cr-Commit-Position: refs/heads/main@{#1196995} +--- + components/gwp_asan/client/lightweight_detector.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/components/gwp_asan/client/lightweight_detector.h b/components/gwp_asan/client/lightweight_detector.h +index 5caf14bc54c29..f1d125ff9626c 100644 +--- a/components/gwp_asan/client/lightweight_detector.h ++++ b/components/gwp_asan/client/lightweight_detector.h +@@ -5,6 +5,8 @@ + #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_ + #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_ + ++#include ++ + #include "base/gtest_prod_util.h" + #include "components/gwp_asan/client/export.h" + #include "components/gwp_asan/common/lightweight_detector_state.h" +-- +2.41.0 + diff --git a/chromium/chromium/chromium-gcc-12-r1197890.patch b/chromium/chromium/chromium-gcc-12-r1197890.patch new file mode 100644 index 0000000..59152ea --- /dev/null +++ b/chromium/chromium/chromium-gcc-12-r1197890.patch @@ -0,0 +1,126 @@ +From 3a05767c2bbba5ee75c9adf0a5971258405520a8 Mon Sep 17 00:00:00 2001 +From: Jose Dapena Paz +Date: Mon, 18 Sep 2023 17:18:31 +0000 +Subject: [PATCH] GCC: workaround constexpr and raw_ptr issues in autofill +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +First, we workaround the problem with some constexpr destructors +declared to use default implementation, that are not properly +resolved when used. + +Then, apparently GCC cannot resolve raw_ptr to a constexpr. + +Bug: 819294 +Change-Id: I7746e059a288a3250e8126b87bde5f96c3832199 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4866025 +Commit-Queue: José Dapena Paz +Reviewed-by: Dominic Battre +Cr-Commit-Position: refs/heads/main@{#1197890} +--- + ...tofill_i18n_parsing_expression_components.h | 18 +++++++++++++----- + .../autofill_i18n_parsing_expressions.h | 2 +- + 2 files changed, 14 insertions(+), 6 deletions(-) + +diff --git a/components/autofill/core/browser/data_model/autofill_i18n_parsing_expression_components.h b/components/autofill/core/browser/data_model/autofill_i18n_parsing_expression_components.h +index fcc3f168bf231..2609de2f4284f 100644 +--- a/components/autofill/core/browser/data_model/autofill_i18n_parsing_expression_components.h ++++ b/components/autofill/core/browser/data_model/autofill_i18n_parsing_expression_components.h +@@ -39,7 +39,7 @@ class AutofillParsingProcess { + AutofillParsingProcess(const AutofillParsingProcess& other) = delete; + AutofillParsingProcess& operator=(const AutofillParsingProcess& right) = + delete; +- virtual ~AutofillParsingProcess() = default; ++ virtual constexpr ~AutofillParsingProcess() = default; + + // Parses `value` and returns the extracted field type matches. + virtual ValueParsingResults Parse(std::string_view value) const = 0; +@@ -60,7 +60,7 @@ class Decomposition : public AutofillParsingProcess { + anchor_end_(anchor_end) {} + Decomposition(const Decomposition&) = delete; + Decomposition& operator=(const Decomposition&) = delete; +- ~Decomposition() override = default; ++ constexpr ~Decomposition() override; + + ValueParsingResults Parse(std::string_view value) const override; + +@@ -70,6 +70,8 @@ class Decomposition : public AutofillParsingProcess { + const bool anchor_end_ = true; + }; + ++constexpr Decomposition::~Decomposition() = default; ++ + // A DecompositionCascade enables us to try one Decomposition after the next + // until we have found a match. It can be fitted with a condition to only use it + // in case the condition is fulfilled. The lack of a condition is expressed by +@@ -84,7 +86,7 @@ class DecompositionCascade : public AutofillParsingProcess { + : condition_regex_(condition_regex), alternatives_(alternatives) {} + DecompositionCascade(const DecompositionCascade&) = delete; + DecompositionCascade& operator=(const DecompositionCascade&) = delete; +- ~DecompositionCascade() override = default; ++ constexpr ~DecompositionCascade() override; + + ValueParsingResults Parse(std::string_view value) const override; + +@@ -93,6 +95,8 @@ class DecompositionCascade : public AutofillParsingProcess { + const base::span alternatives_; + }; + ++constexpr DecompositionCascade::~DecompositionCascade() = default; ++ + // An ExtractPart parsing process attempts to match a string to a + // parsing expression, and then extracts the captured field type values. It can + // be fitted with a condition to only use it in case the condition is fulfilled. +@@ -110,7 +114,7 @@ class ExtractPart : public AutofillParsingProcess { + + ExtractPart(const ExtractPart&) = delete; + ExtractPart& operator=(const ExtractPart&) = delete; +- ~ExtractPart() override = default; ++ constexpr ~ExtractPart() override; + + ValueParsingResults Parse(std::string_view value) const override; + +@@ -119,6 +123,8 @@ class ExtractPart : public AutofillParsingProcess { + const std::string_view parsing_regex_; + }; + ++constexpr ExtractPart::~ExtractPart() = default; ++ + // Unlike for a DecompositionCascade, ExtractParts does not follow the "the + // first match wins" principle but applies all matching attempts in sequence so + // the last match wins. This also enables extracting different data (e.g. an +@@ -134,7 +140,7 @@ class ExtractParts : public AutofillParsingProcess { + : condition_regex_(condition_regex), pieces_(pieces) {} + ExtractParts(const ExtractParts&) = delete; + ExtractParts& operator=(const ExtractParts&) = delete; +- ~ExtractParts() override = default; ++ constexpr ~ExtractParts() override; + + ValueParsingResults Parse(std::string_view value) const override; + +@@ -143,6 +149,8 @@ class ExtractParts : public AutofillParsingProcess { + const base::span pieces_; + }; + ++constexpr ExtractParts::~ExtractParts() = default; ++ + } // namespace autofill::i18n_model_definition + + #endif // COMPONENTS_AUTOFILL_CORE_BROWSER_DATA_MODEL_AUTOFILL_I18N_PARSING_EXPRESSION_COMPONENTS_H_ +diff --git a/components/autofill/core/browser/data_model/autofill_i18n_parsing_expressions.h b/components/autofill/core/browser/data_model/autofill_i18n_parsing_expressions.h +index af0c4b0e90866..02b1a240ec9d5 100644 +--- a/components/autofill/core/browser/data_model/autofill_i18n_parsing_expressions.h ++++ b/components/autofill/core/browser/data_model/autofill_i18n_parsing_expressions.h +@@ -174,7 +174,7 @@ constexpr ExtractParts kExtractParts_7 = ExtractParts("", kExtractParts_7_Pieces + + // A lookup map for parsing expressions for countries and field types. + constexpr auto kAutofillParsingRulesMap = +- base::MakeFixedFlatMap>({ ++ base::MakeFixedFlatMap({ + {{"BR", NAME_FULL}, &kDecompositionCascade_3}, + {{"BR", ADDRESS_HOME_STREET_LOCATION}, &kDecompositionList[8]}, + {{"BR", ADDRESS_HOME_SUBPREMISE}, &kExtractParts_0}, +-- +2.41.0 + diff --git a/chromium/chromium/chromium-gcc-12-r1204857.patch b/chromium/chromium/chromium-gcc-12-r1204857.patch new file mode 100644 index 0000000..e64f0b7 --- /dev/null +++ b/chromium/chromium/chromium-gcc-12-r1204857.patch @@ -0,0 +1,32 @@ +From 90240a9448babf3b6c6c12a85ee25f47cdebe009 Mon Sep 17 00:00:00 2001 +From: Elly +Date: Tue, 3 Oct 2023 21:07:39 +0000 +Subject: [PATCH] gwp-asan: iwyu of for unique_ptr + +Bug: None +Change-Id: Ifa1ac8a782878b8d1c4a4784d45068fcae506e6d +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4909748 +Auto-Submit: Elly FJ +Commit-Queue: Matthew Denton +Commit-Queue: Elly FJ +Reviewed-by: Matthew Denton +Cr-Commit-Position: refs/heads/main@{#1204857} +--- + components/gwp_asan/client/lightweight_detector.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/components/gwp_asan/client/lightweight_detector.h b/components/gwp_asan/client/lightweight_detector.h +index f1d125ff9626c..658462e7b107f 100644 +--- a/components/gwp_asan/client/lightweight_detector.h ++++ b/components/gwp_asan/client/lightweight_detector.h +@@ -6,6 +6,7 @@ + #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_ + + #include ++#include + + #include "base/gtest_prod_util.h" + #include "components/gwp_asan/client/export.h" +-- +2.41.0 + diff --git a/chromium/chromium/chromium-partition_root-gcc-12.patch b/chromium/chromium/chromium-partition_root-gcc-12.patch new file mode 100644 index 0000000..4f4917b --- /dev/null +++ b/chromium/chromium/chromium-partition_root-gcc-12.patch @@ -0,0 +1,133 @@ +From 3c2c77cff5f7965d6ef3b55a18400533f640b0e1 Mon Sep 17 00:00:00 2001 +From: Ivan Murashov +Date: Fri, 08 Sep 2023 15:43:18 +0000 +Subject: [PATCH] GCC: Put attributes before function name in partition_root.h + +By GCC attributes are not allowed to be placed after function name +in a function definition. This breaks compilation in GCC. + +The error example: +base/allocator/partition_allocator/partition_alloc_forward.h:80:27: +error: attributes are not allowed on a function-definition +base/allocator/partition_allocator/partition_root.h:467:7: +note: in expansion of macro 'PA_MALLOC_ALIGNED' + +Bug: 819294 +Change-Id: Ife233d6fe7c2bab0cd503dad5c284879d896936d +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4853717 +Reviewed-by: Bartek Nowierski +Commit-Queue: Ivan Murashov +Cr-Commit-Position: refs/heads/main@{#1194132} + +(rebased to M118) +--- + +diff --git a/base/allocator/partition_allocator/partition_root.h b/base/allocator/partition_allocator/partition_root.h +index d5c4e07..886ed71 100644 +--- a/base/allocator/partition_allocator/partition_root.h ++++ b/base/allocator/partition_allocator/partition_root.h +@@ -462,15 +462,15 @@ struct PA_ALIGNAS(64) PA_COMPONENT_EXPORT(PARTITION_ALLOC) PartitionRoot { + // increasing cache footprint). Set PA_NOINLINE on the "basic" top-level + // functions to mitigate that for "vanilla" callers. + template +- PA_NOINLINE PA_MALLOC_FN void* Alloc(size_t requested_size, +- const char* type_name) +- PA_MALLOC_ALIGNED { ++ PA_NOINLINE PA_MALLOC_FN PA_MALLOC_ALIGNED void* Alloc( ++ size_t requested_size, ++ const char* type_name) { + return AllocInline(requested_size, type_name); + } + template +- PA_ALWAYS_INLINE PA_MALLOC_FN void* AllocInline(size_t requested_size, +- const char* type_name) +- PA_MALLOC_ALIGNED { ++ PA_ALWAYS_INLINE PA_MALLOC_FN PA_MALLOC_ALIGNED void* AllocInline( ++ size_t requested_size, ++ const char* type_name) { + static_assert((flags & AllocFlags::kNoHooks) == 0); // Internal only. + return AllocInternal(requested_size, internal::PartitionPageSize(), + type_name); +@@ -482,10 +482,10 @@ struct PA_ALIGNAS(64) PA_COMPONENT_EXPORT(PARTITION_ALLOC) PartitionRoot { + // alignment, otherwise a sub-optimal allocation strategy is used to + // guarantee the higher-order alignment. + template +- PA_ALWAYS_INLINE PA_MALLOC_FN void* AllocInternal(size_t requested_size, +- size_t slot_span_alignment, +- const char* type_name) +- PA_MALLOC_ALIGNED; ++ PA_ALWAYS_INLINE PA_MALLOC_FN PA_MALLOC_ALIGNED void* AllocInternal( ++ size_t requested_size, ++ size_t slot_span_alignment, ++ const char* type_name); + // Same as |Alloc()|, but bypasses the allocator hooks. + // + // This is separate from Alloc() because other callers of +@@ -496,15 +496,15 @@ struct PA_ALIGNAS(64) PA_COMPONENT_EXPORT(PARTITION_ALLOC) PartitionRoot { + // for the malloc() case, the compiler correctly removes the branch, since + // this is marked |PA_ALWAYS_INLINE|. + template +- PA_ALWAYS_INLINE PA_MALLOC_FN void* AllocNoHooks(size_t requested_size, +- size_t slot_span_alignment) +- PA_MALLOC_ALIGNED; ++ PA_ALWAYS_INLINE PA_MALLOC_FN PA_MALLOC_ALIGNED void* AllocNoHooks( ++ size_t requested_size, ++ size_t slot_span_alignment); + // Deprecated compatibility method. + // TODO(mikt): remove this once all third party usage is gone. +- PA_ALWAYS_INLINE PA_MALLOC_FN void* AllocWithFlags(unsigned int flags, +- size_t requested_size, +- const char* type_name) +- PA_MALLOC_ALIGNED { ++ PA_ALWAYS_INLINE PA_MALLOC_FN PA_MALLOC_ALIGNED void* AllocWithFlags( ++ unsigned int flags, ++ size_t requested_size, ++ const char* type_name) { + // These conditional branching should be optimized away. + if (flags == (AllocFlags::kReturnNull)) { + return AllocInline(requested_size, type_name); +@@ -520,28 +520,28 @@ struct PA_ALIGNAS(64) PA_COMPONENT_EXPORT(PARTITION_ALLOC) PartitionRoot { + } + + template +- PA_NOINLINE void* Realloc(void* ptr, +- size_t new_size, +- const char* type_name) PA_MALLOC_ALIGNED { ++ PA_NOINLINE PA_MALLOC_ALIGNED void* Realloc(void* ptr, ++ size_t new_size, ++ const char* type_name) { + return ReallocInline(ptr, new_size, type_name); + } + template +- PA_ALWAYS_INLINE void* ReallocInline(void* ptr, +- size_t new_size, +- const char* type_name) PA_MALLOC_ALIGNED; ++ PA_ALWAYS_INLINE PA_MALLOC_ALIGNED void* ReallocInline(void* ptr, ++ size_t new_size, ++ const char* type_name); + // Overload that may return nullptr if reallocation isn't possible. In this + // case, |ptr| remains valid. +- PA_NOINLINE void* TryRealloc(void* ptr, +- size_t new_size, +- const char* type_name) PA_MALLOC_ALIGNED { ++ PA_NOINLINE PA_MALLOC_ALIGNED void* TryRealloc(void* ptr, ++ size_t new_size, ++ const char* type_name) { + return ReallocInline(ptr, new_size, type_name); + } + // Deprecated compatibility method. + // TODO(mikt): remove this once all third party usage is gone. +- PA_NOINLINE void* ReallocWithFlags(unsigned int flags, +- void* ptr, +- size_t new_size, +- const char* type_name) PA_MALLOC_ALIGNED { ++ PA_NOINLINE PA_MALLOC_ALIGNED void* ReallocWithFlags(unsigned int flags, ++ void* ptr, ++ size_t new_size, ++ const char* type_name) { + PA_CHECK(flags == AllocFlags::kReturnNull); + return ReallocInline(ptr, new_size, type_name); + } +-- +2.41.0 + diff --git a/chromium/chromium/chromium-stub-unrar-wrapper.patch b/chromium/chromium/chromium-stub-unrar-wrapper.patch index e97e47c..9a31d31 100644 --- a/chromium/chromium/chromium-stub-unrar-wrapper.patch +++ b/chromium/chromium/chromium-stub-unrar-wrapper.patch @@ -57,25 +57,35 @@ index 97f4e0460ad7c..0d665e199e4b4 100644 if (is_win) { sources += [ "src/isnt.cpp" ] diff --git a/third_party/unrar/google/unrar_wrapper.cc b/third_party/unrar/google/unrar_wrapper.cc -index 1b777d2275099..135ba83abbedd 100644 +index a76b497b6ea7d..2f2f159d08071 100644 --- a/third_party/unrar/google/unrar_wrapper.cc +++ b/third_party/unrar/google/unrar_wrapper.cc -@@ -9,7 +9,6 @@ - #include "base/files/file_path.h" +@@ -10,7 +10,6 @@ #include "base/metrics/histogram_macros.h" + #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" -#include "third_party/unrar/src/rar.hpp" namespace third_party_unrar { -@@ -18,75 +17,10 @@ RarReader::RarReader() {} +@@ -19,84 +18,10 @@ RarReader::RarReader() {} RarReader::~RarReader() {} bool RarReader::Open(base::File rar_file, base::File temp_file) { - rar_file_ = std::move(rar_file); - temp_file_ = std::move(temp_file); - -- archive_ = std::make_unique(); +- command_ = std::make_unique(); +- // Unrar forbids empty passwords, but requires that a password be provided for +- // encrypted archives. In order to support metadata encryption, we must +- // provide some password when opening the file. +- std::wstring password_flag = +- L"-p" + (password_.empty() ? L"x" : base::UTF8ToWide(password_)); +- command_->ParseArg(password_flag.data()); +- command_->ParseArg(const_cast(L"x")); +- command_->ParseDone(); +- +- archive_ = std::make_unique(command_.get()); - archive_->SetFileHandle(rar_file_.GetPlatformFile()); - archive_->SetTempFileHandle(temp_file_.GetPlatformFile()); - @@ -87,11 +97,6 @@ index 1b777d2275099..135ba83abbedd 100644 - if (!is_valid_archive) - return false; - -- command_ = std::make_unique(); -- command_->ParseArg(const_cast(L"-p")); -- command_->ParseArg(const_cast(L"x")); -- command_->ParseDone(); -- - extractor_ = std::make_unique(command_.get()); - extractor_->ExtractArchiveInit(*archive_); - @@ -121,14 +126,18 @@ index 1b777d2275099..135ba83abbedd 100644 - current_entry_.is_encrypted = archive_->FileHead.Encrypted; - current_entry_.file_size = - current_entry_.is_directory ? 0 : extractor_->GetCurrentFileSize(); +- current_entry_.contents_valid = +- success && ErrHandler.GetErrorCode() == RARX_SUCCESS; +- ErrHandler.Clean(); - - if (success) { - return true; - } - - if (archive_->FileHead.Encrypted) { -- // Since Chromium doesn't have the password, manually skip over the -- // encrypted data and fill in the metadata we do have. +- // Since Chromium doesn't have the password or the password was +- // incorrect, manually skip over the encrypted data and fill in the +- // metadata we do have. - archive_->SeekToNext(); - return true; - } @@ -145,8 +154,22 @@ index 1b777d2275099..135ba83abbedd 100644 return false; } +@@ -105,11 +30,11 @@ void RarReader::SetPassword(const std::string& password) { + } + + bool RarReader::HeadersEncrypted() const { +- return archive_->Encrypted; ++ return false; + } + + bool RarReader::HeaderDecryptionFailed() const { +- return archive_->FailedHeaderDecryption; ++ return true; + } + + } // namespace third_party_unrar diff --git a/third_party/unrar/google/unrar_wrapper.h b/third_party/unrar/google/unrar_wrapper.h -index 9e5a08bf092b0..01a1f7b023e4c 100644 +index a0724520f0aac..765a7142a962c 100644 --- a/third_party/unrar/google/unrar_wrapper.h +++ b/third_party/unrar/google/unrar_wrapper.h @@ -12,9 +12,9 @@ diff --git a/chromium/chromium/chromium.spec b/chromium/chromium/chromium.spec index 2108b36..0ee000d 100644 --- a/chromium/chromium/chromium.spec +++ b/chromium/chromium/chromium.spec @@ -71,7 +71,7 @@ %bcond_with fedora_compilation_flags Name: chromium -Version: 117.0.5938.149 +Version: 118.0.5993.70 Release: 100%{?dist} Summary: A WebKit (Blink) powered web browser @@ -119,8 +119,12 @@ Patch1: chromium-gn-no-static-libstdc++-allow-warnings.patch Patch2: chromium-python3.patch # Pull upstream patches -Patch10: chromium-gcc-12-r1181503.patch -Patch11: chromium-vulkan_memory_allocator-gcc-13.patch +Patch10: chromium-vulkan_memory_allocator-gcc-13.patch +Patch11: chromium-gcc-12-r1193203.patch +Patch12: chromium-gcc-12-r1196995.patch +Patch13: chromium-gcc-12-r1197890.patch +Patch14: chromium-gcc-12-r1204857.patch +Patch15: chromium-freetype-r1195323.patch # Fix missing includes Patch20: chromium-maldoca-cstdint.patch @@ -129,8 +133,10 @@ Patch21: chromium-ruy-string.patch # Pull patches from Matt.Jolly # https://gitlab.com/Matt.Jolly/chromium-patches/-/commit/9f0846cc290d5d11 # https://gitlab.com/Matt.Jolly/chromium-patches/-/commit/55f31e3ac9880a09 +# https://gitlab.com/Matt.Jolly/chromium-patches/-/commit/6a043280ed6f56ab Patch30: chromium-use-system-zstd.patch Patch31: chromium-material_color_utilities-cmath.patch +Patch32: chromium-partition_root-gcc-12.patch # I don't have time to test whether it work on other architectures ExclusiveArch: x86_64 @@ -769,6 +775,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %changelog +* Wed Oct 18 2023 - Ting-Wei Lan - 118.0.5993.70-100 +- Update to 118.0.5993.70 + * Thu Oct 05 2023 - Ting-Wei Lan - 117.0.5938.149-100 - Update to 117.0.5938.149 -- cgit v1.2.3