From b41adb1b8ee5e37049e3869ac574c588b367a688 Mon Sep 17 00:00:00 2001 From: tigro Date: Thu, 21 Mar 2024 20:58:17 +0300 Subject: [PATCH] * Thu Mar 21 2024 Arkady L. Shane - 123.0.6312.58-1.inferit - update to 123.0.6312.58 * High CVE-2024-2625: Object lifecycle issue in V8 * Medium CVE-2024-2626: Out of bounds read in Swiftshader * Medium CVE-2024-2627: Use after free in Canvas * Medium CVE-2024-2628: Inappropriate implementation in Downloads * Medium CVE-2024-2629: Incorrect security UI in iOS * Medium CVE-2024-2630: Inappropriate implementation in iOS * Low CVE-2024-2631: Inappropriate implementation in iOS - fixed bz#2270321 - VAAPI flags in chromium.conf are out of date --- .chromium.metadata | 2 +- .gitignore | 2 +- ...chromium-119-fstack-protector-strong.patch | 12 - ...chromium-120-el7-clang-build-failure.patch | 230 --- SOURCES/chromium-121-mnemonic-error.patch | 12 - SOURCES/chromium-122-static-assert.patch | 32 - ...onstructor-involving-anonymous-union.patch | 36 + ...chromium-123-fstack-protector-strong.patch | 12 + .../chromium-123-missing-header-files.patch | 169 ++ ...chromium-123-no_matching_constructor.patch | 1364 +++++++++++++++++ ...m-123-python3-assignment-expressions.patch | 27 + SOURCES/chromium-123-rust-clap_lex.patch | 133 ++ SOURCES/chromium-123-typename.patch | 406 +++++ SOURCES/chromium-123-v8-c++20.patch | 733 +++++++++ ...karound_clang_bug-structured_binding.patch | 78 + SOURCES/chromium.conf | 2 +- SPECS/chromium.spec | 62 +- 17 files changed, 2999 insertions(+), 313 deletions(-) delete mode 100644 SOURCES/chromium-119-fstack-protector-strong.patch delete mode 100644 SOURCES/chromium-120-el7-clang-build-failure.patch delete mode 100644 SOURCES/chromium-121-mnemonic-error.patch delete mode 100644 SOURCES/chromium-122-static-assert.patch create mode 100644 SOURCES/chromium-123-el7-default-constructor-involving-anonymous-union.patch create mode 100644 SOURCES/chromium-123-fstack-protector-strong.patch create mode 100644 SOURCES/chromium-123-missing-header-files.patch create mode 100644 SOURCES/chromium-123-no_matching_constructor.patch create mode 100644 SOURCES/chromium-123-python3-assignment-expressions.patch create mode 100644 SOURCES/chromium-123-rust-clap_lex.patch create mode 100644 SOURCES/chromium-123-typename.patch create mode 100644 SOURCES/chromium-123-v8-c++20.patch create mode 100644 SOURCES/chromium-123-workaround_clang_bug-structured_binding.patch diff --git a/.chromium.metadata b/.chromium.metadata index 68a46cb4..74397909 100644 --- a/.chromium.metadata +++ b/.chromium.metadata @@ -1,4 +1,4 @@ -b3c172451846281a8c1c04835412632ff99566a2 SOURCES/chromium-122.0.6261.128.tar.xz +4fc55a6b3696c0519d0b75666ca0074f9cc3b1dd SOURCES/chromium-123.0.6312.58.tar.xz dea187019741602d57aaf189a80abba261fbd2aa SOURCES/linux-x64-0.19.2.tgz 7e5d2c7864c5c83ec789b59c77cd9c20d2594916 SOURCES/linux-arm64-0.19.2.tgz 769196d081c6a0ad37f1c63dec56febfff3370de SOURCES/node-v20.6.1-linux-x64.tar.xz diff --git a/.gitignore b/.gitignore index b65fd787..ff5f6452 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -SOURCES/chromium-122.0.6261.128.tar.xz +SOURCES/chromium-123.0.6312.58.tar.xz SOURCES/linux-x64-0.19.2.tgz SOURCES/linux-arm64-0.19.2.tgz SOURCES/node-v20.6.1-linux-x64.tar.xz diff --git a/SOURCES/chromium-119-fstack-protector-strong.patch b/SOURCES/chromium-119-fstack-protector-strong.patch deleted file mode 100644 index 688938d1..00000000 --- a/SOURCES/chromium-119-fstack-protector-strong.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up chromium-119.0.6045.199/build/config/compiler/BUILD.gn.me chromium-119.0.6045.199/build/config/compiler/BUILD.gn ---- chromium-119.0.6045.199/build/config/compiler/BUILD.gn.me 2023-12-02 12:19:01.138079722 +0100 -+++ chromium-119.0.6045.199/build/config/compiler/BUILD.gn 2023-12-02 12:21:05.835322037 +0100 -@@ -379,7 +379,7 @@ config("compiler") { - cflags += [ "-fno-stack-protector" ] - } else if (current_os != "aix") { - # Not available on aix. -- cflags += [ "-fstack-protector" ] -+ cflags += [ "-fstack-protector-strong" ] - } - } - } diff --git a/SOURCES/chromium-120-el7-clang-build-failure.patch b/SOURCES/chromium-120-el7-clang-build-failure.patch deleted file mode 100644 index 96258e67..00000000 --- a/SOURCES/chromium-120-el7-clang-build-failure.patch +++ /dev/null @@ -1,230 +0,0 @@ -commit 57526b8dc45b2e6c67bba7306f1dde73b1f2910c -Author: sisidovski -Date: Tue Oct 24 09:32:49 2023 +0000 - - Remove unused items from the RaceNetworkRequest hashmap - - When the AutoPreload or the race-network-and-fetch-handler option in the - static routing API is enabled, network requests are dispatched and - URLLoaderFactories are held in a hashmap in ServiceWorkerGlobalScope. - Those are consumed inside the fetch handler when fetch(e.request) is - called. But if the fetch handler doesn't call fetch() e.g. fallback, - those hashmap items does not have a chance to be removed. - - This CL changes the hashmap items to be removed when the fetch event - finishes, and the URLLoaderFactory is still not consumed at that time. - This may loose the dedupe capability if fetch() is called later e.g. - setTimeout(() => fetch()), but it makes sense to prioritize keeping the - hashmap small. - - Change-Id: I51bdc9d5eb5185f2b5b4df6ee785715b1180c848 - Bug: 1492640 - Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4964840 - Reviewed-by: Minoru Chikamune - Commit-Queue: Yoshisato Yanagisawa - Reviewed-by: Yoshisato Yanagisawa - Cr-Commit-Position: refs/heads/main@{#1214064} - -diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -index 02887edc10883..b3624fc0162df 100644 ---- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -@@ -46,6 +46,7 @@ - #include "services/network/public/cpp/cross_origin_embedder_policy.h" - #include "services/network/public/mojom/cookie_manager.mojom-blink.h" - #include "services/network/public/mojom/cross_origin_embedder_policy.mojom.h" -+#include "services/network/public/mojom/url_loader_factory.mojom-blink.h" - #include "third_party/blink/public/common/features.h" - #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h" - #include "third_party/blink/public/mojom/notifications/notification.mojom-blink.h" -@@ -1096,6 +1097,10 @@ void ServiceWorkerGlobalScope::DidHandleFetchEvent( - TRACE_ID_WITH_SCOPE(kServiceWorkerGlobalScopeTraceScope, - TRACE_ID_LOCAL(event_id)), - TRACE_EVENT_FLAG_FLOW_IN, "status", MojoEnumToString(status)); -+ -+ // Delete the URLLoaderFactory for the RaceNetworkRequest if it's not used. -+ RemoveItemFromRaceNetworkRequests(event_id); -+ - if (!RunEventCallback(&fetch_event_callbacks_, event_queue_.get(), event_id, - status)) { - // The event may have been aborted. Its response callback also needs to be -@@ -1495,6 +1500,7 @@ void ServiceWorkerGlobalScope::AbortCallbackForFetchEvent( - response_callback_iter->value->TakeValue().reset(); - fetch_response_callbacks_.erase(response_callback_iter); - } -+ RemoveItemFromRaceNetworkRequests(event_id); - - // Run the event callback with the error code. - auto event_callback_iter = fetch_event_callbacks_.find(event_id); -@@ -1551,52 +1557,11 @@ void ServiceWorkerGlobalScope::StartFetchEvent( - - if (params->race_network_request_loader_factory && - params->request->service_worker_race_network_request_token) { -- auto insert_result = race_network_request_loader_factories_.insert( -- String(params->request->service_worker_race_network_request_token -- ->ToString()), -- std::move(params->race_network_request_loader_factory)); -- -- // DumpWithoutCrashing if the token is empty, or not inserted as a new entry -- // to |race_network_request_loader_factories_|. -- // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data -- // and identify the cause. -- static bool has_dumped_without_crashing_for_empty_token = false; -- static bool has_dumped_without_crashing_for_not_new_entry = false; -- if (!has_dumped_without_crashing_for_empty_token && -- params->request->service_worker_race_network_request_token -- ->is_empty()) { -- has_dumped_without_crashing_for_empty_token = true; -- SCOPED_CRASH_KEY_BOOL( -- "SWGlobalScope", "empty_race_token", -- params->request->service_worker_race_network_request_token -- ->is_empty()); -- SCOPED_CRASH_KEY_STRING64( -- "SWGlobalScope", "race_token_string", -- params->request->service_worker_race_network_request_token -- ->ToString()); -- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry", -- insert_result.is_new_entry); -- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url", -- params->request->url.GetString().Utf8()); -- base::debug::DumpWithoutCrashing(); -- } -- if (!has_dumped_without_crashing_for_not_new_entry && -- !insert_result.is_new_entry) { -- has_dumped_without_crashing_for_not_new_entry = true; -- SCOPED_CRASH_KEY_BOOL( -- "SWGlobalScope", "empty_race_token", -- params->request->service_worker_race_network_request_token -- ->is_empty()); -- SCOPED_CRASH_KEY_STRING64( -- "SWGlobalScope", "race_token_string", -- params->request->service_worker_race_network_request_token -- ->ToString()); -- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry", -- insert_result.is_new_entry); -- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url", -- params->request->url.GetString().Utf8()); -- base::debug::DumpWithoutCrashing(); -- } -+ InsertNewItemToRaceNetworkRequests( -+ event_id, -+ params->request->service_worker_race_network_request_token.value(), -+ std::move(params->race_network_request_loader_factory), -+ params->request->url); - } - - Request* request = Request::Create( -@@ -2808,12 +2773,71 @@ bool ServiceWorkerGlobalScope::SetAttributeEventListener( - absl::optional> - ServiceWorkerGlobalScope::FindRaceNetworkRequestURLLoaderFactory( - const base::UnguessableToken& token) { -- mojo::PendingRemote result = -- race_network_request_loader_factories_.Take(String(token.ToString())); -+ std::unique_ptr result = -+ race_network_requests_.Take(String(token.ToString())); - if (result) { -- return result; -+ race_network_request_fetch_event_ids_.erase(result->fetch_event_id); -+ return absl::optional< -+ mojo::PendingRemote>( -+ std::move(result->url_loader_factory)); - } - return absl::nullopt; - } - -+void ServiceWorkerGlobalScope::InsertNewItemToRaceNetworkRequests( -+ int fetch_event_id, -+ const base::UnguessableToken& token, -+ mojo::PendingRemote -+ url_loader_factory, -+ const KURL& request_url) { -+ auto race_network_request_token = String(token.ToString()); -+ auto info = std::make_unique( -+ fetch_event_id, race_network_request_token, -+ std::move(url_loader_factory)); -+ race_network_request_fetch_event_ids_.insert(fetch_event_id, info.get()); -+ auto insert_result = race_network_requests_.insert(race_network_request_token, -+ std::move(info)); -+ -+ // DumpWithoutCrashing if the token is empty, or not inserted as a new entry -+ // to |race_network_request_loader_factories_|. -+ // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data -+ // and identify the cause. -+ static bool has_dumped_without_crashing_for_empty_token = false; -+ static bool has_dumped_without_crashing_for_not_new_entry = false; -+ if (!has_dumped_without_crashing_for_empty_token && token.is_empty()) { -+ has_dumped_without_crashing_for_empty_token = true; -+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token", -+ token.is_empty()); -+ SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string", -+ token.ToString()); -+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry", -+ insert_result.is_new_entry); -+ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url", -+ request_url.GetString().Utf8()); -+ base::debug::DumpWithoutCrashing(); -+ } -+ if (!has_dumped_without_crashing_for_not_new_entry && -+ !insert_result.is_new_entry) { -+ has_dumped_without_crashing_for_not_new_entry = true; -+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token", -+ token.is_empty()); -+ SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string", -+ token.ToString()); -+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry", -+ insert_result.is_new_entry); -+ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url", -+ request_url.GetString().Utf8()); -+ base::debug::DumpWithoutCrashing(); -+ } -+} -+ -+void ServiceWorkerGlobalScope::RemoveItemFromRaceNetworkRequests( -+ int fetch_event_id) { -+ RaceNetworkRequestInfo* info = -+ race_network_request_fetch_event_ids_.Take(fetch_event_id); -+ if (info) { -+ race_network_requests_.erase(info->token); -+ } -+} -+ - } // namespace blink -diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h -index 46c431b395825..ac4cac0b1d8fb 100644 ---- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h -+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h -@@ -623,6 +623,14 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final - // ServiceWorker.FetchEvent.QueuingTime histogram. - void RecordQueuingTime(base::TimeTicks created_time); - -+ void InsertNewItemToRaceNetworkRequests( -+ int fetch_event_id, -+ const base::UnguessableToken& token, -+ mojo::PendingRemote -+ url_loader_factory, -+ const KURL& request_url); -+ void RemoveItemFromRaceNetworkRequests(int fetch_event_id); -+ - Member clients_; - Member registration_; - Member<::blink::ServiceWorker> service_worker_; -@@ -768,10 +776,17 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final - - blink::BlinkStorageKey storage_key_; - -+ struct RaceNetworkRequestInfo { -+ int fetch_event_id; -+ String token; -+ mojo::PendingRemote -+ url_loader_factory; -+ }; - // TODO(crbug.com/918702) WTF::HashMap cannot use base::UnguessableToken as a - // key. As a workaround uses WTF::String as a key instead. -- HashMap> -- race_network_request_loader_factories_; -+ HashMap> -+ race_network_requests_; -+ HashMap race_network_request_fetch_event_ids_; - - HeapMojoAssociatedRemote - remote_associated_interfaces_{this}; diff --git a/SOURCES/chromium-121-mnemonic-error.patch b/SOURCES/chromium-121-mnemonic-error.patch deleted file mode 100644 index 61239e7f..00000000 --- a/SOURCES/chromium-121-mnemonic-error.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up chromium-121.0.6167.16/third_party/blink/renderer/core/BUILD.gn.mnemonic-error chromium-121.0.6167.16/third_party/blink/renderer/core/BUILD.gn ---- chromium-121.0.6167.16/third_party/blink/renderer/core/BUILD.gn.mnemonic-error 2023-12-19 18:14:43.027723832 +0100 -+++ chromium-121.0.6167.16/third_party/blink/renderer/core/BUILD.gn 2023-12-19 18:39:47.492384620 +0100 -@@ -1731,8 +1731,6 @@ action_foreach("element_locator_test_pro - python_path_root = "${root_out_dir}/pyproto" - python_path_proto = "${python_path_root}/third_party/blink/renderer/core/lcp_critical_path_predictor" - -- mnemonic = "ELOC_PROTO" -- - source_dir = "lcp_critical_path_predictor/test_proto" - sources = rebase_path([ "lcp_image_id.asciipb" ], "", source_dir) - sources += rebase_path([ "lcp_image_id_b.asciipb" ], "", source_dir) diff --git a/SOURCES/chromium-122-static-assert.patch b/SOURCES/chromium-122-static-assert.patch deleted file mode 100644 index b24439f6..00000000 --- a/SOURCES/chromium-122-static-assert.patch +++ /dev/null @@ -1,32 +0,0 @@ -commit 04866680f4f9a8475ae3795ad6ed59649ba478d7 -Author: Jose Dapena Paz -Date: Tue Jan 23 12:04:05 2024 +0000 - - libstdc++: fix static assertion in NodeUuidEquality - - libstdc++ equality checks in static assertion that it is possible to - compare for equality base::Uuid to BookmarkNode*. This was a missing - operator in NodeUuidEquality that this changeset adds. - - Bug: 957519 - Change-Id: Icc9809cb43d321f0b3e3394ef27ab55672aec5e7 - Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5227686 - Reviewed-by: Mikel Astiz - Commit-Queue: José Dapena Paz - Cr-Commit-Position: refs/heads/main@{#1250753} - -diff --git a/components/bookmarks/browser/uuid_index.h b/components/bookmarks/browser/uuid_index.h -index 77cb1a1a54dd9..639d6fefcd831 100644 ---- a/components/bookmarks/browser/uuid_index.h -+++ b/components/bookmarks/browser/uuid_index.h -@@ -23,6 +23,10 @@ class NodeUuidEquality { - bool operator()(const BookmarkNode* n1, const base::Uuid& uuid2) const { - return n1->uuid() == uuid2; - } -+ -+ bool operator()(const base::Uuid& uuid1, const BookmarkNode* n2) const { -+ return uuid1 == n2->uuid(); -+ } - }; - - // Used to hash BookmarkNode instances by UUID. diff --git a/SOURCES/chromium-123-el7-default-constructor-involving-anonymous-union.patch b/SOURCES/chromium-123-el7-default-constructor-involving-anonymous-union.patch new file mode 100644 index 00000000..9593ea70 --- /dev/null +++ b/SOURCES/chromium-123-el7-default-constructor-involving-anonymous-union.patch @@ -0,0 +1,36 @@ +diff -up chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc +--- chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc.default-constructor-involving-anonymous-union 2024-02-22 22:43:05.000000000 +0100 ++++ chromium-122.0.6261.69/components/variations/service/ui_string_overrider.cc 2024-02-25 10:52:16.071602503 +0100 +@@ -12,7 +12,7 @@ + + namespace variations { + +-UIStringOverrider::UIStringOverrider() = default; ++UIStringOverrider::UIStringOverrider() {} + + UIStringOverrider::UIStringOverrider(base::span resource_hashes, + base::span resource_indices) +diff -up chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc +--- chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc.default-constructor-involving-anonymous-union 2024-02-25 10:52:16.070602478 +0100 ++++ chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.cc 2024-02-25 11:20:36.583148226 +0100 +@@ -46,7 +46,7 @@ size_t GetResultSizeBytes(const HeaderDi + + } // namespace + +-HeaderDirectFromSellerSignals::Result::Result() = default; ++HeaderDirectFromSellerSignals::Result::Result() {} + + HeaderDirectFromSellerSignals::Result::Result( + std::optional seller_signals, +diff -up chromium-123.0.6312.46/third_party/pdfium/core/fpdfdoc/cpdf_defaultappearance.cpp.me chromium-123.0.6312.46/third_party/pdfium/core/fpdfdoc/cpdf_defaultappearance.cpp +--- chromium-123.0.6312.46/third_party/pdfium/core/fpdfdoc/cpdf_defaultappearance.cpp.me 2024-03-18 16:11:19.550329592 +0100 ++++ chromium-123.0.6312.46/third_party/pdfium/core/fpdfdoc/cpdf_defaultappearance.cpp 2024-03-18 16:12:51.124472676 +0100 +@@ -54,7 +54,7 @@ bool FindTagParamFromStart(CPDF_SimplePa + + } // namespace + +-CPDF_DefaultAppearance::CPDF_DefaultAppearance() = default; ++CPDF_DefaultAppearance::CPDF_DefaultAppearance() {} + + CPDF_DefaultAppearance::CPDF_DefaultAppearance(const ByteString& csDA) + : m_csDA(csDA) {} diff --git a/SOURCES/chromium-123-fstack-protector-strong.patch b/SOURCES/chromium-123-fstack-protector-strong.patch new file mode 100644 index 00000000..33a4142e --- /dev/null +++ b/SOURCES/chromium-123-fstack-protector-strong.patch @@ -0,0 +1,12 @@ +diff -up chromium-123.0.6312.46/build/config/compiler/BUILD.gn.fstack-protector-strong chromium-123.0.6312.46/build/config/compiler/BUILD.gn +--- chromium-123.0.6312.46/build/config/compiler/BUILD.gn.fstack-protector-strong 2024-03-15 11:46:34.542248116 +0100 ++++ chromium-123.0.6312.46/build/config/compiler/BUILD.gn 2024-03-15 11:59:02.970849847 +0100 +@@ -382,7 +382,7 @@ config("compiler") { + } else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) { + if (current_os != "aix") { + # Not available on aix. +- cflags += [ "-fstack-protector" ] ++ cflags += [ "-fstack-protector-strong" ] + } + } + } diff --git a/SOURCES/chromium-123-missing-header-files.patch b/SOURCES/chromium-123-missing-header-files.patch new file mode 100644 index 00000000..f11142ea --- /dev/null +++ b/SOURCES/chromium-123-missing-header-files.patch @@ -0,0 +1,169 @@ +diff -up chromium-122.0.6261.29/base/check_op.h.missing-header-files chromium-122.0.6261.29/base/check_op.h +--- chromium-122.0.6261.29/base/check_op.h.missing-header-files 2024-02-07 19:49:20.000000000 +0100 ++++ chromium-122.0.6261.29/base/check_op.h 2024-02-12 14:59:48.136415060 +0100 +@@ -5,6 +5,7 @@ + #ifndef BASE_CHECK_OP_H_ + #define BASE_CHECK_OP_H_ + ++#include + #include + #include + #include +diff -up chromium-122.0.6261.29/base/containers/flat_map.h.missing-header-files chromium-122.0.6261.29/base/containers/flat_map.h +--- chromium-122.0.6261.29/base/containers/flat_map.h.missing-header-files 2024-02-07 19:49:20.000000000 +0100 ++++ chromium-122.0.6261.29/base/containers/flat_map.h 2024-02-12 14:59:48.136415060 +0100 +@@ -5,6 +5,7 @@ + #ifndef BASE_CONTAINERS_FLAT_MAP_H_ + #define BASE_CONTAINERS_FLAT_MAP_H_ + ++#include + #include + #include + #include +diff -up chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h +--- chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files 2024-02-12 14:59:48.137415079 +0100 ++++ chromium-122.0.6261.29/chrome/browser/webauthn/authenticator_request_dialog_model.h 2024-02-12 15:28:17.168395787 +0100 +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + + #include "base/containers/span.h" + #include "base/functional/callback_forward.h" +diff -up chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc +--- chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files 2024-02-07 19:49:27.000000000 +0100 ++++ chromium-122.0.6261.29/chrome/test/chromedriver/chrome/web_view_impl.cc 2024-02-12 14:59:48.137415079 +0100 +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + + #include "base/check.h" + #include "base/files/file_path.h" +diff -up chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h +--- chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files 2024-02-07 19:49:30.000000000 +0100 ++++ chromium-122.0.6261.29/components/feature_engagement/internal/never_event_storage_validator.h 2024-02-12 14:59:48.138415097 +0100 +@@ -5,6 +5,7 @@ + #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_ + #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_ + ++#include + #include + + #include "components/feature_engagement/internal/event_storage_validator.h" +diff -up chromium-122.0.6261.29/gin/time_clamper.h.missing-header-files chromium-122.0.6261.29/gin/time_clamper.h +--- chromium-122.0.6261.29/gin/time_clamper.h.missing-header-files 2024-02-07 19:49:35.000000000 +0100 ++++ chromium-122.0.6261.29/gin/time_clamper.h 2024-02-12 14:59:48.138415097 +0100 +@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper { + const int64_t micros = now_micros % 1000; + // abs() is necessary for devices with times before unix-epoch (most likely + // configured incorrectly). +- if (abs(micros) + kResolutionMicros < 1000) { ++ if (std::abs(micros) + kResolutionMicros < 1000) { + return now_micros / 1000; + } + return ClampTimeResolution(now_micros) / 1000; +diff -up chromium-122.0.6261.29/net/base/net_export.h.missing-header-files chromium-122.0.6261.29/net/base/net_export.h +--- chromium-122.0.6261.29/net/base/net_export.h.missing-header-files 2024-02-07 19:49:38.000000000 +0100 ++++ chromium-122.0.6261.29/net/base/net_export.h 2024-02-12 14:59:48.139415116 +0100 +@@ -5,6 +5,8 @@ + #ifndef NET_BASE_NET_EXPORT_H_ + #define NET_BASE_NET_EXPORT_H_ + ++#include ++ + // Defines NET_EXPORT so that functionality implemented by the net module can + // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to + // access features not intended to be used directly by real consumers. +diff -up chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h +--- chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files 2024-02-07 19:49:40.000000000 +0100 ++++ chromium-122.0.6261.29/third_party/abseil-cpp/absl/strings/string_view.h 2024-02-12 14:59:48.142415172 +0100 +@@ -27,6 +27,7 @@ + #ifndef ABSL_STRINGS_STRING_VIEW_H_ + #define ABSL_STRINGS_STRING_VIEW_H_ + ++#include + #include + #include + #include +diff -up chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h +--- chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files 2024-02-07 19:50:44.000000000 +0100 ++++ chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h 2024-02-12 14:59:48.142415172 +0100 +@@ -28,6 +28,7 @@ + #ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_ + #define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_ + ++#include + #include + #include + #include +diff -up chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc +--- chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files 2024-02-07 19:54:45.000000000 +0100 ++++ chromium-122.0.6261.29/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc 2024-02-12 14:59:48.143415190 +0100 +@@ -45,6 +45,7 @@ + #include "llvm/Support/SaveAndRestore.h" + #include "llvm/Support/raw_ostream.h" + #include ++#include + #include + #include + #ifdef HAVE_BACKTRACE +diff -up chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h +--- chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files 2024-02-07 19:53:17.000000000 +0100 ++++ chromium-122.0.6261.29/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h 2024-02-12 14:59:48.143415190 +0100 +@@ -31,6 +31,7 @@ limitations under the License. + #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_ + #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_ + ++#include + #include + #include + #include +diff -up chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h +--- chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files 2024-02-07 19:54:20.000000000 +0100 ++++ chromium-122.0.6261.29/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2024-02-12 14:59:48.145415228 +0100 +@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N + + // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString. + #if VMA_STATS_STRING_ENABLED ++#include + static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num) + { + snprintf(outStr, strLen, "%u", static_cast(num)); +diff -up chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc +--- chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files 2024-02-07 19:53:17.000000000 +0100 ++++ chromium-122.0.6261.29/third_party/webrtc/audio/utility/channel_mixer.cc 2024-02-12 14:59:48.145415228 +0100 +@@ -8,6 +8,8 @@ + * be found in the AUTHORS file in the root of the source tree. + */ + ++#include ++ + #include "audio/utility/channel_mixer.h" + + #include "audio/utility/channel_mixing_matrix.h" +diff -up chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h +--- chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files 2024-02-07 19:53:17.000000000 +0100 ++++ chromium-122.0.6261.29/third_party/webrtc/modules/include/module_common_types_public.h 2024-02-12 14:59:48.145415228 +0100 +@@ -11,6 +11,7 @@ + #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_ + #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_ + ++#include + #include + + #include "absl/types/optional.h" +diff -up chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h.missing-header-files chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h +--- chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h.missing-header-files 2024-02-07 19:50:05.000000000 +0100 ++++ chromium-122.0.6261.29/ui/gfx/linux/drm_util_linux.h 2024-02-12 14:59:48.147415265 +0100 +@@ -9,6 +9,8 @@ + + #include "ui/gfx/buffer_types.h" + ++#include ++ + namespace ui { + + int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format); diff --git a/SOURCES/chromium-123-no_matching_constructor.patch b/SOURCES/chromium-123-no_matching_constructor.patch new file mode 100644 index 00000000..4b29170b --- /dev/null +++ b/SOURCES/chromium-123-no_matching_constructor.patch @@ -0,0 +1,1364 @@ +diff -up chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc.than chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc +--- chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc.than 2024-02-22 22:42:43.000000000 +0100 ++++ chromium-122.0.6261.69/base/metrics/persistent_histogram_allocator.cc 2024-02-24 13:13:32.484503735 +0100 +@@ -218,13 +218,13 @@ PersistentSparseHistogramDataManager::Lo + // The sample-record could be for any sparse histogram. Add the reference + // to the appropriate collection for later use. + if (found_id == match_id) { +- found_records.emplace_back(ref, value); ++ found_records.emplace_back() = {ref, value}; + found = true; + } else { + std::vector* samples = + GetSampleMapRecordsWhileLocked(found_id); + CHECK(samples); +- samples->emplace_back(ref, value); ++ samples->emplace_back() = {ref, value}; + } + } + +diff -up chromium-122.0.6261.69/base/nix/mime_util_xdg.cc.than chromium-122.0.6261.69/base/nix/mime_util_xdg.cc +--- chromium-122.0.6261.69/base/nix/mime_util_xdg.cc.than 2024-02-22 22:42:43.000000000 +0100 ++++ chromium-122.0.6261.69/base/nix/mime_util_xdg.cc 2024-02-24 13:13:44.158712756 +0100 +@@ -56,7 +56,7 @@ void LoadAllMimeCacheFiles(MimeTypeMap& + for (const auto& path : GetXDGDataSearchLocations(env.get())) { + FilePath mime_cache = path.Append("mime/mime.cache"); + if (GetFileInfo(mime_cache, &info) && ParseMimeTypes(mime_cache, map)) { +- files.emplace_back(mime_cache, info.last_modified); ++ files.emplace_back() = {mime_cache, info.last_modified}; + } + } + } +diff -up chromium-122.0.6261.69/base/trace_event/trace_log.cc.than chromium-122.0.6261.69/base/trace_event/trace_log.cc +--- chromium-122.0.6261.69/base/trace_event/trace_log.cc.than 2024-02-22 22:42:43.000000000 +0100 ++++ chromium-122.0.6261.69/base/trace_event/trace_log.cc 2024-02-24 13:13:32.484503735 +0100 +@@ -2198,8 +2198,8 @@ void TraceLog::SetTraceBufferForTesting( + #if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY) + void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) { + AutoLock lock(track_event_lock_); +- track_event_sessions_.emplace_back(args.internal_instance_index, *args.config, +- args.backend_type); ++ track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config, ++ args.backend_type}; + } + + void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) { +diff -up chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc.than chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc +--- chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc.than 2024-02-22 22:42:50.000000000 +0100 ++++ chromium-122.0.6261.69/chrome/browser/content_settings/one_time_permission_provider.cc 2024-02-24 13:13:32.485503752 +0100 +@@ -252,8 +252,8 @@ void OneTimePermissionProvider::OnSuspen + + while (rule_iterator && rule_iterator->HasNext()) { + auto rule = rule_iterator->Next(); +- patterns_to_delete.emplace_back(setting_type, rule->primary_pattern, +- rule->secondary_pattern); ++ patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern, ++ rule->secondary_pattern}; + permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( + setting_type, + permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND); +@@ -355,8 +355,8 @@ void OneTimePermissionProvider::DeleteEn + auto rule = rule_iterator->Next(); + if (rule->primary_pattern.Matches(origin_gurl) && + rule->secondary_pattern.Matches(origin_gurl)) { +- patterns_to_delete.emplace_back( +- content_setting_type, rule->primary_pattern, rule->secondary_pattern); ++ patterns_to_delete.emplace_back() = { ++ content_setting_type, rule->primary_pattern, rule->secondary_pattern}; + permissions::PermissionUmaUtil::RecordOneTimePermissionEvent( + content_setting_type, trigger_event); + } +diff -up chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.than chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc +--- chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.than 2024-02-22 22:42:50.000000000 +0100 ++++ chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc 2024-02-24 13:13:32.485503752 +0100 +@@ -67,8 +67,8 @@ base::flat_mapinsert(std::make_pair( + "supported.test", +- SAMLProfileAttributes("placeholderName", "placeholderDomain", +- "placeholderToken"))); ++ SAMLProfileAttributes{"placeholderName", "placeholderDomain", ++ "placeholderToken"})); + + // Extract domains and attributes from the command line switch. + const base::CommandLine& command_line = +diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc +--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than 2024-02-22 22:42:55.000000000 +0100 ++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc 2024-02-24 13:13:32.486503770 +0100 +@@ -60,12 +60,12 @@ std::vector buttons; + if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) { +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME), +- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal); ++ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal}; + } +- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW), +- ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId); ++ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW), ++ ButtonType::kAllow, ui::ButtonStyle::kTonal, kAllowId}; + return buttons; + } + +diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h +--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.than 2024-02-22 22:42:55.000000000 +0100 ++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h 2024-02-24 13:13:32.486503770 +0100 +@@ -87,6 +87,7 @@ class EmbeddedPermissionPromptBaseView : + struct RequestLineConfiguration { + const raw_ptr icon; + std::u16string message; ++ RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { } + }; + + struct ButtonConfiguration { +diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc +--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than 2024-02-22 22:42:55.000000000 +0100 ++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc 2024-02-24 13:13:32.486503770 +0100 +@@ -64,8 +64,8 @@ EmbeddedPermissionPromptPolicyView::GetR + std::vector + EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() const { + std::vector buttons; +- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL), +- ButtonType::kPolicyOK, ui::ButtonStyle::kTonal); ++ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL), ++ ButtonType::kPolicyOK, ui::ButtonStyle::kTonal}; + return buttons; + } + +diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc +--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc.than 2024-02-22 22:42:55.000000000 +0100 ++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_denied_view.cc 2024-02-24 13:13:44.153712667 +0100 +@@ -79,17 +79,17 @@ EmbeddedPermissionPromptPreviouslyDenied + std::vector + EmbeddedPermissionPromptPreviouslyDeniedView::GetButtonsConfiguration() const { + std::vector buttons; +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_NOT_ALLOWING), +- ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal); ++ ButtonType::kContinueNotAllowing, ui::ButtonStyle::kTonal}; + + if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) { +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME), +- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId); ++ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal, kAllowThisTimeId}; + } else { +- 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-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc +--- chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.than 2024-02-22 22:42:55.000000000 +0100 ++++ chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc 2024-02-24 13:13:44.153712667 +0100 +@@ -74,12 +74,12 @@ EmbeddedPermissionPromptPreviouslyGrante + std::vector + EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() const { + std::vector buttons; +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING), +- ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal); ++ ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal}; + +- buttons.emplace_back( ++ buttons.emplace_back() = { + l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING), +- ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId); ++ ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId}; + return buttons; + } +diff -up chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc.than chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc +--- chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc.than 2024-02-22 22:42:56.000000000 +0100 ++++ chromium-122.0.6261.69/chrome/test/chromedriver/capabilities.cc 2024-02-24 13:13:32.486503770 +0100 +@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base:: + "'version' field of type string"); + } + +- brands.emplace_back(*brand, *version); ++ brands.emplace_back() = {*brand, *version}; + } + + client_hints.brands = std::move(brands); +@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base:: + "a 'version' field of type string"); + } + +- full_version_list.emplace_back(*brand, *version); ++ full_version_list.emplace_back() = {*brand, *version}; + } + + client_hints.full_version_list = std::move(full_version_list); +diff -up chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc.than chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc +--- chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc.than 2024-02-22 22:43:02.000000000 +0100 ++++ chromium-122.0.6261.69/components/password_manager/core/browser/password_manager.cc 2024-02-24 13:13:44.154712685 +0100 +@@ -673,7 +673,7 @@ void PasswordManager::OnUserModifiedNonP + it->second.last_change = base::Time::Now(); + } else { + 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, +diff -up chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc.than chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc +--- chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc.than 2024-02-22 22:43:02.000000000 +0100 ++++ chromium-122.0.6261.69/components/performance_manager/worker_watcher.cc 2024-02-24 13:13:44.158712756 +0100 +@@ -239,7 +239,7 @@ void WorkerWatcher::OnWorkerCreated( + DCHECK(insertion_result.second); + + absl::visit( +- base::Overloaded( ++ base::Overloaded{ + [&, + this](const content::GlobalRenderFrameHostId& render_frame_host_id) { + AddFrameClientConnection(insertion_result.first->second.get(), +@@ -248,7 +248,7 @@ void WorkerWatcher::OnWorkerCreated( + [&, this](blink::DedicatedWorkerToken dedicated_worker_token) { + ConnectDedicatedWorkerClient(insertion_result.first->second.get(), + dedicated_worker_token); +- }), ++ }}, + creator); + } + +@@ -265,7 +265,7 @@ void WorkerWatcher::OnBeforeWorkerDestro + // First disconnect the creator's node from this worker node. + + absl::visit( +- base::Overloaded( ++ base::Overloaded{ + [&, + this](const content::GlobalRenderFrameHostId& render_frame_host_id) { + RemoveFrameClientConnection(worker_node.get(), +@@ -274,7 +274,7 @@ void WorkerWatcher::OnBeforeWorkerDestro + [&, this](blink::DedicatedWorkerToken dedicated_worker_token) { + DisconnectDedicatedWorkerClient(worker_node.get(), + dedicated_worker_token); +- }), ++ }}, + creator); + + // Disconnect all child workers before destroying the node. +@@ -446,7 +446,7 @@ void WorkerWatcher::OnControlleeAdded( + const std::string& client_uuid, + const content::ServiceWorkerClientInfo& client_info) { + absl::visit( +- base::Overloaded( ++ base::Overloaded{ + [&, this](content::GlobalRenderFrameHostId render_frame_host_id) { + // For window clients, it is necessary to wait until the navigation + // has committed to a RenderFrameHost. +@@ -484,7 +484,7 @@ void WorkerWatcher::OnControlleeAdded( + ConnectSharedWorkerClient(service_worker_node, + shared_worker_token); + } +- }), ++ }}, + client_info); + } + +@@ -524,7 +524,7 @@ void WorkerWatcher::OnControlleeRemoved( + return; + + absl::visit( +- base::Overloaded( ++ base::Overloaded{ + [&, this](content::GlobalRenderFrameHostId render_frame_host_id) { + RemoveFrameClientConnection(worker_node, render_frame_host_id); + }, +@@ -534,7 +534,7 @@ void WorkerWatcher::OnControlleeRemoved( + }, + [&, this](blink::SharedWorkerToken shared_worker_token) { + DisconnectSharedWorkerClient(worker_node, shared_worker_token); +- }), ++ }}, + client); + } + +@@ -810,7 +810,7 @@ void WorkerWatcher::ConnectAllServiceWor + + for (const auto& kv : it->second) { + absl::visit( +- base::Overloaded( ++ base::Overloaded{ + [&, this](content::GlobalRenderFrameHostId render_frame_host_id) { + AddFrameClientConnection(service_worker_node, + render_frame_host_id); +@@ -822,7 +822,7 @@ void WorkerWatcher::ConnectAllServiceWor + [&, this](blink::SharedWorkerToken shared_worker_token) { + ConnectSharedWorkerClient(service_worker_node, + shared_worker_token); +- }), ++ }}, + kv.second); + } + } +@@ -837,7 +837,7 @@ void WorkerWatcher::DisconnectAllService + + for (const auto& kv : it->second) { + absl::visit( +- base::Overloaded( ++ base::Overloaded{ + [&, this]( + const content::GlobalRenderFrameHostId& render_frame_host_id) { + RemoveFrameClientConnection(service_worker_node, +@@ -851,7 +851,7 @@ void WorkerWatcher::DisconnectAllService + [&, this](const blink::SharedWorkerToken& shared_worker_token) { + DisconnectSharedWorkerClient(service_worker_node, + shared_worker_token); +- }), ++ }}, + kv.second); + } + } +diff -up chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.than chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc +--- chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.than 2024-02-22 22:43:05.000000000 +0100 ++++ chromium-122.0.6261.69/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc 2024-02-24 13:13:44.151712632 +0100 +@@ -1573,7 +1573,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut + + // Issue readbacks from the surfaces: + for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) { +- SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height()); ++ SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()}; + SkImageInfo dst_info = SkImageInfo::Make( + size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType, + kUnpremul_SkAlphaType); +diff -up chromium-122.0.6261.69/content/browser/download/save_package.cc.than chromium-122.0.6261.69/content/browser/download/save_package.cc +--- chromium-122.0.6261.69/content/browser/download/save_package.cc.than 2024-02-22 22:43:05.000000000 +0100 ++++ chromium-122.0.6261.69/content/browser/download/save_package.cc 2024-02-24 13:13:44.151712632 +0100 +@@ -801,8 +801,8 @@ void SavePackage::Finish() { + if (download_) { + std::vector files; + for (auto& item : saved_success_items_) { +- files.emplace_back(item.second->full_path(), item.second->url(), +- item.second->referrer().url); ++ files.emplace_back() = {item.second->full_path(), item.second->url(), ++ item.second->referrer().url}; + } + download::DownloadSaveItemData::AttachItemData(download_, std::move(files)); + } +diff -up chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc.than chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc +--- chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc.than 2024-02-22 22:43:05.000000000 +0100 ++++ chromium-122.0.6261.69/content/browser/first_party_sets/first_party_set_parser.cc 2024-02-24 13:13:44.158712756 +0100 +@@ -773,7 +773,7 @@ FirstPartySetParser::ParseSetsFromEnterp + context.GetPolicySetsFromList( + policy.FindList(kFirstPartySetPolicyAdditionsField), + PolicySetType::kAddition)); +- return ParsedPolicySetLists(std::move(replacements), std::move(additions)); ++ return ParsedPolicySetLists{std::move(replacements), std::move(additions)}; + }(); + + context.PostProcessSetLists(set_lists); +diff -up chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h.than chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h +--- chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h.than 2024-02-22 22:43:05.000000000 +0100 ++++ chromium-122.0.6261.69/content/browser/interest_group/header_direct_from_seller_signals.h 2024-02-24 13:13:44.158712756 +0100 +@@ -133,6 +133,7 @@ class CONTENT_EXPORT HeaderDirectFromSel + + // The Ad-Auction-Signals response served by `origin`. + std::string response_json; ++ UnprocessedResponse(auto u, auto s) : origin(u), response_json(s) { } + }; + + // Information from ParseAndFind() calls used by ParseAndFindCompleted. +diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.than chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc +--- chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.than 2024-02-22 22:43:05.000000000 +0100 ++++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc 2024-02-24 13:13:44.152712649 +0100 +@@ -3461,10 +3461,10 @@ DoGetKAnonymityData(sql::Database& db, + + std::vector k_anon_data; + while (interest_group_kanon_query.Step()) { +- k_anon_data.emplace_back( ++ k_anon_data.emplace_back() = { + /*key=*/interest_group_kanon_query.ColumnString(0), + /*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1), +- /*last_updated=*/interest_group_kanon_query.ColumnTime(2)); ++ /*last_updated=*/interest_group_kanon_query.ColumnTime(2)}; + } + if (!interest_group_kanon_query.Succeeded()) { + return std::nullopt; +diff -up chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc.than chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc +--- chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc.than 2024-02-24 13:13:44.157712739 +0100 ++++ chromium-122.0.6261.69/content/browser/renderer_host/render_frame_host_impl.cc 2024-02-24 13:18:39.480119447 +0100 +@@ -8632,7 +8632,7 @@ void RenderFrameHostImpl::SendFencedFram + for (const blink::FencedFrame::ReportingDestination& destination : + destinations) { + SendFencedFrameReportingBeaconInternal( +- DestinationEnumEvent(event_type, event_data), destination); ++ DestinationEnumEvent{event_type, event_data}, destination); + } + } + +@@ -8661,7 +8661,7 @@ void RenderFrameHostImpl::SendFencedFram + } + + SendFencedFrameReportingBeaconInternal( +- DestinationURLEvent(destination_url), ++ DestinationURLEvent{destination_url}, + blink::FencedFrame::ReportingDestination::kBuyer); + } + +@@ -8792,7 +8792,7 @@ void RenderFrameHostImpl::MaybeSendFence + data = info->data; + } + initiator_rfh->SendFencedFrameReportingBeaconInternal( +- AutomaticBeaconEvent(event_type, data), destination, ++ AutomaticBeaconEvent{event_type, data}, destination, + navigation_request.GetNavigationId()); + } + } else { +@@ -8803,7 +8803,7 @@ void RenderFrameHostImpl::MaybeSendFence + for (blink::FencedFrame::ReportingDestination destination : + info->destinations) { + initiator_rfh->SendFencedFrameReportingBeaconInternal( +- AutomaticBeaconEvent(event_type, info->data), destination, ++ AutomaticBeaconEvent{event_type, info->data}, destination, + navigation_request.GetNavigationId()); + } + } +diff -up chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc.than chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc +--- chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc.than 2024-02-22 22:43:06.000000000 +0100 ++++ chromium-122.0.6261.69/content/browser/service_worker/service_worker_container_host.cc 2024-02-24 13:13:44.159712774 +0100 +@@ -870,7 +870,7 @@ ServiceWorkerContainerHost::GetClientTyp + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(client_info_); + return absl::visit( +- base::Overloaded( ++ base::Overloaded{ + [](GlobalRenderFrameHostId render_frame_host_id) { + return blink::mojom::ServiceWorkerClientType::kWindow; + }, +@@ -879,7 +879,7 @@ ServiceWorkerContainerHost::GetClientTyp + }, + [](blink::SharedWorkerToken shared_worker_token) { + return blink::mojom::ServiceWorkerClientType::kSharedWorker; +- }), ++ }}, + *client_info_); + } + +diff -up chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.than chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc +--- chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc.than 2024-02-22 22:43:06.000000000 +0100 ++++ chromium-122.0.6261.69/content/browser/service_worker/service_worker_main_resource_loader_interceptor.cc 2024-02-24 13:13:44.159712774 +0100 +@@ -363,10 +363,10 @@ ServiceWorkerMainResourceLoaderIntercept + } + auto* storage_partition = process->GetStoragePartition(); + +- return absl::visit(base::Overloaded([&, this](auto token) { ++ return absl::visit(base::Overloaded{[&, this](auto token) { + return GetStorageKeyFromWorkerHost(storage_partition, + token, origin); +- }), ++ }}, + *worker_token_); + } + +diff -up chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc.than chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc +--- chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc.than 2024-02-22 22:43:06.000000000 +0100 ++++ chromium-122.0.6261.69/content/browser/worker_host/dedicated_worker_host.cc 2024-02-24 13:13:44.159712774 +0100 +@@ -252,7 +252,7 @@ void DedicatedWorkerHost::StartScriptLoa + RenderFrameHostImpl* creator_render_frame_host = nullptr; + DedicatedWorkerHost* creator_worker = nullptr; + +- absl::visit(base::Overloaded( ++ absl::visit(base::Overloaded{ + [&](const GlobalRenderFrameHostId& render_frame_host_id) { + creator_render_frame_host = + RenderFrameHostImpl::FromID(render_frame_host_id); +@@ -260,7 +260,7 @@ void DedicatedWorkerHost::StartScriptLoa + [&](blink::DedicatedWorkerToken dedicated_worker_token) { + creator_worker = service_->GetDedicatedWorkerHostFromToken( + dedicated_worker_token); +- }), ++ }}, + creator_); + + if (!creator_render_frame_host && !creator_worker) { +diff -up chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than chromium-122.0.6261.69/net/dns/host_resolver_cache.cc +--- chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than 2024-02-22 22:43:17.000000000 +0100 ++++ chromium-122.0.6261.69/net/dns/host_resolver_cache.cc 2024-02-24 13:13:44.152712649 +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-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.than chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc +--- chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.than 2024-02-22 22:43:25.000000000 +0100 ++++ chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/palette_interpolation.cc 2024-02-24 13:13:44.152712649 +0100 +@@ -31,7 +31,7 @@ Vector + color_interpolation_space, hue_interpolation_method, start_color, + end_color, percentage, alpha_multiplier); + +- FontPalette::FontPaletteOverride result_color_record(i, result_color); ++ FontPalette::FontPaletteOverride result_color_record{static_cast(i), result_color}; + result_color_records.push_back(result_color_record); + } + return result_color_records; +diff -up chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.than chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp +--- chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp.than 2024-02-22 22:45:02.000000000 +0100 ++++ chromium-122.0.6261.69/third_party/pdfium/core/fpdfapi/render/cpdf_renderstatus.cpp 2024-02-24 13:13:44.153712667 +0100 +@@ -507,7 +507,7 @@ void CPDF_RenderStatus::ProcessClipPath( + } else { + m_pDevice->SetClip_PathFill( + *pPath, &mtObj2Device, +- CFX_FillRenderOptions(ClipPath.GetClipType(i))); ++ CFX_FillRenderOptions{ClipPath.GetClipType(i)}); + } + } + +diff -up chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h.than chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h +--- chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h.than 2024-02-22 22:44:12.000000000 +0100 ++++ chromium-122.0.6261.69/ui/base/wayland/color_manager_util.h 2024-02-24 13:13:44.153712667 +0100 +@@ -52,53 +52,53 @@ constexpr auto kChromaticityMap = base:: + zcr_color_manager_v1_chromaticity_names, + PrimaryVersion>( + {{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M, +- kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG, +- kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M, +- kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB, +- PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB, +- kDefaultSinceVersion)}, ++ PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::BT470M, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::SMPTE240M, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::XYZ_D50, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::SMPTEST428_1, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::SMPTEST431_2, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM, +- PrimaryVersion( ++ PrimaryVersion{ + gfx::ColorSpace::PrimaryID::FILM, +- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}}); ++ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}}); + + // A map from the zcr_color_manager_v1 eotf_names enum values + // representing well-known EOTFs, to their equivalent TransferIDs. +@@ -107,68 +107,68 @@ constexpr auto kEotfMap = base::MakeFixe + zcr_color_manager_v1_eotf_names, + TransferVersion>({ + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, +- TransferVersion(gfx::ColorSpace::TransferID::LINEAR, +- kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::LINEAR, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB, +- TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR, +- TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709, +- TransferVersion(gfx::ColorSpace::TransferID::BT709, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::BT709, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087, +- TransferVersion(gfx::ColorSpace::TransferID::GAMMA24, +- kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA24, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB, + // This is ever so slightly inaccurate. The number ought to be + // 2.19921875f, not 2.2 +- TransferVersion(gfx::ColorSpace::TransferID::GAMMA22, +- kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA22, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ, +- TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)}, ++ TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG, +- TransferVersion(gfx::ColorSpace::TransferID::HLG, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::HLG, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M, +- TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M, +- TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1, +- TransferVersion( ++ TransferVersion{ + gfx::ColorSpace::TransferID::SMPTEST428_1, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG, +- TransferVersion(gfx::ColorSpace::TransferID::LOG, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::LOG, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT, +- TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4, +- TransferVersion( ++ TransferVersion{ + gfx::ColorSpace::TransferID::IEC61966_2_4, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG, +- TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10, +- TransferVersion(gfx::ColorSpace::TransferID::BT2020_10, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::BT2020_10, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12, +- TransferVersion(gfx::ColorSpace::TransferID::BT2020_12, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::BT2020_12, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS, +- TransferVersion( ++ TransferVersion{ + gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18, +- TransferVersion(gfx::ColorSpace::TransferID::GAMMA18, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA18, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28, +- TransferVersion(gfx::ColorSpace::TransferID::GAMMA28, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)}, ++ TransferVersion{gfx::ColorSpace::TransferID::GAMMA28, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}}, + }); + + // A map from the SDR zcr_color_manager_v1 eotf_names enum values +@@ -177,18 +177,18 @@ constexpr auto kEotfMap = base::MakeFixe + constexpr auto kTransferMap = + base::MakeFixedFlatMap({ + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, +- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB, +- TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709, +- TransferFnVersion( ++ TransferFnVersion{ + SkNamedTransferFnExt::kRec709, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087, +- TransferFnVersion(gamma24, kDefaultSinceVersion)}, ++ TransferFnVersion{gamma24, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB, +- TransferFnVersion(SkNamedTransferFnExt::kA98RGB, +- kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFnExt::kA98RGB, ++ kDefaultSinceVersion}}, + }); + + // A map from the HDR zcr_color_manager_v1 eotf_names enum values +@@ -197,70 +197,70 @@ constexpr auto kTransferMap = + constexpr auto kHDRTransferMap = + base::MakeFixedFlatMap( + {{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR, +- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR, +- TransferFnVersion( ++ TransferFnVersion{ + SkNamedTransferFnExt::kSRGB, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ, +- TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)}, ++ TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG, +- TransferFnVersion(SkNamedTransferFn::kHLG, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)}, ++ TransferFnVersion{SkNamedTransferFn::kHLG, ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10, +- TransferFnVersion( ++ TransferFnVersion{ + SkNamedTransferFnExt::kSRGBExtended1023Over510, +- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}}); ++ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}}); + + // A map from zcr_color_manager_v1 matrix_names enum values to + // gfx::ColorSpace::MatrixIDs. + constexpr auto kMatrixMap = + base::MakeFixedFlatMap( + {{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB, +- MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709, +- MatrixVersion(gfx::ColorSpace::MatrixID::BT709, +- kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::BT709, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG, +- MatrixVersion( ++ MatrixVersion{ + gfx::ColorSpace::MatrixID::BT470BG, +- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)}, ++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL, +- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL, +- kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL, +- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL, +- kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC, +- MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG, +- MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG, +- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG, ++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX, +- MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX, +- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX, ++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR, +- MatrixVersion(gfx::ColorSpace::MatrixID::GBR, +- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::GBR, ++ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M, +- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M, +- kDefaultSinceVersion)}, ++ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M, +- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M, +- kDefaultSinceVersion)}}); ++ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M, ++ kDefaultSinceVersion}}}); + + // A map from zcr_color_manager_v1 range_names enum values to + // gfx::ColorSpace::RangeIDs. + constexpr auto kRangeMap = + base::MakeFixedFlatMap( + {{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED, +- RangeVersion(gfx::ColorSpace::RangeID::LIMITED, +- kDefaultSinceVersion)}, ++ RangeVersion{gfx::ColorSpace::RangeID::LIMITED, ++ kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL, +- RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)}, ++ RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}}, + {ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED, +- RangeVersion(gfx::ColorSpace::RangeID::DERIVED, +- kDefaultSinceVersion)}}); ++ RangeVersion{gfx::ColorSpace::RangeID::DERIVED, ++ kDefaultSinceVersion}}}); + + zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity( + gfx::ColorSpace::PrimaryID primaryID, +@@ -283,4 +283,4 @@ zcr_color_manager_v1_eotf_names ToColorM + + } // namespace ui::wayland + +-#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_ +\ Kein Zeilenumbruch am Dateiende. ++#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_ +diff -up chromium-122.0.6261.69/ui/gtk/gtk_ui.cc.than chromium-122.0.6261.69/ui/gtk/gtk_ui.cc +--- chromium-122.0.6261.69/ui/gtk/gtk_ui.cc.than 2024-02-22 22:44:13.000000000 +0100 ++++ chromium-122.0.6261.69/ui/gtk/gtk_ui.cc 2024-02-24 13:13:44.153712667 +0100 +@@ -1007,11 +1007,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi + GdkRectangle geometry; + gdk_monitor_get_geometry(monitor, &geometry); + int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor)); +- config.display_geometries.emplace_back( ++ config.display_geometries.emplace_back() = { + gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y, + monitor_scale * geometry.width, + monitor_scale * geometry.height), +- monitor_scale * font_scale); ++ static_cast(monitor_scale * font_scale)}; + } + return config; + } +diff -up chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc.me chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc +--- chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc.me 2024-02-24 18:06:46.509393032 +0100 ++++ chromium-122.0.6261.69/components/memory_pressure/unnecessary_discard_monitor.cc 2024-02-24 18:07:11.258948241 +0100 +@@ -92,8 +92,8 @@ void UnnecessaryDiscardMonitor::OnDiscar + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + if (current_reclaim_event_) { + // Cache this kill event along with the time it took place. +- current_reclaim_event_kills_.emplace_back(memory_freed_kb, +- discard_complete_time); ++ current_reclaim_event_kills_.emplace_back() = {memory_freed_kb, ++ discard_complete_time}; + } + } + +diff -up chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.me chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc +--- chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc.me 2024-02-24 19:58:09.929371791 +0100 ++++ chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/address_autofill_table.cc 2024-02-24 19:59:07.149524862 +0100 +@@ -631,10 +631,10 @@ std::unique_ptr Address + } + + base::span observations_data = s.ColumnBlob(3); +- field_type_values.emplace_back( ++ field_type_values.emplace_back() = { + type, s.ColumnString16(1), s.ColumnInt(2), + std::vector(observations_data.begin(), +- observations_data.end())); ++ observations_data.end())}; + + if (type == ADDRESS_HOME_COUNTRY) { + country_code = base::UTF16ToUTF8(s.ColumnString16(1)); +diff -up chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.me chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc +--- chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc.me 2024-02-24 19:52:02.173682060 +0100 ++++ chromium-122.0.6261.69/components/autofill/core/browser/webdata/addresses/contact_info_sync_util.cc 2024-02-24 19:52:25.247216329 +0100 +@@ -192,9 +192,9 @@ class ContactInfoProfileSetter { + CHECK(observations.empty()); + for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation : + metadata.observations()) { +- observations.emplace_back(proto_observation.type(), ++ observations.emplace_back() = {proto_observation.type(), + ProfileTokenQuality::FormSignatureHash( +- proto_observation.form_hash())); ++ proto_observation.form_hash())}; + } + } + } +diff -up chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc.me chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc +--- chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc.me 2024-02-25 00:14:26.830323365 +0100 ++++ chromium-122.0.6261.69/content/browser/fenced_frame/fenced_frame_config.cc 2024-02-25 00:15:17.939241091 +0100 +@@ -402,7 +402,7 @@ void FencedFrameProperties::UpdateParent + feature, allow_list.AllowedOrigins(), allow_list.SelfIfMatches(), + allow_list.MatchesAll(), allow_list.MatchesOpaqueSrc()); + } +- parent_permissions_info_.emplace(parsed_policies, parent_origin); ++ parent_permissions_info_.emplace() = {parsed_policies, parent_origin}; + } + + } // namespace content +diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.me chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc +--- chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc.me 2024-02-25 00:17:31.799644691 +0100 ++++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_storage.cc 2024-02-25 00:18:54.157123519 +0100 +@@ -3332,9 +3332,9 @@ std::optional DoGet + return std::nullopt; + } + +- return DebugReportCooldown(cooldown_debugging_only_report.ColumnTime(0), ++ return DebugReportCooldown{cooldown_debugging_only_report.ColumnTime(0), + static_cast( +- cooldown_debugging_only_report.ColumnInt(1))); ++ cooldown_debugging_only_report.ColumnInt(1))}; + } + + void DoGetDebugReportCooldowns( +diff -up chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h.me chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h +--- chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h.me 2024-02-25 15:34:16.140768445 +0100 ++++ chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.h 2024-02-25 15:37:47.789665835 +0100 +@@ -24,6 +24,7 @@ struct MenuNotificationEntry { + int command = 0; + std::u16string label; + safety_hub::SafetyHubModuleType module; ++ MenuNotificationEntry(auto c, auto l, auto m) : command(c), label(l), module(m) { } + }; + + namespace { +diff -up chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc.me chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc +--- chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc.me 2024-02-25 16:22:46.601209269 +0100 ++++ chromium-122.0.6261.69/chrome/browser/ui/views/tabs/tab_style_views.cc 2024-02-25 16:24:48.110618475 +0100 +@@ -1214,10 +1214,10 @@ SkPath ChromeRefresh2023TabStyleViews::G + + // Radii are clockwise from top left. + const SkVector radii[4] = { +- SkVector(top_content_corner_radius, top_content_corner_radius), +- SkVector(top_content_corner_radius, top_content_corner_radius), +- SkVector(bottom_content_corner_radius, bottom_content_corner_radius), +- SkVector(bottom_content_corner_radius, bottom_content_corner_radius)}; ++ SkVector{top_content_corner_radius, top_content_corner_radius}, ++ SkVector{top_content_corner_radius, top_content_corner_radius}, ++ SkVector{bottom_content_corner_radius, bottom_content_corner_radius}, ++ SkVector{bottom_content_corner_radius, bottom_content_corner_radius}}; + SkRRect rrect; + rrect.setRectRadii(SkRect::MakeLTRB(left, top, right, bottom), radii); + SkPath path; +diff -up chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.me chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +--- chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.me 2024-02-25 18:49:32.512080085 +0100 ++++ chromium-122.0.6261.69/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc 2024-02-25 19:07:36.518711693 +0100 +@@ -386,7 +386,7 @@ bool ShouldBlockAccessToPath(const base: + DCHECK(block.path); + blocked_path = base::FilePath(block.path); + } +- rules.emplace_back(blocked_path, block.type); ++ rules.emplace_back() = {blocked_path, block.type}; + } + + base::FilePath nearest_ancestor; +@@ -1575,11 +1575,11 @@ void ChromeFileSystemAccessPermissionCon + // profile's directory, assuming the profile dir is a child of the user data + // dir. + std::vector extra_rules; +- extra_rules.emplace_back(profile_->GetPath().DirName(), kBlockAllChildren); ++ extra_rules.emplace_back() = {profile_->GetPath().DirName(), kBlockAllChildren}; + if (g_browser_process->profile_manager()) { +- extra_rules.emplace_back( ++ extra_rules.emplace_back() = { + g_browser_process->profile_manager()->user_data_dir(), +- kBlockAllChildren); ++ kBlockAllChildren}; + } + + base::ThreadPool::PostTaskAndReplyWithResult( +diff -up chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc.me chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc +--- chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc.me 2024-02-25 19:14:16.227843148 +0100 ++++ chromium-122.0.6261.69/chrome/browser/performance_manager/mechanisms/page_discarder.cc 2024-02-25 19:15:04.589307468 +0100 +@@ -53,7 +53,7 @@ std::vector + if (lifecycle_unit->DiscardTab( + discard_reason, + /*memory_footprint_estimate=*/proxy.second)) { +- discard_events.emplace_back(base::TimeTicks::Now(), proxy.second); ++ discard_events.emplace_back() = {base::TimeTicks::Now(), proxy.second}; + } + } + return discard_events; +diff -up chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h.me chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h +--- chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h.me 2024-02-25 17:26:25.623572458 +0100 ++++ chromium-122.0.6261.69/extensions/browser/service_worker_task_queue.h 2024-02-25 17:29:52.983345280 +0100 +@@ -204,6 +204,7 @@ class ServiceWorkerTaskQueue : public Ke + raw_ptr browser_context; + base::UnguessableToken token; + ++ SequencedContextId(auto e, auto b, auto t) : extension_id(e), browser_context(b), token(t) { } + bool operator<(const SequencedContextId& rhs) const { + return std::tie(extension_id, browser_context, token) < + std::tie(rhs.extension_id, rhs.browser_context, rhs.token); +diff -up chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc.me chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc +--- chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc.me 2024-02-25 20:05:40.567891077 +0100 ++++ chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view_context_menu.cc 2024-02-25 20:05:46.407001997 +0100 +@@ -3993,10 +3993,10 @@ void RenderViewContextMenu::ExecOpenComp + autofill::LocalFrameToken frame_token = driver->GetFrameToken(); + client->GetManager().OpenCompose( + *driver, +- autofill::FormGlobalId( +- frame_token, autofill::FormRendererId(params_.form_renderer_id)), +- autofill::FieldGlobalId( +- frame_token, autofill::FieldRendererId(params_.field_renderer_id)), ++ autofill::FormGlobalId{ ++ frame_token, autofill::FormRendererId(params_.form_renderer_id)}, ++ autofill::FieldGlobalId{ ++ frame_token, autofill::FieldRendererId(params_.field_renderer_id)}, + compose::ComposeManagerImpl::UiEntryPoint::kContextMenu); + new_badge_tracker_.ActionPerformed("compose_menu_item_activated"); + } else { +--- chromium-123.0.6312.46/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.me 2024-03-15 15:16:46.980123806 +0100 ++++ chromium-123.0.6312.46/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2024-03-15 15:18:39.024042560 +0100 +@@ -474,10 +474,10 @@ + alternative_nav_match); + + // Store the details necessary to open the omnibox match via browser commands. +- location_bar_->set_navigation_params(LocationBar::NavigationParams( ++ location_bar_->set_navigation_params(LocationBar::NavigationParams{ + destination_url, disposition, transition, match_selection_timestamp, + destination_url_entered_without_scheme, +- destination_url_entered_with_http_scheme, match.extra_headers)); ++ destination_url_entered_with_http_scheme, match.extra_headers}); + + if (browser_) { + auto navigation = chrome::OpenCurrentURL(browser_); +--- chromium-123.0.6312.46/content/browser/interest_group/interest_group_auction.cc.me 2024-03-15 15:16:47.004124431 +0100 ++++ chromium-123.0.6312.46/content/browser/interest_group/interest_group_auction.cc 2024-03-15 15:21:57.794229521 +0100 +@@ -565,7 +565,7 @@ + blink::features::kFledgeDebugReportRestrictedCooldown.Get() != + base::Milliseconds(0))) { + new_debug_report_lockout_and_cooldowns.debug_report_cooldown_map[origin] = +- DebugReportCooldown(now_nearest_next_hour, cooldown_type); ++ DebugReportCooldown{now_nearest_next_hour, cooldown_type}; + } + + return can_send_debug_report; +--- chromium-123.0.6312.46/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.no_matching_constructor 2024-03-15 15:55:51.351878829 +0100 ++++ chromium-123.0.6312.46/chrome/browser/ui/autofill/autofill_context_menu_manager.cc 2024-03-15 16:19:48.862189463 +0100 +@@ -277,8 +277,8 @@ + AutofillManager& manager) { + auto& driver = static_cast(manager.driver()); + driver.browser_events().RendererShouldTriggerSuggestions( +- FieldGlobalId(driver.GetFrameToken(), +- FieldRendererId(params_.field_renderer_id)), ++ FieldGlobalId{driver.GetFrameToken(), ++ FieldRendererId(params_.field_renderer_id)}, + AutofillSuggestionTriggerSource::kManualFallbackPayments); + LogManualFallbackContextMenuEntryAccepted( + static_cast(manager), +--- chromium-123.0.6312.46/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.no_matching_constructor 2024-03-13 20:35:40.000000000 +0100 ++++ chromium-123.0.6312.46/chrome/browser/ui/web_applications/sub_apps_service_impl.cc 2024-03-15 16:20:45.846919820 +0100 +@@ -107,7 +107,7 @@ + ConvertPathToUrl(sub_app->manifest_id_path, origin)); + ASSIGN_OR_RETURN(GURL install_url, + ConvertPathToUrl(sub_app->install_url_path, origin)); +- sub_apps.emplace_back(std::move(manifest_id), std::move(install_url)); ++ sub_apps.emplace_back() = {std::move(manifest_id), std::move(install_url)}; + } + return sub_apps; + } +@@ -439,7 +439,7 @@ + base::BindOnce( + [](webapps::ManifestId manifest_id, const webapps::AppId& app_id, + webapps::InstallResultCode result_code) { +- return SubAppInstallResult(manifest_id, app_id, result_code); ++ return SubAppInstallResult{manifest_id, app_id, result_code}; + }, + manifest_id) + .Then(concurrent.CreateCallback())); +--- chromium-123.0.6312.46/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor 2024-03-13 20:35:57.000000000 +0100 ++++ chromium-123.0.6312.46/third_party/blink/renderer/platform/fonts/font_palette.h 2024-03-15 16:24:57.899540941 +0100 +@@ -96,7 +96,7 @@ + Color::ColorSpace color_interpolation_space, + std::optional hue_interpolation_method) { + return base::AdoptRef(new FontPalette( +- start, end, NonNormalizedPercentages(start_percentage, end_percentage), ++ start, end, NonNormalizedPercentages{start_percentage, end_percentage}, + normalized_percentage, alpha_multiplier, color_interpolation_space, + hue_interpolation_method)); + } +@@ -170,7 +170,7 @@ + double normalized_percentage) { + double end_percentage = normalized_percentage * 100.0; + double start_percentage = 100.0 - end_percentage; +- return NonNormalizedPercentages(start_percentage, end_percentage); ++ return NonNormalizedPercentages{start_percentage, end_percentage}; + } + + double GetAlphaMultiplier() const { +diff -up chromium-123.0.6312.46/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.me chromium-123.0.6312.46/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc +--- chromium-123.0.6312.46/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc.me 2024-03-15 19:01:07.765832801 +0100 ++++ chromium-123.0.6312.46/base/allocator/partition_allocator/src/partition_alloc/lightweight_quarantine.cc 2024-03-15 19:01:52.918687742 +0100 +@@ -62,7 +62,7 @@ bool LightweightQuarantineBranch::Quaran + branch_size_in_bytes_ += usable_size; + PA_DCHECK(branch_size_in_bytes_ <= capacity_in_bytes); + +- slots_.emplace_back(slot_start, usable_size); ++ slots_.emplace_back() = {slot_start, usable_size}; + + // Swap randomly so that the quarantine list remain shuffled. + // This is not uniformly random, but sufficiently random. +diff -up chromium-123.0.6312.46/gpu/ipc/client/client_shared_image_interface.cc.me chromium-123.0.6312.46/gpu/ipc/client/client_shared_image_interface.cc +--- chromium-123.0.6312.46/gpu/ipc/client/client_shared_image_interface.cc.me 2024-03-16 18:43:17.863328507 +0100 ++++ chromium-123.0.6312.46/gpu/ipc/client/client_shared_image_interface.cc 2024-03-16 18:51:00.449277152 +0100 +@@ -106,8 +106,8 @@ scoped_refptr ClientS + AddMailbox(proxy_->CreateSharedImage(format, size, color_space, + surface_origin, alpha_type, usage, + debug_label)), +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + } + +@@ -137,8 +137,8 @@ scoped_refptr ClientS + + return base::MakeRefCounted( + AddMailbox(mailbox), +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + } + +@@ -165,8 +165,8 @@ scoped_refptr ClientS + CHECK(!buffer_handle.is_null()); + return base::MakeRefCounted( + AddMailbox(mailbox), +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), + GpuMemoryBufferHandleInfo(std::move(buffer_handle), format, size, + buffer_usage), +@@ -192,8 +192,8 @@ scoped_refptr ClientS + + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), + GpuMemoryBufferHandleInfo(std::move(client_buffer_handle), format, size, + buffer_usage), +@@ -219,8 +219,8 @@ scoped_refptr ClientS + AddMailbox(proxy_->CreateSharedImage( + format, size, color_space, surface_origin, alpha_type, usage, + debug_label, std::move(buffer_handle))), +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + } + +@@ -273,8 +273,8 @@ ClientSharedImageInterface::CreateShared + AddMailbox(proxy_->CreateSharedImage(format, size, color_space, + surface_origin, alpha_type, usage, + debug_label, std::move(handle))), +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + return shared_image_mapping; + } +@@ -296,10 +296,10 @@ scoped_refptr ClientS + buffer_format, plane, gpu_memory_buffer->GetSize(), color_space, + surface_origin, alpha_type, usage, debug_label, + gpu_memory_buffer->CloneHandle())), +- ClientSharedImage::Metadata( ++ ClientSharedImage::Metadata{ + viz::GetSinglePlaneSharedImageFormat(buffer_format), + gpu_memory_buffer->GetSize(), color_space, surface_origin, alpha_type, +- usage), ++ usage}, + GenUnverifiedSyncToken(), holder_); + } + +@@ -334,13 +334,13 @@ ClientSharedImageInterface::CreateSwapCh + return ClientSharedImageInterface::SwapChainSharedImages( + base::MakeRefCounted( + mailboxes.front_buffer, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + sync_token, holder_), + base::MakeRefCounted( + mailboxes.back_buffer, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + sync_token, holder_)); + } + +@@ -380,8 +380,8 @@ ClientSharedImageInterface::AddReference + + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + sync_token, holder_); + } + +@@ -402,8 +402,8 @@ scoped_refptr ClientS + + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + } + +diff -up chromium-123.0.6312.46/gpu/command_buffer/client/shared_image_interface.cc.me chromium-123.0.6312.46/gpu/command_buffer/client/shared_image_interface.cc +--- chromium-123.0.6312.46/gpu/command_buffer/client/shared_image_interface.cc.me 2024-03-16 18:59:20.175882894 +0100 ++++ chromium-123.0.6312.46/gpu/command_buffer/client/shared_image_interface.cc 2024-03-16 19:03:05.001754609 +0100 +@@ -41,8 +41,8 @@ scoped_refptr SharedI + NOTREACHED(); + return base::MakeRefCounted( + Mailbox(), +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + } + +diff -up chromium-123.0.6312.46/gpu/command_buffer/service/shared_image_interface_in_process.cc.me chromium-123.0.6312.46/gpu/command_buffer/service/shared_image_interface_in_process.cc +--- chromium-123.0.6312.46/gpu/command_buffer/service/shared_image_interface_in_process.cc.me 2024-03-16 19:06:32.102330155 +0100 ++++ chromium-123.0.6312.46/gpu/command_buffer/service/shared_image_interface_in_process.cc 2024-03-16 19:11:59.627008063 +0100 +@@ -238,8 +238,8 @@ SharedImageInterfaceInProcess::CreateSha + } + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + } + +@@ -301,8 +301,8 @@ SharedImageInterfaceInProcess::CreateSha + } + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + } + +@@ -365,8 +365,8 @@ SharedImageInterfaceInProcess::CreateSha + + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), GetGpuMemoryBufferHandleInfo(mailbox), holder_); + } + +@@ -481,8 +481,8 @@ SharedImageInterfaceInProcess::CreateSha + + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), + GpuMemoryBufferHandleInfo(std::move(client_buffer_handle), format, size, + buffer_usage), +@@ -524,8 +524,8 @@ SharedImageInterfaceInProcess::CreateSha + + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + } + SharedImageInterface::SharedImageMapping +@@ -589,8 +589,8 @@ SharedImageInterfaceInProcess::CreateSha + } + shared_image_mapping.shared_image = base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata(format, size, color_space, surface_origin, +- alpha_type, usage), ++ ClientSharedImage::Metadata{format, size, color_space, surface_origin, ++ alpha_type, usage}, + GenUnverifiedSyncToken(), holder_); + + return shared_image_mapping; +@@ -664,10 +664,10 @@ SharedImageInterfaceInProcess::CreateSha + + return base::MakeRefCounted( + mailbox, +- ClientSharedImage::Metadata( ++ ClientSharedImage::Metadata{ + viz::GetSinglePlaneSharedImageFormat(gpu_memory_buffer->GetFormat()), + gpu_memory_buffer->GetSize(), color_space, surface_origin, alpha_type, +- usage), ++ usage}, + GenUnverifiedSyncToken(), holder_); + } + +diff -up chromium-123.0.6312.46/content/browser/attribution_reporting/attribution_manager_impl.cc.me chromium-123.0.6312.46/content/browser/attribution_reporting/attribution_manager_impl.cc +--- chromium-123.0.6312.46/content/browser/attribution_reporting/attribution_manager_impl.cc.me 2024-03-17 00:42:31.183226211 +0100 ++++ chromium-123.0.6312.46/content/browser/attribution_reporting/attribution_manager_impl.cc 2024-03-17 00:55:56.689512430 +0100 +@@ -1507,7 +1507,7 @@ void AttributionManagerImpl::PrepareNext + RenderFrameHost::FromID(event.render_frame_id), + source_origin, destination_origin, &reporting_origin, + &can_bypass_cookie_check)) { +- need_to_check_cookie.emplace_back(url::Origin::Create(item.url), i); ++ need_to_check_cookie.emplace_back() = {url::Origin::Create(item.url), i}; + } else { + allowed.at(i) = can_bypass_cookie_check; + } +diff -up chromium-123.0.6312.46/content/browser/interest_group/interest_group_storage.cc.me chromium-123.0.6312.46/content/browser/interest_group/interest_group_storage.cc +--- chromium-123.0.6312.46/content/browser/interest_group/interest_group_storage.cc.me 2024-03-17 00:24:41.420837884 +0100 ++++ chromium-123.0.6312.46/content/browser/interest_group/interest_group_storage.cc 2024-03-17 00:26:40.273364638 +0100 +@@ -3993,7 +3993,7 @@ DoGetBiddingAndAuctionServerKeys(sql::Da + std::vector keys; + keys.reserve(key_protos.keys_size()); + for (auto& key_proto : *key_protos.mutable_keys()) { +- keys.emplace_back(std::move(*key_proto.mutable_key()), key_proto.id()); ++ keys.emplace_back() = {std::move(*key_proto.mutable_key()), key_proto.id()}; + } + return {expiration, keys}; + } diff --git a/SOURCES/chromium-123-python3-assignment-expressions.patch b/SOURCES/chromium-123-python3-assignment-expressions.patch new file mode 100644 index 00000000..bb0df8c4 --- /dev/null +++ b/SOURCES/chromium-123-python3-assignment-expressions.patch @@ -0,0 +1,27 @@ +diff -up chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py.me chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py +--- chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py.me 2024-02-23 12:04:45.451423995 +0100 ++++ chromium-122.0.6261.57/tools/json_to_struct/json_to_struct.py 2024-02-23 12:18:04.099824392 +0100 +@@ -124,7 +124,8 @@ def _GenerateH(basepath, fileroot, head, + f.write(u'#include \n') + f.write(u'\n') + +- if system_headers := schema.get(u'system-headers', []): ++ system_headers = schema.get(u'system-headers', []) ++ if system_headers: + for header in system_headers: + f.write(u'#include <%s>\n' % header) + f.write(u'\n') +diff -up chromium-123.0.6312.46/tools/metrics/histograms/expand_owners.py.me chromium-123.0.6312.46/tools/metrics/histograms/expand_owners.py +--- chromium-123.0.6312.46/tools/metrics/histograms/expand_owners.py.me 2024-03-18 14:40:57.871904209 +0100 ++++ chromium-123.0.6312.46/tools/metrics/histograms/expand_owners.py 2024-03-18 14:47:12.238907146 +0100 +@@ -209,8 +209,8 @@ def _ComponentFromDirmd(json_data, subpa + """ + dirmd = json_data.get('dirs', {}).get(subpath, {}) + # If a public Buganizer component is listed, return its component ID. +- if buganizer_component := dirmd.get('buganizerPublic', +- {}).get('componentId', ''): ++ buganizer_component = dirmd.get('buganizerPublic',{}).get('componentId', '') ++ if buganizer_component: + return buganizer_component + # If no component exists for the directory, or if METADATA migration is + # incomplete there will be no component information. diff --git a/SOURCES/chromium-123-rust-clap_lex.patch b/SOURCES/chromium-123-rust-clap_lex.patch new file mode 100644 index 00000000..61bd1943 --- /dev/null +++ b/SOURCES/chromium-123-rust-clap_lex.patch @@ -0,0 +1,133 @@ +diff -Nur chromium-123.0.6312.46/third_party/rust/chromium_crates_io/vendor/clap_lex-0.7.0/src/ext.rs.me chromium-123.0.6312.46/third_party/rust/chromium_crates_io/vendor/clap_lex-0.7.0/src/ext.rs +--- chromium-123.0.6312.46/third_party/rust/chromium_crates_io/vendor/clap_lex-0.7.0/src/ext.rs.me 2024-03-13 20:36:17.000000000 +0100 ++++ chromium-123.0.6312.46/third_party/rust/chromium_crates_io/vendor/clap_lex-0.7.0/src/ext.rs 2024-03-13 00:38:18.000000000 +0100 +@@ -2,9 +2,6 @@ + + pub trait OsStrExt: private::Sealed { + /// Converts to a string slice. +- /// +- /// The Utf8Error is guaranteed to have a valid UTF8 boundary +- /// in its `valid_up_to()` + fn try_str(&self) -> Result<&str, std::str::Utf8Error>; + /// Returns `true` if the given pattern matches a sub-slice of + /// this string slice. +@@ -183,7 +180,7 @@ + + impl OsStrExt for OsStr { + fn try_str(&self) -> Result<&str, std::str::Utf8Error> { +- let bytes = self.as_encoded_bytes(); ++ let bytes = to_bytes(self); + std::str::from_utf8(bytes) + } + +@@ -192,22 +189,22 @@ + } + + fn find(&self, needle: &str) -> Option { +- let bytes = self.as_encoded_bytes(); ++ let bytes = to_bytes(self); + (0..=self.len().checked_sub(needle.len())?) + .find(|&x| bytes[x..].starts_with(needle.as_bytes())) + } + + fn strip_prefix(&self, prefix: &str) -> Option<&OsStr> { +- let bytes = self.as_encoded_bytes(); ++ let bytes = to_bytes(self); + bytes.strip_prefix(prefix.as_bytes()).map(|s| { + // SAFETY: +- // - This came from `as_encoded_bytes` +- // - Since `prefix` is `&str`, any split will be along UTF-8 boundary +- unsafe { OsStr::from_encoded_bytes_unchecked(s) } ++ // - This came from `to_bytes` ++ // - Since `prefix` is `&str`, any split will be along UTF-8 boundarie ++ unsafe { to_os_str_unchecked(s) } + }) + } + fn starts_with(&self, prefix: &str) -> bool { +- let bytes = self.as_encoded_bytes(); ++ let bytes = to_bytes(self); + bytes.starts_with(prefix.as_bytes()) + } + +@@ -222,18 +219,13 @@ + fn split_once(&self, needle: &'_ str) -> Option<(&OsStr, &OsStr)> { + let start = self.find(needle)?; + let end = start + needle.len(); +- let haystack = self.as_encoded_bytes(); ++ let haystack = to_bytes(self); + let first = &haystack[0..start]; + let second = &haystack[end..]; + // SAFETY: +- // - This came from `as_encoded_bytes` +- // - Since `needle` is `&str`, any split will be along UTF-8 boundary +- unsafe { +- Some(( +- OsStr::from_encoded_bytes_unchecked(first), +- OsStr::from_encoded_bytes_unchecked(second), +- )) +- } ++ // - This came from `to_bytes` ++ // - Since `needle` is `&str`, any split will be along UTF-8 boundarie ++ unsafe { Some((to_os_str_unchecked(first), to_os_str_unchecked(second))) } + } + } + +@@ -243,6 +235,45 @@ + impl Sealed for std::ffi::OsStr {} + } + ++/// Allow access to raw bytes ++/// ++/// As the non-UTF8 encoding is not defined, the bytes only make sense when compared with ++/// 7-bit ASCII or `&str` ++/// ++/// # Compatibility ++/// ++/// There is no guarantee how non-UTF8 bytes will be encoded, even within versions of this crate ++/// (since its dependent on rustc) ++fn to_bytes(s: &OsStr) -> &[u8] { ++ // SAFETY: ++ // - Lifetimes are the same ++ // - Types are compatible (`OsStr` is effectively a transparent wrapper for `[u8]`) ++ // - The primary contract is that the encoding for invalid surrogate code points is not ++ // guaranteed which isn't a problem here ++ // ++ // There is a proposal to support this natively (https://github.com/rust-lang/rust/pull/95290) ++ // but its in limbo ++ unsafe { std::mem::transmute(s) } ++} ++ ++/// Restore raw bytes as `OsStr` ++/// ++/// # Safety ++/// ++/// - `&[u8]` must either by a `&str` or originated with `to_bytes` within the same binary ++/// - Any splits of the original `&[u8]` must be done along UTF-8 boundaries ++unsafe fn to_os_str_unchecked(s: &[u8]) -> &OsStr { ++ // SAFETY: ++ // - Lifetimes are the same ++ // - Types are compatible (`OsStr` is effectively a transparent wrapper for `[u8]`) ++ // - The primary contract is that the encoding for invalid surrogate code points is not ++ // guaranteed which isn't a problem here ++ // ++ // There is a proposal to support this natively (https://github.com/rust-lang/rust/pull/95290) ++ // but its in limbo ++ std::mem::transmute(s) ++} ++ + pub struct Split<'s, 'n> { + haystack: Option<&'s OsStr>, + needle: &'n str, +@@ -275,10 +306,7 @@ + /// + /// `index` must be at a valid UTF-8 boundary + pub(crate) unsafe fn split_at(os: &OsStr, index: usize) -> (&OsStr, &OsStr) { +- let bytes = os.as_encoded_bytes(); ++ let bytes = to_bytes(os); + let (first, second) = bytes.split_at(index); +- ( +- OsStr::from_encoded_bytes_unchecked(first), +- OsStr::from_encoded_bytes_unchecked(second), +- ) ++ (to_os_str_unchecked(first), to_os_str_unchecked(second)) + } diff --git a/SOURCES/chromium-123-typename.patch b/SOURCES/chromium-123-typename.patch new file mode 100644 index 00000000..aebbd189 --- /dev/null +++ b/SOURCES/chromium-123-typename.patch @@ -0,0 +1,406 @@ + +fixed error: missing 'typename' prior to dependent type name + +diff -up chromium-122.0.6261.69/base/containers/map_util.h.typename chromium-122.0.6261.69/base/containers/map_util.h +--- chromium-122.0.6261.69/base/containers/map_util.h.typename 2024-02-22 22:42:43.000000000 +0100 ++++ chromium-122.0.6261.69/base/containers/map_util.h 2024-02-24 15:05:00.882592705 +0100 +@@ -42,7 +42,7 @@ constexpr internal::MappedType* Fin + template >::element_type> ++ typename std::pointer_traits>::element_type> + constexpr const MappedElementType* FindPtrOrNull(const Map& map, + const Key& key) { + auto it = map.find(key); +@@ -58,7 +58,7 @@ constexpr const MappedElementType* FindP + template >::element_type> ++ typename std::pointer_traits>::element_type> + constexpr MappedElementType* FindPtrOrNull(Map& map, const Key& key) { + auto it = map.find(key); + return it != map.end() ? std::to_address(it->second) : nullptr; +diff -up chromium-122.0.6261.69/base/functional/bind_internal.h.typename chromium-122.0.6261.69/base/functional/bind_internal.h +--- chromium-122.0.6261.69/base/functional/bind_internal.h.typename 2024-02-24 15:05:00.883592724 +0100 ++++ chromium-122.0.6261.69/base/functional/bind_internal.h 2024-02-24 15:13:49.755223533 +0100 +@@ -1400,11 +1400,11 @@ template + struct ParamCanBeBound { + private: +- using UnwrappedParam = BindArgument::template ForwardedAs< ++ using UnwrappedParam = typename BindArgument::template ForwardedAs< + Unwrapped>::template ToParamWithType; +- using ParamStorage = BindArgument::template ToParamWithType< ++ using ParamStorage = typename BindArgument::template ToParamWithType< + Param>::template StoredAs; +- using BoundStorage = ++ using BoundStorage = typename + BindArgument::template BoundAs::template StoredAs; + + template +-SortedItems::const_iterator GetLastIter(const SortedItems& cache) { ++typename SortedItems::const_iterator GetLastIter(const SortedItems& cache) { + CHECK(!cache.empty()); + auto it = cache.end(); + return std::prev(it); +@@ -1090,9 +1090,9 @@ bool DownloadBubbleUpdateService::CacheM + } + + template +-SortedItems::iterator ++typename SortedItems::iterator + DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter( +- SortedItems::iterator iter, ++ typename SortedItems::iterator iter, + SortedItems& cache, + IterMap& iter_map) { + CHECK(iter != cache.end()); +diff -up chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h.typename chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h +--- chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h.typename 2024-02-22 22:43:01.000000000 +0100 ++++ chromium-122.0.6261.69/components/optimization_guide/core/model_execution/model_execution_util.h 2024-02-24 15:05:00.884592742 +0100 +@@ -25,7 +25,7 @@ void SetExecutionRequestTemplate( + + // Request is set by the feature and should always be typed. + auto typed_request = +- static_cast(request_metadata); ++ static_cast(request_metadata); + *(logging_data->mutable_request_data()) = typed_request; + } + +diff -up chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h +--- chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h.typename 2024-02-22 22:43:01.000000000 +0100 ++++ chromium-122.0.6261.69/components/optimization_guide/core/model_quality/model_quality_log_entry.h 2024-02-24 15:05:00.884592742 +0100 +@@ -29,7 +29,7 @@ class ModelQualityLogEntry { + } + + template +- FeatureType::Quality* quality_data() { ++ typename FeatureType::Quality* quality_data() { + return FeatureType::GetLoggingData(*log_ai_data_request_) + ->mutable_quality_data(); + } +diff -up chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h.typename chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h +--- chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h.typename 2024-02-22 22:43:15.000000000 +0100 ++++ chromium-122.0.6261.69/mojo/public/cpp/bindings/array_traits.h 2024-02-24 15:05:00.884592742 +0100 +@@ -90,7 +90,7 @@ template + { c[i] } -> std::same_as; + } + struct ArrayTraits { +- using Element = Container::value_type; ++ using Element = typename Container::value_type; + + // vector-like containers have no built-in null. + static bool IsNull(const Container& c) { return false; } +diff -up chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h +--- chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h.typename 2024-02-22 22:43:20.000000000 +0100 ++++ chromium-122.0.6261.69/third_party/blink/renderer/bindings/core/v8/async_iterable.h 2024-02-24 15:05:00.883592724 +0100 +@@ -218,7 +218,7 @@ class PairAsyncIterable { + private: + virtual IterationSource* CreateIterationSource( + ScriptState* script_state, +- IterationSource::Kind kind, ++ typename IterationSource::Kind kind, + ExceptionState& exception_state) = 0; + }; + +@@ -260,7 +260,7 @@ class ValueAsyncIterable { + private: + virtual IterationSource* CreateIterationSource( + ScriptState* script_state, +- IterationSource::Kind kind, ++ typename IterationSource::Kind kind, + ExceptionState& exception_state) = 0; + }; + +diff -up chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc +--- chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.typename 2024-02-24 15:05:00.882592705 +0100 ++++ chromium-122.0.6261.69/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc 2024-02-24 15:12:27.742724849 +0100 +@@ -211,7 +211,7 @@ class HTMLFastPathParser { + using Span = base::span; + using USpan = base::span; + // 32 matches that used by HTMLToken::Attribute. +- typedef std::conditional, ++ typedef typename std::conditional, + UCharLiteralBuffer<32>, + LCharLiteralBuffer<32>>::type LiteralBufferType; + static_assert(std::is_same_v || std::is_same_v); +diff -up chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.typename chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h +--- chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.typename 2024-02-22 22:43:21.000000000 +0100 ++++ chromium-122.0.6261.69/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h 2024-02-24 15:05:00.883592724 +0100 +@@ -272,8 +272,8 @@ class CORE_EXPORT ObjectPaintPropertiesS + NodeList& nodes, + NodeId node_id, + const ParentType& parent, +- NodeType::State&& state, +- const NodeType::AnimationState& animation_state = ++ typename NodeType::State&& state, ++ const typename NodeType::AnimationState& animation_state = + NodeType::AnimationState()) { + // First, check if we need to add a new node. + if (!nodes.HasField(node_id)) { +diff -up chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.me chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h +--- chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h.me 2024-02-24 16:51:41.292310554 +0100 ++++ chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition_alloc/internal_allocator.h 2024-02-24 16:52:10.022896063 +0100 +@@ -26,7 +26,7 @@ PartitionRoot& InternalAllocatorRoot(); + + // A class that meets C++ named requirements, Allocator. + template +-InternalAllocator::value_type* InternalAllocator::allocate( ++typename InternalAllocator::value_type* InternalAllocator::allocate( + std::size_t count) { + PA_CHECK(count <= + std::numeric_limits::max() / sizeof(value_type)); +diff -up chromium-122.0.6261.69/base/containers/heap_array.h.me chromium-122.0.6261.69/base/containers/heap_array.h +--- chromium-122.0.6261.69/base/containers/heap_array.h.me 2024-02-24 18:02:34.463921568 +0100 ++++ chromium-122.0.6261.69/base/containers/heap_array.h 2024-02-24 18:04:01.922850571 +0100 +@@ -32,8 +32,8 @@ class TRIVIAL_ABI GSL_OWNER HeapArray { + static_assert(!std::is_reference_v, + "HeapArray cannot hold reference types"); + +- using iterator = base::span::iterator; +- using const_iterator = base::span::iterator; ++ using iterator = typename base::span::iterator; ++ using const_iterator = typename base::span::iterator; + + // Allocates initialized memory capable of holding `size` elements. No memory + // is allocated for zero-sized arrays. +diff -up chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h.me chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h +--- chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h.me 2024-02-24 18:51:06.957087464 +0100 ++++ chromium-122.0.6261.69/mojo/public/cpp/bindings/type_converter.h 2024-02-24 18:51:27.778488490 +0100 +@@ -125,7 +125,7 @@ using VecValueType = typename Vec::value + + template + using VecPtrLikeUnderlyingValueType = +- std::pointer_traits>::element_type; ++ typename std::pointer_traits>::element_type; + + } // namespace internal + +diff -up chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h.me chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h +--- chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h.me 2024-02-24 19:45:13.620934215 +0100 ++++ chromium-122.0.6261.69/third_party/blink/renderer/platform/wtf/hash_table.h 2024-02-24 19:46:08.817940962 +0100 +@@ -2005,7 +2005,7 @@ struct HashTableConstIteratorAdapter { + static_assert(!IsTraceable::value); + + using iterator_category = std::bidirectional_iterator_tag; +- using value_type = HashTableType::ValueType; ++ using value_type = typename HashTableType::ValueType; + using difference_type = ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; +@@ -2057,7 +2057,7 @@ struct HashTableConstIteratorAdapter< + + public: + using iterator_category = std::bidirectional_iterator_tag; +- using value_type = HashTableType::ValueType; ++ using value_type = typename HashTableType::ValueType; + using difference_type = ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; +@@ -2111,7 +2111,7 @@ struct HashTableIteratorAdapter { + static_assert(!IsTraceable::value); + + using iterator_category = std::bidirectional_iterator_tag; +- using value_type = HashTableType::ValueType; ++ using value_type = typename HashTableType::ValueType; + using difference_type = ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; +@@ -2159,7 +2159,7 @@ struct HashTableIteratorAdapter< + + public: + using iterator_category = std::bidirectional_iterator_tag; +- using value_type = HashTableType::ValueType; ++ using value_type = typename HashTableType::ValueType; + using difference_type = ptrdiff_t; + using pointer = value_type*; + using reference = value_type&; +diff -up chromium-122.0.6261.69/base/types/fixed_array.h.me chromium-122.0.6261.69/base/types/fixed_array.h +--- chromium-122.0.6261.69/base/types/fixed_array.h.me 2024-02-25 11:22:59.819590529 +0100 ++++ chromium-122.0.6261.69/base/types/fixed_array.h 2024-02-25 11:24:12.424953031 +0100 +@@ -27,8 +27,8 @@ template { + public: + using absl::FixedArray::FixedArray; +- explicit FixedArray(absl::FixedArray::size_type n, +- const absl::FixedArray::allocator_type& a = ++ explicit FixedArray(typename absl::FixedArray::size_type n, ++ const typename absl::FixedArray::allocator_type& a = + typename absl::FixedArray::allocator_type()) + : FixedArray(n, T(), a) {} + }; +diff -up chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h.me chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h +--- chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h.me 2024-02-25 15:04:56.775897713 +0100 ++++ chromium-122.0.6261.69/chrome/browser/web_applications/commands/internal/command_internal.h 2024-02-25 15:05:34.884579279 +0100 +@@ -121,7 +121,7 @@ class CommandBase { + template + class CommandWithLock : public CommandBase { + public: +- using LockDescription = LockType::LockDescription; ++ using LockDescription = typename LockType::LockDescription; + explicit CommandWithLock(const std::string& name, + LockDescription initial_lock_request); + +diff -up chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h.me chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h +--- chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h.me 2024-02-25 15:05:46.885793828 +0100 ++++ chromium-122.0.6261.69/chrome/browser/web_applications/commands/web_app_command.h 2024-02-25 15:06:12.334248725 +0100 +@@ -106,7 +106,7 @@ class WebAppLockManager; + template + class WebAppCommand : public internal::CommandWithLock { + public: +- using LockDescription = LockType::LockDescription; ++ using LockDescription = typename LockType::LockDescription; + using CallbackType = base::OnceCallback; + using ShutdownArgumentsTuple = std::tuple...>; + +diff -up chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h.me chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h +--- chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h.me 2024-02-25 15:06:17.896348149 +0100 ++++ chromium-122.0.6261.69/chrome/browser/web_applications/web_app_command_scheduler.h 2024-02-25 15:06:58.841076746 +0100 +@@ -355,7 +355,7 @@ class WebAppCommandScheduler { + // command system. + template + void ScheduleCallback(const std::string& operation_name, +- LockType::LockDescription lock_description, ++ typename LockType::LockDescription lock_description, + CallbackCommand callback, + base::OnceClosure on_complete, + const base::Location& location = FROM_HERE) { +@@ -373,7 +373,7 @@ class WebAppCommandScheduler { + typename CallbackReturnValue = std::decay_t> + void ScheduleCallbackWithResult( + const std::string& operation_name, +- LockType::LockDescription lock_description, ++ typename LockType::LockDescription lock_description, + CallbackCommand callback, + base::OnceCallback on_complete, + CallbackReturnValue arg_for_shutdown, +diff -up chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.me chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h +--- chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.me 2024-02-25 15:12:53.835409392 +0100 ++++ chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h 2024-02-25 15:16:03.171931033 +0100 +@@ -424,7 +424,7 @@ class RetryingFetcherImpl final : public + RetryingFetcherImpl(const RetryingFetcherImpl&) = delete; + RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete; + +- void Start(ProtoFetcher::Callback callback) override { ++ void Start(typename ProtoFetcher::Callback callback) override { + callback_ = std::move(callback); + Retry(); + } +@@ -469,7 +469,7 @@ class RetryingFetcherImpl final : public + } + + // Client callback. +- TypedProtoFetcher::Callback callback_; ++ typename TypedProtoFetcher::Callback callback_; + + // Retry controls. + base::OneShotTimer timer_; +@@ -490,7 +490,7 @@ class ParallelFetchManager { + // Deferred fetcher is required because it should be started after it is + // stored internally. + using Fetcher = ProtoFetcher; +- using KeyType = base::IDMap>::KeyType; ++ using KeyType = typename base::IDMap>::KeyType; + + public: + // Provides fresh instances of a deferred fetcher for each fetch. +@@ -506,7 +506,7 @@ class ParallelFetchManager { + + // Starts the fetch. Underlying fetcher is stored internally, and will be + // cleaned up after finish or when this manager is destroyed. +- void Fetch(const Request& request, Fetcher::Callback callback) { ++ void Fetch(const Request& request, typename Fetcher::Callback callback) { + CHECK(callback) << "Use base::DoNothing() instead of empty callback."; + KeyType key = requests_in_flight_.Add(MakeFetcher(request)); + requests_in_flight_.Lookup(key)->Start( +--- chromium-123.0.6312.46/components/optimization_guide/core/tflite_model_executor.h.orig 2024-03-13 20:35:44.000000000 +0100 ++++ chromium-123.0.6312.46/components/optimization_guide/core/tflite_model_executor.h 2024-03-15 15:45:47.067156826 +0100 +@@ -242,7 +242,7 @@ + void SendForBatchExecution( + BatchExecutionCallback callback_on_complete, + base::TimeTicks start_time, +- ModelExecutor::ConstRefInputVector inputs) ++ typename ModelExecutor::ConstRefInputVector inputs) + override { + DCHECK(execution_task_runner_->RunsTasksInCurrentSequence()); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +@@ -264,7 +264,7 @@ + // Starts the synchronous execution of the model. Returns model outputs. + // Model needs to be loaded. Synchronous calls do not load or unload model. + std::vector> SendForBatchExecutionSync( +- ModelExecutor::ConstRefInputVector inputs) ++ typename ModelExecutor::ConstRefInputVector inputs) + override { + DCHECK(execution_task_runner_->RunsTasksInCurrentSequence()); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +@@ -422,7 +422,7 @@ + // executes it on the model execution thread. + void LoadModelFileAndBatchExecute( + BatchExecutionCallback callback_on_complete, +- ModelExecutor::ConstRefInputVector inputs) { ++ typename ModelExecutor::ConstRefInputVector inputs) { + DCHECK(execution_task_runner_->RunsTasksInCurrentSequence()); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + +@@ -439,7 +439,7 @@ + + // Batch executes the loaded model for inputs. + void BatchExecuteLoadedModel( +- ModelExecutor::ConstRefInputVector inputs, ++ typename ModelExecutor::ConstRefInputVector inputs, + std::vector>* outputs) { + DCHECK(execution_task_runner_->RunsTasksInCurrentSequence()); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +@@ -499,7 +499,7 @@ + // Unloads the model if needed. + void BatchExecuteLoadedModelAndRunCallback( + BatchExecutionCallback callback_on_complete, +- ModelExecutor::ConstRefInputVector inputs, ++ typename ModelExecutor::ConstRefInputVector inputs, + ExecutionStatus execution_status) { + DCHECK(execution_task_runner_->RunsTasksInCurrentSequence()); + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); +--- chromium-123.0.6312.46/base/functional/function_ref.h.orig 2024-03-15 15:43:32.329786974 +0100 ++++ chromium-123.0.6312.46/base/functional/function_ref.h 2024-03-15 15:46:57.278813500 +0100 +@@ -64,7 +64,7 @@ + template + class FunctionRef { + template ::RunType> ++ typename RunType = typename internal::FunctorTraits::RunType> + static constexpr bool kCompatibleFunctor = + std::convertible_to, R> && + std::same_as, internal::TypeList>; +diff -up chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_property.h.me chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_property.h +--- chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_property.h.me 2024-03-16 22:55:01.387265478 +0100 ++++ chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_property.h 2024-03-16 22:55:18.752568310 +0100 +@@ -173,7 +173,7 @@ class ScriptPromiseProperty final + template + requires std::derived_from + static T DefaultPromiseResultValue() { +- return T(static_cast(0)); ++ return T(static_cast(0)); + } + + State state_ = kPending; +diff -up chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h.me chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h +--- chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h.me 2024-03-16 22:41:50.634510019 +0100 ++++ chromium-123.0.6312.46/third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h 2024-03-16 22:54:51.215088087 +0100 +@@ -477,7 +477,7 @@ class ScriptPromiseResolverTyped : publi + + private: + using TypedResolver = +- ScriptPromiseTyped::InternalResolverTyped; ++ typename ScriptPromiseTyped::InternalResolverTyped; + }; + + } // namespace blink diff --git a/SOURCES/chromium-123-v8-c++20.patch b/SOURCES/chromium-123-v8-c++20.patch new file mode 100644 index 00000000..a4682da1 --- /dev/null +++ b/SOURCES/chromium-123-v8-c++20.patch @@ -0,0 +1,733 @@ +commit 940af9f2c87b436559b97c53763aa9eaaf1254eb +Author: Jeremy Roman +Date: Wed Nov 15 16:24:54 2023 +0000 + + Use C++20 features to simplify blink::NativeValueTraitsBase. + + These allow some of the metaprogramming bits to be simplified a little. + + Change-Id: I052b4397586d21348401616e1792afdb9662f975 + Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5030335 + Reviewed-by: Yuki Shiino + Commit-Queue: Jeremy Roman + Cr-Commit-Position: refs/heads/main@{#1224978} + +diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h +index 7fc91d14acc71..1e5a0790df6da 100644 +--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits.h ++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits.h +@@ -5,6 +5,7 @@ + #ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_ + #define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_H_ + ++#include + #include + + #include "third_party/blink/renderer/bindings/core/v8/idl_types_base.h" +@@ -30,7 +31,7 @@ class ExceptionState; + // return toInt32(isolate, value, exceptionState, NormalConversion); + // } + // } +-template ++template + struct NativeValueTraits; + + // This declaration serves only as a blueprint for specializations: the +@@ -45,22 +46,15 @@ struct NativeValueTraits; + + namespace bindings { + +-template +-struct NativeValueTraitsHasIsNull : std::false_type {}; +- + template +-struct NativeValueTraitsHasIsNull< +- T, +- std::void_t().IsNull())>> : std::true_type {}; ++struct ImplTypeFor { ++ using type = T; ++}; + + template +-struct NativeValueTraitsHasNullValue { +- // true if |T| supports IDL null value. +- static constexpr bool value = +- // ScriptValue, String, and union types have IsNull member function. +- bindings::NativeValueTraitsHasIsNull::value || +- // Pointer types have nullptr as IDL null value. +- std::is_pointer::value; ++ requires std::derived_from ++struct ImplTypeFor { ++ using type = typename T::ImplType; + }; + + } // namespace bindings +@@ -78,37 +72,17 @@ struct NativeValueTraitsHasNullValue { + // If present, |NullValue()| will be used when converting from the nullable type + // T?, and should be used if the impl type has an existing "null" state. If not + // present, WTF::Optional will be used to wrap the type. +-template +-struct NativeValueTraitsBase { +- STATIC_ONLY(NativeValueTraitsBase); +- +- using ImplType = T; +- +- static constexpr bool has_null_value = +- bindings::NativeValueTraitsHasNullValue::value; +- +- template +- static decltype(auto) ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state, +- ExtraArgs... extra_args) { +- return NativeValueTraits>::NativeValue( +- isolate, value, exception_state, +- std::forward(extra_args)...); +- } +-}; +- + template +-struct NativeValueTraitsBase< +- T, +- std::enable_if_t::value>> { ++struct NativeValueTraitsBase { + STATIC_ONLY(NativeValueTraitsBase); + +- using ImplType = typename T::ImplType; ++ using ImplType = bindings::ImplTypeFor::type; + ++ // Pointer types have nullptr as IDL null value. ++ // ScriptValue, String, and union types have IsNull member function. + static constexpr bool has_null_value = +- bindings::NativeValueTraitsHasNullValue::value; ++ std::is_pointer_v || ++ requires(ImplType value) { value.IsNull(); }; + + template + static decltype(auto) ArgumentValue(v8::Isolate* isolate, +diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc b/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc +index 508ea6d8eea48..18de71d84023f 100644 +--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc ++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_buffer_sources.cc +@@ -7,6 +7,7 @@ + #include "third_party/blink/renderer/core/core_export.h" + #include "third_party/blink/renderer/core/execution_context/execution_context.h" + #include "third_party/blink/renderer/core/frame/web_feature.h" ++#include "third_party/blink/renderer/core/typed_arrays/flexible_array_buffer_view.h" + #include "third_party/blink/renderer/core/typed_arrays/typed_flexible_array_buffer_view.h" + + namespace blink { +@@ -698,12 +699,11 @@ DOMArrayBufferBase* NativeValueTraits< + // ArrayBufferView + + template +-NotShared NativeValueTraits< +- NotShared, +- typename std::enable_if_t::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++NotShared NativeValueTraits>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local value, ++ ExceptionState& exception_state) { + return NativeValueImpl< + RecipeTrait>, ToDOMViewType, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, +@@ -712,13 +712,12 @@ NotShared NativeValueTraits< + } + + template +-NotShared NativeValueTraits< +- NotShared, +- typename std::enable_if_t::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++NotShared NativeValueTraits>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl< + RecipeTrait>, ToDOMViewType, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, +@@ -729,12 +728,11 @@ NotShared NativeValueTraits< + // [AllowShared] ArrayBufferView + + template +-MaybeShared NativeValueTraits< +- MaybeShared, +- typename std::enable_if_t::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++MaybeShared NativeValueTraits>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local value, ++ ExceptionState& exception_state) { + return NativeValueImpl>, + ToDOMViewType, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, +@@ -743,13 +741,12 @@ MaybeShared NativeValueTraits< + } + + template +-MaybeShared NativeValueTraits< +- MaybeShared, +- typename std::enable_if_t::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++MaybeShared NativeValueTraits>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl>, + ToDOMViewType, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, +@@ -760,12 +757,12 @@ MaybeShared NativeValueTraits< + // [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView + + template +-MaybeShared NativeValueTraits< +- IDLBufferSourceTypeNoSizeLimit>, +- typename std::enable_if_t::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++MaybeShared ++NativeValueTraits>>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local value, ++ ExceptionState& exception_state) { + return NativeValueImpl< + RecipeTrait>, ToDOMViewType, + Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck, +@@ -774,13 +771,12 @@ MaybeShared NativeValueTraits< + } + + template +-MaybeShared NativeValueTraits< +- IDLBufferSourceTypeNoSizeLimit>, +- typename std::enable_if_t::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++MaybeShared NativeValueTraits>>::ArgumentValue(v8::Isolate* isolate, ++ int argument_index, ++ v8::Local value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl< + RecipeTrait>, ToDOMViewType, + Nullablity::kIsNotNullable, BufferSizeCheck::kDoNotCheck, +@@ -791,12 +787,11 @@ MaybeShared NativeValueTraits< + // Nullable ArrayBufferView + + template +-NotShared NativeValueTraits< +- IDLNullable>, +- typename std::enable_if_t::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++NotShared NativeValueTraits>>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local value, ++ ExceptionState& exception_state) { + return NativeValueImpl< + RecipeTrait>, ToDOMViewType, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, +@@ -805,13 +800,12 @@ NotShared NativeValueTraits< + } + + template +-NotShared NativeValueTraits< +- IDLNullable>, +- typename std::enable_if_t::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++NotShared NativeValueTraits>>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl< + RecipeTrait>, ToDOMViewType, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, +@@ -822,12 +816,11 @@ NotShared NativeValueTraits< + // Nullable [AllowShared] ArrayBufferView + + template +-MaybeShared NativeValueTraits< +- IDLNullable>, +- typename std::enable_if_t::value>>:: +- NativeValue(v8::Isolate* isolate, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++MaybeShared NativeValueTraits>>::NativeValue( ++ v8::Isolate* isolate, ++ v8::Local value, ++ ExceptionState& exception_state) { + return NativeValueImpl>, + ToDOMViewType, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, +@@ -836,13 +829,12 @@ MaybeShared NativeValueTraits< + } + + template +-MaybeShared NativeValueTraits< +- IDLNullable>, +- typename std::enable_if_t::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++MaybeShared NativeValueTraits>>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl>, + ToDOMViewType, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, +@@ -853,9 +845,9 @@ MaybeShared NativeValueTraits< + // Nullable [AllowShared, BufferSourceTypeNoSizeLimit] ArrayBufferView + + template +-MaybeShared NativeValueTraits< +- IDLNullable>>, +- typename std::enable_if_t::value>>:: ++ requires std::derived_from ++MaybeShared ++NativeValueTraits>>>:: + ArgumentValue(v8::Isolate* isolate, + int argument_index, + v8::Local value, +@@ -870,13 +862,11 @@ MaybeShared NativeValueTraits< + // [AllowShared, FlexibleArrayBufferView] ArrayBufferView + + template +-T NativeValueTraits::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++T NativeValueTraits::ArgumentValue(v8::Isolate* isolate, ++ int argument_index, ++ v8::Local value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl, ToFlexibleArrayBufferView, + Nullablity::kIsNotNullable, BufferSizeCheck::kCheck, + ResizableAllowance::kDisallowResizable, +@@ -888,13 +878,12 @@ T NativeValueTraits +-T NativeValueTraits, +- typename std::enable_if_t< +- std::is_base_of::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++T NativeValueTraits>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl< + RecipeTrait, ToFlexibleArrayBufferView, Nullablity::kIsNotNullable, + BufferSizeCheck::kDoNotCheck, ResizableAllowance::kDisallowResizable, +@@ -905,13 +894,12 @@ T NativeValueTraits, + // Nullable [AllowShared, FlexibleArrayBufferView] ArrayBufferView + + template +-T NativeValueTraits, +- typename std::enable_if_t< +- std::is_base_of::value>>:: +- ArgumentValue(v8::Isolate* isolate, +- int argument_index, +- v8::Local value, +- ExceptionState& exception_state) { ++ requires std::derived_from ++T NativeValueTraits>::ArgumentValue( ++ v8::Isolate* isolate, ++ int argument_index, ++ v8::Local value, ++ ExceptionState& exception_state) { + return ArgumentValueImpl, ToFlexibleArrayBufferView, + Nullablity::kIsNullable, BufferSizeCheck::kCheck, + ResizableAllowance::kDisallowResizable, +diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h +index 899929dcf49f9..5011503dcf1c0 100644 +--- a/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h ++++ b/third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h +@@ -715,9 +718,8 @@ struct CORE_EXPORT NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- T, +- typename std::enable_if_t::value>> { ++ requires std::derived_from ++struct NativeValueTraits { + // NotShared or MaybeShared should be used instead. + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -729,9 +731,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLNullable, +- typename std::enable_if_t::value>> { ++ requires std::derived_from ++struct NativeValueTraits> { + // NotShared or MaybeShared should be used instead. + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -743,9 +744,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- NotShared, +- typename std::enable_if_t::value>> ++ requires std::derived_from ++struct NativeValueTraits> + : public NativeValueTraitsBase> { + static NotShared NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -758,9 +758,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLNullable>, +- typename std::enable_if_t::value>> ++ requires std::derived_from ++struct NativeValueTraits>> + : public NativeValueTraitsBase> { + static NotShared NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -773,9 +772,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- MaybeShared, +- typename std::enable_if_t::value>> ++ requires std::derived_from ++struct NativeValueTraits> + : public NativeValueTraitsBase> { + static MaybeShared NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -788,9 +786,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLBufferSourceTypeNoSizeLimit>, +- typename std::enable_if_t::value>> ++ requires std::derived_from ++struct NativeValueTraits>> + : public NativeValueTraitsBase> { + // FlexibleArrayBufferView uses this in its implementation, so we cannot + // delete it. +@@ -805,9 +802,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLNullable>, +- typename std::enable_if_t::value>> ++ requires std::derived_from ++struct NativeValueTraits>> + : public NativeValueTraitsBase> { + static MaybeShared NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -820,9 +816,9 @@ struct NativeValueTraits< + }; + + template ++ requires std::derived_from + struct NativeValueTraits< +- IDLNullable>>, +- typename std::enable_if_t::value>> ++ IDLNullable>>> + : public NativeValueTraitsBase> { + // BufferSourceTypeNoSizeLimit must be used only as arguments. + static MaybeShared NativeValue(v8::Isolate* isolate, +@@ -836,11 +832,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- T, +- typename std::enable_if_t< +- std::is_base_of::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits : public NativeValueTraitsBase { + // FlexibleArrayBufferView must be used only as arguments. + static T NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -853,10 +846,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLBufferSourceTypeNoSizeLimit, +- typename std::enable_if_t< +- std::is_base_of::value>> ++ requires std::derived_from ++struct NativeValueTraits> + : public NativeValueTraitsBase { + // BufferSourceTypeNoSizeLimit and FlexibleArrayBufferView must be used only + // as arguments. +@@ -871,11 +862,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLNullable, +- typename std::enable_if_t< +- std::is_base_of::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits> : public NativeValueTraitsBase { + // FlexibleArrayBufferView must be used only as arguments. + static T NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -1134,9 +1122,8 @@ NativeValueTraits>::NativeValue( + } + + template +-struct NativeValueTraits>, +- typename std::enable_if_t< +- NativeValueTraits>::has_null_value>> ++ requires NativeValueTraits>::has_null_value ++struct NativeValueTraits>> + : public NativeValueTraitsBase>*> { + using ImplType = typename NativeValueTraits>::ImplType*; + +@@ -1203,9 +1190,8 @@ struct NativeValueTraits> + : public NativeValueTraits> {}; + + template +-struct NativeValueTraits>, +- typename std::enable_if_t< +- NativeValueTraits>::has_null_value>> ++ requires NativeValueTraits>::has_null_value ++struct NativeValueTraits>> + : public NativeValueTraits>> {}; + + // Record types +@@ -1335,10 +1321,8 @@ struct NativeValueTraits> + + // Callback function types + template +-struct NativeValueTraits< +- T, +- typename std::enable_if_t::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits : public NativeValueTraitsBase { + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, + ExceptionState& exception_state) { +@@ -1361,9 +1345,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLNullable, +- typename std::enable_if_t::value>> ++ requires std::derived_from ++struct NativeValueTraits> + : public NativeValueTraitsBase> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -1392,10 +1375,8 @@ struct NativeValueTraits< + + // Callback interface types + template +-struct NativeValueTraits< +- T, +- typename std::enable_if_t::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits : public NativeValueTraitsBase { + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, + ExceptionState& exception_state) { +@@ -1418,9 +1399,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLNullable, +- typename std::enable_if_t::value>> ++ requires std::derived_from ++struct NativeValueTraits> + : public NativeValueTraitsBase> { + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -1449,11 +1429,8 @@ struct NativeValueTraits< + + // Dictionary types + template +-struct NativeValueTraits< +- T, +- typename std::enable_if_t< +- std::is_base_of::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits : public NativeValueTraitsBase { + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, + ExceptionState& exception_state) { +@@ -1464,14 +1441,11 @@ struct NativeValueTraits< + // We don't support nullable dictionary types in general since it's quite + // confusing and often misused. + template +-struct NativeValueTraits< +- IDLNullable, +- typename std::enable_if_t< +- std::is_base_of::value && +- (std::is_same::value || +- std::is_same::value || +- std::is_same::value)>> +- : public NativeValueTraitsBase { ++ requires std::derived_from && ++ (std::same_as || ++ std::same_as || ++ std::same_as) ++struct NativeValueTraits> : public NativeValueTraitsBase { + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, + ExceptionState& exception_state) { +@@ -1483,11 +1457,8 @@ struct NativeValueTraits< + + // Enumeration types + template +-struct NativeValueTraits< +- T, +- typename std::enable_if_t< +- std::is_base_of::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits : public NativeValueTraitsBase { + static T NativeValue(v8::Isolate* isolate, + v8::Local value, + ExceptionState& exception_state) { +@@ -1497,10 +1468,8 @@ struct NativeValueTraits< + + // Interface types + template +-struct NativeValueTraits< +- T, +- typename std::enable_if_t::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits : public NativeValueTraitsBase { + static inline T* NativeValue(v8::Isolate* isolate, + v8::Local value, + ExceptionState& exception_state) { +@@ -1528,9 +1497,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLNullable, +- typename std::enable_if_t::value>> ++ requires std::derived_from ++struct NativeValueTraits> + : public NativeValueTraitsBase> { + static inline T* NativeValue(v8::Isolate* isolate, + v8::Local value, +@@ -1565,10 +1533,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- T, +- typename std::enable_if_t::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits : public NativeValueTraitsBase { + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, + ExceptionState& exception_state) { +@@ -1584,10 +1550,8 @@ struct NativeValueTraits< + }; + + template +-struct NativeValueTraits< +- IDLNullable, +- typename std::enable_if_t::value>> +- : public NativeValueTraitsBase { ++ requires std::derived_from ++struct NativeValueTraits> : public NativeValueTraitsBase { + static T* NativeValue(v8::Isolate* isolate, + v8::Local value, + ExceptionState& exception_state) { +@@ -1608,9 +1572,8 @@ struct NativeValueTraits< + + // Nullable types + template +-struct NativeValueTraits< +- IDLNullable, +- typename std::enable_if_t::has_null_value>> ++ requires(!NativeValueTraits::has_null_value) ++struct NativeValueTraits> + : public NativeValueTraitsBase> { + // https://webidl.spec.whatwg.org/#es-nullable-type + using ImplType = +@@ -1642,9 +1605,8 @@ struct NativeValueTraits>>; + + // Optional types + template +-struct NativeValueTraits, +- typename std::enable_if_t::ImplType>::value>> ++ requires std::is_arithmetic_v::ImplType> ++struct NativeValueTraits> + : public NativeValueTraitsBase::ImplType> { + using ImplType = typename NativeValueTraits::ImplType; + +@@ -1666,9 +1628,8 @@ struct NativeValueTraits, + }; + + template +-struct NativeValueTraits, +- typename std::enable_if_t::ImplType>::value>> ++ requires std::is_pointer_v::ImplType> ++struct NativeValueTraits> + : public NativeValueTraitsBase::ImplType> { + using ImplType = typename NativeValueTraits::ImplType; + diff --git a/SOURCES/chromium-123-workaround_clang_bug-structured_binding.patch b/SOURCES/chromium-123-workaround_clang_bug-structured_binding.patch new file mode 100644 index 00000000..998fbad7 --- /dev/null +++ b/SOURCES/chromium-123-workaround_clang_bug-structured_binding.patch @@ -0,0 +1,78 @@ +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-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.than chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc +--- chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc.than 2023-12-19 17:57:56.205197246 +0100 ++++ chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid_layout_algorithm.cc 2023-12-19 18:10:13.778634531 +0100 +@@ -3527,8 +3527,8 @@ void GridLayoutAlgorithm::PlaceGridItems + DCHECK(out_row_break_between); + + const auto& container_space = GetConstraintSpace(); +- 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 = + container_space.GetWritingDirection(); +@@ -3691,8 +3691,9 @@ void GridLayoutAlgorithm::PlaceGridItems + + // TODO(ikilpatrick): Update |SetHasSeenAllChildren| and early exit if true. + const auto& constraint_space = GetConstraintSpace(); +- 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 = + constraint_space.GetWritingDirection(); +diff -up chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc +--- chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc.me 2024-02-25 18:03:51.654579579 +0100 ++++ chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_predictor/prewarm_http_disk_cache_manager.cc 2024-02-25 18:12:45.144287750 +0100 +@@ -136,7 +136,8 @@ void PrewarmHttpDiskCacheManager::MaybeP + std::pair origin_and_url; + std::swap(origin_and_url, queued_jobs_.front()); + queued_jobs_.pop(); +- const auto& [origin, url] = origin_and_url; ++ const auto& [origin, u] = origin_and_url; ++ const auto& url = u; + TRACE_EVENT_WITH_FLOW1( + "loading", "PrewarmHttpDiskCacheManager::MaybeProcessNextQueuedJob", + TRACE_ID_LOCAL(this), +--- chromium-123.0.6312.46/content/common/service_worker/race_network_request_url_loader_client.cc.orig 2024-03-15 15:37:58.201209354 +0100 ++++ chromium-123.0.6312.46/content/common/service_worker/race_network_request_url_loader_client.cc 2024-03-15 15:40:35.003250723 +0100 +@@ -639,7 +639,8 @@ + return std::nullopt; + } + +- auto [result, read_buffer] = BeginReadData(); ++ auto [r, read_buffer] = BeginReadData(); ++ auto result = r; + TRACE_EVENT_WITH_FLOW2( + "ServiceWorker", + "ServiceWorkerRaceNetworkRequestURLLoaderClient::ReadAndWrite", diff --git a/SOURCES/chromium.conf b/SOURCES/chromium.conf index b30a512e..686a277c 100644 --- a/SOURCES/chromium.conf +++ b/SOURCES/chromium.conf @@ -1,3 +1,3 @@ # system wide chromium flags CHROMIUM_FLAGS="" -CHROMIUM_FLAGS+=" --enable-features=VaapiVideoEncoder,VaapiVideoDecodeLinuxGL" +CHROMIUM_FLAGS+=" --use-gl=angle --use-angle=gl --enable-features=VaapiVideoEncoder,VaapiVideoDecodeLinuxGL" diff --git a/SPECS/chromium.spec b/SPECS/chromium.spec index 8ca5dcfa..749c59fa 100644 --- a/SPECS/chromium.spec +++ b/SPECS/chromium.spec @@ -333,7 +333,7 @@ %endif Name: chromium%{chromium_channel} -Version: 122.0.6261.128 +Version: 123.0.6312.58 Release: 1%{?dist}.inferit Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use Url: http://www.chromium.org/Home @@ -396,7 +396,7 @@ Patch101: chromium-108-el7-wayland-strndup-error.patch # Workaround for old clang # error: defaulting this default constructor would delete it after its first declaration -Patch102: chromium-121-el7-default-constructor-involving-anonymous-union.patch +Patch102: chromium-123-el7-default-constructor-involving-anonymous-union.patch # Work around old and missing headers on EPEL7 Patch103: chromium-110-epel7-old-headers-workarounds.patch @@ -425,7 +425,7 @@ Patch111: chromium-116-constexpr.patch # old clang on el7 Patch113: chromium-121-el7-clang-version-warning.patch -Patch114: chromium-120-el7-clang-build-failure.patch +Patch114: chromium-123-el7-clang-build-failure.patch # system ffmpeg # need for old ffmpeg 5.x on epel9 @@ -445,14 +445,14 @@ 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-121-no_matching_constructor.patch +Patch300: chromium-123-no_matching_constructor.patch Patch301: chromium-115-compiler-SkColor4f.patch # workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826 -Patch302: chromium-121-workaround_clang_bug-structured_binding.patch +Patch302: chromium-123-workaround_clang_bug-structured_binding.patch # missing typename -Patch303: chromium-121-typename.patch +Patch303: chromium-123-typename.patch # error: invalid operands to binary expression Patch304: chromium-117-string-convert.patch @@ -465,31 +465,29 @@ Patch306: chromium-119-assert.patch # revert it for old clang on rhel and f38 Patch307: chromium-121-v8-c++20-p1.patch -Patch308: chromium-121-v8-c++20.patch -Patch309: chromium-122-constexpr.patch +Patch308: chromium-123-v8-c++20.patch +Patch309: chromium-123-constexpr.patch # missing include header files -Patch310: chromium-122-missing-header-files.patch +Patch310: chromium-123-missing-header-files.patch # clang warnings Patch311: chromium-115-clang-warnings.patch # enable fstack-protector-strong -Patch312: chromium-119-fstack-protector-strong.patch +Patch312: chromium-123-fstack-protector-strong.patch + +# # rust is old, function or associated item not found in `OsStr` +Patch313: chromium-123-static-assert.patch -# fixed static assert error -Patch313: chromium-122-static-assert.patch Patch314: chromium-122-clang16-buildflags.patch # assignment-expressions not suport in python < 3.8 on el 7/8 -Patch315: chromium-122-python3-assignment-expressions.patch +Patch315: chromium-123-python3-assignment-expressions.patch # add -ftrivial-auto-var-init=zero and -fwrapv Patch316: chromium-122-clang-build-flags.patch -# build error -Patch351: chromium-121-mnemonic-error.patch - # Workaround for https://bugzilla.redhat.com/show_bug.cgi?id=2239523 # https://bugs.chromium.org/p/chromium/issues/detail?id=1145581#c60 # Disable BTI until this is fixed upstream. @@ -989,7 +987,7 @@ Requires: %{name}-common%{_isa} = %{version}-%{release} %if 0%{?rhel} == 7 ExclusiveArch: x86_64 %else -%if 0%{?fedora} >= 40 +%if 0%{?fedora} > 40 ExclusiveArch: x86_64 aarch64 ppc64le %else ExclusiveArch: x86_64 aarch64 @@ -1273,7 +1271,7 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %endif #%%if ! %{bundleffmpegfree} -#%%if 0%{?rhel} == 9 || 0%%{?fedora} == 37 +#%%if 0%{?rhel} == 9 #%%patch -P115 -p1 -b .ffmpeg-5.x-duration #%%endif #%%patch -P116 -p1 -b .prop-codecs @@ -1296,11 +1294,11 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %patch -P110 -p1 -b .buildflag-el7 #patch -P111 -p1 -b .constexpr %patch -P113 -p1 -b .el7-clang-version-warning -%patch -P114 -p1 -R -b .clang-build-failure -#patch -P300 -p1 -b .no_matching_constructor +%patch -P114 -p1 -b .clang-build-failure +%patch -P300 -p1 -b .no_matching_constructor %patch -P301 -p1 -b .workaround_clang-SkColor4f %patch -P302 -p1 -b .workaround_clang_bug-structured_binding -#patch -P303 -p1 -b .typename +%patch -P303 -p1 -b .typename %patch -P304 -p1 -b .string-convert %patch -P306 -p1 -b .assert %endif @@ -1324,16 +1322,20 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %patch -P307 -p1 -R -b .v8-c++20 %patch -P308 -p1 -R -b .v8-c++20 %patch -P309 -p1 -b .constexpr -%patch -P313 -p1 -b .static-assert %patch -P314 -p1 -b .clang16-buildflag %endif %patch -P310 -p1 -b .missing-header-files %patch -P311 -p1 -b .clang-warnings %patch -P312 -p1 -b .fstack-protector-strong -%patch -P316 -p1 -b .clang-build-flags -%patch -P351 -p1 -b .mnemonic-error +%if 0%{?rhel} && 0%{?rhel} < 10 +%patch -P313 -p1 -b .rust-clap_lex +%endif + +%if 0%{?rhel} >= 8 || 0%{?fedora} +%patch -P316 -p1 -b .clang-build-flags +%endif %if %{disable_bti} %patch -P352 -p1 -b .workaround_for_crash_on_BTI_capable_system @@ -1513,6 +1515,7 @@ export LANG=en_US.UTF-8 FLAGS=' -Wno-deprecated-declarations -Wno-unknown-warning-option -Wno-unused-command-line-argument' FLAGS+=' -Wno-unused-but-set-variable -Wno-unused-result -Wno-unused-function -Wno-unused-variable' FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unknown-attributes' +FLAGS+=' -Wno-unknown-pragmas' %endif %if %{system_build_flags} @@ -2236,6 +2239,17 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %endif %changelog +* Thu Mar 21 2024 Arkady L. Shane - 123.0.6312.58-1.inferit +- update to 123.0.6312.58 + * High CVE-2024-2625: Object lifecycle issue in V8 + * Medium CVE-2024-2626: Out of bounds read in Swiftshader + * Medium CVE-2024-2627: Use after free in Canvas + * Medium CVE-2024-2628: Inappropriate implementation in Downloads + * Medium CVE-2024-2629: Incorrect security UI in iOS + * Medium CVE-2024-2630: Inappropriate implementation in iOS + * Low CVE-2024-2631: Inappropriate implementation in iOS +- fixed bz#2270321 - VAAPI flags in chromium.conf are out of date + * Thu Mar 14 2024 Arkady L. Shane - 122.0.6261.128-1.inferit - upstream security release 122.0.6261.128 * High CVE-2024-2400: Use after free in Performance Manager