- 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
epel8 imports/epel9/chromium-123.0.6312.58-1.el9
Than Ngo 6 months ago
parent 11f6e46ef2
commit 1ee06aa55f

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

@ -1,230 +0,0 @@
commit 57526b8dc45b2e6c67bba7306f1dde73b1f2910c
Author: sisidovski <sisidovski@chromium.org>
Date: Tue Oct 24 09:32:49 2023 +0000
Remove unused items from the RaceNetworkRequest hashmap
When the AutoPreload or the race-network-and-fetch-handler option in the
static routing API is enabled, network requests are dispatched and
URLLoaderFactories are held in a hashmap in ServiceWorkerGlobalScope.
Those are consumed inside the fetch handler when fetch(e.request) is
called. But if the fetch handler doesn't call fetch() e.g. fallback,
those hashmap items does not have a chance to be removed.
This CL changes the hashmap items to be removed when the fetch event
finishes, and the URLLoaderFactory is still not consumed at that time.
This may loose the dedupe capability if fetch() is called later e.g.
setTimeout(() => fetch()), but it makes sense to prioritize keeping the
hashmap small.
Change-Id: I51bdc9d5eb5185f2b5b4df6ee785715b1180c848
Bug: 1492640
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4964840
Reviewed-by: Minoru Chikamune <chikamune@chromium.org>
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1214064}
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
index 02887edc10883..b3624fc0162df 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
@@ -46,6 +46,7 @@
#include "services/network/public/cpp/cross_origin_embedder_policy.h"
#include "services/network/public/mojom/cookie_manager.mojom-blink.h"
#include "services/network/public/mojom/cross_origin_embedder_policy.mojom.h"
+#include "services/network/public/mojom/url_loader_factory.mojom-blink.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
#include "third_party/blink/public/mojom/notifications/notification.mojom-blink.h"
@@ -1096,6 +1097,10 @@ void ServiceWorkerGlobalScope::DidHandleFetchEvent(
TRACE_ID_WITH_SCOPE(kServiceWorkerGlobalScopeTraceScope,
TRACE_ID_LOCAL(event_id)),
TRACE_EVENT_FLAG_FLOW_IN, "status", MojoEnumToString(status));
+
+ // Delete the URLLoaderFactory for the RaceNetworkRequest if it's not used.
+ RemoveItemFromRaceNetworkRequests(event_id);
+
if (!RunEventCallback(&fetch_event_callbacks_, event_queue_.get(), event_id,
status)) {
// The event may have been aborted. Its response callback also needs to be
@@ -1495,6 +1500,7 @@ void ServiceWorkerGlobalScope::AbortCallbackForFetchEvent(
response_callback_iter->value->TakeValue().reset();
fetch_response_callbacks_.erase(response_callback_iter);
}
+ RemoveItemFromRaceNetworkRequests(event_id);
// Run the event callback with the error code.
auto event_callback_iter = fetch_event_callbacks_.find(event_id);
@@ -1551,52 +1557,11 @@ void ServiceWorkerGlobalScope::StartFetchEvent(
if (params->race_network_request_loader_factory &&
params->request->service_worker_race_network_request_token) {
- auto insert_result = race_network_request_loader_factories_.insert(
- String(params->request->service_worker_race_network_request_token
- ->ToString()),
- std::move(params->race_network_request_loader_factory));
-
- // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
- // to |race_network_request_loader_factories_|.
- // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
- // and identify the cause.
- static bool has_dumped_without_crashing_for_empty_token = false;
- static bool has_dumped_without_crashing_for_not_new_entry = false;
- if (!has_dumped_without_crashing_for_empty_token &&
- params->request->service_worker_race_network_request_token
- ->is_empty()) {
- has_dumped_without_crashing_for_empty_token = true;
- SCOPED_CRASH_KEY_BOOL(
- "SWGlobalScope", "empty_race_token",
- params->request->service_worker_race_network_request_token
- ->is_empty());
- SCOPED_CRASH_KEY_STRING64(
- "SWGlobalScope", "race_token_string",
- params->request->service_worker_race_network_request_token
- ->ToString());
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
- insert_result.is_new_entry);
- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
- params->request->url.GetString().Utf8());
- base::debug::DumpWithoutCrashing();
- }
- if (!has_dumped_without_crashing_for_not_new_entry &&
- !insert_result.is_new_entry) {
- has_dumped_without_crashing_for_not_new_entry = true;
- SCOPED_CRASH_KEY_BOOL(
- "SWGlobalScope", "empty_race_token",
- params->request->service_worker_race_network_request_token
- ->is_empty());
- SCOPED_CRASH_KEY_STRING64(
- "SWGlobalScope", "race_token_string",
- params->request->service_worker_race_network_request_token
- ->ToString());
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
- insert_result.is_new_entry);
- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
- params->request->url.GetString().Utf8());
- base::debug::DumpWithoutCrashing();
- }
+ InsertNewItemToRaceNetworkRequests(
+ event_id,
+ params->request->service_worker_race_network_request_token.value(),
+ std::move(params->race_network_request_loader_factory),
+ params->request->url);
}
Request* request = Request::Create(
@@ -2808,12 +2773,71 @@ bool ServiceWorkerGlobalScope::SetAttributeEventListener(
absl::optional<mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
ServiceWorkerGlobalScope::FindRaceNetworkRequestURLLoaderFactory(
const base::UnguessableToken& token) {
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory> result =
- race_network_request_loader_factories_.Take(String(token.ToString()));
+ std::unique_ptr<RaceNetworkRequestInfo> result =
+ race_network_requests_.Take(String(token.ToString()));
if (result) {
- return result;
+ race_network_request_fetch_event_ids_.erase(result->fetch_event_id);
+ return absl::optional<
+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>(
+ std::move(result->url_loader_factory));
}
return absl::nullopt;
}
+void ServiceWorkerGlobalScope::InsertNewItemToRaceNetworkRequests(
+ int fetch_event_id,
+ const base::UnguessableToken& token,
+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
+ url_loader_factory,
+ const KURL& request_url) {
+ auto race_network_request_token = String(token.ToString());
+ auto info = std::make_unique<RaceNetworkRequestInfo>(
+ fetch_event_id, race_network_request_token,
+ std::move(url_loader_factory));
+ race_network_request_fetch_event_ids_.insert(fetch_event_id, info.get());
+ auto insert_result = race_network_requests_.insert(race_network_request_token,
+ std::move(info));
+
+ // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
+ // to |race_network_request_loader_factories_|.
+ // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
+ // and identify the cause.
+ static bool has_dumped_without_crashing_for_empty_token = false;
+ static bool has_dumped_without_crashing_for_not_new_entry = false;
+ if (!has_dumped_without_crashing_for_empty_token && token.is_empty()) {
+ has_dumped_without_crashing_for_empty_token = true;
+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
+ token.is_empty());
+ SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
+ token.ToString());
+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
+ insert_result.is_new_entry);
+ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
+ request_url.GetString().Utf8());
+ base::debug::DumpWithoutCrashing();
+ }
+ if (!has_dumped_without_crashing_for_not_new_entry &&
+ !insert_result.is_new_entry) {
+ has_dumped_without_crashing_for_not_new_entry = true;
+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
+ token.is_empty());
+ SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
+ token.ToString());
+ SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
+ insert_result.is_new_entry);
+ SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
+ request_url.GetString().Utf8());
+ base::debug::DumpWithoutCrashing();
+ }
+}
+
+void ServiceWorkerGlobalScope::RemoveItemFromRaceNetworkRequests(
+ int fetch_event_id) {
+ RaceNetworkRequestInfo* info =
+ race_network_request_fetch_event_ids_.Take(fetch_event_id);
+ if (info) {
+ race_network_requests_.erase(info->token);
+ }
+}
+
} // namespace blink
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
index 46c431b395825..ac4cac0b1d8fb 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
@@ -623,6 +623,14 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final
// ServiceWorker.FetchEvent.QueuingTime histogram.
void RecordQueuingTime(base::TimeTicks created_time);
+ void InsertNewItemToRaceNetworkRequests(
+ int fetch_event_id,
+ const base::UnguessableToken& token,
+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
+ url_loader_factory,
+ const KURL& request_url);
+ void RemoveItemFromRaceNetworkRequests(int fetch_event_id);
+
Member<ServiceWorkerClients> clients_;
Member<ServiceWorkerRegistration> registration_;
Member<::blink::ServiceWorker> service_worker_;
@@ -768,10 +776,17 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final
blink::BlinkStorageKey storage_key_;
+ struct RaceNetworkRequestInfo {
+ int fetch_event_id;
+ String token;
+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
+ url_loader_factory;
+ };
// TODO(crbug.com/918702) WTF::HashMap cannot use base::UnguessableToken as a
// key. As a workaround uses WTF::String as a key instead.
- HashMap<String, mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
- race_network_request_loader_factories_;
+ HashMap<String, std::unique_ptr<RaceNetworkRequestInfo>>
+ race_network_requests_;
+ HashMap<int, RaceNetworkRequestInfo*> race_network_request_fetch_event_ids_;
HeapMojoAssociatedRemote<mojom::blink::AssociatedInterfaceProvider>
remote_associated_interfaces_{this};

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

@ -1,13 +0,0 @@
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 <cstddef>\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')

@ -1,32 +0,0 @@
commit 04866680f4f9a8475ae3795ad6ed59649ba478d7
Author: Jose Dapena Paz <jdapena@igalia.com>
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 <mastiz@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
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.

@ -1,44 +0,0 @@
commit 5517d167c083885847a08a83b96da03b1eb2bc3e
Author: Jose Dapena Paz <jdapena@igalia.com>
Date: Tue Jan 23 15:34:35 2024 +0000
libstdc++: do not require including unique_ptr in header
Including std::unique_ptr declaration initial value requires
declaration of contained type.
Bug: 957519
Change-Id: If9b0362b6cea48a395041faa82f83b6f48b98403
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5225137
Reviewed-by: Caroline Rising <corising@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1250826}
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.h b/chrome/browser/ui/views/toolbar/toolbar_view.h
index ec3e34a86f4c5..32ca27b6d126b 100644
--- a/chrome/browser/ui/views/toolbar/toolbar_view.h
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.h
@@ -311,8 +311,7 @@ class ToolbarView : public views::AccessiblePaneView,
AppMenuIconController app_menu_icon_controller_;
std::unique_ptr<ChromeLabsModel> chrome_labs_model_;
- std::unique_ptr<ExtensionsToolbarCoordinator>
- extensions_toolbar_coordinator_ = nullptr;
+ std::unique_ptr<ExtensionsToolbarCoordinator> extensions_toolbar_coordinator_;
// Controls whether or not a home button should be shown on the toolbar.
BooleanPrefMember show_home_button_;
diff --git a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
index 3046c543c7c8e..46ff5d40ffad3 100644
--- a/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
+++ b/chrome/browser/ui/views/web_apps/frame_toolbar/web_app_toolbar_button_container.h
@@ -150,8 +150,7 @@ class WebAppToolbarButtonContainer : public views::View,
std::unique_ptr<PageActionIconController> page_action_icon_controller_;
int page_action_insertion_point_ = 0;
- std::unique_ptr<ExtensionsToolbarCoordinator>
- extensions_toolbar_coordinator_ = nullptr;
+ std::unique_ptr<ExtensionsToolbarCoordinator> extensions_toolbar_coordinator_;
// All remaining members are owned by the views hierarchy.
raw_ptr<WebAppOriginText> web_app_origin_text_ = nullptr;

@ -25,15 +25,6 @@ diff -up chromium-122.0.6261.29/base/types/strong_alias.h.me chromium-122.0.6261
diff -up chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h.constexpr chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h
--- chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h.constexpr 2024-02-07 19:49:31.000000000 +0100
+++ chromium-122.0.6261.29/components/performance_manager/resource_attribution/query_params.h 2024-02-13 11:12:52.913338699 +0100
@@ -29,7 +29,7 @@ class ContextCollection {
ContextCollection(const ContextCollection& other);
ContextCollection& operator=(const ContextCollection& other);
- friend constexpr bool operator==(const ContextCollection&,
+ friend bool operator==(const ContextCollection&,
const ContextCollection&) = default;
// Adds `context` to the collection.
@@ -67,7 +67,7 @@ struct QueryParams {
QueryParams(const QueryParams& other);
QueryParams& operator=(const QueryParams& other);
@ -43,3 +34,27 @@ diff -up chromium-122.0.6261.29/components/performance_manager/resource_attribut
const QueryParams&) = default;
// Resource types to measure.
diff -up chromium-123.0.6312.46/components/performance_manager/resource_attribution/context_collection.h.me chromium-123.0.6312.46/components/performance_manager/resource_attribution/context_collection.h
--- chromium-123.0.6312.46/components/performance_manager/resource_attribution/context_collection.h.me 2024-03-17 11:57:22.097161565 +0100
+++ chromium-123.0.6312.46/components/performance_manager/resource_attribution/context_collection.h 2024-03-17 22:18:25.442101825 +0100
@@ -28,7 +28,7 @@ class ContextCollection {
ContextCollection(const ContextCollection& other);
ContextCollection& operator=(const ContextCollection& other);
- friend constexpr bool operator==(const ContextCollection&,
+ friend bool operator==(const ContextCollection&,
const ContextCollection&) = default;
// Adds `context` to the collection.
diff -up chromium-123.0.6312.46/components/autofill/core/browser/metrics/log_event.h.me chromium-123.0.6312.46/components/autofill/core/browser/metrics/log_event.h
--- chromium-123.0.6312.46/components/autofill/core/browser/metrics/log_event.h.me 2024-03-16 23:38:10.437128249 +0100
+++ chromium-123.0.6312.46/components/autofill/core/browser/metrics/log_event.h 2024-03-16 23:59:50.868080652 +0100
@@ -57,7 +57,7 @@ struct IsRequired {
// This function is not defined and consteval. Therefore, any evaluation will
// fail and fail at compile time.
template <typename T>
- consteval operator T(); // NOLINT
+ operator T(); // NOLINT
};
} // namespace internal

@ -0,0 +1,228 @@
commit 57526b8dc45b2e6c67bba7306f1dde73b1f2910c
Author: sisidovski <sisidovski@chromium.org>
Date: Tue Oct 24 09:32:49 2023 +0000
Remove unused items from the RaceNetworkRequest hashmap
When the AutoPreload or the race-network-and-fetch-handler option in the
static routing API is enabled, network requests are dispatched and
URLLoaderFactories are held in a hashmap in ServiceWorkerGlobalScope.
Those are consumed inside the fetch handler when fetch(e.request) is
called. But if the fetch handler doesn't call fetch() e.g. fallback,
those hashmap items does not have a chance to be removed.
This CL changes the hashmap items to be removed when the fetch event
finishes, and the URLLoaderFactory is still not consumed at that time.
This may loose the dedupe capability if fetch() is called later e.g.
setTimeout(() => fetch()), but it makes sense to prioritize keeping the
hashmap small.
Change-Id: I51bdc9d5eb5185f2b5b4df6ee785715b1180c848
Bug: 1492640
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4964840
Reviewed-by: Minoru Chikamune <chikamune@chromium.org>
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Reviewed-by: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1214064}
diff -up chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc.me chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc
--- chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc.me 2024-03-18 10:34:27.604707632 +0100
+++ chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc 2024-03-18 11:52:14.309983505 +0100
@@ -46,7 +46,6 @@
#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"
@@ -1097,10 +1096,6 @@ void ServiceWorkerGlobalScope::DidHandle
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
@@ -1500,7 +1495,6 @@ void ServiceWorkerGlobalScope::AbortCall
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);
@@ -1588,11 +1582,52 @@ void ServiceWorkerGlobalScope::StartFetc
if (params->race_network_request_loader_factory &&
params->request->service_worker_race_network_request_token) {
- InsertNewItemToRaceNetworkRequests(
- event_id,
- params->request->service_worker_race_network_request_token.value(),
- std::move(params->race_network_request_loader_factory),
- params->request->url);
+ 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();
+ }
}
Request* request = Request::Create(
@@ -2805,71 +2840,12 @@ bool ServiceWorkerGlobalScope::SetAttrib
std::optional<mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
ServiceWorkerGlobalScope::FindRaceNetworkRequestURLLoaderFactory(
const base::UnguessableToken& token) {
- std::unique_ptr<RaceNetworkRequestInfo> result =
- race_network_requests_.Take(String(token.ToString()));
+ mojo::PendingRemote<network::mojom::blink::URLLoaderFactory> result =
+ race_network_request_loader_factories_.Take(String(token.ToString()));
if (result) {
- race_network_request_fetch_event_ids_.erase(result->fetch_event_id);
- return std::optional<
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>(
- std::move(result->url_loader_factory));
+ return result;
}
return std::nullopt;
}
-void ServiceWorkerGlobalScope::InsertNewItemToRaceNetworkRequests(
- int fetch_event_id,
- const base::UnguessableToken& token,
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
- url_loader_factory,
- const KURL& request_url) {
- auto race_network_request_token = String(token.ToString());
- auto info = std::make_unique<RaceNetworkRequestInfo>(
- fetch_event_id, race_network_request_token,
- std::move(url_loader_factory));
- race_network_request_fetch_event_ids_.insert(fetch_event_id, info.get());
- auto insert_result = race_network_requests_.insert(race_network_request_token,
- std::move(info));
-
- // DumpWithoutCrashing if the token is empty, or not inserted as a new entry
- // to |race_network_request_loader_factories_|.
- // TODO(crbug.com/1492640) Remove DumpWithoutCrashing once we collect data
- // and identify the cause.
- static bool has_dumped_without_crashing_for_empty_token = false;
- static bool has_dumped_without_crashing_for_not_new_entry = false;
- if (!has_dumped_without_crashing_for_empty_token && token.is_empty()) {
- has_dumped_without_crashing_for_empty_token = true;
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
- token.is_empty());
- SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
- token.ToString());
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
- insert_result.is_new_entry);
- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
- request_url.GetString().Utf8());
- base::debug::DumpWithoutCrashing();
- }
- if (!has_dumped_without_crashing_for_not_new_entry &&
- !insert_result.is_new_entry) {
- has_dumped_without_crashing_for_not_new_entry = true;
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "empty_race_token",
- token.is_empty());
- SCOPED_CRASH_KEY_STRING64("SWGlobalScope", "race_token_string",
- token.ToString());
- SCOPED_CRASH_KEY_BOOL("SWGlobalScope", "race_insert_new_entry",
- insert_result.is_new_entry);
- SCOPED_CRASH_KEY_STRING256("SWGlobalScope", "race_request_url",
- request_url.GetString().Utf8());
- base::debug::DumpWithoutCrashing();
- }
-}
-
-void ServiceWorkerGlobalScope::RemoveItemFromRaceNetworkRequests(
- int fetch_event_id) {
- RaceNetworkRequestInfo* info =
- race_network_request_fetch_event_ids_.Take(fetch_event_id);
- if (info) {
- race_network_requests_.erase(info->token);
- }
-}
-
} // namespace blink
diff -up chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h.me chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h
--- chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h.me 2024-03-18 10:26:14.905817501 +0100
+++ chromium-123.0.6312.46/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h 2024-03-18 11:47:58.202198028 +0100
@@ -623,14 +623,6 @@ class MODULES_EXPORT ServiceWorkerGlobal
// ServiceWorker.FetchEvent.QueuingTime histogram.
void RecordQueuingTime(base::TimeTicks created_time);
- void InsertNewItemToRaceNetworkRequests(
- int fetch_event_id,
- const base::UnguessableToken& token,
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
- url_loader_factory,
- const KURL& request_url);
- void RemoveItemFromRaceNetworkRequests(int fetch_event_id);
-
Member<ServiceWorkerClients> clients_;
Member<ServiceWorkerRegistration> registration_;
Member<::blink::ServiceWorker> service_worker_;
@@ -776,17 +768,10 @@ class MODULES_EXPORT ServiceWorkerGlobal
blink::BlinkStorageKey storage_key_;
- struct RaceNetworkRequestInfo {
- int fetch_event_id;
- String token;
- mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>
- url_loader_factory;
- };
// TODO(crbug.com/918702) WTF::HashMap cannot use base::UnguessableToken as a
// key. As a workaround uses WTF::String as a key instead.
- HashMap<String, std::unique_ptr<RaceNetworkRequestInfo>>
- race_network_requests_;
- HashMap<int, RaceNetworkRequestInfo*> race_network_request_fetch_event_ids_;
+ HashMap<String, mojo::PendingRemote<network::mojom::blink::URLLoaderFactory>>
+ race_network_request_loader_factories_;
HeapMojoAssociatedRemote<mojom::blink::AssociatedInterfaceProvider>
remote_associated_interfaces_{this};

@ -22,3 +22,15 @@ diff -up chromium-122.0.6261.69/content/browser/interest_group/header_direct_fro
HeaderDirectFromSellerSignals::Result::Result(
std::optional<std::string> 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) {}

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

@ -99,28 +99,6 @@ diff -up chromium-122.0.6261.29/third_party/dawn/src/tint/lang/spirv/reader/ast_
#include <string>
#include <unordered_map>
#include <vector>
diff -up chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc
--- chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files 2024-02-07 19:52:34.000000000 +0100
+++ chromium-122.0.6261.29/third_party/material_color_utilities/src/cpp/palettes/tones.cc 2024-02-12 14:59:48.143415190 +0100
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#include <cmath>
#include "cpp/palettes/tones.h"
#include "cpp/cam/cam.h"
diff -up chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h
--- chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files 2024-02-07 19:52:59.000000000 +0100
+++ chromium-122.0.6261.29/third_party/ruy/src/ruy/profiler/instrumentation.h 2024-02-12 14:59:48.143415190 +0100
@@ -17,6 +17,7 @@ limitations under the License.
#define RUY_RUY_PROFILER_INSTRUMENTATION_H_
#ifdef RUY_PROFILER
+#include <string>
#include <cstdio>
#include <mutex>
#include <vector>
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

@ -82,37 +82,6 @@ diff -up chromium-122.0.6261.69/chrome/browser/enterprise/profile_management/pro
// Extract domains and attributes from the command line switch.
const base::CommandLine& command_line =
diff -up chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.than chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc
--- chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc.than 2024-02-22 22:42:54.000000000 +0100
+++ chromium-122.0.6261.69/chrome/browser/ui/autofill/autofill_context_menu_manager.cc 2024-02-24 13:13:44.159712774 +0100
@@ -283,8 +283,8 @@ void AutofillContextMenuManager::Execute
AutofillManager& manager) {
auto& driver = static_cast<ContentAutofillDriver&>(manager.driver());
driver.browser_events().RendererShouldTriggerSuggestions(
- FieldGlobalId(driver.GetFrameToken(),
- FieldRendererId(params_.field_renderer_id)),
+ FieldGlobalId{driver.GetFrameToken(),
+ FieldRendererId(params_.field_renderer_id)},
AutofillSuggestionTriggerSource::kManualFallbackPayments);
}
diff -up chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.than chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
--- chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.than 2024-02-22 22:42:55.000000000 +0100
+++ chromium-122.0.6261.69/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2024-02-24 13:13:32.485503752 +0100
@@ -474,10 +474,10 @@ void ChromeOmniboxClient::OnAutocomplete
alternative_nav_match);
// Store the details necessary to open the omnibox match via browser commands.
- location_bar_->set_navigation_params(LocationBar::NavigationParams(
+ location_bar_->set_navigation_params(LocationBar::NavigationParams{
destination_url, disposition, transition, match_selection_timestamp,
destination_url_entered_without_scheme,
- destination_url_entered_with_http_scheme));
+ destination_url_entered_with_http_scheme});
if (browser_) {
auto navigation = chrome::OpenCurrentURL(browser_);
diff -up chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.cc.than chromium-122.0.6261.69/chrome/browser/ui/safety_hub/menu_notification_service.cc
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
@ -205,27 +174,6 @@ diff -up chromium-122.0.6261.69/chrome/browser/ui/views/permissions/embedded_per
+ ButtonType::kStopAllowing, ui::ButtonStyle::kTonal, kStopAllowingId};
return buttons;
}
diff -up chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.than chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc
--- chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc.than 2024-02-22 22:42:55.000000000 +0100
+++ chromium-122.0.6261.69/chrome/browser/ui/web_applications/sub_apps_service_impl.cc 2024-02-24 13:13:44.159712774 +0100
@@ -102,7 +102,7 @@ AddOptionsFromMojo(
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;
}
@@ -391,7 +391,7 @@ void SubAppsServiceImpl::ScheduleSubAppI
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(install_results_collector));
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
@ -544,27 +492,6 @@ diff -up chromium-122.0.6261.69/net/dns/host_resolver_cache.cc.than chromium-122
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/font_palette.h.than chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h
--- chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h.than 2024-02-22 22:43:25.000000000 +0100
+++ chromium-122.0.6261.69/third_party/blink/renderer/platform/fonts/font_palette.h 2024-02-24 13:13:44.152712649 +0100
@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
Color::ColorSpace color_interpolation_space,
absl::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
return base::AdoptRef(new FontPalette(
- start, end, NonNormalizedPercentages(start_percentage, end_percentage),
+ start, end, NonNormalizedPercentages{start_percentage, end_percentage},
normalized_percentage, alpha_multiplier, color_interpolation_space,
hue_interpolation_method));
}
@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ
double normalized_percentage) {
double end_percentage = normalized_percentage * 100.0;
double start_percentage = 100.0 - end_percentage;
- return NonNormalizedPercentages(start_percentage, end_percentage);
+ return NonNormalizedPercentages{start_percentage, end_percentage};
}
double GetAlphaMultiplier() const {
diff -up chromium-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
@ -1005,18 +932,6 @@ diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_st
}
void DoGetDebugReportCooldowns(
diff -up chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc.me chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc
--- chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc.me 2024-02-25 00:20:33.535907981 +0100
+++ chromium-122.0.6261.69/content/browser/interest_group/interest_group_auction.cc 2024-02-25 00:21:01.082402610 +0100
@@ -501,7 +501,7 @@ bool SampleDebugReport(
? DebugReportCooldownType::kShortCooldown
: DebugReportCooldownType::kRestrictedCooldown;
new_debug_report_lockout_and_cooldowns.debug_report_cooldown_map[origin] =
- DebugReportCooldown(now, cooldown_type);
+ DebugReportCooldown{now, cooldown_type};
base::UmaHistogramEnumeration(
"Ads.InterestGroup.Auction.ForDebuggingOnlyCooldownType", cooldown_type);
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
@ -1114,3 +1029,336 @@ diff -up chromium-122.0.6261.69/chrome/browser/renderer_context_menu/render_view
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<ContentAutofillDriver&>(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<BrowserAutofillManager&>(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<Color::HueInterpolationMethod> 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<ClientSharedImage> 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<ClientSharedImage> ClientS
return base::MakeRefCounted<ClientSharedImage>(
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<ClientSharedImage> ClientS
CHECK(!buffer_handle.is_null());
return base::MakeRefCounted<ClientSharedImage>(
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<ClientSharedImage> ClientS
return base::MakeRefCounted<ClientSharedImage>(
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<ClientSharedImage> 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<ClientSharedImage> 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<ClientSharedImage>(
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<ClientSharedImage>(
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<ClientSharedImage>(
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<ClientSharedImage> ClientS
return base::MakeRefCounted<ClientSharedImage>(
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<ClientSharedImage> SharedI
NOTREACHED();
return base::MakeRefCounted<ClientSharedImage>(
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<ClientSharedImage>(
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<ClientSharedImage>(
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<ClientSharedImage>(
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<ClientSharedImage>(
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<ClientSharedImage>(
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<ClientSharedImage>(
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<ClientSharedImage>(
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<BiddingAndAuctionServerKey> 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};
}

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

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

@ -88,55 +88,6 @@ diff -up chromium-122.0.6261.69/components/optimization_guide/core/model_quality
return FeatureType::GetLoggingData(*log_ai_data_request_)
->mutable_quality_data();
}
diff -up chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h.typename chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h
--- chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h.typename 2024-02-22 22:43:01.000000000 +0100
+++ chromium-122.0.6261.69/components/optimization_guide/core/tflite_model_executor.h 2024-02-24 15:05:00.883592724 +0100
@@ -241,7 +241,7 @@ class TFLiteModelExecutor : public Model
void SendForBatchExecution(
BatchExecutionCallback callback_on_complete,
base::TimeTicks start_time,
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
override {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -263,7 +263,7 @@ class TFLiteModelExecutor : public Model
// 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<absl::optional<OutputType>> SendForBatchExecutionSync(
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
override {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -421,7 +421,7 @@ class TFLiteModelExecutor : public Model
// executes it on the model execution thread.
void LoadModelFileAndBatchExecute(
BatchExecutionCallback callback_on_complete,
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -438,7 +438,7 @@ class TFLiteModelExecutor : public Model
// Batch executes the loaded model for inputs.
void BatchExecuteLoadedModel(
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
std::vector<absl::optional<OutputType>>* outputs) {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -498,7 +498,7 @@ class TFLiteModelExecutor : public Model
// Unloads the model if needed.
void BatchExecuteLoadedModelAndRunCallback(
BatchExecutionCallback callback_on_complete,
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
ExecutionStatus execution_status) {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff -up chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h.typename chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fetcher.h
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
@ -208,18 +159,6 @@ diff -up chromium-122.0.6261.69/base/allocator/partition_allocator/src/partition
std::size_t count) {
PA_CHECK(count <=
std::numeric_limits<std::size_t>::max() / sizeof(value_type));
diff -up chromium-122.0.6261.69/base/functional/function_ref.h.me chromium-122.0.6261.69/base/functional/function_ref.h
--- chromium-122.0.6261.69/base/functional/function_ref.h.me 2024-02-24 17:59:35.119582549 +0100
+++ chromium-122.0.6261.69/base/functional/function_ref.h 2024-02-24 18:00:27.107938399 +0100
@@ -64,7 +64,7 @@ class FunctionRef;
template <typename R, typename... Args>
class FunctionRef<R(Args...)> {
template <typename Functor,
- typename RunType = internal::MakeFunctorTraits<Functor>::RunType>
+ typename RunType = typename internal::MakeFunctorTraits<Functor>::RunType>
static constexpr bool kCompatibleFunctor =
std::convertible_to<internal::ExtractReturnType<RunType>, R> &&
std::same_as<internal::ExtractArgs<RunType>, internal::TypeList<Args...>>;
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
@ -383,3 +322,85 @@ diff -up chromium-122.0.6261.69/components/supervised_user/core/browser/proto_fe
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<OutputType, InputType>::ConstRefInputVector inputs)
+ typename ModelExecutor<OutputType, InputType>::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<std::optional<OutputType>> SendForBatchExecutionSync(
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ typename ModelExecutor<OutputType, InputType>::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<OutputType, InputType>::ConstRefInputVector inputs) {
+ typename ModelExecutor<OutputType, InputType>::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<OutputType, InputType>::ConstRefInputVector inputs,
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
std::vector<std::optional<OutputType>>* 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<OutputType, InputType>::ConstRefInputVector inputs,
+ typename ModelExecutor<OutputType, InputType>::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 <typename R, typename... Args>
class FunctionRef<R(Args...)> {
template <typename Functor,
- typename RunType = internal::FunctorTraits<Functor>::RunType>
+ typename RunType = typename internal::FunctorTraits<Functor>::RunType>
static constexpr bool kCompatibleFunctor =
std::convertible_to<internal::ExtractReturnType<RunType>, R> &&
std::same_as<internal::ExtractArgs<RunType>, internal::TypeList<Args...>>;
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 <typename T>
requires std::derived_from<T, bindings::EnumerationBase>
static T DefaultPromiseResultValue() {
- return T(static_cast<T::Enum>(0));
+ return T(static_cast<typename T::Enum>(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<IDLResolvedType>::InternalResolverTyped;
+ typename ScriptPromiseTyped<IDLResolvedType>::InternalResolverTyped;
};
} // namespace blink

@ -385,16 +385,6 @@ diff --git a/third_party/blink/renderer/bindings/core/v8/native_value_traits_imp
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
@@ -5,6 +5,9 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_
#define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_NATIVE_VALUE_TRAITS_IMPL_H_
+#include <concepts>
+#include <type_traits>
+
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "third_party/blink/renderer/bindings/core/v8/idl_types.h"
#include "third_party/blink/renderer/bindings/core/v8/native_value_traits.h"
@@ -715,9 +718,8 @@ struct CORE_EXPORT NativeValueTraits<
};

@ -51,19 +51,6 @@ diff -up chromium-121.0.6167.16/third_party/blink/renderer/core/layout/grid/grid
const auto* cached_layout_subtree = constraint_space.GetGridLayoutSubtree();
const auto container_writing_direction =
constraint_space.GetWritingDirection();
diff -up chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc.me chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc
--- chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc.me 2024-02-25 10:07:28.312646853 +0100
+++ chromium-122.0.6261.69/content/common/service_worker/race_network_request_url_loader_client.cc 2024-02-25 10:11:07.018481980 +0100
@@ -416,7 +416,8 @@ void ServiceWorkerRaceNetworkRequestURLL
}
uint32_t num_bytes_to_consume = 0;
- auto [result, read_buffer] = BeginReadData();
+ auto [r, read_buffer] = BeginReadData();
+ auto result = r;
TRACE_EVENT_WITH_FLOW2(
"ServiceWorker",
"ServiceWorkerRaceNetworkRequestURLLoaderClient::ReadAndWrite",
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
@ -77,3 +64,15 @@ diff -up chromium-122.0.6261.69/chrome/browser/predictors/lcp_critical_path_pred
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",

@ -303,7 +303,7 @@
%endif
Name: chromium%{chromium_channel}
Version: 122.0.6261.128
Version: 123.0.6312.58
Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
@ -366,7 +366,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-122-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
@ -393,7 +393,7 @@ Patch109: chromium-114-wireless-el7.patch
Patch110: chromium-115-buildflag-el7.patch
Patch111: chromium-122-el7-inline-function.patch
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
@ -413,14 +413,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-122-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-122-workaround_clang_bug-structured_binding.patch
Patch302: chromium-123-workaround_clang_bug-structured_binding.patch
# missing typename
Patch303: chromium-122-typename.patch
Patch303: chromium-123-typename.patch
# error: invalid operands to binary expression
Patch304: chromium-117-string-convert.patch
@ -434,35 +434,29 @@ Patch306: chromium-119-assert.patch
# compiler errors on epel
# 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
# upstream: libstdc++: fix static assertion in NodeUuidEquality
Patch313: chromium-122-static-assert.patch
# rust is old, function or associated item not found in `OsStr`
Patch313: chromium-123-rust-clap_lex.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
# upstream: ibstdc++: do not require including unique_ptr in header
Patch317: chromium-122-unique_ptr.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.
@ -941,7 +935,7 @@ Requires: chromium-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
@ -1166,7 +1160,7 @@ udev.
%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
@ -1189,7 +1183,7 @@ udev.
%patch -P110 -p1 -b .buildflag-el7
%patch -P111 -p1 -b .inline-function-el7
%patch -P113 -p1 -b .el7-clang-version-warning
%patch -P114 -p1 -R -b .clang-build-failure
%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
@ -1217,19 +1211,20 @@ udev.
%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 -P317 -p1 -b .unique_ptr.patch
%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
%patch -P351 -p1 -b .mnemonic-error
%if %{disable_bti}
%patch -P352 -p1 -b .workaround_for_crash_on_BTI_capable_system
@ -1391,6 +1386,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}
@ -2110,6 +2106,19 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%endif
%changelog
* Wed Mar 20 2024 Than Ngo <than@redhat.com> - 123.0.6312.58-1
- 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
* Fri Mar 15 2024 Than Ngo <than@redhat.com> - 123.0.6312.46-1
- update to 123.0.6312.46
* Wed Mar 13 2024 Than Ngo <than@redhat.com> - 122.0.6261.128-1
- upstream security release 122.0.6261.128
* High CVE-2024-2400: Use after free in Performance Manager

@ -2,4 +2,4 @@ SHA512 (node-v20.6.1-linux-arm64.tar.xz) = adfcaf2c22614797fd69fb46d94c1cbf64dea
SHA512 (node-v20.6.1-linux-x64.tar.xz) = 7e15c05041a9a50f0046266aadb2e092a5aefbec19be1c7c809471add520cb57c7df3c47d88b1888b29bf2979dca3c92adddfd965370fa2a9da4ea02186464fd
SHA512 (linux-arm64-0.19.2.tgz) = 8a0d8fec6786fffcd6954d00820037a55d61e60762c74300df0801f8db27057562c221a063bedfb8df56af9ba80abb366336987e881782c5996e6f871abd3dc6
SHA512 (linux-x64-0.19.2.tgz) = a31cc74c4bfa54f9b75d735a1cfc944d3b5efb7c06bfba9542da9a642ae0b2d235ea00ae84d3ad0572c406405110fe7b61377af0fd15803806ef78d20fc6f05d
SHA512 (chromium-122.0.6261.128-clean.tar.xz) = 521d90bab5d071bf33dba014bd258f543db05a8606bc1c0279ee94ac3baac82629ba4d57579c3eaa8885e789a553b6e6d9161db852ccf25a59686b1186406054
SHA512 (chromium-123.0.6312.58-clean.tar.xz) = 17424362c1bf3aa4602bf751f21b8f240a0e061fdeced1c3ceed6565326b8a6b43c158eb726d9d47e96883320789384b265331b1ae91a9eca095b388052514a8

Loading…
Cancel
Save