From c51e5ee515d2ef03003a8cd3a0955a06a31439aa Mon Sep 17 00:00:00 2001 From: tigro Date: Thu, 7 Dec 2023 15:04:51 +0300 Subject: [PATCH] - update to 120.0.6099.62 - drop unsupported ldflag which caused build failure - fixed bz#2252874, built with control flow integrity (CFI) support - enable qt6 UI backend - fixed bz#2242271, built with bundleminizip in fedora > 39 - fixed bz#2251884, built with fstack-protector-strong for improved security --- .chromium.metadata | 6 +- .gitignore | 6 +- .../chromium-118-arm64-memory_tagging.patch | 15 - .../chromium-118-python-3.12-deprecated.patch | 138 ---- ...karound_clang_bug-structured_binding.patch | 96 --- SOURCES/chromium-119-constexpr.patch | 12 - ...ble-GlobalMediaControlsCastStartStop.patch | 19 - ...9-dont-redefine-ATSPI-version-macros.patch | 50 -- ...chromium-119-fstack-protector-strong.patch | 12 + ...tVideoDecoder-flag-on-VA-API-devices.patch | 189 ----- ...-119-nullptr_t-without-namespace-std.patch | 21 - ...a-use-separate-bo-to-verify-modifier.patch | 164 ---- SOURCES/chromium-119-system-libusb.patch | 39 - .../chromium-120-arm64-memory_tagging.patch | 14 + ...ng16-disable-auto-upgrade-debug-info.patch | 12 + ...hromium-120-disable-FFmpegAllowLists.patch | 12 + ...ble-GlobalMediaControlsCastStartStop.patch | 14 + ...chromium-120-el7-clang-build-failure.patch | 230 ++++++ ...romium-120-el7-clang-version-warning.patch | 16 + SOURCES/chromium-120-el7-extra-operator.patch | 26 + SOURCES/chromium-120-el7-old-libdrm.patch | 18 + .../chromium-120-gn-workaround-atspi.patch | 13 + ...> chromium-120-missing-header-files.patch} | 11 - ...chromium-120-no_matching_constructor.patch | 742 ++++++++++++++++++ ...-120-nullptr_t-without-namespace-std.patch | 24 + ...20-split-threshold-for-reg-with-hint.patch | 28 + SOURCES/chromium-120-system-libusb.patch | 42 + ...name.patch => chromium-120-typename.patch} | 41 + ...karound_clang_bug-structured_binding.patch | 51 ++ ...chromium-85.0.4183.83-el7-old-libdrm.patch | 15 - ...mium-99.0.4844.51-el7-extra-operator.patch | 26 - SPECS/chromium.spec | 199 +++-- 32 files changed, 1437 insertions(+), 864 deletions(-) delete mode 100644 SOURCES/chromium-118-arm64-memory_tagging.patch delete mode 100644 SOURCES/chromium-118-python-3.12-deprecated.patch delete mode 100644 SOURCES/chromium-118-workaround_clang_bug-structured_binding.patch delete mode 100644 SOURCES/chromium-119-constexpr.patch delete mode 100644 SOURCES/chromium-119-disable-GlobalMediaControlsCastStartStop.patch delete mode 100644 SOURCES/chromium-119-dont-redefine-ATSPI-version-macros.patch create mode 100644 SOURCES/chromium-119-fstack-protector-strong.patch delete mode 100644 SOURCES/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch delete mode 100644 SOURCES/chromium-119-nullptr_t-without-namespace-std.patch delete mode 100644 SOURCES/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch delete mode 100644 SOURCES/chromium-119-system-libusb.patch create mode 100644 SOURCES/chromium-120-arm64-memory_tagging.patch create mode 100644 SOURCES/chromium-120-clang16-disable-auto-upgrade-debug-info.patch create mode 100644 SOURCES/chromium-120-disable-FFmpegAllowLists.patch create mode 100644 SOURCES/chromium-120-disable-GlobalMediaControlsCastStartStop.patch create mode 100644 SOURCES/chromium-120-el7-clang-build-failure.patch create mode 100644 SOURCES/chromium-120-el7-clang-version-warning.patch create mode 100644 SOURCES/chromium-120-el7-extra-operator.patch create mode 100644 SOURCES/chromium-120-el7-old-libdrm.patch create mode 100644 SOURCES/chromium-120-gn-workaround-atspi.patch rename SOURCES/{chromium-119-missing-header-files.patch => chromium-120-missing-header-files.patch} (97%) create mode 100644 SOURCES/chromium-120-no_matching_constructor.patch create mode 100644 SOURCES/chromium-120-nullptr_t-without-namespace-std.patch create mode 100644 SOURCES/chromium-120-split-threshold-for-reg-with-hint.patch create mode 100644 SOURCES/chromium-120-system-libusb.patch rename SOURCES/{chromium-117-typename.patch => chromium-120-typename.patch} (83%) create mode 100644 SOURCES/chromium-120-workaround_clang_bug-structured_binding.patch delete mode 100644 SOURCES/chromium-85.0.4183.83-el7-old-libdrm.patch delete mode 100644 SOURCES/chromium-99.0.4844.51-el7-extra-operator.patch diff --git a/.chromium.metadata b/.chromium.metadata index 6e905d47..216f6299 100644 --- a/.chromium.metadata +++ b/.chromium.metadata @@ -1,8 +1,8 @@ -539783cdd4346898aaade0280945ed631f53c78d SOURCES/chromium-119.0.6045.199.tar.xz +901044fca51c5c74fa6df331cca0146aa8f07603 SOURCES/chromium-120.0.6099.62.tar.xz dea187019741602d57aaf189a80abba261fbd2aa SOURCES/linux-x64-0.19.2.tgz 7e5d2c7864c5c83ec789b59c77cd9c20d2594916 SOURCES/linux-arm64-0.19.2.tgz 769196d081c6a0ad37f1c63dec56febfff3370de SOURCES/node-v20.6.1-linux-x64.tar.xz 3e94bb4f999c636293bc745b02d98e7925da5616 SOURCES/node-v20.6.1-linux-arm64.tar.xz -0c4c4f30f072ddca7762f6fb9a1a0b414cf471da SOURCES/chromium-gost-2c81b2fed144086340d5220ef707350b7fb18ec9.tar.gz -36abebc8fd96cdcb5bf8ecd598055586ec434380 SOURCES/msspi-3c50c2d33a4bdf4effb01aaeb9ff5d5b67635a18.tar.gz 8e9bc55cce3899627b2810ecfe87116c5a9147b5 SOURCES/chromium-browser-gost-icons.tar.xz +6b05665ad62c12ff4ef7dc056a95e012221dee5a SOURCES/msspi-061bce0709523afaad3ea4ffa7c0bff96b5592c0.tar.gz +511df3accd6823b50b133a5548670098ae1afddc SOURCES/chromium-gost-acea4dd67875ea46a340f6fd2274c631ab132523.tar.gz diff --git a/.gitignore b/.gitignore index a4572c8a..4bfd5234 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ SOURCES/linux-x64-0.19.2.tgz SOURCES/linux-arm64-0.19.2.tgz SOURCES/node-v20.6.1-linux-x64.tar.xz SOURCES/node-v20.6.1-linux-arm64.tar.xz -SOURCES/chromium-gost-2c81b2fed144086340d5220ef707350b7fb18ec9.tar.gz -SOURCES/msspi-3c50c2d33a4bdf4effb01aaeb9ff5d5b67635a18.tar.gz SOURCES/chromium-browser-gost-icons.tar.xz -SOURCES/chromium-119.0.6045.199.tar.xz +SOURCES/chromium-gost-acea4dd67875ea46a340f6fd2274c631ab132523.tar.gz +SOURCES/msspi-061bce0709523afaad3ea4ffa7c0bff96b5592c0.tar.gz +SOURCES/chromium-120.0.6099.62.tar.xz diff --git a/SOURCES/chromium-118-arm64-memory_tagging.patch b/SOURCES/chromium-118-arm64-memory_tagging.patch deleted file mode 100644 index 463fb37a..00000000 --- a/SOURCES/chromium-118-arm64-memory_tagging.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up chromium-118.0.5993.32/base/allocator/partition_allocator/partition_alloc_config.h.me chromium-118.0.5993.32/base/allocator/partition_allocator/partition_alloc_config.h ---- chromium-118.0.5993.32/base/allocator/partition_allocator/partition_alloc_config.h.me 2023-10-03 20:25:01.282782425 +0200 -+++ chromium-118.0.5993.32/base/allocator/partition_allocator/partition_alloc_config.h 2023-10-03 20:25:27.151236664 +0200 -@@ -152,10 +152,7 @@ static_assert(sizeof(void*) != 8, ""); - (!BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && \ - defined(ARCH_CPU_LITTLE_ENDIAN)) - --#define PA_CONFIG_HAS_MEMORY_TAGGING() \ -- (defined(ARCH_CPU_ARM64) && defined(__clang__) && \ -- !defined(ADDRESS_SANITIZER) && \ -- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID))) -+#define PA_CONFIG_HAS_MEMORY_TAGGING() 0 - - #if PA_CONFIG(HAS_MEMORY_TAGGING) - static_assert(sizeof(void*) == 8); diff --git a/SOURCES/chromium-118-python-3.12-deprecated.patch b/SOURCES/chromium-118-python-3.12-deprecated.patch deleted file mode 100644 index 5837ae58..00000000 --- a/SOURCES/chromium-118-python-3.12-deprecated.patch +++ /dev/null @@ -1,138 +0,0 @@ -diff -up chromium-115.0.5790.102/base/write_build_date_header.py.me chromium-115.0.5790.102/base/write_build_date_header.py ---- chromium-115.0.5790.102/base/write_build_date_header.py.me 2023-07-22 14:23:42.620679397 +0200 -+++ chromium-115.0.5790.102/base/write_build_date_header.py 2023-07-22 15:24:46.833310310 +0200 -@@ -17,7 +17,7 @@ def main(): - args = argument_parser.parse_args() - - date_val = int(args.timestamp) -- date = datetime.datetime.utcfromtimestamp(date_val) -+ date = datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc) - output = ('// Generated by //base/write_build_date_header.py\n' - '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n' - f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}' -diff -up chromium-115.0.5790.102/build/write_buildflag_header.py.me chromium-115.0.5790.102/build/write_buildflag_header.py ---- chromium-115.0.5790.102/build/write_buildflag_header.py.me 2023-07-22 14:16:14.196975451 +0200 -+++ chromium-115.0.5790.102/build/write_buildflag_header.py 2023-07-22 14:20:24.977239994 +0200 -@@ -44,7 +44,7 @@ def GetOptions(): - header_guard = cmdline_options.output.upper() - if header_guard[0].isdigit(): - header_guard = '_' + header_guard -- header_guard = re.sub('[^\w]', '_', header_guard) -+ header_guard = re.sub(r'[^\w]', '_', header_guard) - header_guard += '_' - - # The actual output file is inside the gen dir. -diff -up chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py ---- chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me 2023-07-22 14:47:34.230764210 +0200 -+++ chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py 2023-07-22 15:11:50.360983383 +0200 -@@ -9,7 +9,8 @@ - """ - from __future__ import print_function - import abc --import imp -+import types -+import importlib - import optparse - import os - import re -@@ -40,6 +41,12 @@ class GoogleProtobufModuleImporter: - return filepath - return None - -+ def load_source(name: str, path: str) -> types.ModuleType: -+ spec = importlib.util.spec_from_file_location(name, path) -+ module = importlib.util.module_from_spec(spec) -+ spec.loader.exec_module(module) -+ return module -+ - def _module_exists(self, fullname): - return self._fullname_to_filepath(fullname) is not None - -@@ -68,7 +75,7 @@ class GoogleProtobufModuleImporter: - raise ImportError(fullname) - - filepath = self._fullname_to_filepath(fullname) -- return imp.load_source(fullname, filepath) -+ return load_source(fullname, filepath) - - class BinaryProtoGenerator: - -diff -up chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py ---- chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me 2023-07-22 15:17:19.114258801 +0200 -+++ chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py 2023-07-22 15:17:43.368200491 +0200 -@@ -32,7 +32,7 @@ def FilterLine(filename, line, output): - return - - if line.startswith("goog.provide"): -- match = re.match("goog.provide\('([^']+)'\);", line) -+ match = re.match(r"goog.provide\('([^']+)'\);", line) - if not match: - print("Invalid goog.provide line in %s:\n%s" % (filename, line)) - sys.exit(1) -diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py ---- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me 2023-07-22 15:12:41.850895179 +0200 -+++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py 2023-07-22 15:12:55.844871207 +0200 -@@ -18,7 +18,7 @@ class HTMLGenerationController(object): - - def GetHTMLForInlineStylesheet(self, contents): - if self.current_module is None: -- if re.search('url\(.+\)', contents): -+ if re.search(r'url\(.+\)', contents): - raise Exception( - 'Default HTMLGenerationController cannot handle inline style urls') - return contents -diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py ---- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me 2023-07-22 15:14:06.923717910 +0200 -+++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py 2023-07-22 15:18:03.704150614 +0200 -@@ -4,4 +4,4 @@ - - - def EscapeJSIfNeeded(js): -- return js.replace('', '<\/script>') -+ return js.replace(r'', r'<\/script>') -diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py ---- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me 2023-07-22 15:14:30.105662532 +0200 -+++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py 2023-07-22 15:14:57.977595950 +0200 -@@ -293,6 +293,6 @@ class HTMLModuleParser(): - html = '' - else: - if html.find('< /script>') != -1: -- raise Exception('Escape script tags with <\/script>') -+ raise Exception(r'Escape script tags with <\/script>') - - return HTMLModuleParserResults(html) -diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py ---- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me 2023-07-22 15:13:12.316842990 +0200 -+++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py 2023-07-22 15:13:49.684759091 +0200 -@@ -60,7 +60,7 @@ class ParsedStyleSheet(object): - return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8')) - - # I'm assuming we only have url()'s associated with images -- return re.sub('url\((?P"|\'|)(?P[^"\'()]*)(?P=quote)\)', -+ return re.sub(r'url\((?P"|\'|)(?P[^"\'()]*)(?P=quote)\)', - InlineUrl, self.contents) - - def AppendDirectlyDependentFilenamesTo(self, dependent_filenames): -@@ -72,7 +72,7 @@ class ParsedStyleSheet(object): - raise Exception('@imports are not supported') - - matches = re.findall( -- 'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)', -+ r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)', - self.contents) - - def resolve_url(url): -diff -up chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py ---- chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me 2023-07-22 15:11:56.826972306 +0200 -+++ chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py 2023-07-22 15:12:37.550902545 +0200 -@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo - source = self.preprocess(f.read()) - return source, path, lambda: mtime == os.path.getmtime(path) - -- blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}') -- blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}') -+ blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}') -+ blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}') - - def preprocess(self, source): - lines = source.split('\n') diff --git a/SOURCES/chromium-118-workaround_clang_bug-structured_binding.patch b/SOURCES/chromium-118-workaround_clang_bug-structured_binding.patch deleted file mode 100644 index 3b79f512..00000000 --- a/SOURCES/chromium-118-workaround_clang_bug-structured_binding.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc ---- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding 2023-06-07 21:48:37.000000000 +0200 -+++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc 2023-06-17 16:53:20.216628557 +0200 -@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui - void CdmPromiseAdapter::Clear(ClearReason reason) { - // Reject all outstanding promises. - DCHECK(thread_checker_.CalledOnValidThread()); -- for (auto& [promise_id, promise] : promises_) { -+ for (auto& [p_i, p_e] : promises_) { -+ auto& promise_id = p_i; -+ auto& promise = p_e; - TRACE_EVENT_NESTABLE_ASYNC_END1( - "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id), - "status", "cleared"); -diff -up chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc ---- chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding 2023-06-07 21:48:41.000000000 +0200 -+++ chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc 2023-06-17 18:47:06.001403966 +0200 -@@ -655,8 +658,10 @@ NGGridSizingTree NGGridLayoutAlgorithm:: - NGGridSizingTree sizing_tree; - - if (const auto* layout_subtree = ConstraintSpace().GridLayoutSubtree()) { -- auto& [grid_items, layout_data, subtree_size] = -- sizing_tree.CreateSizingData(); -+ auto& [g_i, l_d, s_s] = sizing_tree.CreateSizingData(); -+ auto& grid_items = g_i; -+ auto& layout_data = l_d; -+ auto& subtree_size = s_s; - - const auto& node = Node(); - grid_items = -@@ -1798,8 +1803,10 @@ void NGGridLayoutAlgorithm::CompleteTrac - bool* opt_needs_additional_pass) const { - DCHECK(sizing_subtree); - -- auto& [grid_items, layout_data, subtree_size] = -- sizing_subtree.SubtreeRootData(); -+ auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData(); -+ auto& grid_items = g_i; -+ auto& layout_data = l_d; -+ auto& subtree_size = s_s; - - const bool is_for_columns = track_direction == kForColumns; - const bool has_non_definite_track = -@@ -1924,8 +1931,10 @@ template - void NGGridLayoutAlgorithm::ForEachSubgrid( - const NGGridSizingSubtree& sizing_subtree, - const CallbackFunc& callback_func) const { -- auto& [grid_items, layout_data, subtree_size] = -- sizing_subtree.SubtreeRootData(); -+ auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData(); -+ auto& grid_items = g_i; -+ auto& layout_data = l_d; -+ auto& subtree_size = s_s; - - // If we know this subtree doesn't have nested subgrids we can exit early - // instead of iterating over every grid item looking for them. -diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc ---- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me 2023-06-19 08:04:02.287072722 +0200 -+++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc 2023-06-19 08:18:24.576814950 +0200 -@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP - return; - } - -- auto [document_url, key, callback] = std::move(*request); -+ auto [d_u, key, callback] = std::move(*request); -+ auto document_url = d_u; - - DCHECK(document_url.is_valid()); - TRACE_EVENT1("ServiceWorker", -diff -up chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.me chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc ---- chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.me 2023-09-15 13:03:00.787257048 +0200 -+++ chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc 2023-09-15 13:15:05.502706522 +0200 -@@ -3437,7 +3437,10 @@ void NGGridLayoutAlgorithm::PlaceGridIte - DCHECK(out_row_break_between); - - const auto& container_space = ConstraintSpace(); -- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData(); -+ const auto& [g_i, l_d, t_s] = sizing_tree.TreeRootData(); -+ const auto& grid_items = g_i; -+ const auto& layout_data = l_d; -+ const auto& tree_size = t_s; - - const auto* cached_layout_subtree = container_space.GridLayoutSubtree(); - const auto container_writing_direction = -@@ -3601,7 +3604,10 @@ void NGGridLayoutAlgorithm::PlaceGridIte - - // TODO(ikilpatrick): Update |SetHasSeenAllChildren| and early exit if true. - const auto& constraint_space = ConstraintSpace(); -- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData(); -+ const auto& [g_i, l_d, t_s] = sizing_tree.TreeRootData(); -+ const auto& grid_items = g_i; -+ const auto& layout_data = l_d; -+ const auto& tree_size =t_s; - - const auto* cached_layout_subtree = constraint_space.GridLayoutSubtree(); - const auto container_writing_direction = diff --git a/SOURCES/chromium-119-constexpr.patch b/SOURCES/chromium-119-constexpr.patch deleted file mode 100644 index b195ff40..00000000 --- a/SOURCES/chromium-119-constexpr.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h ---- chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me 2023-10-31 21:05:05.548565241 +0100 -+++ chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h 2023-10-31 21:20:53.945532094 +0100 -@@ -93,7 +93,7 @@ class MiracleParameter { - template <> - class MiracleParameter : public MiracleParameterBase { - public: -- constexpr MiracleParameter(const base::Feature* feature, -+ MiracleParameter(const base::Feature* feature, - const char* param_name, - std::string default_value) - : MiracleParameterBase(feature, param_name, std::move(default_value)) {} diff --git a/SOURCES/chromium-119-disable-GlobalMediaControlsCastStartStop.patch b/SOURCES/chromium-119-disable-GlobalMediaControlsCastStartStop.patch deleted file mode 100644 index 20820954..00000000 --- a/SOURCES/chromium-119-disable-GlobalMediaControlsCastStartStop.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -up chromium-119.0.6045.105/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop chromium-119.0.6045.105/chrome/browser/media/router/media_router_feature.cc ---- chromium-119.0.6045.105/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop 2023-11-06 12:57:04.096696491 +0100 -+++ chromium-119.0.6045.105/chrome/browser/media/router/media_router_feature.cc 2023-11-06 13:00:30.480926343 +0100 -@@ -68,15 +68,9 @@ BASE_FEATURE(kCastMirroringPlayoutDelay, - base::FEATURE_DISABLED_BY_DEFAULT); - const base::FeatureParam kCastMirroringPlayoutDelayMs{ - &kCastMirroringPlayoutDelay, "cast_mirroring_playout_delay_ms", -1}; --#if BUILDFLAG(IS_CHROMEOS) - BASE_FEATURE(kGlobalMediaControlsCastStartStop, - "GlobalMediaControlsCastStartStop", - base::FEATURE_DISABLED_BY_DEFAULT); --#else --BASE_FEATURE(kGlobalMediaControlsCastStartStop, -- "GlobalMediaControlsCastStartStop", -- base::FEATURE_ENABLED_BY_DEFAULT); --#endif // BUILDFLAG(IS_CHROMEOS) - #endif // !BUILDFLAG(IS_ANDROID) - - namespace { diff --git a/SOURCES/chromium-119-dont-redefine-ATSPI-version-macros.patch b/SOURCES/chromium-119-dont-redefine-ATSPI-version-macros.patch deleted file mode 100644 index ab64c54d..00000000 --- a/SOURCES/chromium-119-dont-redefine-ATSPI-version-macros.patch +++ /dev/null @@ -1,50 +0,0 @@ -commit fc09363b2278893790d131c72a4ed96ec9837624 -Author: Elly -Date: Thu Sep 21 22:09:59 2023 +0000 - - a11y: don't redefine ATSPI version macros - - As of ATSPI 2.49.90, the library itself defines these, and if we - redefine them on the compiler command line, we get a build warning. - See: https://gitlab.gnome.org/GNOME/at-spi2-core/-/issues/129 - - Bug: None - Change-Id: I5cc655bd32c90d7af52c9dca60724f334c4a2a65 - Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4883576 - Auto-Submit: Elly FJ - Reviewed-by: Thomas Anderson - Commit-Queue: Thomas Anderson - Cr-Commit-Position: refs/heads/main@{#1199870} - -diff --git a/build/config/linux/atspi2/BUILD.gn b/build/config/linux/atspi2/BUILD.gn -index 51b6d33aab3c2..d1629205c82a3 100644 ---- a/build/config/linux/atspi2/BUILD.gn -+++ b/build/config/linux/atspi2/BUILD.gn -@@ -17,13 +17,19 @@ if (use_atk) { - "--version-as-components", - ], - "value") -- atspi_major_version = atspi_version[0] -- atspi_minor_version = atspi_version[1] -- atspi_micro_version = atspi_version[2] -- defines = [ -- "ATSPI_MAJOR_VERSION=$atspi_major_version", -- "ATSPI_MINOR_VERSION=$atspi_minor_version", -- "ATSPI_MICRO_VERSION=$atspi_micro_version", -- ] -+ major = atspi_version[0] -+ minor = atspi_version[1] -+ micro = atspi_version[2] -+ -+ # ATSPI 2.49.90 now defines these for us and it's an error for us to -+ # redefine them on the compiler command line. -+ # See ATSPI 927344a34cd5bf81fc64da4968241735ecb4f03b -+ if (minor < 49 || (minor == 49 && micro < 90)) { -+ defines = [ -+ "ATSPI_MAJOR_VERSION=$major", -+ "ATSPI_MINOR_VERSION=$minor", -+ "ATSPI_MICRO_VERSION=$micro", -+ ] -+ } - } - } diff --git a/SOURCES/chromium-119-fstack-protector-strong.patch b/SOURCES/chromium-119-fstack-protector-strong.patch new file mode 100644 index 00000000..688938d1 --- /dev/null +++ b/SOURCES/chromium-119-fstack-protector-strong.patch @@ -0,0 +1,12 @@ +diff -up chromium-119.0.6045.199/build/config/compiler/BUILD.gn.me chromium-119.0.6045.199/build/config/compiler/BUILD.gn +--- chromium-119.0.6045.199/build/config/compiler/BUILD.gn.me 2023-12-02 12:19:01.138079722 +0100 ++++ chromium-119.0.6045.199/build/config/compiler/BUILD.gn 2023-12-02 12:21:05.835322037 +0100 +@@ -379,7 +379,7 @@ config("compiler") { + cflags += [ "-fno-stack-protector" ] + } else if (current_os != "aix") { + # Not available on aix. +- cflags += [ "-fstack-protector" ] ++ cflags += [ "-fstack-protector-strong" ] + } + } + } diff --git a/SOURCES/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch b/SOURCES/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch deleted file mode 100644 index 10db5510..00000000 --- a/SOURCES/chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch +++ /dev/null @@ -1,189 +0,0 @@ -commit 87fca7f1759e800bd72b5ab6511eea17d6400a76 -Author: Pilar Molina Lopez -Date: Tue Oct 24 19:57:55 2023 +0000 - - video: hide UseChromeOSDirectVideoDecoder flag on VA-API devices - - We are seeing crashes causes by this CHECK statement: - https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/gpu_utils.cc;l=151;drc=0e777ba9b6c34611705d5b145c92bcd09539011c - It's triggered when the user manually disables the UseChromeOSDirectVideoDecoder - flag on VA-API devices (Intel and AMD). This flag is supported only on - non-Intel and non-AMD devices. This CL adds this information to the flag - description and hides the flag in case VA-API is used. - - Bug: 1469285 - Test: manual test on volteer - Change-Id: I153b9ccb3815498c91ce5eee966834060749e247 - Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4960919 - Reviewed-by: Dale Curtis - Reviewed-by: Andres Calderon Jaramillo - Reviewed-by: Avi Drissman - Commit-Queue: Pilar Molina Lopez - Cr-Commit-Position: refs/heads/main@{#1214411} - -diff -up chromium-119.0.6045.105/chrome/browser/about_flags.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/chrome/browser/about_flags.cc ---- chromium-119.0.6045.105/chrome/browser/about_flags.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:09.000000000 +0100 -+++ chromium-119.0.6045.105/chrome/browser/about_flags.cc 2023-11-06 17:12:08.057984291 +0100 -@@ -7771,11 +7771,13 @@ const FeatureEntry kFeatureEntries[] = { - #endif // BUILDFLAG(IS_CHROMEOS_ASH) - - #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION) -+#if !BUILDFLAG(USE_VAAPI) - {"chromeos-direct-video-decoder", - flag_descriptions::kChromeOSDirectVideoDecoderName, - flag_descriptions::kChromeOSDirectVideoDecoderDescription, - kOsCrOS | kOsLacros, - FEATURE_VALUE_TYPE(media::kUseChromeOSDirectVideoDecoder)}, -+#endif // !BUILDFLAG(USE_VAAPI) - - {"enable-vbr-encode-acceleration", - flag_descriptions::kChromeOSHWVBREncodingName, -diff -up chromium-119.0.6045.105/chrome/browser/DEPS.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/chrome/browser/DEPS ---- chromium-119.0.6045.105/chrome/browser/DEPS.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:09.000000000 +0100 -+++ chromium-119.0.6045.105/chrome/browser/DEPS 2023-11-06 17:12:08.055984248 +0100 -@@ -415,6 +415,7 @@ include_rules = [ - "+media/base", # For media switches - "+media/capabilities", # For InMemoryVideoDecodeStatsDB - "+media/cdm", -+ "+media/gpu/buildflags.h", - "+media/remoting/device_capability_checker.h", - "+media/capture", - "+media/midi", # For midi switches -diff -up chromium-119.0.6045.105/chrome/browser/flag_descriptions.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/chrome/browser/flag_descriptions.cc ---- chromium-119.0.6045.105/chrome/browser/flag_descriptions.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:12.000000000 +0100 -+++ chromium-119.0.6045.105/chrome/browser/flag_descriptions.cc 2023-11-06 17:12:08.059984335 +0100 -@@ -7,6 +7,7 @@ - #include "build/build_config.h" - #include "build/chromeos_buildflags.h" - #include "components/supervised_user/core/common/buildflags.h" -+#include "media/gpu/buildflags.h" - #include "pdf/buildflags.h" - - // Keep in identical order as the header file, see the comment at the top -@@ -7424,6 +7425,7 @@ const char kVaapiVP9kSVCEncoderDescripti - #endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS) - - #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION) -+#if !BUILDFLAG(USE_VAAPI) - const char kChromeOSDirectVideoDecoderName[] = "ChromeOS Direct Video Decoder"; - const char kChromeOSDirectVideoDecoderDescription[] = - "Enables the hardware-accelerated ChromeOS direct media::VideoDecoder " -@@ -7431,7 +7433,8 @@ const char kChromeOSDirectVideoDecoderDe - "--platform-disallows-chromeos-direct-video-decoder command line switch " - "which is added for platforms where said direct VideoDecoder does not work " - "or is not well tested (see the disable_cros_video_decoder USE flag in " -- "ChromeOS)"; -+ "ChromeOS). This flag is supported only on non-Intel and non-AMD devices."; -+#endif // !BUILDFLAG(USE_VAAPI) - const char kChromeOSHWVBREncodingName[] = - "ChromeOS Hardware Variable Bitrate Encoding"; - const char kChromeOSHWVBREncodingDescription[] = -diff -up chromium-119.0.6045.105/content/public/browser/gpu_utils.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/content/public/browser/gpu_utils.cc ---- chromium-119.0.6045.105/content/public/browser/gpu_utils.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:26.000000000 +0100 -+++ chromium-119.0.6045.105/content/public/browser/gpu_utils.cc 2023-11-06 17:12:08.059984335 +0100 -@@ -133,20 +133,26 @@ const gpu::GpuPreferences GetGpuPreferen - #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION) - // The direct VideoDecoder is disallowed on some particular SoC/platforms. - const bool should_use_direct_video_decoder = -+#if BUILDFLAG(USE_VAAPI) -+ true; -+#else - !command_line->HasSwitch( - switches::kPlatformDisallowsChromeOSDirectVideoDecoder) && - base::FeatureList::IsEnabled(media::kUseChromeOSDirectVideoDecoder); -+#endif // BUILDFLAG(USE_VAAPI) -+ -+ gpu_preferences.enable_chromeos_direct_video_decoder = -+#if BUILDFLAG(USE_VAAPI) -+ should_use_direct_video_decoder; -+#else -+ // For testing purposes, the following flag allows using the "other" video -+ // decoder implementation. -+ base::FeatureList::IsEnabled( -+ media::kUseAlternateVideoDecoderImplementation) -+ ? !should_use_direct_video_decoder -+ : should_use_direct_video_decoder; -+#endif // BUILDFLAG(USE_VAAPI) - -- // For testing purposes, the following flag allows using the "other" video -- // decoder implementation. -- if (base::FeatureList::IsEnabled( -- media::kUseAlternateVideoDecoderImplementation)) { -- gpu_preferences.enable_chromeos_direct_video_decoder = -- !should_use_direct_video_decoder; -- } else { -- gpu_preferences.enable_chromeos_direct_video_decoder = -- should_use_direct_video_decoder; -- } - #if BUILDFLAG(USE_VAAPI) - CHECK(gpu_preferences.enable_chromeos_direct_video_decoder); - #endif // BUILDFLAG(USE_VAAPI) -diff -up chromium-119.0.6045.105/media/base/media_switches.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/media/base/media_switches.cc ---- chromium-119.0.6045.105/media/base/media_switches.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:31.000000000 +0100 -+++ chromium-119.0.6045.105/media/base/media_switches.cc 2023-11-06 17:12:08.060984356 +0100 -@@ -1202,6 +1202,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding, - "ChromeOSHWVBREncoding", - base::FEATURE_DISABLED_BY_DEFAULT); - -+#if !BUILDFLAG(USE_VAAPI) - // Enable the hardware-accelerated direct video decoder instead of the one - // needing the VdaVideoDecoder adapter. This flag is used mainly as a - // chrome:flag for developers debugging issues as well as to be able to -@@ -1210,6 +1211,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding, - BASE_FEATURE(kUseChromeOSDirectVideoDecoder, - "UseChromeOSDirectVideoDecoder", - base::FEATURE_ENABLED_BY_DEFAULT); -+#endif // !BUILDFLAG(USE_VAAPI) - - // Limit the number of concurrent hardware decoder instances on ChromeOS. - BASE_FEATURE(kLimitConcurrentDecoderInstances, -@@ -1238,7 +1240,7 @@ BASE_FEATURE(kPreferSoftwareMT21, - "PreferSoftwareMT21", - base::FEATURE_DISABLED_BY_DEFAULT); - #endif // defined(ARCH_CPU_ARM_FAMILY) --#if BUILDFLAG(IS_CHROMEOS) -+#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI) - // ChromeOS has one of two VideoDecoder implementations active based on - // SoC/board specific configurations that are sent via command line flags. This - // switch allows using the non default implementation for testing. -@@ -1246,7 +1248,7 @@ BASE_FEATURE(kPreferSoftwareMT21, - BASE_FEATURE(kUseAlternateVideoDecoderImplementation, - "UseAlternateVideoDecoderImplementation", - base::FEATURE_DISABLED_BY_DEFAULT); --#endif // BUILDFLAG(IS_CHROMEOS) -+#endif // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI) - #endif // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION) - - #if BUILDFLAG(IS_WIN) -diff -up chromium-119.0.6045.105/media/base/media_switches.h.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/media/base/media_switches.h ---- chromium-119.0.6045.105/media/base/media_switches.h.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:31.000000000 +0100 -+++ chromium-119.0.6045.105/media/base/media_switches.h 2023-11-06 17:12:08.060984356 +0100 -@@ -14,6 +14,7 @@ - #include "build/build_config.h" - #include "build/chromeos_buildflags.h" - #include "media/base/media_export.h" -+#include "media/gpu/buildflags.h" - #include "media/media_buildflags.h" - - namespace base { -@@ -382,16 +383,18 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kBuilt - #if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION) - MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWAV1Decoder); - MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWVBREncoding); -+#if !BUILDFLAG(USE_VAAPI) - MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseChromeOSDirectVideoDecoder); -+#endif // !BUILDFLAG(USE_VAAPI) - MEDIA_EXPORT BASE_DECLARE_FEATURE(kLimitConcurrentDecoderInstances); - MEDIA_EXPORT BASE_DECLARE_FEATURE(kUSeSequencedTaskRunnerForVEA); - #if defined(ARCH_CPU_ARM_FAMILY) - MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferGLImageProcessor); - MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferSoftwareMT21); - #endif // defined(ARCH_CPU_ARM_FAMILY) --#if BUILDFLAG(IS_CHROMEOS) -+#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI) - MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAlternateVideoDecoderImplementation); --#endif // BUILDFLAG(IS_CHROMEOS) -+#endif // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI) - #endif // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION) - - #if BUILDFLAG(IS_WIN) diff --git a/SOURCES/chromium-119-nullptr_t-without-namespace-std.patch b/SOURCES/chromium-119-nullptr_t-without-namespace-std.patch deleted file mode 100644 index 5cb969f4..00000000 --- a/SOURCES/chromium-119-nullptr_t-without-namespace-std.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -up chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h ---- chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me 2023-10-27 20:07:16.421230815 +0200 -+++ chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h 2023-10-27 20:07:36.883600085 +0200 -@@ -52,7 +52,7 @@ class FragmentDataIterator - public: - explicit FragmentDataIterator(const LayoutObject& object) - : FragmentDataIteratorBase(&object.FirstFragment()) {} -- explicit FragmentDataIterator(nullptr_t) -+ explicit FragmentDataIterator(std::nullptr_t) - : FragmentDataIteratorBase(nullptr) {} - }; - -@@ -63,7 +63,7 @@ class MutableFragmentDataIterator - explicit MutableFragmentDataIterator(const LayoutObject& object) - : FragmentDataIteratorBase( - &object.GetMutableForPainting().FirstFragment()) {} -- explicit MutableFragmentDataIterator(nullptr_t) -+ explicit MutableFragmentDataIterator(std::nullptr_t) - : FragmentDataIteratorBase(nullptr) {} - }; - diff --git a/SOURCES/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch b/SOURCES/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch deleted file mode 100644 index 717d8974..00000000 --- a/SOURCES/chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch +++ /dev/null @@ -1,164 +0,0 @@ -commit bdcc23e0a5e7e220660d3f54c97262f9a4c31606 -Author: Nick Diego Yamane -Date: Thu Nov 2 17:26:25 2023 +0000 - - gbm: nvidia: use separate bo to verify modifiers - - Buggy Nvidia drivers fail to return FDs for planes of a BO which had - already an imported BO destroyed before. This is a workaround for that - issue, which consists of creating/destroying a separate 1x1 BO for - validating the modifiers before actually creating the final requested - BO, which for now is limited to IS_LINUX builds. - - The Nvidia driver bug is being tracked under internal bug 4315529. There - seems to be other issues when running under Wayland with Nvidia, which - will be tracked and addressed in separate patches. - - R=dcastagna, msisov@igalia.com - - with ozone/wayland backend and verify GPU acceleration is not broken. - - Test: In a single Nvidia GPU setup, with proprietary driver, run Chrome - Bug: 1273758, 1478684, 1463851 - Change-Id: I9f322bcf40b460bcd4ead02f05dd2e9a8d271cea - Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4989782 - Reviewed-by: Maksim Sisov - Commit-Queue: Nick Yamane - Cr-Commit-Position: refs/heads/main@{#1218924} - -diff --git a/ui/gfx/linux/gbm_wrapper.cc b/ui/gfx/linux/gbm_wrapper.cc -index bf90b76605f68..14918c19c0ab0 100644 ---- a/ui/gfx/linux/gbm_wrapper.cc -+++ b/ui/gfx/linux/gbm_wrapper.cc -@@ -11,6 +11,7 @@ - #include "base/logging.h" - #include "base/memory/raw_ptr.h" - #include "base/memory/raw_ptr_exclusion.h" -+#include "base/numerics/safe_conversions.h" - #include "base/posix/eintr_wrapper.h" - #include "skia/ext/legacy_display_globals.h" - #include "third_party/skia/include/core/SkSurface.h" -@@ -71,6 +72,7 @@ base::ScopedFD GetPlaneFdForBo(gbm_bo* bo, size_t plane) { - int ret; - // Use DRM_RDWR to allow the fd to be mappable in another process. - ret = drmPrimeHandleToFD(dev_fd, plane_handle, DRM_CLOEXEC | DRM_RDWR, &fd); -+ PLOG_IF(ERROR, ret != 0) << "Failed to get fd for plane."; - - // Older DRM implementations blocked DRM_RDWR, but gave a read/write mapping - // anyways -@@ -301,58 +303,82 @@ class Device final : public ui::GbmDevice { - - std::unique_ptr CreateBufferWithModifiers( - uint32_t format, -- const gfx::Size& size, -+ const gfx::Size& requested_size, - uint32_t flags, - const std::vector& modifiers) override { -- if (modifiers.empty()) -- return CreateBuffer(format, size, flags); -- -- std::vector filtered_modifiers = -- GetFilteredModifiers(format, flags, modifiers); -- struct gbm_bo* bo = nullptr; -- while (filtered_modifiers.size() > 0) { -- bo = gbm_bo_create_with_modifiers(device_, size.width(), size.height(), -- format, filtered_modifiers.data(), -- filtered_modifiers.size()); -- if (!bo) { -+ if (modifiers.empty()) { -+ return CreateBuffer(format, requested_size, flags); -+ } -+ -+ // Buggy drivers prevent us from getting plane FDs from a BO which had its -+ // previously imported BO destroyed. E.g: Nvidia. Thus, on Linux Desktop, we -+ // do the create/import modifiers validation loop below using a separate set -+ // of 1x1 BOs which are destroyed before creating the final BO creation used -+ // to instantiate the returned GbmBuffer. -+ gfx::Size size = -+#if BUILDFLAG(IS_LINUX) -+ gfx::Size(1, 1); -+#else -+ requested_size; -+#endif -+ auto filtered_modifiers = GetFilteredModifiers(format, flags, modifiers); -+ struct gbm_bo* created_bo = nullptr; -+ bool valid_modifiers = false; -+ -+ while (!valid_modifiers && !filtered_modifiers.empty()) { -+ created_bo = gbm_bo_create_with_modifiers( -+ device_, size.width(), size.height(), format, -+ filtered_modifiers.data(), filtered_modifiers.size()); -+ if (!created_bo) { - return nullptr; - } - -- struct gbm_import_fd_modifier_data fd_data; -- fd_data.width = size.width(); -- fd_data.height = size.height(); -- fd_data.format = format; -- fd_data.num_fds = gbm_bo_get_plane_count(bo); -- fd_data.modifier = gbm_bo_get_modifier(bo); -- -- // Store fds in the vector of base::ScopedFDs. Will be released -- // automatically. -+ const int planes_count = gbm_bo_get_plane_count(created_bo); -+ struct gbm_import_fd_modifier_data fd_data = { -+ .width = base::checked_cast(size.width()), -+ .height = base::checked_cast(size.height()), -+ .format = format, -+ .num_fds = base::checked_cast(planes_count), -+ .modifier = gbm_bo_get_modifier(created_bo)}; -+ // Store fds in a base::ScopedFDs vector. Will be released automatically. - std::vector fds; - for (size_t i = 0; i < static_cast(fd_data.num_fds); ++i) { -- fds.emplace_back(GetPlaneFdForBo(bo, i)); -+ fds.emplace_back(GetPlaneFdForBo(created_bo, i)); - fd_data.fds[i] = fds.back().get(); -- fd_data.strides[i] = gbm_bo_get_stride_for_plane(bo, i); -- fd_data.offsets[i] = gbm_bo_get_offset(bo, i); -+ fd_data.strides[i] = gbm_bo_get_stride_for_plane(created_bo, i); -+ fd_data.offsets[i] = gbm_bo_get_offset(created_bo, i); - } - -- struct gbm_bo* bo_import = -+ struct gbm_bo* imported_bo = - gbm_bo_import(device_, GBM_BO_IMPORT_FD_MODIFIER, &fd_data, flags); -- if (bo_import) { -- gbm_bo_destroy(bo_import); -- break; -+ -+ if (imported_bo) { -+ valid_modifiers = true; -+ gbm_bo_destroy(imported_bo); - } else { -- gbm_bo_destroy(bo); -- bo = nullptr; - AddModifierToBlocklist(format, flags, fd_data.modifier); - filtered_modifiers = - GetFilteredModifiers(format, flags, filtered_modifiers); - } -+ -+ if (!valid_modifiers || size != requested_size) { -+ gbm_bo_destroy(created_bo); -+ created_bo = nullptr; -+ } - } -- if (!bo) { -- return nullptr; -+ -+ // If modifiers were successfully verified though `created_bo` is null here, -+ // it it means that the buffer created for verification could not be reused, -+ // ie: different size, so create it now with the `requested_size`. -+ if (valid_modifiers && !created_bo) { -+ created_bo = gbm_bo_create_with_modifiers( -+ device_, requested_size.width(), requested_size.height(), format, -+ filtered_modifiers.data(), filtered_modifiers.size()); -+ PLOG_IF(ERROR, !created_bo) << "Failed to create BO with modifiers."; - } - -- return CreateBufferForBO(bo, format, size, flags); -+ return created_bo ? CreateBufferForBO(created_bo, format, size, flags) -+ : nullptr; - } - - std::unique_ptr CreateBufferFromHandle( diff --git a/SOURCES/chromium-119-system-libusb.patch b/SOURCES/chromium-119-system-libusb.patch deleted file mode 100644 index d147fe07..00000000 --- a/SOURCES/chromium-119-system-libusb.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -up chromium-119.0.6045.105/build/linux/unbundle/libusb.gn.gnsystem chromium-119.0.6045.105/build/linux/unbundle/libusb.gn ---- chromium-119.0.6045.105/build/linux/unbundle/libusb.gn.gnsystem 2023-11-06 12:22:08.550625387 +0100 -+++ chromium-119.0.6045.105/build/linux/unbundle/libusb.gn 2023-11-06 12:22:08.550625387 +0100 -@@ -0,0 +1,24 @@ -+# Copyright 2016 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/linux/pkg_config.gni") -+import("//build/shim_headers.gni") -+ -+pkg_config("system_libusb") { -+ packages = [ "libusb-1.0" ] -+} -+ -+shim_headers("libusb_shim") { -+ root_path = "src/libusb" -+ headers = [ -+ "libusb.h", -+ ] -+} -+ -+source_set("libusb") { -+ deps = [ -+ ":libusb_shim", -+ ] -+ public_configs = [ ":system_libusb" ] -+} -diff -up chromium-119.0.6045.105/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-119.0.6045.105/build/linux/unbundle/replace_gn_files.py ---- chromium-119.0.6045.105/build/linux/unbundle/replace_gn_files.py.gnsystem 2023-11-06 12:22:08.550625387 +0100 -+++ chromium-119.0.6045.105/build/linux/unbundle/replace_gn_files.py 2023-11-06 12:28:28.295776501 +0100 -@@ -54,6 +54,7 @@ REPLACEMENTS = { - 'libevent': 'third_party/libevent/BUILD.gn', - 'libjpeg': 'third_party/libjpeg.gni', - 'libpng': 'third_party/libpng/BUILD.gn', -+ 'libusb': 'third_party/libusb/BUILD.gn', - 'libvpx': 'third_party/libvpx/BUILD.gn', - 'libwebp': 'third_party/libwebp/BUILD.gn', - 'libxml': 'third_party/libxml/BUILD.gn', diff --git a/SOURCES/chromium-120-arm64-memory_tagging.patch b/SOURCES/chromium-120-arm64-memory_tagging.patch new file mode 100644 index 00000000..bb461ef3 --- /dev/null +++ b/SOURCES/chromium-120-arm64-memory_tagging.patch @@ -0,0 +1,14 @@ +--- chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h.than 2023-11-26 13:50:07.005519877 +0100 ++++ chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_config.h 2023-11-26 13:50:49.727267240 +0100 +@@ -152,10 +152,7 @@ + (!BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && \ + defined(ARCH_CPU_LITTLE_ENDIAN)) + +-#define PA_CONFIG_HAS_MEMORY_TAGGING() \ +- (defined(ARCH_CPU_ARM64) && defined(__clang__) && \ +- !defined(ADDRESS_SANITIZER) && \ +- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID))) ++#define PA_CONFIG_HAS_MEMORY_TAGGING() 0 + + #if PA_CONFIG(HAS_MEMORY_TAGGING) + static_assert(sizeof(void*) == 8); diff --git a/SOURCES/chromium-120-clang16-disable-auto-upgrade-debug-info.patch b/SOURCES/chromium-120-clang16-disable-auto-upgrade-debug-info.patch new file mode 100644 index 00000000..ea2f4834 --- /dev/null +++ b/SOURCES/chromium-120-clang16-disable-auto-upgrade-debug-info.patch @@ -0,0 +1,12 @@ +diff -up chromium-120.0.6099.62/build/config/compiler/BUILD.gn.than chromium-120.0.6099.62/build/config/compiler/BUILD.gn +--- chromium-120.0.6099.62/build/config/compiler/BUILD.gn.than 2023-12-06 19:28:25.998327318 +0100 ++++ chromium-120.0.6099.62/build/config/compiler/BUILD.gn 2023-12-06 19:28:34.190528906 +0100 +@@ -787,7 +787,7 @@ config("compiler") { + # toolchain has this flag. + # We only use one version of LLVM within a build so there's no need to + # upgrade debug info, which can be expensive since it runs the verifier. +- ldflags += [ "-Wl,-mllvm,-disable-auto-upgrade-debug-info" ] ++ ldflags += [ "" ] + } + } + diff --git a/SOURCES/chromium-120-disable-FFmpegAllowLists.patch b/SOURCES/chromium-120-disable-FFmpegAllowLists.patch new file mode 100644 index 00000000..98216ddb --- /dev/null +++ b/SOURCES/chromium-120-disable-FFmpegAllowLists.patch @@ -0,0 +1,12 @@ +diff -up chromium-120.0.6099.56/media/base/media_switches.cc.me chromium-120.0.6099.56/media/base/media_switches.cc +--- chromium-120.0.6099.56/media/base/media_switches.cc.me 2023-12-02 11:43:21.990775897 +0100 ++++ chromium-120.0.6099.56/media/base/media_switches.cc 2023-12-02 11:45:23.248006377 +0100 +@@ -1636,7 +1636,7 @@ BASE_FEATURE(kUseSharedImagesForPepperVi + // Enables FFmpeg allow lists for supported codecs / containers. + BASE_FEATURE(kFFmpegAllowLists, + "FFmpegAllowLists", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); + + #if BUILDFLAG(ENABLE_FFMPEG_VIDEO_DECODERS) + // Allows decoding of theora / vp3 content. diff --git a/SOURCES/chromium-120-disable-GlobalMediaControlsCastStartStop.patch b/SOURCES/chromium-120-disable-GlobalMediaControlsCastStartStop.patch new file mode 100644 index 00000000..6a2585b9 --- /dev/null +++ b/SOURCES/chromium-120-disable-GlobalMediaControlsCastStartStop.patch @@ -0,0 +1,14 @@ +--- chromium-120.0.6099.35/chrome/browser/media/router/media_router_feature.cc.orig 2023-11-26 13:25:34.724228755 +0100 ++++ chromium-120.0.6099.35/chrome/browser/media/router/media_router_feature.cc 2023-11-26 13:28:26.452359146 +0100 +@@ -71,11 +71,7 @@ + // TODO(b/202294946): Remove when enabled by default on ChromeOS. + BASE_FEATURE(kGlobalMediaControlsCastStartStop, + "GlobalMediaControlsCastStartStop", +-#if BUILDFLAG(IS_CHROMEOS) + base::FEATURE_DISABLED_BY_DEFAULT); +-#else +- base::FEATURE_ENABLED_BY_DEFAULT); +-#endif // BUILDFLAG(IS_CHROMEOS) + #endif // !BUILDFLAG(IS_ANDROID) + + namespace { diff --git a/SOURCES/chromium-120-el7-clang-build-failure.patch b/SOURCES/chromium-120-el7-clang-build-failure.patch new file mode 100644 index 00000000..96258e67 --- /dev/null +++ b/SOURCES/chromium-120-el7-clang-build-failure.patch @@ -0,0 +1,230 @@ +commit 57526b8dc45b2e6c67bba7306f1dde73b1f2910c +Author: sisidovski +Date: Tue Oct 24 09:32:49 2023 +0000 + + Remove unused items from the RaceNetworkRequest hashmap + + When the AutoPreload or the race-network-and-fetch-handler option in the + static routing API is enabled, network requests are dispatched and + URLLoaderFactories are held in a hashmap in ServiceWorkerGlobalScope. + Those are consumed inside the fetch handler when fetch(e.request) is + called. But if the fetch handler doesn't call fetch() e.g. fallback, + those hashmap items does not have a chance to be removed. + + This CL changes the hashmap items to be removed when the fetch event + finishes, and the URLLoaderFactory is still not consumed at that time. + This may loose the dedupe capability if fetch() is called later e.g. + setTimeout(() => fetch()), but it makes sense to prioritize keeping the + hashmap small. + + Change-Id: I51bdc9d5eb5185f2b5b4df6ee785715b1180c848 + Bug: 1492640 + Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4964840 + Reviewed-by: Minoru Chikamune + Commit-Queue: Yoshisato Yanagisawa + Reviewed-by: Yoshisato Yanagisawa + Cr-Commit-Position: refs/heads/main@{#1214064} + +diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +index 02887edc10883..b3624fc0162df 100644 +--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc ++++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +@@ -46,6 +46,7 @@ + #include "services/network/public/cpp/cross_origin_embedder_policy.h" + #include "services/network/public/mojom/cookie_manager.mojom-blink.h" + #include "services/network/public/mojom/cross_origin_embedder_policy.mojom.h" ++#include "services/network/public/mojom/url_loader_factory.mojom-blink.h" + #include "third_party/blink/public/common/features.h" + #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h" + #include "third_party/blink/public/mojom/notifications/notification.mojom-blink.h" +@@ -1096,6 +1097,10 @@ void ServiceWorkerGlobalScope::DidHandleFetchEvent( + TRACE_ID_WITH_SCOPE(kServiceWorkerGlobalScopeTraceScope, + TRACE_ID_LOCAL(event_id)), + TRACE_EVENT_FLAG_FLOW_IN, "status", MojoEnumToString(status)); ++ ++ // Delete the URLLoaderFactory for the RaceNetworkRequest if it's not used. ++ RemoveItemFromRaceNetworkRequests(event_id); ++ + if (!RunEventCallback(&fetch_event_callbacks_, event_queue_.get(), event_id, + status)) { + // The event may have been aborted. Its response callback also needs to be +@@ -1495,6 +1500,7 @@ void ServiceWorkerGlobalScope::AbortCallbackForFetchEvent( + response_callback_iter->value->TakeValue().reset(); + fetch_response_callbacks_.erase(response_callback_iter); + } ++ RemoveItemFromRaceNetworkRequests(event_id); + + // Run the event callback with the error code. + auto event_callback_iter = fetch_event_callbacks_.find(event_id); +@@ -1551,52 +1557,11 @@ void ServiceWorkerGlobalScope::StartFetchEvent( + + if (params->race_network_request_loader_factory && + params->request->service_worker_race_network_request_token) { +- auto insert_result = race_network_request_loader_factories_.insert( +- String(params->request->service_worker_race_network_request_token +- ->ToString()), +- std::move(params->race_network_request_loader_factory)); +- +- // DumpWithoutCrashing if the token is empty, or not inserted as a new entry +- // to |race_network_request_loader_factories_|. +- // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data +- // and identify the cause. +- static bool has_dumped_without_crashing_for_empty_token = false; +- static bool has_dumped_without_crashing_for_not_new_entry = false; +- if (!has_dumped_without_crashing_for_empty_token && +- params->request->service_worker_race_network_request_token +- ->is_empty()) { +- has_dumped_without_crashing_for_empty_token = true; +- SCOPED_CRASH_KEY_BOOL( +- "SWGlobalScope", "empty_race_token", +- params->request->service_worker_race_network_request_token +- ->is_empty()); +- SCOPED_CRASH_KEY_STRING64( +- "SWGlobalScope", "race_token_string", +- params->request->service_worker_race_network_request_token +- ->ToString()); +- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry", +- insert_result.is_new_entry); +- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url", +- params->request->url.GetString().Utf8()); +- base::debug::DumpWithoutCrashing(); +- } +- if (!has_dumped_without_crashing_for_not_new_entry && +- !insert_result.is_new_entry) { +- has_dumped_without_crashing_for_not_new_entry = true; +- SCOPED_CRASH_KEY_BOOL( +- "SWGlobalScope", "empty_race_token", +- params->request->service_worker_race_network_request_token +- ->is_empty()); +- SCOPED_CRASH_KEY_STRING64( +- "SWGlobalScope", "race_token_string", +- params->request->service_worker_race_network_request_token +- ->ToString()); +- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry", +- insert_result.is_new_entry); +- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url", +- params->request->url.GetString().Utf8()); +- base::debug::DumpWithoutCrashing(); +- } ++ InsertNewItemToRaceNetworkRequests( ++ event_id, ++ params->request->service_worker_race_network_request_token.value(), ++ std::move(params->race_network_request_loader_factory), ++ params->request->url); + } + + Request* request = Request::Create( +@@ -2808,12 +2773,71 @@ bool ServiceWorkerGlobalScope::SetAttributeEventListener( + absl::optional> + ServiceWorkerGlobalScope::FindRaceNetworkRequestURLLoaderFactory( + const base::UnguessableToken& token) { +- mojo::PendingRemote result = +- race_network_request_loader_factories_.Take(String(token.ToString())); ++ std::unique_ptr result = ++ race_network_requests_.Take(String(token.ToString())); + if (result) { +- return result; ++ race_network_request_fetch_event_ids_.erase(result->fetch_event_id); ++ return absl::optional< ++ mojo::PendingRemote>( ++ std::move(result->url_loader_factory)); + } + return absl::nullopt; + } + ++void ServiceWorkerGlobalScope::InsertNewItemToRaceNetworkRequests( ++ int fetch_event_id, ++ const base::UnguessableToken& token, ++ mojo::PendingRemote ++ url_loader_factory, ++ const KURL& request_url) { ++ auto race_network_request_token = String(token.ToString()); ++ auto info = std::make_unique( ++ fetch_event_id, race_network_request_token, ++ std::move(url_loader_factory)); ++ race_network_request_fetch_event_ids_.insert(fetch_event_id, info.get()); ++ auto insert_result = race_network_requests_.insert(race_network_request_token, ++ std::move(info)); ++ ++ // DumpWithoutCrashing if the token is empty, or not inserted as a new entry ++ // to |race_network_request_loader_factories_|. ++ // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data ++ // and identify the cause. ++ static bool has_dumped_without_crashing_for_empty_token = false; ++ static bool has_dumped_without_crashing_for_not_new_entry = false; ++ if (!has_dumped_without_crashing_for_empty_token && token.is_empty()) { ++ has_dumped_without_crashing_for_empty_token = true; ++ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token", ++ token.is_empty()); ++ SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string", ++ token.ToString()); ++ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry", ++ insert_result.is_new_entry); ++ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url", ++ request_url.GetString().Utf8()); ++ base::debug::DumpWithoutCrashing(); ++ } ++ if (!has_dumped_without_crashing_for_not_new_entry && ++ !insert_result.is_new_entry) { ++ has_dumped_without_crashing_for_not_new_entry = true; ++ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token", ++ token.is_empty()); ++ SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string", ++ token.ToString()); ++ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry", ++ insert_result.is_new_entry); ++ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url", ++ request_url.GetString().Utf8()); ++ base::debug::DumpWithoutCrashing(); ++ } ++} ++ ++void ServiceWorkerGlobalScope::RemoveItemFromRaceNetworkRequests( ++ int fetch_event_id) { ++ RaceNetworkRequestInfo* info = ++ race_network_request_fetch_event_ids_.Take(fetch_event_id); ++ if (info) { ++ race_network_requests_.erase(info->token); ++ } ++} ++ + } // namespace blink +diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h +index 46c431b395825..ac4cac0b1d8fb 100644 +--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h ++++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h +@@ -623,6 +623,14 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final + // ServiceWorker.FetchEvent.QueuingTime histogram. + void RecordQueuingTime(base::TimeTicks created_time); + ++ void InsertNewItemToRaceNetworkRequests( ++ int fetch_event_id, ++ const base::UnguessableToken& token, ++ mojo::PendingRemote ++ url_loader_factory, ++ const KURL& request_url); ++ void RemoveItemFromRaceNetworkRequests(int fetch_event_id); ++ + Member clients_; + Member registration_; + Member<::blink::ServiceWorker> service_worker_; +@@ -768,10 +776,17 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final + + blink::BlinkStorageKey storage_key_; + ++ struct RaceNetworkRequestInfo { ++ int fetch_event_id; ++ String token; ++ mojo::PendingRemote ++ url_loader_factory; ++ }; + // TODO(crbug.com/918702) WTF::HashMap cannot use base::UnguessableToken as a + // key. As a workaround uses WTF::String as a key instead. +- HashMap> +- race_network_request_loader_factories_; ++ HashMap> ++ race_network_requests_; ++ HashMap race_network_request_fetch_event_ids_; + + HeapMojoAssociatedRemote + remote_associated_interfaces_{this}; diff --git a/SOURCES/chromium-120-el7-clang-version-warning.patch b/SOURCES/chromium-120-el7-clang-version-warning.patch new file mode 100644 index 00000000..112da65b --- /dev/null +++ b/SOURCES/chromium-120-el7-clang-version-warning.patch @@ -0,0 +1,16 @@ +diff -up chromium-120.0.6099.56/third_party/libc++/src/include/__config.me chromium-120.0.6099.56/third_party/libc++/src/include/__config +--- chromium-120.0.6099.56/third_party/libc++/src/include/__config.me 2023-12-03 00:05:51.254483474 +0100 ++++ chromium-120.0.6099.56/third_party/libc++/src/include/__config 2023-12-03 00:06:05.872863168 +0100 +@@ -32,11 +32,7 @@ + + // Warn if a compiler version is used that is not supported anymore + // LLVM RELEASE Update the minimum compiler versions +-# if defined(_LIBCPP_CLANG_VER) +-# if _LIBCPP_CLANG_VER < 1500 +-# warning "Libc++ only supports Clang 15 and later" +-# endif +-# elif defined(_LIBCPP_APPLE_CLANG_VER) ++# if defined(_LIBCPP_APPLE_CLANG_VER) + # if _LIBCPP_APPLE_CLANG_VER < 1500 + # warning "Libc++ only supports AppleClang 15 and later" + # endif diff --git a/SOURCES/chromium-120-el7-extra-operator.patch b/SOURCES/chromium-120-el7-extra-operator.patch new file mode 100644 index 00000000..966e85f0 --- /dev/null +++ b/SOURCES/chromium-120-el7-extra-operator.patch @@ -0,0 +1,26 @@ +diff -up chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h.me chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h +--- chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h.me 2023-11-26 13:33:11.547409713 +0100 ++++ chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/starscan/metadata_allocator.h 2023-11-26 13:35:02.679363167 +0100 +@@ -40,6 +40,11 @@ class MetadataAllocator { + } + + template ++ bool operator==(const MetadataAllocator&) const { ++ return true; ++ } ++ ++ template + bool operator!=(const MetadataAllocator& o) { + return !operator==(o); + } +diff -up chromium-120.0.6099.35/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.me chromium-120.0.6099.35/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h +--- chromium-120.0.6099.35/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.me 2023-11-22 20:34:11.000000000 +0100 ++++ chromium-120.0.6099.35/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h 2023-11-26 13:30:38.961724653 +0100 +@@ -82,6 +82,7 @@ struct FxPartitionAllocAllocator { + } + + // There's no state, so they are all the same, ++ bool operator==(const FxPartitionAllocAllocator&) const { return true; } + bool operator==(const FxPartitionAllocAllocator& that) { return true; } + bool operator!=(const FxPartitionAllocAllocator& that) { return false; } + }; diff --git a/SOURCES/chromium-120-el7-old-libdrm.patch b/SOURCES/chromium-120-el7-old-libdrm.patch new file mode 100644 index 00000000..db6b8dd8 --- /dev/null +++ b/SOURCES/chromium-120-el7-old-libdrm.patch @@ -0,0 +1,18 @@ +diff -up chromium-120.0.6099.56/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm chromium-120.0.6099.56/ui/gfx/linux/drm_util_linux.cc +--- chromium-120.0.6099.56/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm 2023-11-29 22:40:44.000000000 +0100 ++++ chromium-120.0.6099.56/ui/gfx/linux/drm_util_linux.cc 2023-12-03 10:33:35.468492298 +0100 +@@ -6,6 +6,14 @@ + + #include + ++// the libdrm in EL-7 is too old to have this define ++#ifndef DRM_FORMAT_P010 ++#define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0') ++#endif ++#ifndef DRM_FORMAT_ABGR16161616F ++#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') ++#endif ++ + #include "base/notreached.h" + + namespace ui { diff --git a/SOURCES/chromium-120-gn-workaround-atspi.patch b/SOURCES/chromium-120-gn-workaround-atspi.patch new file mode 100644 index 00000000..72c7b7ec --- /dev/null +++ b/SOURCES/chromium-120-gn-workaround-atspi.patch @@ -0,0 +1,13 @@ +diff -up chromium-120.0.6099.35/build/config/linux/atspi2/BUILD.gn.me chromium-120.0.6099.35/build/config/linux/atspi2/BUILD.gn +--- chromium-120.0.6099.35/build/config/linux/atspi2/BUILD.gn.me 2023-11-26 16:14:15.364064126 +0100 ++++ chromium-120.0.6099.35/build/config/linux/atspi2/BUILD.gn 2023-11-26 16:41:16.877321990 +0100 +@@ -21,6 +21,9 @@ if (use_atk) { + minor = atspi_version[1] + micro = atspi_version[2] + ++ # gn workaround for the error: Assignment had no effect ++ print("ATSPI Version: $major.$minor.$micro") ++ + # ATSPI 2.49.90 now defines these for us and it's an error for us to + # redefine them on the compiler command line. + # See ATSPI 927344a34cd5bf81fc64da4968241735ecb4f03b diff --git a/SOURCES/chromium-119-missing-header-files.patch b/SOURCES/chromium-120-missing-header-files.patch similarity index 97% rename from SOURCES/chromium-119-missing-header-files.patch rename to SOURCES/chromium-120-missing-header-files.patch index c19a1f5d..377de0d1 100644 --- a/SOURCES/chromium-119-missing-header-files.patch +++ b/SOURCES/chromium-120-missing-header-files.patch @@ -377,17 +377,6 @@ diff -up chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layer static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num) { snprintf(outStr, strLen, "%u", static_cast(num)); -diff -up chromium-119.0.6045.105/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.missing-header-files chromium-119.0.6045.105/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h ---- chromium-119.0.6045.105/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.missing-header-files 2023-11-01 19:12:13.000000000 +0100 -+++ chromium-119.0.6045.105/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h 2023-11-06 14:34:01.812869068 +0100 -@@ -2388,6 +2388,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeV - #ifdef VMA_IMPLEMENTATION - #undef VMA_IMPLEMENTATION - -+#include - #include - #include - #include diff -up chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc --- chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files 2023-11-01 19:14:05.000000000 +0100 +++ chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc 2023-11-06 14:34:01.819869217 +0100 diff --git a/SOURCES/chromium-120-no_matching_constructor.patch b/SOURCES/chromium-120-no_matching_constructor.patch new file mode 100644 index 00000000..b1d987ad --- /dev/null +++ b/SOURCES/chromium-120-no_matching_constructor.patch @@ -0,0 +1,742 @@ +diff -up chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc +--- chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc.no_matching_constructor 2023-11-29 22:39:40.000000000 +0100 ++++ chromium-120.0.6099.56/base/metrics/persistent_histogram_allocator.cc 2023-12-03 17:31:25.748420189 +0100 +@@ -218,13 +218,13 @@ PersistentSparseHistogramDataManager::Lo + // The sample-record could be for any sparse histogram. Add the reference + // to the appropriate collection for later use. + if (found_id == match_id) { +- found_records.emplace_back(ref, value); ++ found_records.emplace_back() = {ref, value}; + found = true; + } else { + std::vector* samples = + GetSampleMapRecordsWhileLocked(found_id); + CHECK(samples); +- samples->emplace_back(ref, value); ++ samples->emplace_back() = {ref, value}; + } + } + +diff -up chromium-120.0.6099.56/base/trace_event/trace_log.cc.no_matching_constructor chromium-120.0.6099.56/base/trace_event/trace_log.cc +--- chromium-120.0.6099.56/base/trace_event/trace_log.cc.no_matching_constructor 2023-11-29 22:39:40.000000000 +0100 ++++ chromium-120.0.6099.56/base/trace_event/trace_log.cc 2023-12-03 17:31:25.749420208 +0100 +@@ -2191,8 +2191,8 @@ void TraceLog::SetTraceBufferForTesting( + #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) + void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) { + AutoLock lock(track_event_lock_); +- track_event_sessions_.emplace_back(args.internal_instance_index, *args.config, +- args.backend_type); ++ track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config, ++ args.backend_type}; + } + + void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) { +diff -up chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc +--- chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor 2023-11-29 22:39:47.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/content_settings/one_time_permission_provider.cc 2023-12-03 17:31:25.749420208 +0100 +@@ -226,8 +226,8 @@ void OneTimePermissionProvider::OnSuspen + + while (rule_iterator && rule_iterator->HasNext()) { + auto rule = rule_iterator->Next(); +- patterns_to_delete.emplace_back(setting_type, rule->primary_pattern, +- rule->secondary_pattern); ++ patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern, ++ rule->secondary_pattern}; + permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( + setting_type, + permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND); +@@ -329,8 +329,8 @@ void OneTimePermissionProvider::DeleteEn + auto rule = rule_iterator->Next(); + if (rule->primary_pattern.Matches(origin_gurl) && + rule->secondary_pattern.Matches(origin_gurl)) { +- patterns_to_delete.emplace_back( +- content_setting_type, rule->primary_pattern, rule->secondary_pattern); ++ patterns_to_delete.emplace_back() = { ++ content_setting_type, rule->primary_pattern, rule->secondary_pattern}; + permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( + content_setting_type, trigger_event); + } +diff -up chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc +--- chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor 2023-11-29 22:39:48.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc 2023-12-03 17:31:25.749420208 +0100 +@@ -67,8 +67,8 @@ base::flat_mapinsert(std::make_pair( + "supported.test", +- SAMLProfileAttributes("placeholderName", "placeholderDomain", +- "placeholderToken"))); ++ SAMLProfileAttributes{"placeholderName", "placeholderDomain", ++ "placeholderToken"})); + + // Extract domains and attributes from the command line switch. + const base::CommandLine& command_line = +diff -up chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc +--- chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor 2023-11-29 22:39:52.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2023-12-03 17:31:25.749420208 +0100 +@@ -474,10 +474,10 @@ void ChromeOmniboxClient::OnAutocomplete + alternative_nav_match); + + // Store the details necessary to open the omnibox match via browser commands. +- location_bar_->set_navigation_params(LocationBar::NavigationParams( ++ location_bar_->set_navigation_params(LocationBar::NavigationParams{ + destination_url, disposition, transition, match_selection_timestamp, + destination_url_entered_without_scheme, +- destination_url_entered_with_http_scheme)); ++ destination_url_entered_with_http_scheme}); + + if (browser_) { + auto navigation = chrome::OpenCurrentURL(browser_); +diff -up chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc +--- chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc.no_matching_constructor 2023-11-29 22:39:52.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/ui/safety_hub/menu_notification_service.cc 2023-12-03 17:31:25.756420342 +0100 +@@ -148,8 +148,8 @@ SafetyHubMenuNotificationService::GetNot + // The information related to showing the notification needs to be persisted + // as well. + SaveNotificationsToPrefs(); +- return MenuNotificationEntry(notification_to_show->GetNotificationCommandId(), +- notification_to_show->GetNotificationString()); ++ return MenuNotificationEntry{notification_to_show->GetNotificationCommandId(), ++ notification_to_show->GetNotificationString()}; + } + + absl::optional +diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc +--- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc 2023-12-03 17:31:25.749420208 +0100 +@@ -55,12 +55,12 @@ std::vector buttons; + if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) { +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME), +- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal); ++ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal}; + } +- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW), +- ButtonType::kAllow, ui::ButtonStyle::kTonal); ++ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW), ++ ButtonType::kAllow, ui::ButtonStyle::kTonal}; + return buttons; + } + +diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h +--- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h 2023-12-03 17:31:25.750420227 +0100 +@@ -86,6 +86,7 @@ class EmbeddedPermissionPromptBaseView : + struct RequestLineConfiguration { + const raw_ptr icon; + std::u16string message; ++ RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { } + }; + + struct ButtonConfiguration { +diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc +--- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc 2023-12-03 17:31:25.750420227 +0100 +@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR + std::vector + EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const { + std::vector buttons; +- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL), +- ButtonType::kPolicyOK, ui::ButtonStyle::kTonal); ++ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL), ++ ButtonType::kPolicyOK, ui::ButtonStyle::kTonal}; + return buttons; + } + +diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc +--- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc 2023-12-03 17:31:25.756420342 +0100 +@@ -63,18 +63,18 @@ EmbeddedPermissionPromptPreviouslyDenied + std::vector + EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const { + std::vector buttons; +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_NOT_ALLOWING), +- ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal); ++ ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal}; + + if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) { +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME), +- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal); ++ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal}; + } else { +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME), +- ButtonType::kAllow, ui::ButtonStyle::kTonal); ++ ButtonType::kAllow, ui::ButtonStyle::kTonal}; + } + return buttons; + } +diff -up chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc +--- chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.no_matching_constructor 2023-11-29 22:39:53.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc 2023-12-03 17:31:25.750420227 +0100 +@@ -57,13 +57,13 @@ EmbeddedPermissionPromptPreviouslyGrante + std::vector + EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const { + std::vector buttons; +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING), +- ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal); ++ ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal}; + +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING), +- ButtonType::kStopAllowing, ui::ButtonStyle::kTonal); ++ ButtonType::kStopAllowing, ui::ButtonStyle::kTonal}; + return buttons; + } + +diff -up chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc +--- chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc.no_matching_constructor 2023-11-29 22:39:54.000000000 +0100 ++++ chromium-120.0.6099.56/chrome/test/chromedriver/capabilities.cc 2023-12-03 17:31:25.750420227 +0100 +@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base:: + "'version' field of type string"); + } + +- brands.emplace_back(*brand, *version); ++ brands.emplace_back() = {*brand, *version}; + } + + client_hints.brands = std::move(brands); +@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base:: + "a 'version' field of type string"); + } + +- full_version_list.emplace_back(*brand, *version); ++ full_version_list.emplace_back() = {*brand, *version}; + } + + client_hints.full_version_list = std::move(full_version_list); +diff -up chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc +--- chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor 2023-11-29 22:39:57.000000000 +0100 ++++ chromium-120.0.6099.56/components/autofill/core/browser/contact_info_sync_util.cc 2023-12-03 17:31:25.750420227 +0100 +@@ -197,9 +197,9 @@ class ContactInfoProfileSetter { + CHECK(observations.empty()); + for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation : + metadata.observations()) { +- observations.emplace_back(proto_observation.type(), ++ observations.emplace_back() = {static_cast(proto_observation.type()), + ProfileTokenQuality::FormSignatureHash( +- proto_observation.form_hash())); ++ proto_observation.form_hash())}; + } + } + } +diff -up chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc.no_matching_constructor chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc +--- chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc.no_matching_constructor 2023-11-29 22:39:57.000000000 +0100 ++++ chromium-120.0.6099.56/components/autofill/core/browser/webdata/autofill_table.cc 2023-12-03 17:31:25.751420246 +0100 +@@ -1763,10 +1763,10 @@ std::unique_ptr Autofil + } + + base::span observations_data = s.ColumnBlob(3); +- field_type_values.emplace_back( ++ field_type_values.emplace_back() = { + type, s.ColumnString16(1), s.ColumnInt(2), + std::vector(observations_data.begin(), +- observations_data.end())); ++ observations_data.end())}; + + if (type == ADDRESS_HOME_COUNTRY) { + country_code = base::UTF16ToUTF8(s.ColumnString16(1)); +diff -up chromium-120.0.6099.56/components/password_manager/core/browser/password_manager.cc.no_matching_constructor chromium-120.0.6099.56/components/password_manager/core/browser/password_manager.cc +--- chromium-120.0.6099.56/components/password_manager/core/browser/password_manager.cc.no_matching_constructor 2023-11-29 22:39:58.000000000 +0100 ++++ chromium-120.0.6099.56/components/password_manager/core/browser/password_manager.cc 2023-12-03 17:31:25.751420246 +0100 +@@ -630,7 +630,7 @@ void PasswordManager::OnUserModifiedNonP + // |driver| might be empty on iOS or in tests. + int driver_id = driver ? driver->GetId() : 0; + possible_usernames_.Put( +- PossibleUsernameFieldIdentifier(driver_id, renderer_id), ++ PossibleUsernameFieldIdentifier{driver_id, renderer_id}, + PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()), + renderer_id, value, base::Time::Now(), driver_id, + autocomplete_attribute_has_username, is_likely_otp)); +diff -up chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc +--- chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100 ++++ chromium-120.0.6099.56/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc 2023-12-03 17:31:25.751420246 +0100 +@@ -1567,7 +1567,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut + + // Issue readbacks from the surfaces: + for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) { +- SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height()); ++ SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()}; + SkImageInfo dst_info = SkImageInfo::Make( + size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType, + kUnpremul_SkAlphaType); +diff -up chromium-120.0.6099.56/content/browser/download/save_package.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/download/save_package.cc +--- chromium-120.0.6099.56/content/browser/download/save_package.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100 ++++ chromium-120.0.6099.56/content/browser/download/save_package.cc 2023-12-03 17:31:25.752420265 +0100 +@@ -767,8 +767,8 @@ void SavePackage::Finish() { + if (download_) { + std::vector files; + for (auto& item : saved_success_items_) { +- files.emplace_back(item.second->full_path(), item.second->url(), +- item.second->referrer().url); ++ files.emplace_back() = {item.second->full_path(), item.second->url(), ++ item.second->referrer().url}; + } + download::DownloadSaveItemData::AttachItemData(download_, std::move(files)); + } +diff -up chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc +--- chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100 ++++ chromium-120.0.6099.56/content/browser/interest_group/interest_group_storage.cc 2023-12-03 17:31:25.752420265 +0100 +@@ -3002,10 +3002,10 @@ DoGetKAnonymityData(sql::Database& db, + + std::vector k_anon_data; + while (interest_group_kanon_query.Step()) { +- k_anon_data.emplace_back( ++ k_anon_data.emplace_back() = { + /*key=*/interest_group_kanon_query.ColumnString(0), + /*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1), +- /*last_updated=*/interest_group_kanon_query.ColumnTime(2)); ++ /*last_updated=*/interest_group_kanon_query.ColumnTime(2)}; + } + if (!interest_group_kanon_query.Succeeded()) { + return absl::nullopt; +diff -up chromium-120.0.6099.56/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-120.0.6099.56/content/browser/renderer_host/render_frame_host_impl.cc +--- chromium-120.0.6099.56/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor 2023-11-29 22:40:01.000000000 +0100 ++++ chromium-120.0.6099.56/content/browser/renderer_host/render_frame_host_impl.cc 2023-12-03 20:49:28.059042672 +0100 +@@ -8685,7 +8685,7 @@ void RenderFrameHostImpl::SendFencedFram + for (const blink::FencedFrame::ReportingDestination& destination : + destinations) { + SendFencedFrameReportingBeaconInternal( +- DestinationEnumEvent(event_type, event_data), destination, ++ DestinationEnumEvent{event_type, event_data}, destination, + /*from_renderer=*/true, attribution_reporting_runtime_features); + } + } +@@ -8720,7 +8720,7 @@ void RenderFrameHostImpl::SendFencedFram + } + + SendFencedFrameReportingBeaconInternal( +- DestinationURLEvent(destination_url), ++ DestinationURLEvent{destination_url}, + blink::FencedFrame::ReportingDestination::kBuyer, + /*from_renderer=*/true, attribution_reporting_runtime_features); + } +@@ -8820,7 +8820,7 @@ void RenderFrameHostImpl::MaybeSendFence + data = info->data; + } + initiator_rfh->SendFencedFrameReportingBeaconInternal( +- AutomaticBeaconEvent(event_type, data), destination, ++ AutomaticBeaconEvent{event_type, data}, destination, + /*from_renderer=*/false, attribution_reporting_features, + navigation_request.GetNavigationId()); + } +@@ -8832,7 +8832,7 @@ void RenderFrameHostImpl::MaybeSendFence + for (blink::FencedFrame::ReportingDestination destination : + info->destinations) { + initiator_rfh->SendFencedFrameReportingBeaconInternal( +- AutomaticBeaconEvent(event_type, info->data), destination, ++ AutomaticBeaconEvent{event_type, info->data}, destination, + /*from_renderer=*/false, info->attribution_reporting_runtime_features, + navigation_request.GetNavigationId()); + } +diff -up chromium-120.0.6099.56/net/dns/host_resolver_cache.cc.no_matching_constructor chromium-120.0.6099.56/net/dns/host_resolver_cache.cc +--- chromium-120.0.6099.56/net/dns/host_resolver_cache.cc.no_matching_constructor 2023-11-29 22:40:07.000000000 +0100 ++++ chromium-120.0.6099.56/net/dns/host_resolver_cache.cc 2023-12-03 17:31:25.754420303 +0100 +@@ -368,7 +368,7 @@ void HostResolverCache::Set( + + std::string domain_name = result->domain_name(); + entries_.emplace( +- Key(std::move(domain_name), network_anonymization_key), ++ Key{std::move(domain_name), network_anonymization_key}, + Entry(std::move(result), source, secure, staleness_generation)); + + if (entries_.size() > max_entries_) { +diff -up chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h +--- chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor 2023-11-29 22:40:12.000000000 +0100 ++++ chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/font_palette.h 2023-12-03 17:31:25.754420303 +0100 +@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ + Color::ColorSpace color_interpolation_space, + absl::optional hue_interpolation_method) { + return base::AdoptRef(new FontPalette( +- start, end, NonNormalizedPercentages(start_percentage, end_percentage), ++ start, end, NonNormalizedPercentages{start_percentage, end_percentage}, + normalized_percentage, alpha_multiplier, color_interpolation_space, + hue_interpolation_method)); + } +@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ + double normalized_percentage) { + double end_percentage = normalized_percentage * 100.0; + double start_percentage = 100.0 - end_percentage; +- return NonNormalizedPercentages(start_percentage, end_percentage); ++ return NonNormalizedPercentages{start_percentage, end_percentage}; + } + + double GetAlphaMultiplier() const { +diff -up chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc +--- chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor 2023-11-29 22:40:12.000000000 +0100 ++++ chromium-120.0.6099.56/third_party/blink/renderer/platform/fonts/palette_interpolation.cc 2023-12-03 17:31:25.755420323 +0100 +@@ -31,7 +31,7 @@ Vector + color_interpolation_space, hue_interpolation_method, start_color, + end_color, percentage, alpha_multiplier); + +- FontPalette::FontPaletteOverride result_color_record(i, result_color); ++ FontPalette::FontPaletteOverride result_color_record{static_cast(i), result_color}; + result_color_records.push_back(result_color_record); + } + return result_color_records; +diff -up chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp +--- chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.no_matching_constructor 2023-11-29 22:41:46.000000000 +0100 ++++ chromium-120.0.6099.56/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp 2023-12-03 17:31:25.756420342 +0100 +@@ -491,7 +491,7 @@ void CPDF_RenderStatus::ProcessClipPath( + } else { + m_pDevice->SetClip_PathFill( + *pPath, &mtObj2Device, +- CFX_FillRenderOptions(ClipPath.GetClipType(i))); ++ CFX_FillRenderOptions{ClipPath.GetClipType(i)}); + } + } + +diff -up chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h.no_matching_constructor chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h +--- chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h.no_matching_constructor 2023-11-29 22:40:44.000000000 +0100 ++++ chromium-120.0.6099.56/ui/base/wayland/color_manager_util.h 2023-12-03 17:31:25.755420323 +0100 +@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base:: + zcr_color_manager_v1_chromaticity_names, + PrimaryVersion>( + {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M, +- kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG, +- kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M, +- kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB, +- kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::BT470M, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::SMPTE240M, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::XYZ_D50, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::SMPTEST428_1, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::SMPTEST431_2, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::FILM, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}}); ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}}); + + // A map from the zcr_color_manager_v1 eotf_names enum values + // representing well-known EOTFs, to their equivalent TransferIDs. +@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe + zcr_color_manager_v1_eotf_names, + TransferVersion>({ + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, +- TransferVersion(gfx::ColorSpace::TransferID::LINEAR, +- kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::LINEAR, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB, +- TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR, +- TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709, +- TransferVersion(gfx::ColorSpace::TransferID::BT709, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::BT709, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087, +- TransferVersion(gfx::ColorSpace::TransferID::GAMMA24, +- kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA24, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB, + // This is ever so slightly inaccurate. The number ought to be + // 2.19921875f, not 2.2 +- TransferVersion(gfx::ColorSpace::TransferID::GAMMA22, +- kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA22, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ, +- TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG, +- TransferVersion(gfx::ColorSpace::TransferID::HLG, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::HLG, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M, +- TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M, +- TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1, +- TransferVersion( ++ TransferVersion{ + gfx::ColorSpace::TransferID::SMPTEST428_1, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG, +- TransferVersion(gfx::ColorSpace::TransferID::LOG, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::LOG, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT, +- TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4, +- TransferVersion( ++ TransferVersion{ + gfx::ColorSpace::TransferID::IEC61966_2_4, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG, +- TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10, +- TransferVersion(gfx::ColorSpace::TransferID::BT2020_10, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::BT2020_10, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12, +- TransferVersion(gfx::ColorSpace::TransferID::BT2020_12, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::BT2020_12, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS, +- TransferVersion( ++ TransferVersion{ + gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18, +- TransferVersion(gfx::ColorSpace::TransferID::GAMMA18, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA18, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28, +- TransferVersion(gfx::ColorSpace::TransferID::GAMMA28, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA28, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}}, + }); + + // A map from the SDR zcr_color_manager_v1 eotf_names enum values +@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe + constexpr auto kTransferMap = + base::MakeFixedFlatMap({ + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, +- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB, +- TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709, +- TransferFnVersion( ++ TransferFnVersion{ + SkNamedTransferFnExt::kRec709, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087, +- TransferFnVersion(gamma24, kDefaultSinceVersion)}, ++ TransferFnVersion{gamma24, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB, +- TransferFnVersion(SkNamedTransferFnExt::kA98RGB, +- kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFnExt::kA98RGB, ++ kDefaultSinceVersion}}, + }); + + // A map from the HDR zcr_color_manager_v1 eotf_names enum values +@@ -197,70 +197,70 @@ constexpr auto kTransferMap = + constexpr auto kHDRTransferMap = + base::MakeFixedFlatMap( + {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, +- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR, +- TransferFnVersion( ++ TransferFnVersion{ + SkNamedTransferFnExt::kSRGB, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ, +- TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG, +- TransferFnVersion(SkNamedTransferFn::kHLG, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)}, ++ TransferFnVersion{SkNamedTransferFn::kHLG, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10, +- TransferFnVersion( ++ TransferFnVersion{ + SkNamedTransferFnExt::kSRGBExtended1023Over510, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}}); ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}}); + + // A map from zcr_color_manager_v1 matrix_names enum values to + // gfx::ColorSpace::MatrixIDs. + constexpr auto kMatrixMap = + base::MakeFixedFlatMap( + {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB, +- MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709, +- MatrixVersion(gfx::ColorSpace::MatrixID::BT709, +- kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::BT709, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG, +- MatrixVersion( ++ MatrixVersion{ + gfx::ColorSpace::MatrixID::BT470BG, +- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL, +- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL, +- kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL, +- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL, +- kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC, +- MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG, +- MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG, +- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG, ++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX, +- MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX, +- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX, ++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR, +- MatrixVersion(gfx::ColorSpace::MatrixID::GBR, +- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::GBR, ++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M, +- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M, +- kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M, +- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M, +- kDefaultSinceVersion)}}); ++ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M, ++ kDefaultSinceVersion}}}); + + // A map from zcr_color_manager_v1 range_names enum values to + // gfx::ColorSpace::RangeIDs. + constexpr auto kRangeMap = + base::MakeFixedFlatMap( + {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED, +- RangeVersion(gfx::ColorSpace::RangeID::LIMITED, +- kDefaultSinceVersion)}, ++ RangeVersion{gfx::ColorSpace::RangeID::LIMITED, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL, +- RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)}, ++ RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED, +- RangeVersion(gfx::ColorSpace::RangeID::DERIVED, +- kDefaultSinceVersion)}}); ++ RangeVersion{gfx::ColorSpace::RangeID::DERIVED, ++ kDefaultSinceVersion}}}); + + zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity( + gfx::ColorSpace::PrimaryID primaryID, +@@ -283,4 +283,4 @@ zcr_color_manager_v1_eotf_names ToColorM + + } // namespace ui::wayland + +-#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_ +\ Kein Zeilenumbruch am Dateiende. ++#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_ +diff -up chromium-120.0.6099.56/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-120.0.6099.56/ui/gtk/gtk_ui.cc +--- chromium-120.0.6099.56/ui/gtk/gtk_ui.cc.no_matching_constructor 2023-11-29 22:40:44.000000000 +0100 ++++ chromium-120.0.6099.56/ui/gtk/gtk_ui.cc 2023-12-03 17:31:25.756420342 +0100 +@@ -1013,11 +1013,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi + GdkRectangle geometry; + gdk_monitor_get_geometry(monitor, &geometry); + int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor)); +- config.display_geometries.emplace_back( ++ config.display_geometries.emplace_back() = { + gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y, + monitor_scale * geometry.width, + monitor_scale * geometry.height), +- monitor_scale * font_scale); ++ static_cast(monitor_scale * font_scale)}; + } + return config; + } diff --git a/SOURCES/chromium-120-nullptr_t-without-namespace-std.patch b/SOURCES/chromium-120-nullptr_t-without-namespace-std.patch new file mode 100644 index 00000000..4043d6fb --- /dev/null +++ b/SOURCES/chromium-120-nullptr_t-without-namespace-std.patch @@ -0,0 +1,24 @@ +diff -up chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h.than chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h +--- chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h.than 2023-11-26 18:19:11.355117176 +0100 ++++ chromium-120.0.6099.35/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/strings/safe_sprintf.h 2023-11-26 18:20:21.090366036 +0100 +@@ -184,7 +184,7 @@ struct Arg { + // + // Warning: don't just do Arg(NULL) here because in some libcs, NULL is an + // alias for nullptr! +- Arg(nullptr_t p) : type(INT) { ++ Arg(std::nullptr_t p) : type(INT) { + integer.i = 0; + // Internally, SafeSprintf expects to represent nulls as integers whose + // width is equal to sizeof(NULL), which is not necessarily equal to +diff -up chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h.than chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h +--- chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h.than 2023-12-04 10:20:45.350540897 +0100 ++++ chromium-120.0.6099.56/third_party/blink/renderer/core/paint/fragment_data_iterator.h 2023-12-04 10:23:17.335339670 +0100 +@@ -21,7 +21,7 @@ class FragmentDataIteratorBase { + + public: + explicit FragmentDataIteratorBase(Head& head) : fragment_head_(head) {} +- explicit FragmentDataIteratorBase(nullptr_t) {} ++ explicit FragmentDataIteratorBase(std::nullptr_t) {} + + Data* GetFragmentData() const { + return !IsDone() ? &fragment_head_.at(idx_) : nullptr; diff --git a/SOURCES/chromium-120-split-threshold-for-reg-with-hint.patch b/SOURCES/chromium-120-split-threshold-for-reg-with-hint.patch new file mode 100644 index 00000000..e80ed715 --- /dev/null +++ b/SOURCES/chromium-120-split-threshold-for-reg-with-hint.patch @@ -0,0 +1,28 @@ +diff -up chromium-120.0.6099.35/build/config/compiler/BUILD.gn.than chromium-120.0.6099.35/build/config/compiler/BUILD.gn +--- chromium-120.0.6099.35/build/config/compiler/BUILD.gn.than 2023-11-26 17:02:25.647022746 +0100 ++++ chromium-120.0.6099.35/build/config/compiler/BUILD.gn 2023-11-26 17:15:58.025585358 +0100 +@@ -616,24 +616,6 @@ config("compiler") { + } + } + +- # TODO(crbug.com/1488374): This causes binary size growth and potentially +- # other problems. +- # TODO(crbug.com/1491036): This isn't supported by Cronet's mainline llvm version. +- if (default_toolchain != "//build/toolchain/cros:target" && +- !llvm_android_mainline) { +- cflags += [ +- "-mllvm", +- "-split-threshold-for-reg-with-hint=0", +- ] +- if (use_thin_lto && is_a_target_toolchain) { +- if (is_win) { +- ldflags += [ "-mllvm:-split-threshold-for-reg-with-hint=0" ] +- } else { +- ldflags += [ "-Wl,-mllvm,-split-threshold-for-reg-with-hint=0" ] +- } +- } +- } +- + # TODO(crbug.com/1235145): Investigate why/if this should be needed. + if (is_win) { + cflags += [ "/clang:-ffp-contract=off" ] diff --git a/SOURCES/chromium-120-system-libusb.patch b/SOURCES/chromium-120-system-libusb.patch new file mode 100644 index 00000000..0c5bd59e --- /dev/null +++ b/SOURCES/chromium-120-system-libusb.patch @@ -0,0 +1,42 @@ +diff -up chromium-120.0.6099.35/build/linux/unbundle/libusb.gn.system-libusb chromium-120.0.6099.35/build/linux/unbundle/libusb.gn +--- chromium-120.0.6099.35/build/linux/unbundle/libusb.gn.system-libusb 2023-11-22 20:31:32.000000000 +0100 ++++ chromium-120.0.6099.35/build/linux/unbundle/libusb.gn 2023-11-26 11:46:14.559263668 +0100 +@@ -1,3 +1,27 @@ ++# Copyright 2016 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/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("system_libusb") { ++ packages = [ "libusb-1.0" ] ++} ++ ++shim_headers("libusb_shim") { ++ root_path = "src/libusb" ++ headers = [ ++ "libusb.h", ++ ] ++} ++ ++source_set("libusb") { ++ deps = [ ++ ":libusb_shim", ++ ] ++ public_configs = [ ":system_libusb" ] ++} + import("//build/config/linux/pkg_config.gni") + import("//build/shim_headers.gni") + +diff -up chromium-120.0.6099.35/build/linux/unbundle/replace_gn_files.py.system-libusb chromium-120.0.6099.35/build/linux/unbundle/replace_gn_files.py +--- chromium-120.0.6099.35/build/linux/unbundle/replace_gn_files.py.system-libusb 2023-11-26 11:46:14.559263668 +0100 ++++ chromium-120.0.6099.35/build/linux/unbundle/replace_gn_files.py 2023-11-26 12:05:20.542665877 +0100 +@@ -56,6 +56,7 @@ REPLACEMENTS = { + 'libevent': 'third_party/libevent/BUILD.gn', + 'libjpeg': 'third_party/libjpeg.gni', + 'libpng': 'third_party/libpng/BUILD.gn', ++ 'libusb': 'third_party/libusb/BUILD.gn', + 'libsecret' : 'third_party/libsecret/BUILD.gn', + 'libusb': 'third_party/libusb/BUILD.gn', + 'libvpx': 'third_party/libvpx/BUILD.gn', diff --git a/SOURCES/chromium-117-typename.patch b/SOURCES/chromium-120-typename.patch similarity index 83% rename from SOURCES/chromium-117-typename.patch rename to SOURCES/chromium-120-typename.patch index d3b00e73..9a2d878b 100644 --- a/SOURCES/chromium-117-typename.patch +++ b/SOURCES/chromium-120-typename.patch @@ -1,3 +1,23 @@ +--- chromium-120.0.6099.56/base/containers/map_util.h.me 2023-12-02 19:00:19.696801563 +0100 ++++ chromium-120.0.6099.56/base/containers/map_util.h 2023-12-02 19:00:47.049337547 +0100 +@@ -42,7 +42,7 @@ + template >::element_type> ++ typename std::pointer_traits>::element_type> + constexpr const MappedElementType* FindPtrOrNull(const Map& map, + const Key& key) { + auto it = map.find(key); +@@ -58,7 +58,7 @@ + template >::element_type> ++ typename std::pointer_traits>::element_type> + constexpr MappedElementType* FindPtrOrNull(Map& map, const Key& key) { + auto it = map.find(key); + return it != map.end() ? std::to_address(it->second) : nullptr; diff -up chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc --- chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me 2023-06-17 14:50:56.342591702 +0200 +++ chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc 2023-06-17 14:57:48.024377375 +0200 @@ -162,3 +182,24 @@ diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fe // Remove fetcher under key from requests_in_flight_. void Remove(KeyType key); +diff -up chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h.me chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h +--- chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h.me 2023-12-04 00:29:35.197209538 +0100 ++++ chromium-120.0.6099.56/third_party/blink/renderer/bindings/core/v8/async_iterable.h 2023-12-04 00:30:24.436233249 +0100 +@@ -220,7 +220,7 @@ class PairAsyncIterable { + private: + virtual IterationSource* CreateIterationSource( + ScriptState* script_state, +- IterationSource::Kind kind, ++ typename IterationSource::Kind kind, + ExceptionState& exception_state) = 0; + }; + +@@ -262,7 +262,7 @@ class ValueAsyncIterable { + private: + virtual IterationSource* CreateIterationSource( + ScriptState* script_state, +- IterationSource::Kind kind, ++ typename IterationSource::Kind kind, + ExceptionState& exception_state) = 0; + }; + diff --git a/SOURCES/chromium-120-workaround_clang_bug-structured_binding.patch b/SOURCES/chromium-120-workaround_clang_bug-structured_binding.patch new file mode 100644 index 00000000..b06e29f2 --- /dev/null +++ b/SOURCES/chromium-120-workaround_clang_bug-structured_binding.patch @@ -0,0 +1,51 @@ +diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc +--- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding 2023-06-07 21:48:37.000000000 +0200 ++++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc 2023-06-17 16:53:20.216628557 +0200 +@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui + void CdmPromiseAdapter::Clear(ClearReason reason) { + // Reject all outstanding promises. + DCHECK(thread_checker_.CalledOnValidThread()); +- for (auto& [promise_id, promise] : promises_) { ++ for (auto& [p_i, p_e] : promises_) { ++ auto& promise_id = p_i; ++ auto& promise = p_e; + TRACE_EVENT_NESTABLE_ASYNC_END1( + "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id), + "status", "cleared"); +diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc +--- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me 2023-06-19 08:04:02.287072722 +0200 ++++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc 2023-06-19 08:18:24.576814950 +0200 +@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP + return; + } + +- auto [document_url, key, callback] = std::move(*request); ++ auto [d_u, key, callback] = std::move(*request); ++ auto document_url = d_u; + + DCHECK(document_url.is_valid()); + TRACE_EVENT1("ServiceWorker", +diff -up chromium-120.0.6099.56/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.me chromium-120.0.6099.56/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc +--- chromium-120.0.6099.56/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.me 2023-12-03 22:17:50.922083200 +0100 ++++ chromium-120.0.6099.56/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc 2023-12-03 22:22:55.437484343 +0100 +@@ -3447,7 +3447,8 @@ void GridLayoutAlgorithm::PlaceGridItems + DCHECK(out_row_break_between); + + const auto& container_space = ConstraintSpace(); +- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData(); ++ const auto& [grid_items, l_d, tree_size] = sizing_tree.TreeRootData(); ++ const auto& layout_data = l_d; + + const auto* cached_layout_subtree = container_space.GetGridLayoutSubtree(); + const auto container_writing_direction = +@@ -3611,7 +3612,9 @@ void GridLayoutAlgorithm::PlaceGridItems + + // TODO(ikilpatrick): Update |SetHasSeenAllChildren| and early exit if true. + const auto& constraint_space = ConstraintSpace(); +- const auto& [grid_items, layout_data, tree_size] = sizing_tree.TreeRootData(); ++ const auto& [g_i, l_d, tree_size] = sizing_tree.TreeRootData(); ++ const auto& grid_items = g_i; ++ const auto& layout_data = l_d; + + const auto* cached_layout_subtree = constraint_space.GetGridLayoutSubtree(); + const auto container_writing_direction = diff --git a/SOURCES/chromium-85.0.4183.83-el7-old-libdrm.patch b/SOURCES/chromium-85.0.4183.83-el7-old-libdrm.patch deleted file mode 100644 index d7d7f6e6..00000000 --- a/SOURCES/chromium-85.0.4183.83-el7-old-libdrm.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up chromium-85.0.4183.83/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm chromium-85.0.4183.83/ui/gfx/linux/drm_util_linux.cc ---- chromium-85.0.4183.83/ui/gfx/linux/drm_util_linux.cc.el7-old-libdrm 2020-08-31 09:38:46.043993882 -0400 -+++ chromium-85.0.4183.83/ui/gfx/linux/drm_util_linux.cc 2020-08-31 09:39:21.599906318 -0400 -@@ -6,6 +6,11 @@ - - #include - -+// the libdrm in EL-7 is too old to have this define -+#ifndef DRM_FORMAT_P010 -+#define DRM_FORMAT_P010 DRM_FORMAT_INVALID -+#endif -+ - #include "base/notreached.h" - - namespace ui { diff --git a/SOURCES/chromium-99.0.4844.51-el7-extra-operator.patch b/SOURCES/chromium-99.0.4844.51-el7-extra-operator.patch deleted file mode 100644 index 34c89d00..00000000 --- a/SOURCES/chromium-99.0.4844.51-el7-extra-operator.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -up chromium-99.0.4844.51/base/allocator/partition_allocator/starscan/metadata_allocator.h.el7-extra-operator-equalequal chromium-99.0.4844.51/base/allocator/partition_allocator/starscan/metadata_allocator.h ---- chromium-99.0.4844.51/base/allocator/partition_allocator/starscan/metadata_allocator.h.el7-extra-operator-equalequal 2022-03-05 18:37:25.979241754 -0500 -+++ chromium-99.0.4844.51/base/allocator/partition_allocator/starscan/metadata_allocator.h 2022-03-05 18:37:25.979241754 -0500 -@@ -39,6 +39,11 @@ class MetadataAllocator { - } - - template -+ bool operator==(const MetadataAllocator&) const { -+ return true; -+ } -+ -+ template - bool operator!=(const MetadataAllocator& o) { - return !operator==(o); - } -diff -up chromium-99.0.4844.51/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.el7-extra-operator-equalequal chromium-99.0.4844.51/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h ---- chromium-99.0.4844.51/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h.el7-extra-operator-equalequal 2022-03-06 19:14:20.892513442 -0500 -+++ chromium-99.0.4844.51/third_party/pdfium/core/fxcrt/fx_memory_wrappers.h 2022-03-06 19:15:40.412060574 -0500 -@@ -70,6 +70,7 @@ struct FxPartitionAllocAllocator { - } - - // There's no state, so they are all the same, -+ bool operator==(const FxPartitionAllocAllocator&) const { return true; } - bool operator==(const FxPartitionAllocAllocator& that) { return true; } - bool operator!=(const FxPartitionAllocAllocator& that) { return false; } - }; diff --git a/SPECS/chromium.spec b/SPECS/chromium.spec index f54497a2..35e2d782 100644 --- a/SPECS/chromium.spec +++ b/SPECS/chromium.spec @@ -25,8 +25,7 @@ # enable|disble bootstrap %global bootstrap 0 - -# workaround for broken gn on epel8/9 +# workaround for broken gn on epel 8/9 %if 0%{?rhel} == 8 || 0%{?rhel} == 9 %global bootstrap 1 %endif @@ -96,6 +95,7 @@ # va-api only supported in rhel >= 9 and fedora %global use_vaapi 1 + # v4l2_codec only enable for fedora aarch64 %global use_v4l2_codec 0 @@ -141,12 +141,18 @@ # enable|disable debuginfo %global enable_debug 1 +# disable debuginfo due to a bug in debugedit on el7 +# error: canonicalization unexpectedly shrank by one character +# https://bugzilla.redhat.com/show_bug.cgi?id=304121 +%if 0%{?rhel} == 7 +%global enable_debug 0 +%endif %if ! %{enable_debug} %global debug_package %{nil} -%global debug_level 0 -%else -%global debug_level 1 -# workaround for the error empty file debugsource +%global debug_level 0 +%else +%global debug_level 0 +# workaround for the error empty file debugsource %undefine _debugsource_packages %endif @@ -173,9 +179,20 @@ %global __provides_exclude_from ^(%{chromium_path}/.*\\.so|%{chromium_path}/.*\\.so.*)$ %global __requires_exclude ^(%{chromium_path}/.*\\.so|%{chromium_path}/.*\\.so.*)$ +# enable|disable use_custom_libcxx +%global use_custom_libcxx 1 + # enable clang by default %global clang 1 +# enable|disable control flow integrity support +%global cfi 0 +%if %{clang} +%if 0%{?fedora} || 0%{?rhel} > 7 +%global cfi 1 +%endif +%endif + # set correct toolchain %if %{clang} %global toolchain clang @@ -203,9 +220,10 @@ %global bundlepylibs 0 # RHEL 7.9 dropped minizip. -# It exists everywhere else though. +# enable bundleminizip for Fedora > 39 due to switch to minizip-ng +# which breaks the build %global bundleminizip 0 -%if 0%{?rhel} == 7 +%if 0%{?rhel} == 7 || 0%{?fedora} > 39 %global bundleminizip 1 %endif @@ -216,6 +234,12 @@ %global use_qt 0 %endif +%if 0%{?rhel} > 9 || 0%{?fedora} +%global use_qt6 1 +%else +%global use_qt6 0 +%endif + # enable gtk3 by default %global gtk3 1 @@ -259,8 +283,8 @@ # Build with GOST patches # https://github.com/deemru/chromium-gost/ %global gost_build 1 -%define chromium_gost_commit 2c81b2fed144086340d5220ef707350b7fb18ec9 -%define msspi_commit 3c50c2d33a4bdf4effb01aaeb9ff5d5b67635a18 +%define chromium_gost_commit acea4dd67875ea46a340f6fd2274c631ab132523 +%define msspi_commit 061bce0709523afaad3ea4ffa7c0bff96b5592c0 %define chromium_path_gost %{_builddir}/chromium-gost %endif @@ -298,8 +322,8 @@ %endif Name: chromium%{chromium_channel} -Version: 119.0.6045.199 -Release: 1%{?dist}.inferit.2 +Version: 120.0.6099.62 +Release: 2%{?dist}.inferit Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use Url: http://www.chromium.org/Home License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only) @@ -311,7 +335,7 @@ Patch0: chromium-70.0.3538.67-sandbox-pie.patch Patch1: chromium-115-initial_prefs-etc-path.patch # system libusb -Patch2: chromium-119-system-libusb.patch +Patch2: chromium-120-system-libusb.patch # Do not mangle zlib Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch @@ -355,13 +379,14 @@ Patch89: chromium-116-system-brotli.patch # disable GlobalMediaControlsCastStartStop to avoid crash # when using the address bar media player button -Patch90: chromium-119-disable-GlobalMediaControlsCastStartStop.patch +# it works with use_custom_libcxx=true +Patch90: chromium-120-disable-GlobalMediaControlsCastStartStop.patch # patch for using system opus Patch91: chromium-108-system-opus.patch # need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL -Patch100: chromium-108-el7-include-fcntl-memfd.patch +Patch100: chromium-116-el7-include-fcntl-memfd.patch # add define HAVE_STRNDUP on epel7 Patch101: chromium-108-el7-wayland-strndup-error.patch @@ -375,7 +400,7 @@ Patch104: chromium-99.0.4844.51-epel7-old-cups.patch # libdrm on EL7 is rather old and chromium assumes newer # This gets us by for now -Patch105: chromium-85.0.4183.83-el7-old-libdrm.patch +Patch105: chromium-120-el7-old-libdrm.patch # error: no matching function for call to 'std::basic_string::erase(std::basic_string::const_iterator, __gnu_cxx::__normal_iterator >&)' # 33 | property_name.erase(property_name.cbegin(), cur); @@ -383,18 +408,24 @@ Patch105: chromium-85.0.4183.83-el7-old-libdrm.patch Patch106: chromium-98.0.4758.80-epel7-erase-fix.patch # Add additional operator== to make el7 happy. -Patch107: chromium-99.0.4844.51-el7-extra-operator.patch +Patch107: chromium-120-el7-extra-operator.patch # old v4l2 on el7 Patch108: chromium-118-el7_v4l2_quantization.patch # workaround for clang bug on el7 Patch109: chromium-114-wireless-el7.patch Patch110: chromium-115-buildflag-el7.patch +Patch111: chromium-116-constexpr.patch +Patch112: chromium-117-el7-default_constructor.patch +# old clang on el7 + +Patch113: chromium-120-el7-clang-version-warning.patch +Patch114: chromium-120-el7-clang-build-failure.patch # system ffmpeg -# need for old ffmpeg 5.x on epel9 and fedora 37 -Patch114: chromium-107-ffmpeg-5.x-duration.patch +# need for old ffmpeg 5.x on epel9 and fedora 37 +Patch115: chromium-107-ffmpeg-5.x-duration.patch # disable the check -Patch115: chromium-107-proprietary-codecs.patch +Patch116: chromium-107-proprietary-codecs.patch # fix tab crash with SIGTRAP error when using system ffmpeg Patch117: chromium-118-sigtrap_system_ffmpeg.patch @@ -406,35 +437,32 @@ Patch140: chromium-118-dma_buf_export_sync_file-conflict.patch # fixes for old clang version in fedora < 38 end epel < 8 (old clang <= 15) # compiler build errors, no matching constructor for initialization -Patch300: chromium-119-no_matching_constructor.patch +Patch300: chromium-120-no_matching_constructor.patch Patch301: chromium-115-compiler-SkColor4f.patch # workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826 -Patch302: chromium-118-workaround_clang_bug-structured_binding.patch +Patch302: chromium-120-workaround_clang_bug-structured_binding.patch # missing typename -Patch303: chromium-117-typename.patch +Patch303: chromium-120-typename.patch # error: invalid operands to binary expression Patch304: chromium-117-string-convert.patch -# error: constexpr constructor's 3rd parameter type 'std::string' (aka 'basic_string') is not a literal type -Patch305: chromium-119-constexpr.patch - Patch306: chromium-119-assert.patch -# disable memory tagging for epel8 on aarch64 due to new feature IFUNC-Resolver not supported -# in old glibc < 2.30, error: fatal error: 'sys/ifunc.h' file not found -Patch307: chromium-118-arm64-memory_tagging.patch +# disable memory tagging in epel7 and epel8 on aarch64 due to new feature IFUNC-Resolver +# not supported in old glibc < 2.30, error: fatal error: 'sys/ifunc.h' file not found +Patch307: chromium-120-arm64-memory_tagging.patch # missing include header files -Patch310: chromium-119-missing-header-files.patch +Patch310: chromium-120-missing-header-files.patch # clang warnings Patch311: chromium-115-clang-warnings.patch -# imp module is removed in python-3.12 in fedora 39 and newer -Patch312: chromium-118-python-3.12-deprecated.patch +# enable fstack-protector-strong +Patch312: chromium-119-fstack-protector-strong.patch # build error Patch351: chromium-117-mnemonic-error.patch @@ -444,15 +472,16 @@ Patch351: chromium-117-mnemonic-error.patch # Disable BTI until this is fixed upstream. Patch352: chromium-117-workaround_for_crash_on_BTI_capable_system.patch -# upstream patches -Patch400: chromium-119-dont-redefine-ATSPI-version-macros.patch -# fix build error, nullptr_t without namespace std:: -Patch401: chromium-119-nullptr_t-without-namespace-std.patch -# workaround for buggy Nvidia drivers fail to return FDs for planes -# of a BO which had already an imported BO destroyed before. -Patch402: chromium-119-nvidia-use-separate-bo-to-verify-modifier.patch -# hide UseChromeOSDirectVideoDecoder flag on VA-API devices to avoid crashes -Patch403: chromium-119-hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices.patch +# gn workaround for the error: Assignment had no effect +Patch353: chromium-120-gn-workaround-atspi.patch +# remove flag split-threshold-for-reg-with-hint, it' not supported in clang <= 17 +Patch354: chromium-120-split-threshold-for-reg-with-hint.patch +# error: unknown type name 'nullptr_t' +Patch355: chromium-120-nullptr_t-without-namespace-std.patch +# disable FFmpegAllowLists by default to allow external ffmpeg +patch356: chromium-120-disable-FFmpegAllowLists.patch +# remove ldflags -Wl,-mllvm,-disable-auto-upgrade-debug-info which is not supported +Patch357: chromium-120-clang16-disable-auto-upgrade-debug-info.patch #Patch500: 0001-Yandex-as-default-search-engine.patch # MSVSphere @@ -460,6 +489,8 @@ Patch501: 0001-Added-Russian-description-and-summary-for-gnome-soft.patch # Yandex Search by default Patch502: 0001-Added-Yandex-search-bar-as-default-on-newtab-and-new.patch +# upstream patches + # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ # For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm @@ -523,7 +554,7 @@ BuildRequires: %{toolset}-%{dts_version}-libatomic-devel %endif %else %if 0%{?rhel} == 7 || 0%{?rhel} == 8 -BuildRequires: %{toolset}-%{dts_version}-toolchain, %{toolset}-%{dts_version}-libatomic-devel +BuildRequires: %{toolset}-%{dts_version}-binutils, %{toolset}-%{dts_version}-libatomic-devel %endif %if 0%{?fedora} || 0%{?rhel} > 8 BuildRequires: gcc-c++ @@ -572,6 +603,15 @@ BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Widgets) %endif +%if %{use_qt6} +BuildRequires: pkgconfig(Qt6Core) +BuildRequires: pkgconfig(Qt6Widgets) +%endif + +%if %{cfi} +BuildRequires: compiler-rt +%endif + %if ! %{bundleharfbuzz} BuildRequires: harfbuzz-devel >= 2.4.0 %endif @@ -1040,11 +1080,8 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %patch -P20 -p1 -b .disable-font-test -%if 0%{?fedora} || 0%{?rhel} >= 8 -%patch -P52 -p1 -b .unbundle-zlib -%endif - %if ! %{bundleminizip} +%patch -P52 -p1 -b .unbundle-zlib %patch -P61 -p1 -b .system-minizip %endif @@ -1057,7 +1094,9 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %patch -P89 -p1 -b .system-brotli %endif +%if ! %{use_custom_libcxx} %patch -P90 -p1 -b .disable-GlobalMediaControlsCastStartStop +%endif %if ! %{bundleopus} %patch -P91 -p1 -b .system-opus @@ -1070,9 +1109,9 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena #%%if ! %{bundleffmpegfree} #%%if 0%{?rhel} == 9 || 0%%{?fedora} == 37 -#%%patch -P114 -p1 -b .ffmpeg-5.x-duration +#%%patch -P115 -p1 -b .ffmpeg-5.x-duration #%%endif -#%%patch -P115 -p1 -b .prop-codecs +#%%patch -P116 -p1 -b .prop-codecs #%%patch -P117 -p1 -b .sigtrap_system_ffmpeg #%%endif @@ -1088,6 +1127,10 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %patch -P108 -p1 -b .el7_v4l2_quantization %patch -P109 -p1 -b .wireless %patch -P110 -p1 -b .buildflag-el7 +%patch -P111 -p1 -b .constexpr +%patch -P112 -p1 -b .default_constructor +%patch -P113 -p1 -b .el7-clang-version-warning +%patch -P114 -p1 -R -b .clang-build-failure %endif %if 0%{?rhel} == 8 || 0%{?rhel} == 9 @@ -1105,7 +1148,6 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %patch -P302 -p1 -b .workaround_clang_bug-structured_binding %patch -P303 -p1 -b .typename %patch -P304 -p1 -b .string-convert -%patch -P305 -p1 -b .constexpr %patch -P306 -p1 -b .assert %endif %endif @@ -1118,9 +1160,7 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %patch -P310 -p1 -b .missing-header-files %patch -P311 -p1 -b .clang-warnings -%if 0%{?rhel} > 9 || 0%{?fedora} > 38 -%patch -P312 -p1 -b .python-3.12-deprecated -%endif +%patch -P312 -p1 -b .fstack-protector-strong %patch -P351 -p1 -b .mnemonic-error @@ -1128,14 +1168,19 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %patch -P352 -p1 -b .workaround_for_crash_on_BTI_capable_system %endif -%patch -P400 -p1 -R -b .revert-dont-redefine-ATSPI-version-macros.patch -%patch -P401 -p1 -b .nullptr_t-without-namespace-std -%patch -P402 -p1 -b .nvidia-use-separate-bo-to-verify-modifiers -%patch -P403 -p1 -b .UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices +%patch -P353 -p1 -b .gn-workaround-atspi +%patch -P354 -p1 -b .revert-split-threshold-for-reg-with-hint +%if ! %{use_custom_libcxx} +%patch -P355 -p1 -b .nullptr_t-without-namespace-std +%endif +%patch -P356 -p1 -b .disable-FFmpegAllowLists +%patch -P357 -p1 -b .clang16-disable-auto-upgrade-debug-info #%patch -P500 -p1 -b .Yandex-as-default-search-engine %patch -P501 -p1 -b .Added-Russian-description-and-summary-for-gnome-soft +%if %{with gost} %patch -P502 -p1 -b .Yandex-as-default-search-engine +%endif # We patch Chromium to open chrome://new-tab-page even with non-Google search engines # and to use Yandex by default instead of Google for most of our users, @@ -1205,9 +1250,6 @@ sed -i 's/getenv("CHROME_VERSION_EXTRA")/"%{?gost_build: GOST TLS via CryptoPro} # Fix hardcoded path in remoting code sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' remoting/host/setup/daemon_controller_delegate_linux.cc -# change moc to moc-qt5 for fedora -sed -i 's|moc|moc-qt5|g' ui/qt/moc_wrapper.py - %build # utf8 issue on epel7, Internal parsing error 'ascii' codec can't # decode byte 0xe2 in position 474: ordinal not in range(128) @@ -1277,10 +1319,16 @@ CHROMIUM_CORE_GN_DEFINES+=' enable_nacl=false' CHROMIUM_CORE_GN_DEFINES+=' system_libdir="%{_lib}"' %if %{official_build} -CHROMIUM_CORE_GN_DEFINES+=' is_official_build=true use_thin_lto=false is_cfi=false chrome_pgo_phase=0 use_debug_fission=true' +CHROMIUM_CORE_GN_DEFINES+=' is_official_build=true chrome_pgo_phase=0 use_debug_fission=true' sed -i 's|OFFICIAL_BUILD|GOOGLE_CHROME_BUILD|g' tools/generate_shim_headers/generate_shim_headers.py %endif +%if %{cfi} +CHROMIUM_CORE_GN_DEFINES+=' use_thin_lto=true is_cfi=true' +%else +CHROMIUM_CORE_GN_DEFINES+=' use_thin_lto=false is_cfi=false' +%endif + %if %{useapikey} CHROMIUM_CORE_GN_DEFINES+=' google_api_key="%{api_key}"' %endif @@ -1303,7 +1351,7 @@ CHROMIUM_CORE_GN_DEFINES+=' use_lld=false' # disable rust, it's only using for testing CHROMIUM_CORE_GN_DEFINES+=' enable_rust=false' -CHROMIUM_CORE_GN_DEFINES+=' use_sysroot=false disable_fieldtrial_testing_config=true rtc_enable_symbol_export=true' +CHROMIUM_CORE_GN_DEFINES+=' use_sysroot=false disable_fieldtrial_testing_config=true' %if %{use_gold} CHROMIUM_CORE_GN_DEFINES+=' use_gold=true' @@ -1319,7 +1367,11 @@ CHROMIUM_CORE_GN_DEFINES+=' icu_use_data_file=true' CHROMIUM_CORE_GN_DEFINES+=' target_os="linux"' CHROMIUM_CORE_GN_DEFINES+=' current_os="linux"' CHROMIUM_CORE_GN_DEFINES+=' treat_warnings_as_errors=false' +%if %{use_custom_libcxx} +CHROMIUM_CORE_GN_DEFINES+=' use_custom_libcxx=true' +%else CHROMIUM_CORE_GN_DEFINES+=' use_custom_libcxx=false' +%endif CHROMIUM_CORE_GN_DEFINES+=' enable_iterator_debugging=false' CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false' CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false enable_perfetto_unittests=false' @@ -1342,11 +1394,17 @@ CHROMIUM_BROWSER_GN_DEFINES+=' ffmpeg_branding="Chromium" proprietary_codecs=fal CHROMIUM_BROWSER_GN_DEFINES+=' use_kerberos=true' %if %{use_qt} -CHROMIUM_BROWSER_GN_DEFINES+=' use_qt=true' +CHROMIUM_BROWSER_GN_DEFINES+=' use_qt=true moc_qt5_path="%{_libdir}/qt5/bin/"' %else CHROMIUM_BROWSER_GN_DEFINES+=' use_qt=false' %endif +%if %{use_qt6} +CHROMIUM_BROWSER_GN_DEFINES+=' use_qt6=true moc_qt6_path="%{_libdir}/qt6/libexec/"' +%else +CHROMIUM_BROWSER_GN_DEFINES+=' use_qt6=false' +%endif + CHROMIUM_BROWSER_GN_DEFINES+=' use_gio=true use_pulseaudio=true' CHROMIUM_BROWSER_GN_DEFINES+=' enable_hangout_services_extension=true' CHROMIUM_BROWSER_GN_DEFINES+=' use_aura=true' @@ -1378,7 +1436,7 @@ CHROMIUM_HEADLESS_GN_DEFINES+=' v8_use_external_startup_data=false enable_print_ CHROMIUM_HEADLESS_GN_DEFINES+=' use_alsa=false use_bluez=false use_cups=false use_dbus=false use_gio=false use_kerberos=false' CHROMIUM_HEADLESS_GN_DEFINES+=' use_libpci=false use_pulseaudio=false use_udev=false rtc_use_pipewire=false' CHROMIUM_HEADLESS_GN_DEFINES+=' v8_enable_lazy_source_positions=false use_glib=false use_gtk=false use_pangocairo=false' -CHROMIUM_HEADLESS_GN_DEFINES+=' use_qt=false is_component_build=false enable_ffmpeg_video_decoders=false media_use_ffmpeg=false' +CHROMIUM_HEADLESS_GN_DEFINES+=' use_qt=false use_qt6=false is_component_build=false enable_ffmpeg_video_decoders=false media_use_ffmpeg=false' CHROMIUM_HEADLESS_GN_DEFINES+=' media_use_libvpx=false proprietary_codecs=false' export CHROMIUM_HEADLESS_GN_DEFINES @@ -1541,6 +1599,10 @@ pushd %{builddir} cp -a libqt5_shim.so %{buildroot}%{chromium_path} %endif + %if %{use_qt6} + cp -a libqt6_shim.so %{buildroot}%{chromium_path} + %endif + %if %{build_clear_key_cdm} %ifarch x86_64 cp -a ClearKeyCdm/_platform_specific/linux_x64/libclearkeycdm.so %{buildroot}%{chromium_path} @@ -1722,6 +1784,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %if %{use_qt} %{chromium_path}/libqt5_shim.so %endif +%if %{use_qt6} +%{chromium_path}/libqt6_shim.so +%endif %{_mandir}/man1/%{chromium_browser_channel}.* %{_datadir}/icons/hicolor/*/apps/%{chromium_browser_channel}.png %{_datadir}/applications/*.desktop @@ -1841,6 +1906,14 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %endif %changelog +* Thu Dec 07 2023 Arkady L. Shane - 120.0.6099.62-2.inferit +- drop unsupported ldflag which caused build failure +- update to 120.0.6099.62 +- fixed bz#2252874, built with control flow integrity (CFI) support +- enable qt6 UI backend +- fixed bz#2242271, built with bundleminizip in fedora > 39 +- fixed bz#2251884, built with fstack-protector-strong for improved security + * Mon Dec 04 2023 Alexey Berezhok - 119.0.6045.199-1.inferit.2 - Added Yandex search bar as default on newtab and new-tab-page