import chromium-120.0.6099.129-1.el9

i9ce
MSVSphere Packaging Team 9 months ago
parent 37df2044d5
commit 267e8020c0

@ -1,3 +1,3 @@
335832a158382471a02369eb29ef94c080664ea9 SOURCES/chromium-119.0.6045.159-clean.tar.xz
8a7f283e235f3a0834a31f5001b84ed3ceeaf5ec SOURCES/chromium-120.0.6099.129-clean.tar.xz
7e5d2c7864c5c83ec789b59c77cd9c20d2594916 SOURCES/linux-arm64-0.19.2.tgz
dea187019741602d57aaf189a80abba261fbd2aa SOURCES/linux-x64-0.19.2.tgz

2
.gitignore vendored

@ -1,3 +1,3 @@
SOURCES/chromium-119.0.6045.159-clean.tar.xz
SOURCES/chromium-120.0.6099.129-clean.tar.xz
SOURCES/linux-arm64-0.19.2.tgz
SOURCES/linux-x64-0.19.2.tgz

@ -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);

@ -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>', '<\/script>')
+ return js.replace(r'</script>', 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<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+ return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?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')

@ -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 <typename CallbackFunc>
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 =

@ -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<std::string> : public MiracleParameterBase<std::string> {
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)) {}

@ -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<int> 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 {

@ -1,50 +0,0 @@
commit fc09363b2278893790d131c72a4ed96ec9837624
Author: Elly <ellyjones@chromium.org>
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 <ellyjones@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
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",
+ ]
+ }
}
}

@ -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" ]
}
}
}

@ -1,189 +0,0 @@
commit 87fca7f1759e800bd72b5ab6511eea17d6400a76
Author: Pilar Molina Lopez <pmolinalopez@chromium.org>
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 <dalecurtis@chromium.org>
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Pilar Molina Lopez <pmolinalopez@chromium.org>
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)

@ -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) {}
};

@ -1,164 +0,0 @@
commit bdcc23e0a5e7e220660d3f54c97262f9a4c31606
Author: Nick Diego Yamane <nickdiego@igalia.com>
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 <msisov@igalia.com>
Commit-Queue: Nick Yamane <nickdiego@igalia.com>
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<ui::GbmBuffer> CreateBufferWithModifiers(
uint32_t format,
- const gfx::Size& size,
+ const gfx::Size& requested_size,
uint32_t flags,
const std::vector<uint64_t>& modifiers) override {
- if (modifiers.empty())
- return CreateBuffer(format, size, flags);
-
- std::vector<uint64_t> 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<uint32_t>(size.width()),
+ .height = base::checked_cast<uint32_t>(size.height()),
+ .format = format,
+ .num_fds = base::checked_cast<uint32_t>(planes_count),
+ .modifier = gbm_bo_get_modifier(created_bo)};
+ // Store fds in a base::ScopedFDs vector. Will be released automatically.
std::vector<base::ScopedFD> fds;
for (size_t i = 0; i < static_cast<size_t>(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<ui::GbmBuffer> CreateBufferFromHandle(

@ -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',

@ -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);

@ -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 += [ "" ]
}
}

@ -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.

@ -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 {

@ -0,0 +1,230 @@
commit 57526b8dc45b2e6c67bba7306f1dde73b1f2910c
Author: sisidovski <sisidovski@chromium.org>
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 <chikamune@chromium.org>
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
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<mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
ServiceWorkerGlobalScope::FindRaceNetworkRequestURLLoaderFactory(
const base::UnguessableToken& token) {
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory> result =
- race_network_request_loader_factories_.Take(String(token.ToString()));
+ std::unique_ptr<RaceNetworkRequestInfo> 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<network::mojom::blink::URLLoaderFactory>>(
+ std::move(result->url_loader_factory));
}
return absl::nullopt;
}
+void ServiceWorkerGlobalScope::InsertNewItemToRaceNetworkRequests(
+ int fetch_event_id,
+ const base::UnguessableToken& token,
+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
+ url_loader_factory,
+ const KURL& request_url) {
+ auto race_network_request_token = String(token.ToString());
+ auto info = std::make_unique<RaceNetworkRequestInfo>(
+ 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<network::mojom::blink::URLLoaderFactory>
+ url_loader_factory,
+ const KURL& request_url);
+ void RemoveItemFromRaceNetworkRequests(int fetch_event_id);
+
Member<ServiceWorkerClients> clients_;
Member<ServiceWorkerRegistration> 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<network::mojom::blink::URLLoaderFactory>
+ 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<String, mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
- race_network_request_loader_factories_;
+ HashMap<String, std::unique_ptr<RaceNetworkRequestInfo>>
+ race_network_requests_;
+ HashMap<int, RaceNetworkRequestInfo*> race_network_request_fetch_event_ids_;
HeapMojoAssociatedRemote<mojom::blink::AssociatedInterfaceProvider>
remote_associated_interfaces_{this};

@ -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

@ -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 <typename U>
+ bool operator==(const MetadataAllocator<U>&) const {
+ return true;
+ }
+
+ template <typename U>
bool operator!=(const MetadataAllocator<U>& 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; }
};

@ -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 <drm_fourcc.h>
+// 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 {

@ -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

@ -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<unsigned int>(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 <cstdio>
#include <cstdint>
#include <cstdlib>
#include <cstring>
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
@ -468,3 +457,14 @@ diff -up chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h.missing-header-fi
namespace ui {
int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
diff -up chromium-120.0.6099.109/chrome/test/chromedriver/chrome/chrome_finder.h.than chromium-120.0.6099.109/chrome/test/chromedriver/chrome/chrome_finder.h
--- chromium-120.0.6099.109/chrome/test/chromedriver/chrome/chrome_finder.h.than 2023-12-20 23:09:10.395334723 +0100
+++ chromium-120.0.6099.109/chrome/test/chromedriver/chrome/chrome_finder.h 2023-12-20 23:09:35.436910261 +0100
@@ -6,6 +6,7 @@
#define CHROME_TEST_CHROMEDRIVER_CHROME_CHROME_FINDER_H_
#include <vector>
+#include <string>
#include "base/functional/callback_forward.h"

@ -1,6 +1,25 @@
diff -up chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor chromium-119.0.6045.59/base/trace_event/trace_log.cc
--- chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor 2023-10-26 18:16:51.000000000 +0200
+++ chromium-119.0.6045.59/base/trace_event/trace_log.cc 2023-10-30 16:51:02.270151487 +0100
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<ReferenceAndSample>* 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) {
@ -12,9 +31,9 @@ diff -up chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constr
}
void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
diff -up chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc
--- chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor 2023-10-26 18:16:57.000000000 +0200
+++ chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc 2023-10-30 16:51:02.269151462 +0100
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()) {
@ -37,9 +56,9 @@ diff -up chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permiss
permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
content_setting_type, trigger_event);
}
diff -up chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
--- chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor 2023-10-26 18:16:57.000000000 +0200
+++ chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc 2023-10-30 16:51:02.267151412 +0100
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_map<std::string, SAMLProfileA
// TODO(crbug.com/1445072): Add actual domains with attribute names.
profile_attributes->insert(std::make_pair(
@ -51,9 +70,9 @@ diff -up chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/pro
// Extract domains and attributes from the command line switch.
const base::CommandLine& command_line =
diff -up chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
--- chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor 2023-10-26 18:17:00.000000000 +0200
+++ chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2023-10-30 16:51:02.262151288 +0100
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);
@ -67,9 +86,117 @@ diff -up chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.
if (browser_) {
auto navigation = chrome::OpenCurrentURL(browser_);
diff -up chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc
--- chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor 2023-10-26 18:17:01.000000000 +0200
+++ chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc 2023-10-30 16:51:02.268151437 +0100
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<ResultMap>
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<EmbeddedPermissionPromptAskV
EmbeddedPermissionPromptAskView::GetButtonsConfiguration() const {
std::vector<ButtonConfiguration> 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<const gfx::VectorIcon> 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::ButtonConfiguration>
EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const {
std::vector<ButtonConfiguration> 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::ButtonConfiguration>
EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const {
std::vector<ButtonConfiguration> 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::ButtonConfiguration>
EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const {
std::vector<ButtonConfiguration> 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");
}
@ -88,10 +215,10 @@ diff -up chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matc
}
client_hints.full_version_list = std::move(full_version_list);
diff -up chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc
--- chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor 2023-10-30 16:51:02.273151562 +0100
+++ chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc 2023-10-30 17:41:12.685887538 +0100
@@ -195,9 +195,9 @@ class ContactInfoProfileSetter {
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()) {
@ -103,10 +230,38 @@ diff -up chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sy
}
}
}
diff -up chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
--- chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor 2023-10-26 18:17:12.000000000 +0200
+++ chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc 2023-10-30 16:51:02.260151238 +0100
@@ -1530,7 +1530,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
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<AutofillProfile> Autofil
}
base::span<const uint8_t> observations_data = s.ColumnBlob(3);
- field_type_values.emplace_back(
+ field_type_values.emplace_back() = {
type, s.ColumnString16(1), s.ColumnInt(2),
std::vector<uint8_t>(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) {
@ -115,10 +270,10 @@ diff -up chromium-119.0.6045.59/components/viz/service/display_embedder/skia_out
SkImageInfo dst_info = SkImageInfo::Make(
size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
kUnpremul_SkAlphaType);
diff -up chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/download/save_package.cc
--- chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor 2023-10-26 18:17:12.000000000 +0200
+++ chromium-119.0.6045.59/content/browser/download/save_package.cc 2023-10-30 16:51:02.271151512 +0100
@@ -769,8 +769,8 @@ void SavePackage::Finish() {
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<download::DownloadSaveItemData::ItemInfo> files;
for (auto& item : saved_success_items_) {
@ -129,52 +284,76 @@ diff -up chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matc
}
download::DownloadSaveItemData::AttachItemData(download_, std::move(files));
}
diff -up chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc
--- chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor 2023-10-26 18:17:12.000000000 +0200
+++ chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc 2023-10-30 17:38:09.351389984 +0100
@@ -8567,7 +8567,7 @@ void RenderFrameHostImpl::SendFencedFram
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<StorageInterestGroup::KAnonymityData> 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,
GetFrameTreeNodeId());
/*from_renderer=*/true, attribution_reporting_runtime_features);
}
@@ -8603,7 +8603,7 @@ void RenderFrameHostImpl::SendFencedFram
}
@@ -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,
GetFrameTreeNodeId());
@@ -8703,8 +8703,8 @@ void RenderFrameHostImpl::MaybeSendFence
/*from_renderer=*/true, attribution_reporting_runtime_features);
}
@@ -8820,7 +8820,7 @@ void RenderFrameHostImpl::MaybeSendFence
data = info->data;
}
initiator_rfh->SendFencedFrameReportingBeaconInternal(
- DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
- data),
+ DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
+ data},
destination,
- AutomaticBeaconEvent(event_type, data), destination,
+ AutomaticBeaconEvent{event_type, data}, destination,
/*from_renderer=*/false, attribution_reporting_features,
GetFrameTreeNodeId(), navigation_request.GetNavigationId());
@@ -8717,8 +8717,8 @@ void RenderFrameHostImpl::MaybeSendFence
navigation_request.GetNavigationId());
}
@@ -8832,7 +8832,7 @@ void RenderFrameHostImpl::MaybeSendFence
for (blink::FencedFrame::ReportingDestination destination :
info->destinations) {
initiator_rfh->SendFencedFrameReportingBeaconInternal(
- DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
- info->data),
+ DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
+ info->data},
destination,
- AutomaticBeaconEvent(event_type, info->data), destination,
+ AutomaticBeaconEvent{event_type, info->data}, destination,
/*from_renderer=*/false, info->attribution_reporting_runtime_features,
GetFrameTreeNodeId(), navigation_request.GetNavigationId());
diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h
--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor 2023-10-26 18:17:24.000000000 +0200
+++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h 2023-10-30 16:51:02.262151288 +0100
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<Color::HueInterpolationMethod> hue_interpolation_method) {
@ -193,9 +372,9 @@ diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_p
}
double GetAlphaMultiplier() const {
diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor 2023-10-26 18:17:24.000000000 +0200
+++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc 2023-10-30 16:51:02.261151263 +0100
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<FontPalette::FontPaletteOverride>
color_interpolation_space, hue_interpolation_method, start_color,
end_color, percentage, alpha_multiplier);
@ -205,113 +384,22 @@ diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palett
result_color_records.push_back(result_color_record);
}
return result_color_records;
diff -up chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-119.0.6045.59/ui/gtk/gtk_ui.cc
--- chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor 2023-10-26 18:18:14.000000000 +0200
+++ chromium-119.0.6045.59/ui/gtk/gtk_ui.cc 2023-10-30 16:51:02.272151537 +0100
@@ -993,11 +993,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<float>(monitor_scale * font_scale)};
}
return config;
}
diff -up chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc
--- chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me 2023-10-31 18:14:49.275728099 +0100
+++ chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc 2023-10-31 18:19:54.599223239 +0100
@@ -221,13 +221,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;
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 {
std::vector<ReferenceAndSample>* samples =
GetSampleMapRecordsWhileLocked(found_id);
CHECK(samples);
- samples->emplace_back(ref, value);
+ samples->emplace_back() = {ref, value};
m_pDevice->SetClip_PathFill(
*pPath, &mtObj2Device,
- CFX_FillRenderOptions(ClipPath.GetClipType(i)));
+ CFX_FillRenderOptions{ClipPath.GetClipType(i)});
}
}
diff -up chromium-119.0.6045.59/net/dns/host_resolver_cache.cc.me chromium-119.0.6045.59/net/dns/host_resolver_cache.cc
--- chromium-119.0.6045.59/net/dns/host_resolver_cache.cc.me 2023-10-31 20:48:19.153868338 +0100
+++ chromium-119.0.6045.59/net/dns/host_resolver_cache.cc 2023-10-31 20:51:37.634526549 +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-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc
--- chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me 2023-10-31 22:32:58.995997897 +0100
+++ chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc 2023-10-31 22:33:28.290520601 +0100
@@ -1733,10 +1733,10 @@ std::unique_ptr<AutofillProfile> Autofil
}
base::span<const uint8_t> observations_data = s.ColumnBlob(3);
- field_type_values.emplace_back(
+ field_type_values.emplace_back() = {
type, s.ColumnString16(1), s.ColumnInt(2),
std::vector<uint8_t>(observations_data.begin(),
- observations_data.end()));
+ observations_data.end())};
if (type == ADDRESS_HOME_COUNTRY) {
country_code = base::UTF16ToUTF8(s.ColumnString16(1));
diff -up chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc
--- chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than 2023-10-31 22:41:22.850233005 +0100
+++ chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc 2023-10-31 22:42:37.276931933 +0100
@@ -625,7 +625,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-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc
--- chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than 2023-10-31 23:31:08.438267908 +0100
+++ chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc 2023-10-31 23:32:08.979358711 +0100
@@ -2854,10 +2854,10 @@ DoGetKAnonymityData(sql::Database& db,
std::vector<StorageInterestGroup::KAnonymityData> 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-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc
--- chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than 2023-11-01 11:19:42.745395797 +0100
+++ chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc 2023-11-01 11:22:16.670920679 +0100
@@ -1881,7 +1881,7 @@ void FederatedAuthRequestImpl::ShowError
base::BindOnce(&FederatedAuthRequestImpl::CompleteRequestWithError,
weak_ptr_factory_.GetWeakPtr()));
absl::optional<TokenError> token_error =
- error ? absl::make_optional<TokenError>(error->code, error->url)
+ error ? absl::make_optional<TokenError>({error->code, error->url})
: absl::nullopt;
// TODO(crbug.com/1485710): Refactor IdentityCredentialTokenError
--- chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h.no_matching_constructor 2023-10-26 18:18:14.000000000 +0200
+++ chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h 2023-11-01 17:29:54.269820415 +0100
@@ -52,53 +52,53 @@
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,
@ -391,7 +479,7 @@ diff -up chromium-119.0.6045.59/content/browser/webid/federated_auth_request_imp
// A map from the zcr_color_manager_v1 eotf_names enum values
// representing well-known EOTFs, to their equivalent TransferIDs.
@@ -107,68 +107,68 @@
@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe
zcr_color_manager_v1_eotf_names,
TransferVersion>({
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@ -498,7 +586,7 @@ diff -up chromium-119.0.6045.59/content/browser/webid/federated_auth_request_imp
});
// A map from the SDR zcr_color_manager_v1 eotf_names enum values
@@ -177,18 +177,18 @@
@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe
constexpr auto kTransferMap =
base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@ -524,7 +612,7 @@ diff -up chromium-119.0.6045.59/content/browser/webid/federated_auth_request_imp
});
// A map from the HDR zcr_color_manager_v1 eotf_names enum values
@@ -197,70 +197,70 @@
@@ -197,70 +197,70 @@ constexpr auto kTransferMap =
constexpr auto kHDRTransferMap =
base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
{{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
@ -628,76 +716,27 @@ diff -up chromium-119.0.6045.59/content/browser/webid/federated_auth_request_imp
zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
gfx::ColorSpace::PrimaryID primaryID,
@@ -283,4 +283,4 @@
@@ -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-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me 2023-11-01 20:46:15.997861278 +0100
+++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc 2023-11-01 20:49:33.603371680 +0100
@@ -58,13 +58,13 @@ EmbeddedPermissionPromptPreviouslyGrante
std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() {
std::vector<ButtonConfiguration> 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-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than 2023-11-01 20:52:29.005464494 +0100
+++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc 2023-11-01 21:14:12.741859604 +0100
@@ -56,12 +56,12 @@ std::vector<EmbeddedPermissionPromptAskV
EmbeddedPermissionPromptAskView::GetButtonsConfiguration() {
std::vector<ButtonConfiguration> 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};
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<float>(monitor_scale * font_scale)};
}
- 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-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me 2023-11-01 21:22:02.222646903 +0100
+++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h 2023-11-01 21:19:58.769619393 +0100
@@ -72,6 +72,7 @@ class EmbeddedPermissionPromptBaseView :
struct RequestLineConfiguration {
const raw_ptr<const gfx::VectorIcon> icon;
std::u16string message;
+ RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
};
struct ButtonConfiguration {
diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than 2023-11-01 21:25:31.118626473 +0100
+++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc 2023-11-01 21:30:06.383340274 +0100
@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR
std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() {
std::vector<ButtonConfiguration> 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;
return config;
}

@ -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;

@ -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" ]

@ -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',

@ -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 <typename Map,
typename Key,
typename MappedElementType =
- std::pointer_traits<internal::MappedType<Map>>::element_type>
+ typename std::pointer_traits<internal::MappedType<Map>>::element_type>
constexpr const MappedElementType* FindPtrOrNull(const Map& map,
const Key& key) {
auto it = map.find(key);
@@ -58,7 +58,7 @@
template <typename Map,
typename Key,
typename MappedElementType =
- std::pointer_traits<internal::MappedType<Map>>::element_type>
+ typename std::pointer_traits<internal::MappedType<Map>>::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;
};

@ -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 =

@ -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 <drm_fourcc.h>
+// 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 {

@ -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 <typename U>
+ bool operator==(const MetadataAllocator<U>&) const {
+ return true;
+ }
+
+ template <typename U>
bool operator!=(const MetadataAllocator<U>& 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; }
};

@ -87,9 +87,6 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/dv.h \
libavcodec/error_resilience.h \
libavcodec/fdctdsp.h \
libavcodec/fft.h \
libavcodec/fft-internal.h \
libavcodec/fft_table.h \
libavcodec/flac.h \
libavcodec/flacdsp.h \
libavcodec/flac_parse.h \
@ -100,6 +97,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/hevc.h \
libavcodec/hpeldsp.h \
libavcodec/hwaccels.h \
libavcodec/hwaccel_internal.h \
libavcodec/hwconfig.h \
libavcodec/idctdsp.h \
libavcodec/internal.h \
@ -181,7 +179,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavutil/x86/asm.h \
libavutil/x86/bswap.h \
libavutil/x86/cpu.h \
libavutil/x86/emms.h
libavutil/emms.h \
libavutil/x86/intreadwrite.h \
libavutil/x86/intmath.h
libavutil/x86/timer.h \
@ -223,10 +221,8 @@ header_files=" libavcodec/x86/inline_asm.h \
compat/va_copy.h \
compat/atomics/gcc/stdatomic.h "
manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/aarch64/h264pred_neon.S \
manual_files=" libavcodec/aarch64/h264pred_neon.S \
libavcodec/aarch64/hpeldsp_neon.S \
libavcodec/aarch64/mdct_neon.S \
libavcodec/aarch64/neon.S \
libavcodec/aarch64/vorbisdsp_neon.S \
libavcodec/aarch64/vorbisdsp_init.c \
@ -240,7 +236,6 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/x86/vp3dsp.asm \
libavcodec/x86/vp8dsp.asm \
libavcodec/bit_depth_template.c \
libavcodec/fft_template.c \
libavcodec/flacdec.c \
libavcodec/flacdsp.c \
libavcodec/flacdsp_template.c \
@ -248,7 +243,6 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/h264pred_template.c \
libavcodec/hpel_template.c \
libavcodec/hpeldsp.c \
libavcodec/mdct_template.c \
libavcodec/options.c \
libavcodec/pcm.c \
libavcodec/pel_template.c \
@ -301,7 +295,6 @@ mp3_files=" libavcodec/aarch64/aacpsdsp_init_aarch64.c \
libavcodec/autorename_libavcodec_mpegaudiodsp.c \
libavcodec/autorename_libavcodec_sbrdsp.c \
libavcodec/cbrt_data.c \
libavcodec/dct.c \
libavcodec/dct32_fixed.c \
libavcodec/dct32_float.c \
libavcodec/dct32_template.c \
@ -319,7 +312,6 @@ mp3_files=" libavcodec/aarch64/aacpsdsp_init_aarch64.c \
libavcodec/sbrdsp.c \
libavcodec/sbrdsp_template.c \
libavcodec/sinewin.c \
libavcodec/x86/dct_init.c \
libavcodec/x86/dct32.asm \
libavcodec/x86/imdct36.asm \
libavcodec/x86/mpegaudiodsp.c \

@ -52,13 +52,13 @@
# set esbuild_version
%global esbuild_version 0.19.2
# set version for devtoolset and gcc-toolset
# set latest version for devtoolset and gcc-toolset
%global dts_version 12
%if 0%{?rhel} == 8 || 0%{?rhel} == 9
%global dts_version 13
%endif
# set version for llvm-toolset on el7
# set latest version for llvm-toolset on el7
%global llvm_toolset_version 14.0
# set name for toolset
@ -122,6 +122,12 @@
# 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
@ -150,9 +156,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
@ -160,14 +177,28 @@
%global toolchain gcc
%endif
# enable|disable system brotli
# disable system brotli due to old system brotli
%global bundlebrotli 1
# enable qt backend for el >= 8 and fedora
%if 0%{?rhel} >= 8 || 0%{?fedora}
%global use_qt 1
%else
%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
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
%global bundleicu 1
# system libre2.so is not supported with use_custom_libcxx=true
# because the library's interface relies on libstdc++'s std::string and std::vector.
%global bundlere2 1
# The libxml_utils code depends on the specific bundled libxml checkout
@ -175,27 +206,20 @@
# 2017-06-08.
%global bundlelibxml 1
%global bundlelibaom 1
# Fedora's Python 2 stack is being removed, we use the bundled Python libraries
# This can be revisited once we upgrade to Python 3
%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
# enable qt backend for el >= 8 and fedora
%if 0%{?rhel} >= 8 || 0%{?fedora}
%global use_qt 1
%else
%global use_qt 0
%endif
# enable gtk3 by default
%global gtk3 1
%if 0%{?rhel} == 7 || 0%{?rhel} == 8
%global bundleopus 1
%global bundlelibusbx 1
@ -207,14 +231,19 @@
%global bundlelibdrm 1
%global bundlefontconfig 1
%global bundleffmpegfree 1
%global bundlelibaom 1
%global bundlebrotli 1
%else
# Chromium really wants to use its bundled harfbuzz. Sigh.
%if 0%{?fedora} > 37
%global bundleharfbuzz 0
%else
%global bundleharfbuzz 1
%endif
# disable system brotli due to old system brotli on el and fedora < 38
%if 0%{?fedora} > 38
%global bundlebrotli 0
%else
%global bundlebrotli 1
%endif
%global bundleopus 0
%global bundlelibusbx 0
%global bundlelibwebp 0
@ -223,13 +252,7 @@
%global bundlelibdrm 0
%global bundlefontconfig 0
%global bundleffmpegfree 0
%global bundlelibaom 1
# system freetype on fedora > 36
%if 0%{?fedora}
%global bundlefreetype 0
%else
%global bundlefreetype 1
%endif
%endif
### From 2013 until early 2021, Google permitted distribution builds of
@ -266,8 +289,8 @@
%endif
Name: chromium%{chromium_channel}
Version: 119.0.6045.159
Release: 2%{?dist}
Version: 120.0.6099.129
Release: 1%{?dist}
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)
@ -279,7 +302,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
@ -323,7 +346,8 @@ 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
@ -343,7 +367,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<char>::erase(std::basic_string<char>::const_iterator, __gnu_cxx::__normal_iterator<const char*, std::basic_string<char> >&)'
# 33 | property_name.erase(property_name.cbegin(), cur);
@ -351,7 +375,7 @@ 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
@ -359,12 +383,16 @@ 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
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
@ -376,35 +404,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<char>') is not a literal type
Patch305: chromium-119-constexpr.patch
Patch306: chromium-119-assert.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-118-arm64-memory_tagging.patch
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
@ -414,16 +439,18 @@ Patch351: chromium-117-mnemonic-error.patch
# Disable BTI until this is fixed upstream.
Patch352: chromium-117-workaround_for_crash_on_BTI_capable_system.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
# upstream patches
# revert due to build error redefine ATSPI version macros
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
# Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
# http://build.chromium.org/buildbot/official/
@ -478,7 +505,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++
@ -527,6 +554,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
@ -934,11 +970,8 @@ udev.
%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
@ -951,7 +984,9 @@ udev.
%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
@ -964,9 +999,9 @@ udev.
%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
@ -984,6 +1019,8 @@ udev.
%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
@ -1001,7 +1038,6 @@ udev.
%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
@ -1014,10 +1050,7 @@ udev.
%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
@ -1025,10 +1058,13 @@ udev.
%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
# Change shebang in all relevant files in this directory and all subdirectories
# See `man find` for how the `-exec command {} +` syntax works
@ -1087,9 +1123,6 @@ sed -i 's/getenv("CHROME_VERSION_EXTRA")/"Fedora Project"/' chrome/common/channe
# 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)
@ -1159,10 +1192,20 @@ 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'
sed -i 's|OFFICIAL_BUILD|GOOGLE_CHROME_BUILD|g' tools/generate_shim_headers/generate_shim_headers.py
%endif
%if 0%{?rhel} || 0%{?fedora} < 39
CHROMIUM_CORE_GN_DEFINES+=' chrome_pgo_phase=0'
%endif
%if %{cfi}
CHROMIUM_CORE_GN_DEFINES+=' is_cfi=true'
%else
CHROMIUM_CORE_GN_DEFINES+=' is_cfi=false'
%endif
%if %{useapikey}
CHROMIUM_CORE_GN_DEFINES+=' google_api_key="%{api_key}"'
%endif
@ -1185,7 +1228,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'
@ -1201,12 +1244,16 @@ 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'
CHROMIUM_CORE_GN_DEFINES+=' disable_fieldtrial_testing_config=true'
CHROMIUM_CORE_GN_DEFINES+=' blink_symbol_level=%{debug_level} symbol_level=%{debug_level} v8_symbol_level=%{debug_level}'
CHROMIUM_CORE_GN_DEFINES+=' symbol_level=%{debug_level}'
CHROMIUM_CORE_GN_DEFINES+=' blink_enable_generated_code_formatting=false'
CHROMIUM_CORE_GN_DEFINES+=' angle_has_histograms=false'
export CHROMIUM_CORE_GN_DEFINES
@ -1226,11 +1273,17 @@ CHROMIUM_BROWSER_GN_DEFINES+=' rtc_use_h264=false'
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'
@ -1262,7 +1315,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
@ -1356,8 +1409,6 @@ mkdir -p %{builddir} && cp -a %{_bindir}/gn %{builddir}/
%build_target %{builddir} policy_templates
%if %{build_remoting}
# remote client
# ninja -C ../%{builddir} -vvv remoting_me2me_host remoting_start_host remoting_it2me_native_messaging_host remoting_me2me_native_messaging_host remoting_native_messaging_manifests remoting_resources
%build_target %{remotingbuilddir} remoting_all
%endif
@ -1422,6 +1473,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}
@ -1595,6 +1650,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
@ -1712,6 +1770,40 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
* Thu Dec 21 2023 Than Ngo <than@redhat.com> - 120.0.6099.129-1
- update to 120.0.6099.129
* High CVE-2023-7024: Heap buffer overflow in WebRTC
* Wed Dec 13 2023 Than Ngo <than@redhat.com> - 120.0.6099.109-1
- update to 120.0.6099.109
* High CVE-2023-6702: Type Confusion in V8
* High CVE-2023-6703: Use after free in Blink
* High CVE-2023-6704: Use after free in libavif
* High CVE-2023-6705: Use after free in WebRTC
* High CVE-2023-6706: Use after free in FedCM
* Medium CVE-2023-6707: Use after free in CSS
* Fri Dec 08 2023 Than Ngo <than@redhat.com> - 120.0.6099.71-1
- update to 120.0.6099.71
* Wed Dec 06 2023 Than Ngo <than@redhat.com> - 120.0.6099.62-2
- drop unsupported ldflag which caused build failure
* Tue Dec 05 2023 Than Ngo <than@redhat.com> - 120.0.6099.62-1
- update to 120.0.6099.62
- fixed bz#2252874, built with control flow integrity (CFI) support
* Sat Dec 02 2023 Than Ngo <than@redhat.com> - 120.0.6099.56-1
- update to 120.0.6099.56
- enable qt6 UI backend
* Sat Dec 02 2023 Than Ngo <than@redhat.com> - 119.0.6045.199-2
- fixed bz#2242271, built with bundleminizip in fedora > 39
- fixed bz#2251884, built with fstack-protector-strong for improved security
* Wed Nov 29 2023 Than Ngo <than@redhat.com> - 119.0.6045.199-1
- update to 119.0.6045.199
* Wed Nov 22 2023 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 119.0.6045.159-2
- Rebuilt for MSVSphere 9.3

Loading…
Cancel
Save