Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] chromium: update to 118.0.5993.70.
@ 2023-10-11 16:46 Duncaen
  2023-10-11 18:09 ` [PR PATCH] [Updated] " Duncaen
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Duncaen @ 2023-10-11 16:46 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 406 bytes --]

There is a new pull request by Duncaen against master on the void-packages repository

https://github.com/Duncaen/void-packages chromium-118
https://github.com/void-linux/void-packages/pull/46606

chromium: update to 118.0.5993.70.
[ci skip]

* [ ] x86_64-glibc
* [ ] x86_64-musl
* [ ] aarch64-musl
* [ ] i686

A patch file from https://github.com/void-linux/void-packages/pull/46606.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-118-46606.patch --]
[-- Type: text/x-diff, Size: 36362 bytes --]

From 73cd3bde742ffaf6511eeeb3630c54b47dd3522f Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Wed, 11 Oct 2023 18:43:39 +0200
Subject: [PATCH] chromium: update to 118.0.5993.70.

---
 ...for-std-unique_ptr-in-third_party-ip.patch |  27 ----
 ...ium-117-emplace_back_on_vector-c++20.patch |  91 ------------
 ....4.patch => chromium-118-ffmpeg-4.4.patch} |  14 --
 ...> chromium-118-missing-header-files.patch} |  27 +++-
 ...hromium-118-no_matching_constructor.patch} | 114 +++++++++++++++
 .../chromium-118-python-3.12-deprecated.patch | 138 ++++++++++++++++++
 .../chromium-118-use_system_freetype.patch    |  91 ++++++++++++
 ...around_clang_bug-structured_binding.patch} |  13 --
 srcpkgs/chromium/patches/no-mte.patch         |  14 --
 srcpkgs/chromium/template                     |   4 +-
 10 files changed, 371 insertions(+), 162 deletions(-)
 delete mode 100644 srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
 delete mode 100644 srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
 rename srcpkgs/chromium/patches/{chromium-93-ffmpeg-4.4.patch => chromium-118-ffmpeg-4.4.patch} (66%)
 rename srcpkgs/chromium/patches/{chromium-117-missing-header-files.patch => chromium-118-missing-header-files.patch} (94%)
 rename srcpkgs/chromium/patches/{chromium-117-no_matching_constructor.patch => chromium-118-no_matching_constructor.patch} (78%)
 create mode 100644 srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
 rename srcpkgs/chromium/patches/{chromium-117-workaround_clang_bug-structured_binding.patch => chromium-118-workaround_clang_bug-structured_binding.patch} (86%)
 delete mode 100644 srcpkgs/chromium/patches/no-mte.patch

diff --git a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch b/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
deleted file mode 100644
index 2d6005f19d7cb..0000000000000
--- a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5a8dfcaf84b5af5aeb738702651e98bfc43d6d45 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Wed, 9 Aug 2023 15:36:26 +0000
-Subject: [PATCH] IWYU: add memory for std::unique_ptr in //third_party/ipcz
-
-Bug: 957519
-Change-Id: I600f415a59206da283046b638a4f68eda0892ac7
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4754274
-Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
-Reviewed-by: Robert Sesek <rsesek@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1181503}
----
- third_party/ipcz/src/ipcz/router_link.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/third_party/ipcz/src/ipcz/router_link.h b/third_party/ipcz/src/ipcz/router_link.h
-index 09bc5626d99..619638cc7f1 100644
---- a/third_party/ipcz/src/ipcz/router_link.h
-+++ b/third_party/ipcz/src/ipcz/router_link.h
-@@ -7,6 +7,7 @@
- 
- #include <cstddef>
- #include <functional>
-+#include <memory>
- #include <string>
- #include <utility>
- 
diff --git a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch b/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
deleted file mode 100644
index 3f1b800238ebf..0000000000000
--- a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
-+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
-@@ -355,7 +355,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);
-@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
-+++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
-@@ -207,8 +207,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);
-@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
---- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
-+++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
-@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
---- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
-+++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
-@@ -764,8 +764,8 @@ void SavePackage::Finish() {
-   if (download_) {
-     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
---- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
-+++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
-@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
-     GdkRectangle geometry;
-     gdk_monitor_get_geometry(monitor, &geometry);
-     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
--    config.display_geometries.emplace_back(
-+    config.display_geometries.emplace_back() = {
-         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
-                   monitor_scale * geometry.width,
-                   monitor_scale * geometry.height),
--        monitor_scale * font_scale);
-+        static_cast<float>(monitor_scale * font_scale)};
-   }
-   return config;
- }
diff --git a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
similarity index 66%
rename from srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
rename to srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
index f0ec736f98bc7..556c734d4e02e 100644
--- a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
+++ b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
@@ -2,20 +2,6 @@ diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
 index ac4713b07268..492a9a37d096 100644
 --- a/media/filters/ffmpeg_demuxer.cc
 +++ b/media/filters/ffmpeg_demuxer.cc
-@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
-   scoped_refptr<DecoderBuffer> buffer;
- 
-   if (type() == DemuxerStream::TEXT) {
--    size_t id_size = 0;
-+    int id_size = 0;
-     uint8_t* id_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
- 
--    size_t settings_size = 0;
-+    int settings_size = 0;
-     uint8_t* settings_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
- 
 @@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
      buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
                                       side_data.data(), side_data.size());
diff --git a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
similarity index 94%
rename from srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
rename to srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
index ad8e1e654d342..ea415df32835b 100644
--- a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
+++ b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
@@ -451,7 +451,32 @@ diff -up chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/pal
   * limitations under the License.
   */
  
-+#include <math.h>
++#include <cmath>
  #include "cpp/palettes/tones.h"
  
  #include "cpp/cam/cam.h"
+diff -up chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h
+--- chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me	2023-10-01 13:55:01.913193186 +0200
++++ chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h	2023-10-01 14:05:38.488038429 +0200
+@@ -5,6 +5,9 @@
+ #ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ #define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ 
++#include <cstddef>
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
+diff -up chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h
+--- chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me	2023-10-02 13:38:31.217806428 +0200
++++ chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h	2023-10-02 13:39:05.006427168 +0200
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ 
++#include <atomic>
++
+ #include "base/gtest_prod_util.h"
+ #include "components/gwp_asan/client/export.h"
+ #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
similarity index 78%
rename from srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
rename to srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
index e5ab60ac2d7dc..5bcb6b8a13790 100644
--- a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
+++ b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
@@ -430,3 +430,117 @@ diff -up chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/pro
  
    // Extract domains and attributes from the command line switch.
    const base::CommandLine& command_line =
+diff -up chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
++++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
+@@ -207,8 +207,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);
+@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
+--- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
++++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
+@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
+--- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
++++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
+@@ -764,8 +764,8 @@ void SavePackage::Finish() {
+   if (download_) {
+     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
+--- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
++++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
+@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me	2023-10-06 10:38:52.473145692 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-06 10:37:30.268617169 +0200
+@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
+     CHECK(observations.empty());
+     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+          proto_observations) {
+-      observations.emplace_back(proto_observation.type(),
++      observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+                                 ProfileTokenQuality::FormSignatureHash(
+-                                    proto_observation.form_hash()));
++                                    proto_observation.form_hash())};
+     }
+   }
+ 
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me	2023-10-06 10:41:37.746402215 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc	2023-10-06 10:42:28.469562927 +0200
+@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
+   base::StringToInt64(wallet_credential_specifics.instrument_id(),
+                       &instrument_id);
+ 
+-  return ServerCvc(
++  return ServerCvc{
+       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+       base::Time::UnixEpoch() +
+           base::Milliseconds(wallet_credential_specifics
+-                                 .last_updated_time_unix_epoch_millis()));
++                                 .last_updated_time_unix_epoch_millis())};
+ }
+ 
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
+diff -up chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc
+--- chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me	2023-10-06 13:46:57.287089040 +0200
++++ chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc	2023-10-06 13:47:25.450632156 +0200
+@@ -604,7 +604,7 @@ void OnTokenRequestParsed(
+     if (response_error) {
+       int error_code = response_error->FindInt(kErrorCodeKey).value_or(0);
+       GURL error_url = ExtractUrl(*response_error, kErrorUrlKey);
+-      token_result.error = TokenError(error_code, error_url);
++      token_result.error = TokenError{error_code, error_url};
+     }
+   }
+ 
diff --git a/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
new file mode 100644
index 0000000000000..5837ae584117d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
@@ -0,0 +1,138 @@
+diff -up chromium-115.0.5790.102/base/write_build_date_header.py.me chromium-115.0.5790.102/base/write_build_date_header.py
+--- chromium-115.0.5790.102/base/write_build_date_header.py.me	2023-07-22 14:23:42.620679397 +0200
++++ chromium-115.0.5790.102/base/write_build_date_header.py	2023-07-22 15:24:46.833310310 +0200
+@@ -17,7 +17,7 @@ def main():
+   args = argument_parser.parse_args()
+ 
+   date_val = int(args.timestamp)
+-  date = datetime.datetime.utcfromtimestamp(date_val)
++  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
+   output = ('// Generated by //base/write_build_date_header.py\n'
+             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
+             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
+diff -up chromium-115.0.5790.102/build/write_buildflag_header.py.me chromium-115.0.5790.102/build/write_buildflag_header.py
+--- chromium-115.0.5790.102/build/write_buildflag_header.py.me	2023-07-22 14:16:14.196975451 +0200
++++ chromium-115.0.5790.102/build/write_buildflag_header.py	2023-07-22 14:20:24.977239994 +0200
+@@ -44,7 +44,7 @@ def GetOptions():
+   header_guard = cmdline_options.output.upper()
+   if header_guard[0].isdigit():
+     header_guard = '_' + header_guard
+-  header_guard = re.sub('[^\w]', '_', header_guard)
++  header_guard = re.sub(r'[^\w]', '_', header_guard)
+   header_guard += '_'
+ 
+   # The actual output file is inside the gen dir.
+diff -up chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py
+--- chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me	2023-07-22 14:47:34.230764210 +0200
++++ chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py	2023-07-22 15:11:50.360983383 +0200
+@@ -9,7 +9,8 @@
+ """
+ from __future__ import print_function
+ import abc
+-import imp
++import types
++import importlib
+ import optparse
+ import os
+ import re
+@@ -40,6 +41,12 @@ class GoogleProtobufModuleImporter:
+         return filepath
+     return None
+ 
++  def load_source(name: str, path: str) -> types.ModuleType:
++    spec = importlib.util.spec_from_file_location(name, path)
++    module = importlib.util.module_from_spec(spec)
++    spec.loader.exec_module(module)
++    return module
++
+   def _module_exists(self, fullname):
+     return self._fullname_to_filepath(fullname) is not None
+ 
+@@ -68,7 +75,7 @@ class GoogleProtobufModuleImporter:
+       raise ImportError(fullname)
+ 
+     filepath = self._fullname_to_filepath(fullname)
+-    return imp.load_source(fullname, filepath)
++    return load_source(fullname, filepath)
+ 
+ class BinaryProtoGenerator:
+ 
+diff -up chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py
+--- chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me	2023-07-22 15:17:19.114258801 +0200
++++ chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py	2023-07-22 15:17:43.368200491 +0200
+@@ -32,7 +32,7 @@ def FilterLine(filename, line, output):
+     return
+ 
+   if line.startswith("goog.provide"):
+-    match = re.match("goog.provide\('([^']+)'\);", line)
++    match = re.match(r"goog.provide\('([^']+)'\);", line)
+     if not match:
+       print("Invalid goog.provide line in %s:\n%s" % (filename, line))
+       sys.exit(1)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me	2023-07-22 15:12:41.850895179 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py	2023-07-22 15:12:55.844871207 +0200
+@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
+ 
+   def GetHTMLForInlineStylesheet(self, contents):
+     if self.current_module is None:
+-      if re.search('url\(.+\)', contents):
++      if re.search(r'url\(.+\)', contents):
+         raise Exception(
+             'Default HTMLGenerationController cannot handle inline style urls')
+       return contents
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me	2023-07-22 15:14:06.923717910 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py	2023-07-22 15:18:03.704150614 +0200
+@@ -4,4 +4,4 @@
+ 
+ 
+ def EscapeJSIfNeeded(js):
+-  return js.replace('</script>', '<\/script>')
++  return js.replace(r'</script>', r'<\/script>')
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me	2023-07-22 15:14:30.105662532 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py	2023-07-22 15:14:57.977595950 +0200
+@@ -293,6 +293,6 @@ class HTMLModuleParser():
+       html = ''
+     else:
+       if html.find('< /script>') != -1:
+-        raise Exception('Escape script tags with <\/script>')
++        raise Exception(r'Escape script tags with <\/script>')
+ 
+     return HTMLModuleParserResults(html)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me	2023-07-22 15:13:12.316842990 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py	2023-07-22 15:13:49.684759091 +0200
+@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
+       return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
+ 
+     # I'm assuming we only have url()'s associated with images
+-    return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
++    return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+                   InlineUrl, self.contents)
+ 
+   def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
+@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
+       raise Exception('@imports are not supported')
+ 
+     matches = re.findall(
+-        'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
++        r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+         self.contents)
+ 
+     def resolve_url(url):
+diff -up chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py
+--- chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me	2023-07-22 15:11:56.826972306 +0200
++++ chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py	2023-07-22 15:12:37.550902545 +0200
+@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
+             source = self.preprocess(f.read())
+         return source, path, lambda: mtime == os.path.getmtime(path)
+ 
+-    blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+-    blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
++    blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
++    blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ 
+     def preprocess(self, source):
+         lines = source.split('\n')
diff --git a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
new file mode 100644
index 0000000000000..ce9fbdebe2fb7
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
@@ -0,0 +1,91 @@
+commit ed354d00aeda84693611b14baa56a287557a26b5
+Author: Munira Tursunova <moonira@google.com>
+Date:   Tue Sep 12 11:54:48 2023 +0000
+
+    Add check for use_system_freetype when importing private freetype header
+    
+    In [0] the include of private freetype header was added, which caused
+    build breakage when use_system_freetype=true, see [1].
+    
+    This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag.
+    
+    [0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485
+    [1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0
+    
+    Bug: 1429581
+    Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428
+    Commit-Queue: Munira Tursunova <moonira@google.com>
+    Reviewed-by: Dominik Röttsches <drott@chromium.org>
+    Reviewed-by: Rick Byers <rbyers@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1195323}
+
+diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
+index 7b086f95413ff..4ce797ebad722 100644
+--- a/third_party/BUILD.gn
++++ b/third_party/BUILD.gn
+@@ -2,6 +2,7 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
++import("//build/buildflag_header.gni")
+ import("//build/config/features.gni")
+ import("//build/config/freetype/freetype.gni")
+ import("//third_party/harfbuzz-ng/harfbuzz.gni")
+@@ -65,3 +66,8 @@ component("freetype_harfbuzz") {
+     public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ]
+   }
+ }
++
++buildflag_header("freetype_buildflags") {
++  header = "freetype_buildflags.h"
++  flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
++}
+diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
+index 591d2f939605b..f6a2cd2168d1e 100644
+--- a/third_party/blink/renderer/platform/BUILD.gn
++++ b/third_party/blink/renderer/platform/BUILD.gn
+@@ -1717,6 +1717,7 @@ component("platform") {
+     "//services/viz/public/cpp/gpu",
+     "//skia",
+     "//skia:skcms",
++    "//third_party:freetype_buildflags",
+     "//third_party:freetype_harfbuzz",
+     "//third_party/abseil-cpp:absl",
+     "//third_party/blink/public:image_resources",
+diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+index abe06f35c14a5..b2bfd88f0d85d 100644
+--- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
++++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+@@ -48,7 +48,7 @@
+ #include "third_party/blink/renderer/platform/wtf/math_extras.h"
+ #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
+ #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
+-#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#include "third_party/freetype_buildflags.h"
+ #include "third_party/skia/include/core/SkFontMetrics.h"
+ #include "third_party/skia/include/core/SkPath.h"
+ #include "third_party/skia/include/core/SkTypeface.h"
+@@ -57,12 +57,22 @@
+ #include "ui/gfx/geometry/skia_conversions.h"
+ #include "v8/include/v8.h"
+ 
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
++#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#endif
++
+ namespace blink {
+ 
+ constexpr float kSmallCapsFontSizeMultiplier = 0.7f;
+ constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f;
++
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
+ constexpr int32_t kFontObjectsMemoryConsumption =
+     std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec));
++#else
++// sizeof(AF_LatinMetricsRec) = 2128
++constexpr int32_t kFontObjectsMemoryConsumption = 2128;
++#endif
+ 
+ SimpleFontData::SimpleFontData(const FontPlatformData& platform_data,
+                                scoped_refptr<CustomFontData> custom_data,
diff --git a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
similarity index 86%
rename from srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
rename to srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
index c66cb91539ac4..3b79f512487ae 100644
--- a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
+++ b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
@@ -94,16 +94,3 @@ diff -up chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/n
  
    const auto* cached_layout_subtree = constraint_space.GridLayoutSubtree();
    const auto container_writing_direction =
-diff -up chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc
---- chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me	2023-09-15 18:24:18.984133783 +0200
-+++ chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc	2023-09-15 18:28:50.420833595 +0200
-@@ -1100,7 +1100,8 @@ void ChromeAutofillClient::PropagateAuto
-           &renderer_form);
-     }
- 
--    for (const auto& [frame_token, frame_forms] : renderer_forms_by_frame) {
-+    for (const auto& [f_t, frame_forms] : renderer_forms_by_frame) {
-+      auto& frame_token = f_t;
-       // Attempt to find the RFH with this `frame_token`.
-       content::RenderFrameHost* rfh = nullptr;
-       GetWebContents().ForEachRenderFrameHost(
diff --git a/srcpkgs/chromium/patches/no-mte.patch b/srcpkgs/chromium/patches/no-mte.patch
deleted file mode 100644
index 973f4ac5d7eb8..0000000000000
--- a/srcpkgs/chromium/patches/no-mte.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Patch-Source: https://git.alpinelinux.org/aports/commit/community/chromium/no-mte.patch?id=ed25dc0164fd410ab1866b69c949cb4747e69434
-M115 needs ifuncs for this
---
---- a/base/allocator/partition_allocator/partition_alloc_config.h
-+++ b/base/allocator/partition_allocator/partition_alloc_config.h
-@@ -151,7 +151,7 @@
-    defined(ARCH_CPU_LITTLE_ENDIAN))
- 
- #define PA_CONFIG_HAS_MEMORY_TAGGING()              \
--  (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
-+  (0 && defined(ARCH_CPU_ARM64) && defined(__clang__) && \
-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
- 
- #if PA_CONFIG(HAS_MEMORY_TAGGING)
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index 4d3bbe21e86f0..cc36911cd338d 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
 # Template file for 'chromium'
 pkgname=chromium
 # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=117.0.5938.132
+version=118.0.5993.70
 revision=1
 archs="i686* x86_64* aarch64* armv7l*"
 hostmakedepends="
@@ -27,7 +27,7 @@ maintainer="Duncaen <duncaen@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://www.chromium.org/"
 distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=28f077123a51942839a9ec518a64930cbc192186e799ef8ccdef19c93ddbaead
+checksum=49ee00a734de3dae7c421eb3c974e8d451b4de6f5b4e34b603fd6435eab6993d
 
 lib32disabled=yes
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] chromium: update to 118.0.5993.70.
  2023-10-11 16:46 [PR PATCH] chromium: update to 118.0.5993.70 Duncaen
@ 2023-10-11 18:09 ` Duncaen
  2023-10-12 11:27 ` Duncaen
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Duncaen @ 2023-10-11 18:09 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 411 bytes --]

There is an updated pull request by Duncaen against master on the void-packages repository

https://github.com/Duncaen/void-packages chromium-118
https://github.com/void-linux/void-packages/pull/46606

chromium: update to 118.0.5993.70.
[ci skip]

* [ ] x86_64-glibc
* [ ] x86_64-musl
* [ ] aarch64-musl
* [ ] i686

A patch file from https://github.com/void-linux/void-packages/pull/46606.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-118-46606.patch --]
[-- Type: text/x-diff, Size: 42659 bytes --]

From 70f3af30aec67d9d6d8cb3fbb6fa33634e658ec6 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Wed, 11 Oct 2023 18:43:39 +0200
Subject: [PATCH] chromium: update to 118.0.5993.70.

---
 ...for-std-unique_ptr-in-third_party-ip.patch |  27 ----
 ...mium-105.0.5195.52-python-six-1.16.0.patch | 134 +++++++++++++++++
 ...ium-117-emplace_back_on_vector-c++20.patch |  91 ------------
 ....4.patch => chromium-118-ffmpeg-4.4.patch} |  14 --
 ...> chromium-118-missing-header-files.patch} |  27 +++-
 ...hromium-118-no_matching_constructor.patch} | 135 +++++++++++++++++
 .../chromium-118-python-3.12-deprecated.patch | 138 ++++++++++++++++++
 .../chromium-118-use_system_freetype.patch    |  91 ++++++++++++
 ...around_clang_bug-structured_binding.patch} |  13 --
 srcpkgs/chromium/patches/no-mte.patch         |  14 --
 srcpkgs/chromium/template                     |   7 +-
 11 files changed, 528 insertions(+), 163 deletions(-)
 delete mode 100644 srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
 delete mode 100644 srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
 rename srcpkgs/chromium/patches/{chromium-93-ffmpeg-4.4.patch => chromium-118-ffmpeg-4.4.patch} (66%)
 rename srcpkgs/chromium/patches/{chromium-117-missing-header-files.patch => chromium-118-missing-header-files.patch} (94%)
 rename srcpkgs/chromium/patches/{chromium-117-no_matching_constructor.patch => chromium-118-no_matching_constructor.patch} (76%)
 create mode 100644 srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
 rename srcpkgs/chromium/patches/{chromium-117-workaround_clang_bug-structured_binding.patch => chromium-118-workaround_clang_bug-structured_binding.patch} (86%)
 delete mode 100644 srcpkgs/chromium/patches/no-mte.patch

diff --git a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch b/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
deleted file mode 100644
index 2d6005f19d7cb..0000000000000
--- a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5a8dfcaf84b5af5aeb738702651e98bfc43d6d45 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Wed, 9 Aug 2023 15:36:26 +0000
-Subject: [PATCH] IWYU: add memory for std::unique_ptr in //third_party/ipcz
-
-Bug: 957519
-Change-Id: I600f415a59206da283046b638a4f68eda0892ac7
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4754274
-Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
-Reviewed-by: Robert Sesek <rsesek@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1181503}
----
- third_party/ipcz/src/ipcz/router_link.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/third_party/ipcz/src/ipcz/router_link.h b/third_party/ipcz/src/ipcz/router_link.h
-index 09bc5626d99..619638cc7f1 100644
---- a/third_party/ipcz/src/ipcz/router_link.h
-+++ b/third_party/ipcz/src/ipcz/router_link.h
-@@ -7,6 +7,7 @@
- 
- #include <cstddef>
- #include <functional>
-+#include <memory>
- #include <string>
- #include <utility>
- 
diff --git a/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch b/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
new file mode 100644
index 0000000000000..497c2df40b321
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
@@ -0,0 +1,134 @@
+diff -up chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py
+--- chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116	2022-07-05 13:31:29.434673638 +0000
++++ chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py	2022-07-05 21:52:01.884578748 +0000
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.15.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+diff -up chromium-103.0.5060.53/third_party/six/src/six.py.116 chromium-103.0.5060.53/third_party/six/src/six.py
+--- chromium-103.0.5060.53/third_party/six/src/six.py.116	2022-07-05 13:32:28.916687658 +0000
++++ chromium-103.0.5060.53/third_party/six/src/six.py	2022-07-05 21:59:42.561240407 +0000
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.14.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
+       - `str` -> encoded to `bytes`
+       - `bytes` -> `bytes`
+     """
++    if isinstance(s, binary_type):
++        return s
+     if isinstance(s, text_type):
+         return s.encode(encoding, errors)
+-    elif isinstance(s, binary_type):
+-        return s
+-    else:
+-        raise TypeError("not expecting type '%s'" % type(s))
++    raise TypeError("not expecting type '%s'" % type(s))
+ 
+ 
+ def ensure_str(s, encoding='utf-8', errors='strict'):
+@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
+       - `str` -> `str`
+       - `bytes` -> decoded to `str`
+     """
+-    if not isinstance(s, (text_type, binary_type)):
+-        raise TypeError("not expecting type '%s'" % type(s))
++    # Optimization: Fast return for the common case.
++    if type(s) is str:
++        return s
+     if PY2 and isinstance(s, text_type):
+-        s = s.encode(encoding, errors)
++        return s.encode(encoding, errors)
+     elif PY3 and isinstance(s, binary_type):
+-        s = s.decode(encoding, errors)
++        return s.decode(encoding, errors)
++    elif not isinstance(s, (text_type, binary_type)):
++        raise TypeError("not expecting type '%s'" % type(s))
+     return s
+ 
+ 
diff --git a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch b/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
deleted file mode 100644
index 3f1b800238ebf..0000000000000
--- a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
-+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
-@@ -355,7 +355,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);
-@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
-+++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
-@@ -207,8 +207,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);
-@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
---- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
-+++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
-@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
---- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
-+++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
-@@ -764,8 +764,8 @@ void SavePackage::Finish() {
-   if (download_) {
-     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
---- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
-+++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
-@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
-     GdkRectangle geometry;
-     gdk_monitor_get_geometry(monitor, &geometry);
-     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
--    config.display_geometries.emplace_back(
-+    config.display_geometries.emplace_back() = {
-         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
-                   monitor_scale * geometry.width,
-                   monitor_scale * geometry.height),
--        monitor_scale * font_scale);
-+        static_cast<float>(monitor_scale * font_scale)};
-   }
-   return config;
- }
diff --git a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
similarity index 66%
rename from srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
rename to srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
index f0ec736f98bc7..556c734d4e02e 100644
--- a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
+++ b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
@@ -2,20 +2,6 @@ diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
 index ac4713b07268..492a9a37d096 100644
 --- a/media/filters/ffmpeg_demuxer.cc
 +++ b/media/filters/ffmpeg_demuxer.cc
-@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
-   scoped_refptr<DecoderBuffer> buffer;
- 
-   if (type() == DemuxerStream::TEXT) {
--    size_t id_size = 0;
-+    int id_size = 0;
-     uint8_t* id_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
- 
--    size_t settings_size = 0;
-+    int settings_size = 0;
-     uint8_t* settings_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
- 
 @@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
      buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
                                       side_data.data(), side_data.size());
diff --git a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
similarity index 94%
rename from srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
rename to srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
index ad8e1e654d342..ea415df32835b 100644
--- a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
+++ b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
@@ -451,7 +451,32 @@ diff -up chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/pal
   * limitations under the License.
   */
  
-+#include <math.h>
++#include <cmath>
  #include "cpp/palettes/tones.h"
  
  #include "cpp/cam/cam.h"
+diff -up chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h
+--- chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me	2023-10-01 13:55:01.913193186 +0200
++++ chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h	2023-10-01 14:05:38.488038429 +0200
+@@ -5,6 +5,9 @@
+ #ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ #define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ 
++#include <cstddef>
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
+diff -up chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h
+--- chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me	2023-10-02 13:38:31.217806428 +0200
++++ chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h	2023-10-02 13:39:05.006427168 +0200
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ 
++#include <atomic>
++
+ #include "base/gtest_prod_util.h"
+ #include "components/gwp_asan/client/export.h"
+ #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
similarity index 76%
rename from srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
rename to srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
index e5ab60ac2d7dc..3d7748c3d5a26 100644
--- a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
+++ b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
@@ -430,3 +430,138 @@ diff -up chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/pro
  
    // Extract domains and attributes from the command line switch.
    const base::CommandLine& command_line =
+diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
+--- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
++++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
+@@ -355,7 +355,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);
+@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
++++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
+@@ -207,8 +207,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);
+@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
+--- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
++++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
+@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
+--- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
++++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
+@@ -764,8 +764,8 @@ void SavePackage::Finish() {
+   if (download_) {
+     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
+--- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
++++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
+@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me	2023-10-06 10:38:52.473145692 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-06 10:37:30.268617169 +0200
+@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
+     CHECK(observations.empty());
+     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+          proto_observations) {
+-      observations.emplace_back(proto_observation.type(),
++      observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+                                 ProfileTokenQuality::FormSignatureHash(
+-                                    proto_observation.form_hash()));
++                                    proto_observation.form_hash())};
+     }
+   }
+ 
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me	2023-10-06 10:41:37.746402215 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc	2023-10-06 10:42:28.469562927 +0200
+@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
+   base::StringToInt64(wallet_credential_specifics.instrument_id(),
+                       &instrument_id);
+ 
+-  return ServerCvc(
++  return ServerCvc{
+       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+       base::Time::UnixEpoch() +
+           base::Milliseconds(wallet_credential_specifics
+-                                 .last_updated_time_unix_epoch_millis()));
++                                 .last_updated_time_unix_epoch_millis())};
+ }
+ 
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
+diff -up chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc
+--- chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me	2023-10-06 13:46:57.287089040 +0200
++++ chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc	2023-10-06 13:47:25.450632156 +0200
+@@ -604,7 +604,7 @@ void OnTokenRequestParsed(
+     if (response_error) {
+       int error_code = response_error->FindInt(kErrorCodeKey).value_or(0);
+       GURL error_url = ExtractUrl(*response_error, kErrorUrlKey);
+-      token_result.error = TokenError(error_code, error_url);
++      token_result.error = TokenError{error_code, error_url};
+     }
+   }
+ 
diff --git a/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
new file mode 100644
index 0000000000000..5837ae584117d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
@@ -0,0 +1,138 @@
+diff -up chromium-115.0.5790.102/base/write_build_date_header.py.me chromium-115.0.5790.102/base/write_build_date_header.py
+--- chromium-115.0.5790.102/base/write_build_date_header.py.me	2023-07-22 14:23:42.620679397 +0200
++++ chromium-115.0.5790.102/base/write_build_date_header.py	2023-07-22 15:24:46.833310310 +0200
+@@ -17,7 +17,7 @@ def main():
+   args = argument_parser.parse_args()
+ 
+   date_val = int(args.timestamp)
+-  date = datetime.datetime.utcfromtimestamp(date_val)
++  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
+   output = ('// Generated by //base/write_build_date_header.py\n'
+             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
+             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
+diff -up chromium-115.0.5790.102/build/write_buildflag_header.py.me chromium-115.0.5790.102/build/write_buildflag_header.py
+--- chromium-115.0.5790.102/build/write_buildflag_header.py.me	2023-07-22 14:16:14.196975451 +0200
++++ chromium-115.0.5790.102/build/write_buildflag_header.py	2023-07-22 14:20:24.977239994 +0200
+@@ -44,7 +44,7 @@ def GetOptions():
+   header_guard = cmdline_options.output.upper()
+   if header_guard[0].isdigit():
+     header_guard = '_' + header_guard
+-  header_guard = re.sub('[^\w]', '_', header_guard)
++  header_guard = re.sub(r'[^\w]', '_', header_guard)
+   header_guard += '_'
+ 
+   # The actual output file is inside the gen dir.
+diff -up chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py
+--- chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me	2023-07-22 14:47:34.230764210 +0200
++++ chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py	2023-07-22 15:11:50.360983383 +0200
+@@ -9,7 +9,8 @@
+ """
+ from __future__ import print_function
+ import abc
+-import imp
++import types
++import importlib
+ import optparse
+ import os
+ import re
+@@ -40,6 +41,12 @@ class GoogleProtobufModuleImporter:
+         return filepath
+     return None
+ 
++  def load_source(name: str, path: str) -> types.ModuleType:
++    spec = importlib.util.spec_from_file_location(name, path)
++    module = importlib.util.module_from_spec(spec)
++    spec.loader.exec_module(module)
++    return module
++
+   def _module_exists(self, fullname):
+     return self._fullname_to_filepath(fullname) is not None
+ 
+@@ -68,7 +75,7 @@ class GoogleProtobufModuleImporter:
+       raise ImportError(fullname)
+ 
+     filepath = self._fullname_to_filepath(fullname)
+-    return imp.load_source(fullname, filepath)
++    return load_source(fullname, filepath)
+ 
+ class BinaryProtoGenerator:
+ 
+diff -up chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py
+--- chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me	2023-07-22 15:17:19.114258801 +0200
++++ chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py	2023-07-22 15:17:43.368200491 +0200
+@@ -32,7 +32,7 @@ def FilterLine(filename, line, output):
+     return
+ 
+   if line.startswith("goog.provide"):
+-    match = re.match("goog.provide\('([^']+)'\);", line)
++    match = re.match(r"goog.provide\('([^']+)'\);", line)
+     if not match:
+       print("Invalid goog.provide line in %s:\n%s" % (filename, line))
+       sys.exit(1)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me	2023-07-22 15:12:41.850895179 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py	2023-07-22 15:12:55.844871207 +0200
+@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
+ 
+   def GetHTMLForInlineStylesheet(self, contents):
+     if self.current_module is None:
+-      if re.search('url\(.+\)', contents):
++      if re.search(r'url\(.+\)', contents):
+         raise Exception(
+             'Default HTMLGenerationController cannot handle inline style urls')
+       return contents
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me	2023-07-22 15:14:06.923717910 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py	2023-07-22 15:18:03.704150614 +0200
+@@ -4,4 +4,4 @@
+ 
+ 
+ def EscapeJSIfNeeded(js):
+-  return js.replace('</script>', '<\/script>')
++  return js.replace(r'</script>', r'<\/script>')
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me	2023-07-22 15:14:30.105662532 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py	2023-07-22 15:14:57.977595950 +0200
+@@ -293,6 +293,6 @@ class HTMLModuleParser():
+       html = ''
+     else:
+       if html.find('< /script>') != -1:
+-        raise Exception('Escape script tags with <\/script>')
++        raise Exception(r'Escape script tags with <\/script>')
+ 
+     return HTMLModuleParserResults(html)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me	2023-07-22 15:13:12.316842990 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py	2023-07-22 15:13:49.684759091 +0200
+@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
+       return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
+ 
+     # I'm assuming we only have url()'s associated with images
+-    return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
++    return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+                   InlineUrl, self.contents)
+ 
+   def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
+@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
+       raise Exception('@imports are not supported')
+ 
+     matches = re.findall(
+-        'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
++        r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+         self.contents)
+ 
+     def resolve_url(url):
+diff -up chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py
+--- chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me	2023-07-22 15:11:56.826972306 +0200
++++ chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py	2023-07-22 15:12:37.550902545 +0200
+@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
+             source = self.preprocess(f.read())
+         return source, path, lambda: mtime == os.path.getmtime(path)
+ 
+-    blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+-    blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
++    blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
++    blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ 
+     def preprocess(self, source):
+         lines = source.split('\n')
diff --git a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
new file mode 100644
index 0000000000000..ce9fbdebe2fb7
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
@@ -0,0 +1,91 @@
+commit ed354d00aeda84693611b14baa56a287557a26b5
+Author: Munira Tursunova <moonira@google.com>
+Date:   Tue Sep 12 11:54:48 2023 +0000
+
+    Add check for use_system_freetype when importing private freetype header
+    
+    In [0] the include of private freetype header was added, which caused
+    build breakage when use_system_freetype=true, see [1].
+    
+    This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag.
+    
+    [0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485
+    [1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0
+    
+    Bug: 1429581
+    Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428
+    Commit-Queue: Munira Tursunova <moonira@google.com>
+    Reviewed-by: Dominik Röttsches <drott@chromium.org>
+    Reviewed-by: Rick Byers <rbyers@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1195323}
+
+diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
+index 7b086f95413ff..4ce797ebad722 100644
+--- a/third_party/BUILD.gn
++++ b/third_party/BUILD.gn
+@@ -2,6 +2,7 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
++import("//build/buildflag_header.gni")
+ import("//build/config/features.gni")
+ import("//build/config/freetype/freetype.gni")
+ import("//third_party/harfbuzz-ng/harfbuzz.gni")
+@@ -65,3 +66,8 @@ component("freetype_harfbuzz") {
+     public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ]
+   }
+ }
++
++buildflag_header("freetype_buildflags") {
++  header = "freetype_buildflags.h"
++  flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
++}
+diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
+index 591d2f939605b..f6a2cd2168d1e 100644
+--- a/third_party/blink/renderer/platform/BUILD.gn
++++ b/third_party/blink/renderer/platform/BUILD.gn
+@@ -1717,6 +1717,7 @@ component("platform") {
+     "//services/viz/public/cpp/gpu",
+     "//skia",
+     "//skia:skcms",
++    "//third_party:freetype_buildflags",
+     "//third_party:freetype_harfbuzz",
+     "//third_party/abseil-cpp:absl",
+     "//third_party/blink/public:image_resources",
+diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+index abe06f35c14a5..b2bfd88f0d85d 100644
+--- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
++++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+@@ -48,7 +48,7 @@
+ #include "third_party/blink/renderer/platform/wtf/math_extras.h"
+ #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
+ #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
+-#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#include "third_party/freetype_buildflags.h"
+ #include "third_party/skia/include/core/SkFontMetrics.h"
+ #include "third_party/skia/include/core/SkPath.h"
+ #include "third_party/skia/include/core/SkTypeface.h"
+@@ -57,12 +57,22 @@
+ #include "ui/gfx/geometry/skia_conversions.h"
+ #include "v8/include/v8.h"
+ 
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
++#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#endif
++
+ namespace blink {
+ 
+ constexpr float kSmallCapsFontSizeMultiplier = 0.7f;
+ constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f;
++
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
+ constexpr int32_t kFontObjectsMemoryConsumption =
+     std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec));
++#else
++// sizeof(AF_LatinMetricsRec) = 2128
++constexpr int32_t kFontObjectsMemoryConsumption = 2128;
++#endif
+ 
+ SimpleFontData::SimpleFontData(const FontPlatformData& platform_data,
+                                scoped_refptr<CustomFontData> custom_data,
diff --git a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
similarity index 86%
rename from srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
rename to srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
index c66cb91539ac4..3b79f512487ae 100644
--- a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
+++ b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
@@ -94,16 +94,3 @@ diff -up chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/n
  
    const auto* cached_layout_subtree = constraint_space.GridLayoutSubtree();
    const auto container_writing_direction =
-diff -up chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc
---- chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me	2023-09-15 18:24:18.984133783 +0200
-+++ chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc	2023-09-15 18:28:50.420833595 +0200
-@@ -1100,7 +1100,8 @@ void ChromeAutofillClient::PropagateAuto
-           &renderer_form);
-     }
- 
--    for (const auto& [frame_token, frame_forms] : renderer_forms_by_frame) {
-+    for (const auto& [f_t, frame_forms] : renderer_forms_by_frame) {
-+      auto& frame_token = f_t;
-       // Attempt to find the RFH with this `frame_token`.
-       content::RenderFrameHost* rfh = nullptr;
-       GetWebContents().ForEachRenderFrameHost(
diff --git a/srcpkgs/chromium/patches/no-mte.patch b/srcpkgs/chromium/patches/no-mte.patch
deleted file mode 100644
index 973f4ac5d7eb8..0000000000000
--- a/srcpkgs/chromium/patches/no-mte.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Patch-Source: https://git.alpinelinux.org/aports/commit/community/chromium/no-mte.patch?id=ed25dc0164fd410ab1866b69c949cb4747e69434
-M115 needs ifuncs for this
---
---- a/base/allocator/partition_allocator/partition_alloc_config.h
-+++ b/base/allocator/partition_allocator/partition_alloc_config.h
-@@ -151,7 +151,7 @@
-    defined(ARCH_CPU_LITTLE_ENDIAN))
- 
- #define PA_CONFIG_HAS_MEMORY_TAGGING()              \
--  (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
-+  (0 && defined(ARCH_CPU_ARM64) && defined(__clang__) && \
-    (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
- 
- #if PA_CONFIG(HAS_MEMORY_TAGGING)
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index 4d3bbe21e86f0..3ec17212e6574 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,13 +1,14 @@
 # Template file for 'chromium'
 pkgname=chromium
 # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=117.0.5938.132
+version=118.0.5993.70
 revision=1
 archs="i686* x86_64* aarch64* armv7l*"
 hostmakedepends="
  $(vopt_if clang "clang lld llvm15")
  bison git gperf hwids ninja nodejs perl pkg-config python3
- libepoxy-devel libevent-devel libglib-devel"
+ libepoxy-devel libevent-devel libglib-devel
+ python3-html5lib python3-BeautifulSoup4 python3-MarkupSafe python3-ply python3-Jinja2"
 makedepends="
  alsa-lib-devel libdav1d-devel brotli-devel cups-devel elfutils-devel ffmpeg-devel
  fontconfig-devel freetype-devel gtk+3-devel jsoncpp-devel libXScrnSaver-devel
@@ -27,7 +28,7 @@ maintainer="Duncaen <duncaen@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://www.chromium.org/"
 distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=28f077123a51942839a9ec518a64930cbc192186e799ef8ccdef19c93ddbaead
+checksum=49ee00a734de3dae7c421eb3c974e8d451b4de6f5b4e34b603fd6435eab6993d
 
 lib32disabled=yes
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] chromium: update to 118.0.5993.70.
  2023-10-11 16:46 [PR PATCH] chromium: update to 118.0.5993.70 Duncaen
  2023-10-11 18:09 ` [PR PATCH] [Updated] " Duncaen
@ 2023-10-12 11:27 ` Duncaen
  2023-10-12 15:41 ` Duncaen
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Duncaen @ 2023-10-12 11:27 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 411 bytes --]

There is an updated pull request by Duncaen against master on the void-packages repository

https://github.com/Duncaen/void-packages chromium-118
https://github.com/void-linux/void-packages/pull/46606

chromium: update to 118.0.5993.70.
[ci skip]

* [ ] x86_64-glibc
* [ ] x86_64-musl
* [ ] aarch64-musl
* [ ] i686

A patch file from https://github.com/void-linux/void-packages/pull/46606.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-118-46606.patch --]
[-- Type: text/x-diff, Size: 42229 bytes --]

From fa7d3c54d93c09fb96236815580c6881093814e4 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Wed, 11 Oct 2023 18:43:39 +0200
Subject: [PATCH] chromium: update to 118.0.5993.70.

---
 ...for-std-unique_ptr-in-third_party-ip.patch |  27 ----
 ...mium-105.0.5195.52-python-six-1.16.0.patch | 134 +++++++++++++++++
 ...ium-117-emplace_back_on_vector-c++20.patch |  91 ------------
 ....4.patch => chromium-118-ffmpeg-4.4.patch} |  14 --
 ...> chromium-118-missing-header-files.patch} |  27 +++-
 ...hromium-118-no_matching_constructor.patch} | 135 +++++++++++++++++
 .../chromium-118-python-3.12-deprecated.patch | 138 ++++++++++++++++++
 .../chromium-118-use_system_freetype.patch    |  91 ++++++++++++
 ...around_clang_bug-structured_binding.patch} |  13 --
 srcpkgs/chromium/patches/no-mte.patch         |   7 +-
 srcpkgs/chromium/template                     |   4 +-
 11 files changed, 528 insertions(+), 153 deletions(-)
 delete mode 100644 srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
 delete mode 100644 srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
 rename srcpkgs/chromium/patches/{chromium-93-ffmpeg-4.4.patch => chromium-118-ffmpeg-4.4.patch} (66%)
 rename srcpkgs/chromium/patches/{chromium-117-missing-header-files.patch => chromium-118-missing-header-files.patch} (94%)
 rename srcpkgs/chromium/patches/{chromium-117-no_matching_constructor.patch => chromium-118-no_matching_constructor.patch} (76%)
 create mode 100644 srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
 rename srcpkgs/chromium/patches/{chromium-117-workaround_clang_bug-structured_binding.patch => chromium-118-workaround_clang_bug-structured_binding.patch} (86%)

diff --git a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch b/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
deleted file mode 100644
index 2d6005f19d7cb..0000000000000
--- a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5a8dfcaf84b5af5aeb738702651e98bfc43d6d45 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Wed, 9 Aug 2023 15:36:26 +0000
-Subject: [PATCH] IWYU: add memory for std::unique_ptr in //third_party/ipcz
-
-Bug: 957519
-Change-Id: I600f415a59206da283046b638a4f68eda0892ac7
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4754274
-Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
-Reviewed-by: Robert Sesek <rsesek@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1181503}
----
- third_party/ipcz/src/ipcz/router_link.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/third_party/ipcz/src/ipcz/router_link.h b/third_party/ipcz/src/ipcz/router_link.h
-index 09bc5626d99..619638cc7f1 100644
---- a/third_party/ipcz/src/ipcz/router_link.h
-+++ b/third_party/ipcz/src/ipcz/router_link.h
-@@ -7,6 +7,7 @@
- 
- #include <cstddef>
- #include <functional>
-+#include <memory>
- #include <string>
- #include <utility>
- 
diff --git a/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch b/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
new file mode 100644
index 0000000000000..497c2df40b321
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
@@ -0,0 +1,134 @@
+diff -up chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py
+--- chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116	2022-07-05 13:31:29.434673638 +0000
++++ chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py	2022-07-05 21:52:01.884578748 +0000
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.15.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+diff -up chromium-103.0.5060.53/third_party/six/src/six.py.116 chromium-103.0.5060.53/third_party/six/src/six.py
+--- chromium-103.0.5060.53/third_party/six/src/six.py.116	2022-07-05 13:32:28.916687658 +0000
++++ chromium-103.0.5060.53/third_party/six/src/six.py	2022-07-05 21:59:42.561240407 +0000
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.14.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
+       - `str` -> encoded to `bytes`
+       - `bytes` -> `bytes`
+     """
++    if isinstance(s, binary_type):
++        return s
+     if isinstance(s, text_type):
+         return s.encode(encoding, errors)
+-    elif isinstance(s, binary_type):
+-        return s
+-    else:
+-        raise TypeError("not expecting type '%s'" % type(s))
++    raise TypeError("not expecting type '%s'" % type(s))
+ 
+ 
+ def ensure_str(s, encoding='utf-8', errors='strict'):
+@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
+       - `str` -> `str`
+       - `bytes` -> decoded to `str`
+     """
+-    if not isinstance(s, (text_type, binary_type)):
+-        raise TypeError("not expecting type '%s'" % type(s))
++    # Optimization: Fast return for the common case.
++    if type(s) is str:
++        return s
+     if PY2 and isinstance(s, text_type):
+-        s = s.encode(encoding, errors)
++        return s.encode(encoding, errors)
+     elif PY3 and isinstance(s, binary_type):
+-        s = s.decode(encoding, errors)
++        return s.decode(encoding, errors)
++    elif not isinstance(s, (text_type, binary_type)):
++        raise TypeError("not expecting type '%s'" % type(s))
+     return s
+ 
+ 
diff --git a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch b/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
deleted file mode 100644
index 3f1b800238ebf..0000000000000
--- a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
-+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
-@@ -355,7 +355,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);
-@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
-+++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
-@@ -207,8 +207,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);
-@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
---- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
-+++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
-@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
---- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
-+++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
-@@ -764,8 +764,8 @@ void SavePackage::Finish() {
-   if (download_) {
-     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
---- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
-+++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
-@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
-     GdkRectangle geometry;
-     gdk_monitor_get_geometry(monitor, &geometry);
-     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
--    config.display_geometries.emplace_back(
-+    config.display_geometries.emplace_back() = {
-         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
-                   monitor_scale * geometry.width,
-                   monitor_scale * geometry.height),
--        monitor_scale * font_scale);
-+        static_cast<float>(monitor_scale * font_scale)};
-   }
-   return config;
- }
diff --git a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
similarity index 66%
rename from srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
rename to srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
index f0ec736f98bc7..556c734d4e02e 100644
--- a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
+++ b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
@@ -2,20 +2,6 @@ diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
 index ac4713b07268..492a9a37d096 100644
 --- a/media/filters/ffmpeg_demuxer.cc
 +++ b/media/filters/ffmpeg_demuxer.cc
-@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
-   scoped_refptr<DecoderBuffer> buffer;
- 
-   if (type() == DemuxerStream::TEXT) {
--    size_t id_size = 0;
-+    int id_size = 0;
-     uint8_t* id_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
- 
--    size_t settings_size = 0;
-+    int settings_size = 0;
-     uint8_t* settings_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
- 
 @@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
      buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
                                       side_data.data(), side_data.size());
diff --git a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
similarity index 94%
rename from srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
rename to srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
index ad8e1e654d342..ea415df32835b 100644
--- a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
+++ b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
@@ -451,7 +451,32 @@ diff -up chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/pal
   * limitations under the License.
   */
  
-+#include <math.h>
++#include <cmath>
  #include "cpp/palettes/tones.h"
  
  #include "cpp/cam/cam.h"
+diff -up chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h
+--- chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me	2023-10-01 13:55:01.913193186 +0200
++++ chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h	2023-10-01 14:05:38.488038429 +0200
+@@ -5,6 +5,9 @@
+ #ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ #define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ 
++#include <cstddef>
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
+diff -up chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h
+--- chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me	2023-10-02 13:38:31.217806428 +0200
++++ chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h	2023-10-02 13:39:05.006427168 +0200
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ 
++#include <atomic>
++
+ #include "base/gtest_prod_util.h"
+ #include "components/gwp_asan/client/export.h"
+ #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
similarity index 76%
rename from srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
rename to srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
index e5ab60ac2d7dc..3d7748c3d5a26 100644
--- a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
+++ b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
@@ -430,3 +430,138 @@ diff -up chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/pro
  
    // Extract domains and attributes from the command line switch.
    const base::CommandLine& command_line =
+diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
+--- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
++++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
+@@ -355,7 +355,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);
+@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
++++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
+@@ -207,8 +207,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);
+@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
+--- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
++++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
+@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
+--- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
++++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
+@@ -764,8 +764,8 @@ void SavePackage::Finish() {
+   if (download_) {
+     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
+--- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
++++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
+@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me	2023-10-06 10:38:52.473145692 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-06 10:37:30.268617169 +0200
+@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
+     CHECK(observations.empty());
+     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+          proto_observations) {
+-      observations.emplace_back(proto_observation.type(),
++      observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+                                 ProfileTokenQuality::FormSignatureHash(
+-                                    proto_observation.form_hash()));
++                                    proto_observation.form_hash())};
+     }
+   }
+ 
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me	2023-10-06 10:41:37.746402215 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc	2023-10-06 10:42:28.469562927 +0200
+@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
+   base::StringToInt64(wallet_credential_specifics.instrument_id(),
+                       &instrument_id);
+ 
+-  return ServerCvc(
++  return ServerCvc{
+       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+       base::Time::UnixEpoch() +
+           base::Milliseconds(wallet_credential_specifics
+-                                 .last_updated_time_unix_epoch_millis()));
++                                 .last_updated_time_unix_epoch_millis())};
+ }
+ 
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
+diff -up chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc
+--- chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me	2023-10-06 13:46:57.287089040 +0200
++++ chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc	2023-10-06 13:47:25.450632156 +0200
+@@ -604,7 +604,7 @@ void OnTokenRequestParsed(
+     if (response_error) {
+       int error_code = response_error->FindInt(kErrorCodeKey).value_or(0);
+       GURL error_url = ExtractUrl(*response_error, kErrorUrlKey);
+-      token_result.error = TokenError(error_code, error_url);
++      token_result.error = TokenError{error_code, error_url};
+     }
+   }
+ 
diff --git a/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
new file mode 100644
index 0000000000000..5837ae584117d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
@@ -0,0 +1,138 @@
+diff -up chromium-115.0.5790.102/base/write_build_date_header.py.me chromium-115.0.5790.102/base/write_build_date_header.py
+--- chromium-115.0.5790.102/base/write_build_date_header.py.me	2023-07-22 14:23:42.620679397 +0200
++++ chromium-115.0.5790.102/base/write_build_date_header.py	2023-07-22 15:24:46.833310310 +0200
+@@ -17,7 +17,7 @@ def main():
+   args = argument_parser.parse_args()
+ 
+   date_val = int(args.timestamp)
+-  date = datetime.datetime.utcfromtimestamp(date_val)
++  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
+   output = ('// Generated by //base/write_build_date_header.py\n'
+             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
+             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
+diff -up chromium-115.0.5790.102/build/write_buildflag_header.py.me chromium-115.0.5790.102/build/write_buildflag_header.py
+--- chromium-115.0.5790.102/build/write_buildflag_header.py.me	2023-07-22 14:16:14.196975451 +0200
++++ chromium-115.0.5790.102/build/write_buildflag_header.py	2023-07-22 14:20:24.977239994 +0200
+@@ -44,7 +44,7 @@ def GetOptions():
+   header_guard = cmdline_options.output.upper()
+   if header_guard[0].isdigit():
+     header_guard = '_' + header_guard
+-  header_guard = re.sub('[^\w]', '_', header_guard)
++  header_guard = re.sub(r'[^\w]', '_', header_guard)
+   header_guard += '_'
+ 
+   # The actual output file is inside the gen dir.
+diff -up chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py
+--- chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me	2023-07-22 14:47:34.230764210 +0200
++++ chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py	2023-07-22 15:11:50.360983383 +0200
+@@ -9,7 +9,8 @@
+ """
+ from __future__ import print_function
+ import abc
+-import imp
++import types
++import importlib
+ import optparse
+ import os
+ import re
+@@ -40,6 +41,12 @@ class GoogleProtobufModuleImporter:
+         return filepath
+     return None
+ 
++  def load_source(name: str, path: str) -> types.ModuleType:
++    spec = importlib.util.spec_from_file_location(name, path)
++    module = importlib.util.module_from_spec(spec)
++    spec.loader.exec_module(module)
++    return module
++
+   def _module_exists(self, fullname):
+     return self._fullname_to_filepath(fullname) is not None
+ 
+@@ -68,7 +75,7 @@ class GoogleProtobufModuleImporter:
+       raise ImportError(fullname)
+ 
+     filepath = self._fullname_to_filepath(fullname)
+-    return imp.load_source(fullname, filepath)
++    return load_source(fullname, filepath)
+ 
+ class BinaryProtoGenerator:
+ 
+diff -up chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py
+--- chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me	2023-07-22 15:17:19.114258801 +0200
++++ chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py	2023-07-22 15:17:43.368200491 +0200
+@@ -32,7 +32,7 @@ def FilterLine(filename, line, output):
+     return
+ 
+   if line.startswith("goog.provide"):
+-    match = re.match("goog.provide\('([^']+)'\);", line)
++    match = re.match(r"goog.provide\('([^']+)'\);", line)
+     if not match:
+       print("Invalid goog.provide line in %s:\n%s" % (filename, line))
+       sys.exit(1)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me	2023-07-22 15:12:41.850895179 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py	2023-07-22 15:12:55.844871207 +0200
+@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
+ 
+   def GetHTMLForInlineStylesheet(self, contents):
+     if self.current_module is None:
+-      if re.search('url\(.+\)', contents):
++      if re.search(r'url\(.+\)', contents):
+         raise Exception(
+             'Default HTMLGenerationController cannot handle inline style urls')
+       return contents
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me	2023-07-22 15:14:06.923717910 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py	2023-07-22 15:18:03.704150614 +0200
+@@ -4,4 +4,4 @@
+ 
+ 
+ def EscapeJSIfNeeded(js):
+-  return js.replace('</script>', '<\/script>')
++  return js.replace(r'</script>', r'<\/script>')
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me	2023-07-22 15:14:30.105662532 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py	2023-07-22 15:14:57.977595950 +0200
+@@ -293,6 +293,6 @@ class HTMLModuleParser():
+       html = ''
+     else:
+       if html.find('< /script>') != -1:
+-        raise Exception('Escape script tags with <\/script>')
++        raise Exception(r'Escape script tags with <\/script>')
+ 
+     return HTMLModuleParserResults(html)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me	2023-07-22 15:13:12.316842990 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py	2023-07-22 15:13:49.684759091 +0200
+@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
+       return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
+ 
+     # I'm assuming we only have url()'s associated with images
+-    return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
++    return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+                   InlineUrl, self.contents)
+ 
+   def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
+@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
+       raise Exception('@imports are not supported')
+ 
+     matches = re.findall(
+-        'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
++        r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+         self.contents)
+ 
+     def resolve_url(url):
+diff -up chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py
+--- chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me	2023-07-22 15:11:56.826972306 +0200
++++ chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py	2023-07-22 15:12:37.550902545 +0200
+@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
+             source = self.preprocess(f.read())
+         return source, path, lambda: mtime == os.path.getmtime(path)
+ 
+-    blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+-    blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
++    blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
++    blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ 
+     def preprocess(self, source):
+         lines = source.split('\n')
diff --git a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
new file mode 100644
index 0000000000000..ce9fbdebe2fb7
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
@@ -0,0 +1,91 @@
+commit ed354d00aeda84693611b14baa56a287557a26b5
+Author: Munira Tursunova <moonira@google.com>
+Date:   Tue Sep 12 11:54:48 2023 +0000
+
+    Add check for use_system_freetype when importing private freetype header
+    
+    In [0] the include of private freetype header was added, which caused
+    build breakage when use_system_freetype=true, see [1].
+    
+    This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag.
+    
+    [0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485
+    [1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0
+    
+    Bug: 1429581
+    Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428
+    Commit-Queue: Munira Tursunova <moonira@google.com>
+    Reviewed-by: Dominik Röttsches <drott@chromium.org>
+    Reviewed-by: Rick Byers <rbyers@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1195323}
+
+diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
+index 7b086f95413ff..4ce797ebad722 100644
+--- a/third_party/BUILD.gn
++++ b/third_party/BUILD.gn
+@@ -2,6 +2,7 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
++import("//build/buildflag_header.gni")
+ import("//build/config/features.gni")
+ import("//build/config/freetype/freetype.gni")
+ import("//third_party/harfbuzz-ng/harfbuzz.gni")
+@@ -65,3 +66,8 @@ component("freetype_harfbuzz") {
+     public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ]
+   }
+ }
++
++buildflag_header("freetype_buildflags") {
++  header = "freetype_buildflags.h"
++  flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
++}
+diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
+index 591d2f939605b..f6a2cd2168d1e 100644
+--- a/third_party/blink/renderer/platform/BUILD.gn
++++ b/third_party/blink/renderer/platform/BUILD.gn
+@@ -1717,6 +1717,7 @@ component("platform") {
+     "//services/viz/public/cpp/gpu",
+     "//skia",
+     "//skia:skcms",
++    "//third_party:freetype_buildflags",
+     "//third_party:freetype_harfbuzz",
+     "//third_party/abseil-cpp:absl",
+     "//third_party/blink/public:image_resources",
+diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+index abe06f35c14a5..b2bfd88f0d85d 100644
+--- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
++++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+@@ -48,7 +48,7 @@
+ #include "third_party/blink/renderer/platform/wtf/math_extras.h"
+ #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
+ #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
+-#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#include "third_party/freetype_buildflags.h"
+ #include "third_party/skia/include/core/SkFontMetrics.h"
+ #include "third_party/skia/include/core/SkPath.h"
+ #include "third_party/skia/include/core/SkTypeface.h"
+@@ -57,12 +57,22 @@
+ #include "ui/gfx/geometry/skia_conversions.h"
+ #include "v8/include/v8.h"
+ 
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
++#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#endif
++
+ namespace blink {
+ 
+ constexpr float kSmallCapsFontSizeMultiplier = 0.7f;
+ constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f;
++
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
+ constexpr int32_t kFontObjectsMemoryConsumption =
+     std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec));
++#else
++// sizeof(AF_LatinMetricsRec) = 2128
++constexpr int32_t kFontObjectsMemoryConsumption = 2128;
++#endif
+ 
+ SimpleFontData::SimpleFontData(const FontPlatformData& platform_data,
+                                scoped_refptr<CustomFontData> custom_data,
diff --git a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
similarity index 86%
rename from srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
rename to srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
index c66cb91539ac4..3b79f512487ae 100644
--- a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
+++ b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
@@ -94,16 +94,3 @@ diff -up chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/n
  
    const auto* cached_layout_subtree = constraint_space.GridLayoutSubtree();
    const auto container_writing_direction =
-diff -up chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc
---- chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me	2023-09-15 18:24:18.984133783 +0200
-+++ chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc	2023-09-15 18:28:50.420833595 +0200
-@@ -1100,7 +1100,8 @@ void ChromeAutofillClient::PropagateAuto
-           &renderer_form);
-     }
- 
--    for (const auto& [frame_token, frame_forms] : renderer_forms_by_frame) {
-+    for (const auto& [f_t, frame_forms] : renderer_forms_by_frame) {
-+      auto& frame_token = f_t;
-       // Attempt to find the RFH with this `frame_token`.
-       content::RenderFrameHost* rfh = nullptr;
-       GetWebContents().ForEachRenderFrameHost(
diff --git a/srcpkgs/chromium/patches/no-mte.patch b/srcpkgs/chromium/patches/no-mte.patch
index 973f4ac5d7eb8..56167e1e5c576 100644
--- a/srcpkgs/chromium/patches/no-mte.patch
+++ b/srcpkgs/chromium/patches/no-mte.patch
@@ -1,14 +1,11 @@
-Patch-Source: https://git.alpinelinux.org/aports/commit/community/chromium/no-mte.patch?id=ed25dc0164fd410ab1866b69c949cb4747e69434
-M115 needs ifuncs for this
---
 --- a/base/allocator/partition_allocator/partition_alloc_config.h
 +++ b/base/allocator/partition_allocator/partition_alloc_config.h
-@@ -151,7 +151,7 @@
+@@ -153,7 +153,7 @@
     defined(ARCH_CPU_LITTLE_ENDIAN))
  
  #define PA_CONFIG_HAS_MEMORY_TAGGING()              \
 -  (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
 +  (0 && defined(ARCH_CPU_ARM64) && defined(__clang__) && \
+    !defined(ADDRESS_SANITIZER) &&                   \
     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
  
- #if PA_CONFIG(HAS_MEMORY_TAGGING)
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index 4d3bbe21e86f0..cc36911cd338d 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
 # Template file for 'chromium'
 pkgname=chromium
 # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=117.0.5938.132
+version=118.0.5993.70
 revision=1
 archs="i686* x86_64* aarch64* armv7l*"
 hostmakedepends="
@@ -27,7 +27,7 @@ maintainer="Duncaen <duncaen@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://www.chromium.org/"
 distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=28f077123a51942839a9ec518a64930cbc192186e799ef8ccdef19c93ddbaead
+checksum=49ee00a734de3dae7c421eb3c974e8d451b4de6f5b4e34b603fd6435eab6993d
 
 lib32disabled=yes
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] chromium: update to 118.0.5993.70.
  2023-10-11 16:46 [PR PATCH] chromium: update to 118.0.5993.70 Duncaen
  2023-10-11 18:09 ` [PR PATCH] [Updated] " Duncaen
  2023-10-12 11:27 ` Duncaen
@ 2023-10-12 15:41 ` Duncaen
  2023-10-12 23:08 ` Duncaen
  2023-10-12 23:08 ` [PR PATCH] [Merged]: " Duncaen
  4 siblings, 0 replies; 6+ messages in thread
From: Duncaen @ 2023-10-12 15:41 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 411 bytes --]

There is an updated pull request by Duncaen against master on the void-packages repository

https://github.com/Duncaen/void-packages chromium-118
https://github.com/void-linux/void-packages/pull/46606

chromium: update to 118.0.5993.70.
[ci skip]

* [x] x86_64-glibc
* [x] x86_64-musl
* [x] aarch64-musl
* [ ] i686

A patch file from https://github.com/void-linux/void-packages/pull/46606.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-118-46606.patch --]
[-- Type: text/x-diff, Size: 42229 bytes --]

From 1b6182005248dde435e979eb59ad04d1f29c6023 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Wed, 11 Oct 2023 18:43:39 +0200
Subject: [PATCH] chromium: update to 118.0.5993.70.

---
 ...for-std-unique_ptr-in-third_party-ip.patch |  27 ----
 ...mium-105.0.5195.52-python-six-1.16.0.patch | 134 +++++++++++++++++
 ...ium-117-emplace_back_on_vector-c++20.patch |  91 ------------
 ....4.patch => chromium-118-ffmpeg-4.4.patch} |  14 --
 ...> chromium-118-missing-header-files.patch} |  27 +++-
 ...hromium-118-no_matching_constructor.patch} | 135 +++++++++++++++++
 .../chromium-118-python-3.12-deprecated.patch | 138 ++++++++++++++++++
 .../chromium-118-use_system_freetype.patch    |  91 ++++++++++++
 ...around_clang_bug-structured_binding.patch} |  13 --
 srcpkgs/chromium/patches/no-mte.patch         |   7 +-
 srcpkgs/chromium/template                     |   4 +-
 11 files changed, 528 insertions(+), 153 deletions(-)
 delete mode 100644 srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
 delete mode 100644 srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
 rename srcpkgs/chromium/patches/{chromium-93-ffmpeg-4.4.patch => chromium-118-ffmpeg-4.4.patch} (66%)
 rename srcpkgs/chromium/patches/{chromium-117-missing-header-files.patch => chromium-118-missing-header-files.patch} (94%)
 rename srcpkgs/chromium/patches/{chromium-117-no_matching_constructor.patch => chromium-118-no_matching_constructor.patch} (76%)
 create mode 100644 srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
 rename srcpkgs/chromium/patches/{chromium-117-workaround_clang_bug-structured_binding.patch => chromium-118-workaround_clang_bug-structured_binding.patch} (86%)

diff --git a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch b/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
deleted file mode 100644
index 2d6005f19d7cb..0000000000000
--- a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5a8dfcaf84b5af5aeb738702651e98bfc43d6d45 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Wed, 9 Aug 2023 15:36:26 +0000
-Subject: [PATCH] IWYU: add memory for std::unique_ptr in //third_party/ipcz
-
-Bug: 957519
-Change-Id: I600f415a59206da283046b638a4f68eda0892ac7
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4754274
-Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
-Reviewed-by: Robert Sesek <rsesek@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1181503}
----
- third_party/ipcz/src/ipcz/router_link.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/third_party/ipcz/src/ipcz/router_link.h b/third_party/ipcz/src/ipcz/router_link.h
-index 09bc5626d99..619638cc7f1 100644
---- a/third_party/ipcz/src/ipcz/router_link.h
-+++ b/third_party/ipcz/src/ipcz/router_link.h
-@@ -7,6 +7,7 @@
- 
- #include <cstddef>
- #include <functional>
-+#include <memory>
- #include <string>
- #include <utility>
- 
diff --git a/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch b/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
new file mode 100644
index 0000000000000..497c2df40b321
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
@@ -0,0 +1,134 @@
+diff -up chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py
+--- chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116	2022-07-05 13:31:29.434673638 +0000
++++ chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py	2022-07-05 21:52:01.884578748 +0000
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.15.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+diff -up chromium-103.0.5060.53/third_party/six/src/six.py.116 chromium-103.0.5060.53/third_party/six/src/six.py
+--- chromium-103.0.5060.53/third_party/six/src/six.py.116	2022-07-05 13:32:28.916687658 +0000
++++ chromium-103.0.5060.53/third_party/six/src/six.py	2022-07-05 21:59:42.561240407 +0000
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.14.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
+       - `str` -> encoded to `bytes`
+       - `bytes` -> `bytes`
+     """
++    if isinstance(s, binary_type):
++        return s
+     if isinstance(s, text_type):
+         return s.encode(encoding, errors)
+-    elif isinstance(s, binary_type):
+-        return s
+-    else:
+-        raise TypeError("not expecting type '%s'" % type(s))
++    raise TypeError("not expecting type '%s'" % type(s))
+ 
+ 
+ def ensure_str(s, encoding='utf-8', errors='strict'):
+@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
+       - `str` -> `str`
+       - `bytes` -> decoded to `str`
+     """
+-    if not isinstance(s, (text_type, binary_type)):
+-        raise TypeError("not expecting type '%s'" % type(s))
++    # Optimization: Fast return for the common case.
++    if type(s) is str:
++        return s
+     if PY2 and isinstance(s, text_type):
+-        s = s.encode(encoding, errors)
++        return s.encode(encoding, errors)
+     elif PY3 and isinstance(s, binary_type):
+-        s = s.decode(encoding, errors)
++        return s.decode(encoding, errors)
++    elif not isinstance(s, (text_type, binary_type)):
++        raise TypeError("not expecting type '%s'" % type(s))
+     return s
+ 
+ 
diff --git a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch b/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
deleted file mode 100644
index 3f1b800238ebf..0000000000000
--- a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
-+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
-@@ -355,7 +355,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);
-@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
-+++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
-@@ -207,8 +207,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);
-@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
---- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
-+++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
-@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
---- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
-+++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
-@@ -764,8 +764,8 @@ void SavePackage::Finish() {
-   if (download_) {
-     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
---- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
-+++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
-@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
-     GdkRectangle geometry;
-     gdk_monitor_get_geometry(monitor, &geometry);
-     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
--    config.display_geometries.emplace_back(
-+    config.display_geometries.emplace_back() = {
-         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
-                   monitor_scale * geometry.width,
-                   monitor_scale * geometry.height),
--        monitor_scale * font_scale);
-+        static_cast<float>(monitor_scale * font_scale)};
-   }
-   return config;
- }
diff --git a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
similarity index 66%
rename from srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
rename to srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
index f0ec736f98bc7..556c734d4e02e 100644
--- a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
+++ b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
@@ -2,20 +2,6 @@ diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
 index ac4713b07268..492a9a37d096 100644
 --- a/media/filters/ffmpeg_demuxer.cc
 +++ b/media/filters/ffmpeg_demuxer.cc
-@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
-   scoped_refptr<DecoderBuffer> buffer;
- 
-   if (type() == DemuxerStream::TEXT) {
--    size_t id_size = 0;
-+    int id_size = 0;
-     uint8_t* id_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
- 
--    size_t settings_size = 0;
-+    int settings_size = 0;
-     uint8_t* settings_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
- 
 @@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
      buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
                                       side_data.data(), side_data.size());
diff --git a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
similarity index 94%
rename from srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
rename to srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
index ad8e1e654d342..ea415df32835b 100644
--- a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
+++ b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
@@ -451,7 +451,32 @@ diff -up chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/pal
   * limitations under the License.
   */
  
-+#include <math.h>
++#include <cmath>
  #include "cpp/palettes/tones.h"
  
  #include "cpp/cam/cam.h"
+diff -up chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h
+--- chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me	2023-10-01 13:55:01.913193186 +0200
++++ chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h	2023-10-01 14:05:38.488038429 +0200
+@@ -5,6 +5,9 @@
+ #ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ #define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ 
++#include <cstddef>
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
+diff -up chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h
+--- chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me	2023-10-02 13:38:31.217806428 +0200
++++ chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h	2023-10-02 13:39:05.006427168 +0200
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ 
++#include <atomic>
++
+ #include "base/gtest_prod_util.h"
+ #include "components/gwp_asan/client/export.h"
+ #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
similarity index 76%
rename from srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
rename to srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
index e5ab60ac2d7dc..3d7748c3d5a26 100644
--- a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
+++ b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
@@ -430,3 +430,138 @@ diff -up chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/pro
  
    // Extract domains and attributes from the command line switch.
    const base::CommandLine& command_line =
+diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
+--- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
++++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
+@@ -355,7 +355,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);
+@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
++++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
+@@ -207,8 +207,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);
+@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
+--- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
++++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
+@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
+--- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
++++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
+@@ -764,8 +764,8 @@ void SavePackage::Finish() {
+   if (download_) {
+     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
+--- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
++++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
+@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me	2023-10-06 10:38:52.473145692 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-06 10:37:30.268617169 +0200
+@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
+     CHECK(observations.empty());
+     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+          proto_observations) {
+-      observations.emplace_back(proto_observation.type(),
++      observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+                                 ProfileTokenQuality::FormSignatureHash(
+-                                    proto_observation.form_hash()));
++                                    proto_observation.form_hash())};
+     }
+   }
+ 
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me	2023-10-06 10:41:37.746402215 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc	2023-10-06 10:42:28.469562927 +0200
+@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
+   base::StringToInt64(wallet_credential_specifics.instrument_id(),
+                       &instrument_id);
+ 
+-  return ServerCvc(
++  return ServerCvc{
+       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+       base::Time::UnixEpoch() +
+           base::Milliseconds(wallet_credential_specifics
+-                                 .last_updated_time_unix_epoch_millis()));
++                                 .last_updated_time_unix_epoch_millis())};
+ }
+ 
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
+diff -up chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc
+--- chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me	2023-10-06 13:46:57.287089040 +0200
++++ chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc	2023-10-06 13:47:25.450632156 +0200
+@@ -604,7 +604,7 @@ void OnTokenRequestParsed(
+     if (response_error) {
+       int error_code = response_error->FindInt(kErrorCodeKey).value_or(0);
+       GURL error_url = ExtractUrl(*response_error, kErrorUrlKey);
+-      token_result.error = TokenError(error_code, error_url);
++      token_result.error = TokenError{error_code, error_url};
+     }
+   }
+ 
diff --git a/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
new file mode 100644
index 0000000000000..5837ae584117d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
@@ -0,0 +1,138 @@
+diff -up chromium-115.0.5790.102/base/write_build_date_header.py.me chromium-115.0.5790.102/base/write_build_date_header.py
+--- chromium-115.0.5790.102/base/write_build_date_header.py.me	2023-07-22 14:23:42.620679397 +0200
++++ chromium-115.0.5790.102/base/write_build_date_header.py	2023-07-22 15:24:46.833310310 +0200
+@@ -17,7 +17,7 @@ def main():
+   args = argument_parser.parse_args()
+ 
+   date_val = int(args.timestamp)
+-  date = datetime.datetime.utcfromtimestamp(date_val)
++  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
+   output = ('// Generated by //base/write_build_date_header.py\n'
+             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
+             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
+diff -up chromium-115.0.5790.102/build/write_buildflag_header.py.me chromium-115.0.5790.102/build/write_buildflag_header.py
+--- chromium-115.0.5790.102/build/write_buildflag_header.py.me	2023-07-22 14:16:14.196975451 +0200
++++ chromium-115.0.5790.102/build/write_buildflag_header.py	2023-07-22 14:20:24.977239994 +0200
+@@ -44,7 +44,7 @@ def GetOptions():
+   header_guard = cmdline_options.output.upper()
+   if header_guard[0].isdigit():
+     header_guard = '_' + header_guard
+-  header_guard = re.sub('[^\w]', '_', header_guard)
++  header_guard = re.sub(r'[^\w]', '_', header_guard)
+   header_guard += '_'
+ 
+   # The actual output file is inside the gen dir.
+diff -up chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py
+--- chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me	2023-07-22 14:47:34.230764210 +0200
++++ chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py	2023-07-22 15:11:50.360983383 +0200
+@@ -9,7 +9,8 @@
+ """
+ from __future__ import print_function
+ import abc
+-import imp
++import types
++import importlib
+ import optparse
+ import os
+ import re
+@@ -40,6 +41,12 @@ class GoogleProtobufModuleImporter:
+         return filepath
+     return None
+ 
++  def load_source(name: str, path: str) -> types.ModuleType:
++    spec = importlib.util.spec_from_file_location(name, path)
++    module = importlib.util.module_from_spec(spec)
++    spec.loader.exec_module(module)
++    return module
++
+   def _module_exists(self, fullname):
+     return self._fullname_to_filepath(fullname) is not None
+ 
+@@ -68,7 +75,7 @@ class GoogleProtobufModuleImporter:
+       raise ImportError(fullname)
+ 
+     filepath = self._fullname_to_filepath(fullname)
+-    return imp.load_source(fullname, filepath)
++    return load_source(fullname, filepath)
+ 
+ class BinaryProtoGenerator:
+ 
+diff -up chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py
+--- chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me	2023-07-22 15:17:19.114258801 +0200
++++ chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py	2023-07-22 15:17:43.368200491 +0200
+@@ -32,7 +32,7 @@ def FilterLine(filename, line, output):
+     return
+ 
+   if line.startswith("goog.provide"):
+-    match = re.match("goog.provide\('([^']+)'\);", line)
++    match = re.match(r"goog.provide\('([^']+)'\);", line)
+     if not match:
+       print("Invalid goog.provide line in %s:\n%s" % (filename, line))
+       sys.exit(1)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me	2023-07-22 15:12:41.850895179 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py	2023-07-22 15:12:55.844871207 +0200
+@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
+ 
+   def GetHTMLForInlineStylesheet(self, contents):
+     if self.current_module is None:
+-      if re.search('url\(.+\)', contents):
++      if re.search(r'url\(.+\)', contents):
+         raise Exception(
+             'Default HTMLGenerationController cannot handle inline style urls')
+       return contents
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me	2023-07-22 15:14:06.923717910 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py	2023-07-22 15:18:03.704150614 +0200
+@@ -4,4 +4,4 @@
+ 
+ 
+ def EscapeJSIfNeeded(js):
+-  return js.replace('</script>', '<\/script>')
++  return js.replace(r'</script>', r'<\/script>')
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me	2023-07-22 15:14:30.105662532 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py	2023-07-22 15:14:57.977595950 +0200
+@@ -293,6 +293,6 @@ class HTMLModuleParser():
+       html = ''
+     else:
+       if html.find('< /script>') != -1:
+-        raise Exception('Escape script tags with <\/script>')
++        raise Exception(r'Escape script tags with <\/script>')
+ 
+     return HTMLModuleParserResults(html)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me	2023-07-22 15:13:12.316842990 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py	2023-07-22 15:13:49.684759091 +0200
+@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
+       return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
+ 
+     # I'm assuming we only have url()'s associated with images
+-    return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
++    return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+                   InlineUrl, self.contents)
+ 
+   def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
+@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
+       raise Exception('@imports are not supported')
+ 
+     matches = re.findall(
+-        'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
++        r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+         self.contents)
+ 
+     def resolve_url(url):
+diff -up chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py
+--- chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me	2023-07-22 15:11:56.826972306 +0200
++++ chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py	2023-07-22 15:12:37.550902545 +0200
+@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
+             source = self.preprocess(f.read())
+         return source, path, lambda: mtime == os.path.getmtime(path)
+ 
+-    blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+-    blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
++    blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
++    blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ 
+     def preprocess(self, source):
+         lines = source.split('\n')
diff --git a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
new file mode 100644
index 0000000000000..ce9fbdebe2fb7
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
@@ -0,0 +1,91 @@
+commit ed354d00aeda84693611b14baa56a287557a26b5
+Author: Munira Tursunova <moonira@google.com>
+Date:   Tue Sep 12 11:54:48 2023 +0000
+
+    Add check for use_system_freetype when importing private freetype header
+    
+    In [0] the include of private freetype header was added, which caused
+    build breakage when use_system_freetype=true, see [1].
+    
+    This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag.
+    
+    [0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485
+    [1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0
+    
+    Bug: 1429581
+    Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428
+    Commit-Queue: Munira Tursunova <moonira@google.com>
+    Reviewed-by: Dominik Röttsches <drott@chromium.org>
+    Reviewed-by: Rick Byers <rbyers@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1195323}
+
+diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
+index 7b086f95413ff..4ce797ebad722 100644
+--- a/third_party/BUILD.gn
++++ b/third_party/BUILD.gn
+@@ -2,6 +2,7 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
++import("//build/buildflag_header.gni")
+ import("//build/config/features.gni")
+ import("//build/config/freetype/freetype.gni")
+ import("//third_party/harfbuzz-ng/harfbuzz.gni")
+@@ -65,3 +66,8 @@ component("freetype_harfbuzz") {
+     public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ]
+   }
+ }
++
++buildflag_header("freetype_buildflags") {
++  header = "freetype_buildflags.h"
++  flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
++}
+diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
+index 591d2f939605b..f6a2cd2168d1e 100644
+--- a/third_party/blink/renderer/platform/BUILD.gn
++++ b/third_party/blink/renderer/platform/BUILD.gn
+@@ -1717,6 +1717,7 @@ component("platform") {
+     "//services/viz/public/cpp/gpu",
+     "//skia",
+     "//skia:skcms",
++    "//third_party:freetype_buildflags",
+     "//third_party:freetype_harfbuzz",
+     "//third_party/abseil-cpp:absl",
+     "//third_party/blink/public:image_resources",
+diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+index abe06f35c14a5..b2bfd88f0d85d 100644
+--- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
++++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+@@ -48,7 +48,7 @@
+ #include "third_party/blink/renderer/platform/wtf/math_extras.h"
+ #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
+ #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
+-#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#include "third_party/freetype_buildflags.h"
+ #include "third_party/skia/include/core/SkFontMetrics.h"
+ #include "third_party/skia/include/core/SkPath.h"
+ #include "third_party/skia/include/core/SkTypeface.h"
+@@ -57,12 +57,22 @@
+ #include "ui/gfx/geometry/skia_conversions.h"
+ #include "v8/include/v8.h"
+ 
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
++#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#endif
++
+ namespace blink {
+ 
+ constexpr float kSmallCapsFontSizeMultiplier = 0.7f;
+ constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f;
++
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
+ constexpr int32_t kFontObjectsMemoryConsumption =
+     std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec));
++#else
++// sizeof(AF_LatinMetricsRec) = 2128
++constexpr int32_t kFontObjectsMemoryConsumption = 2128;
++#endif
+ 
+ SimpleFontData::SimpleFontData(const FontPlatformData& platform_data,
+                                scoped_refptr<CustomFontData> custom_data,
diff --git a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
similarity index 86%
rename from srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
rename to srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
index c66cb91539ac4..3b79f512487ae 100644
--- a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
+++ b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
@@ -94,16 +94,3 @@ diff -up chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/n
  
    const auto* cached_layout_subtree = constraint_space.GridLayoutSubtree();
    const auto container_writing_direction =
-diff -up chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc
---- chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me	2023-09-15 18:24:18.984133783 +0200
-+++ chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc	2023-09-15 18:28:50.420833595 +0200
-@@ -1100,7 +1100,8 @@ void ChromeAutofillClient::PropagateAuto
-           &renderer_form);
-     }
- 
--    for (const auto& [frame_token, frame_forms] : renderer_forms_by_frame) {
-+    for (const auto& [f_t, frame_forms] : renderer_forms_by_frame) {
-+      auto& frame_token = f_t;
-       // Attempt to find the RFH with this `frame_token`.
-       content::RenderFrameHost* rfh = nullptr;
-       GetWebContents().ForEachRenderFrameHost(
diff --git a/srcpkgs/chromium/patches/no-mte.patch b/srcpkgs/chromium/patches/no-mte.patch
index 973f4ac5d7eb8..56167e1e5c576 100644
--- a/srcpkgs/chromium/patches/no-mte.patch
+++ b/srcpkgs/chromium/patches/no-mte.patch
@@ -1,14 +1,11 @@
-Patch-Source: https://git.alpinelinux.org/aports/commit/community/chromium/no-mte.patch?id=ed25dc0164fd410ab1866b69c949cb4747e69434
-M115 needs ifuncs for this
---
 --- a/base/allocator/partition_allocator/partition_alloc_config.h
 +++ b/base/allocator/partition_allocator/partition_alloc_config.h
-@@ -151,7 +151,7 @@
+@@ -153,7 +153,7 @@
     defined(ARCH_CPU_LITTLE_ENDIAN))
  
  #define PA_CONFIG_HAS_MEMORY_TAGGING()              \
 -  (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
 +  (0 && defined(ARCH_CPU_ARM64) && defined(__clang__) && \
+    !defined(ADDRESS_SANITIZER) &&                   \
     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
  
- #if PA_CONFIG(HAS_MEMORY_TAGGING)
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index 4d3bbe21e86f0..cc36911cd338d 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
 # Template file for 'chromium'
 pkgname=chromium
 # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=117.0.5938.132
+version=118.0.5993.70
 revision=1
 archs="i686* x86_64* aarch64* armv7l*"
 hostmakedepends="
@@ -27,7 +27,7 @@ maintainer="Duncaen <duncaen@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://www.chromium.org/"
 distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=28f077123a51942839a9ec518a64930cbc192186e799ef8ccdef19c93ddbaead
+checksum=49ee00a734de3dae7c421eb3c974e8d451b4de6f5b4e34b603fd6435eab6993d
 
 lib32disabled=yes
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Updated] chromium: update to 118.0.5993.70.
  2023-10-11 16:46 [PR PATCH] chromium: update to 118.0.5993.70 Duncaen
                   ` (2 preceding siblings ...)
  2023-10-12 15:41 ` Duncaen
@ 2023-10-12 23:08 ` Duncaen
  2023-10-12 23:08 ` [PR PATCH] [Merged]: " Duncaen
  4 siblings, 0 replies; 6+ messages in thread
From: Duncaen @ 2023-10-12 23:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 411 bytes --]

There is an updated pull request by Duncaen against master on the void-packages repository

https://github.com/Duncaen/void-packages chromium-118
https://github.com/void-linux/void-packages/pull/46606

chromium: update to 118.0.5993.70.
[ci skip]

* [x] x86_64-glibc
* [x] x86_64-musl
* [x] aarch64-musl
* [ ] i686

A patch file from https://github.com/void-linux/void-packages/pull/46606.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-chromium-118-46606.patch --]
[-- Type: text/x-diff, Size: 42229 bytes --]

From 591ad074bd7ea880295de33e24400ace3bc2eebc Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Wed, 11 Oct 2023 18:43:39 +0200
Subject: [PATCH] chromium: update to 118.0.5993.70.

---
 ...for-std-unique_ptr-in-third_party-ip.patch |  27 ----
 ...mium-105.0.5195.52-python-six-1.16.0.patch | 134 +++++++++++++++++
 ...ium-117-emplace_back_on_vector-c++20.patch |  91 ------------
 ....4.patch => chromium-118-ffmpeg-4.4.patch} |  14 --
 ...> chromium-118-missing-header-files.patch} |  27 +++-
 ...hromium-118-no_matching_constructor.patch} | 135 +++++++++++++++++
 .../chromium-118-python-3.12-deprecated.patch | 138 ++++++++++++++++++
 .../chromium-118-use_system_freetype.patch    |  91 ++++++++++++
 ...around_clang_bug-structured_binding.patch} |  13 --
 srcpkgs/chromium/patches/no-mte.patch         |   7 +-
 srcpkgs/chromium/template                     |   4 +-
 11 files changed, 528 insertions(+), 153 deletions(-)
 delete mode 100644 srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
 delete mode 100644 srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
 rename srcpkgs/chromium/patches/{chromium-93-ffmpeg-4.4.patch => chromium-118-ffmpeg-4.4.patch} (66%)
 rename srcpkgs/chromium/patches/{chromium-117-missing-header-files.patch => chromium-118-missing-header-files.patch} (94%)
 rename srcpkgs/chromium/patches/{chromium-117-no_matching_constructor.patch => chromium-118-no_matching_constructor.patch} (76%)
 create mode 100644 srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
 create mode 100644 srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
 rename srcpkgs/chromium/patches/{chromium-117-workaround_clang_bug-structured_binding.patch => chromium-118-workaround_clang_bug-structured_binding.patch} (86%)

diff --git a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch b/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
deleted file mode 100644
index 2d6005f19d7cb..0000000000000
--- a/srcpkgs/chromium/patches/add-memory-for-std-unique_ptr-in-third_party-ip.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5a8dfcaf84b5af5aeb738702651e98bfc43d6d45 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09@googlemail.com>
-Date: Wed, 9 Aug 2023 15:36:26 +0000
-Subject: [PATCH] IWYU: add memory for std::unique_ptr in //third_party/ipcz
-
-Bug: 957519
-Change-Id: I600f415a59206da283046b638a4f68eda0892ac7
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4754274
-Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
-Reviewed-by: Robert Sesek <rsesek@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1181503}
----
- third_party/ipcz/src/ipcz/router_link.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/third_party/ipcz/src/ipcz/router_link.h b/third_party/ipcz/src/ipcz/router_link.h
-index 09bc5626d99..619638cc7f1 100644
---- a/third_party/ipcz/src/ipcz/router_link.h
-+++ b/third_party/ipcz/src/ipcz/router_link.h
-@@ -7,6 +7,7 @@
- 
- #include <cstddef>
- #include <functional>
-+#include <memory>
- #include <string>
- #include <utility>
- 
diff --git a/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch b/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
new file mode 100644
index 0000000000000..497c2df40b321
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-105.0.5195.52-python-six-1.16.0.patch
@@ -0,0 +1,134 @@
+diff -up chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py
+--- chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116	2022-07-05 13:31:29.434673638 +0000
++++ chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py	2022-07-05 21:52:01.884578748 +0000
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.15.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+diff -up chromium-103.0.5060.53/third_party/six/src/six.py.116 chromium-103.0.5060.53/third_party/six/src/six.py
+--- chromium-103.0.5060.53/third_party/six/src/six.py.116	2022-07-05 13:32:28.916687658 +0000
++++ chromium-103.0.5060.53/third_party/six/src/six.py	2022-07-05 21:59:42.561240407 +0000
+@@ -29,7 +29,7 @@ import sys
+ import types
+ 
+ __author__ = "Benjamin Peterson <benjamin@python.org>"
+-__version__ = "1.14.0"
++__version__ = "1.16.0"
+ 
+ 
+ # Useful for very coarse version differentiation.
+@@ -71,6 +71,11 @@ else:
+             MAXSIZE = int((1 << 63) - 1)
+         del X
+ 
++if PY34:
++    from importlib.util import spec_from_loader
++else:
++    spec_from_loader = None
++
+ 
+ def _add_doc(func, doc):
+     """Add documentation to a function."""
+@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
+             return self
+         return None
+ 
++    def find_spec(self, fullname, path, target=None):
++        if fullname in self.known_modules:
++            return spec_from_loader(fullname, self)
++        return None
++
+     def __get_module(self, fullname):
+         try:
+             return self.known_modules[fullname]
+@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
+         return None
+     get_source = get_code  # same as get_code
+ 
++    def create_module(self, spec):
++        return self.load_module(spec.name)
++
++    def exec_module(self, module):
++        pass
++
+ _importer = _SixMetaPathImporter(__name__)
+ 
+ 
+@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
+       - `str` -> encoded to `bytes`
+       - `bytes` -> `bytes`
+     """
++    if isinstance(s, binary_type):
++        return s
+     if isinstance(s, text_type):
+         return s.encode(encoding, errors)
+-    elif isinstance(s, binary_type):
+-        return s
+-    else:
+-        raise TypeError("not expecting type '%s'" % type(s))
++    raise TypeError("not expecting type '%s'" % type(s))
+ 
+ 
+ def ensure_str(s, encoding='utf-8', errors='strict'):
+@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
+       - `str` -> `str`
+       - `bytes` -> decoded to `str`
+     """
+-    if not isinstance(s, (text_type, binary_type)):
+-        raise TypeError("not expecting type '%s'" % type(s))
++    # Optimization: Fast return for the common case.
++    if type(s) is str:
++        return s
+     if PY2 and isinstance(s, text_type):
+-        s = s.encode(encoding, errors)
++        return s.encode(encoding, errors)
+     elif PY3 and isinstance(s, binary_type):
+-        s = s.decode(encoding, errors)
++        return s.decode(encoding, errors)
++    elif not isinstance(s, (text_type, binary_type)):
++        raise TypeError("not expecting type '%s'" % type(s))
+     return s
+ 
+ 
diff --git a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch b/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
deleted file mode 100644
index 3f1b800238ebf..0000000000000
--- a/srcpkgs/chromium/patches/chromium-117-emplace_back_on_vector-c++20.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
---- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
-+++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
-@@ -355,7 +355,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);
-@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
---- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
-+++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
-@@ -207,8 +207,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);
-@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
---- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
-+++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
-@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
---- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
-+++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
-@@ -764,8 +764,8 @@ void SavePackage::Finish() {
-   if (download_) {
-     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
---- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
-+++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
-@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
-     GdkRectangle geometry;
-     gdk_monitor_get_geometry(monitor, &geometry);
-     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
--    config.display_geometries.emplace_back(
-+    config.display_geometries.emplace_back() = {
-         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
-                   monitor_scale * geometry.width,
-                   monitor_scale * geometry.height),
--        monitor_scale * font_scale);
-+        static_cast<float>(monitor_scale * font_scale)};
-   }
-   return config;
- }
diff --git a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
similarity index 66%
rename from srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
rename to srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
index f0ec736f98bc7..556c734d4e02e 100644
--- a/srcpkgs/chromium/patches/chromium-93-ffmpeg-4.4.patch
+++ b/srcpkgs/chromium/patches/chromium-118-ffmpeg-4.4.patch
@@ -2,20 +2,6 @@ diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
 index ac4713b07268..492a9a37d096 100644
 --- a/media/filters/ffmpeg_demuxer.cc
 +++ b/media/filters/ffmpeg_demuxer.cc
-@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
-   scoped_refptr<DecoderBuffer> buffer;
- 
-   if (type() == DemuxerStream::TEXT) {
--    size_t id_size = 0;
-+    int id_size = 0;
-     uint8_t* id_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
- 
--    size_t settings_size = 0;
-+    int settings_size = 0;
-     uint8_t* settings_data = av_packet_get_side_data(
-         packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
- 
 @@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
      buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
                                       side_data.data(), side_data.size());
diff --git a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
similarity index 94%
rename from srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
rename to srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
index ad8e1e654d342..ea415df32835b 100644
--- a/srcpkgs/chromium/patches/chromium-117-missing-header-files.patch
+++ b/srcpkgs/chromium/patches/chromium-118-missing-header-files.patch
@@ -451,7 +451,32 @@ diff -up chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/pal
   * limitations under the License.
   */
  
-+#include <math.h>
++#include <cmath>
  #include "cpp/palettes/tones.h"
  
  #include "cpp/cam/cam.h"
+diff -up chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h
+--- chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h.me	2023-10-01 13:55:01.913193186 +0200
++++ chromium-118.0.5993.32/services/device/public/cpp/generic_sensor/sensor_reading.h	2023-10-01 14:05:38.488038429 +0200
+@@ -5,6 +5,9 @@
+ #ifndef SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ #define SERVICES_DEVICE_PUBLIC_CPP_GENERIC_SENSOR_SENSOR_READING_H_
+ 
++#include <cstddef>
++#include <cstdint>
++
+ #include <type_traits>
+ 
+ namespace device {
+diff -up chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h
+--- chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h.me	2023-10-02 13:38:31.217806428 +0200
++++ chromium-118.0.5993.32/components/gwp_asan/client/lightweight_detector.h	2023-10-02 13:39:05.006427168 +0200
+@@ -5,6 +5,8 @@
+ #ifndef COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ #define COMPONENTS_GWP_ASAN_CLIENT_LIGHTWEIGHT_DETECTOR_H_
+ 
++#include <atomic>
++
+ #include "base/gtest_prod_util.h"
+ #include "components/gwp_asan/client/export.h"
+ #include "components/gwp_asan/common/lightweight_detector_state.h"
diff --git a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
similarity index 76%
rename from srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
rename to srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
index e5ab60ac2d7dc..3d7748c3d5a26 100644
--- a/srcpkgs/chromium/patches/chromium-117-no_matching_constructor.patch
+++ b/srcpkgs/chromium/patches/chromium-118-no_matching_constructor.patch
@@ -430,3 +430,138 @@ diff -up chromium-117.0.5938.62/chrome/browser/enterprise/profile_management/pro
  
    // Extract domains and attributes from the command line switch.
    const base::CommandLine& command_line =
+diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
+--- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
++++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
+@@ -355,7 +355,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);
+@@ -392,7 +392,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-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc
+--- chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc.me	2023-08-15 21:34:58.922855428 +0200
++++ chromium-116.0.5845.96/chrome/browser/content_settings/one_time_permission_provider.cc	2023-08-15 21:39:23.310434237 +0200
+@@ -207,8 +207,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);
+@@ -302,8 +302,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-117.0.5938.62/base/trace_event/trace_log.cc.me chromium-117.0.5938.62/base/trace_event/trace_log.cc
+--- chromium-117.0.5938.62/base/trace_event/trace_log.cc.me	2023-09-13 20:14:42.441248781 +0200
++++ chromium-117.0.5938.62/base/trace_event/trace_log.cc	2023-09-13 20:16:12.186638601 +0200
+@@ -2187,8 +2187,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-117.0.5938.62/content/browser/download/save_package.cc.me chromium-117.0.5938.62/content/browser/download/save_package.cc
+--- chromium-117.0.5938.62/content/browser/download/save_package.cc.me	2023-09-15 12:02:43.866622591 +0200
++++ chromium-117.0.5938.62/content/browser/download/save_package.cc	2023-09-15 12:03:58.715984511 +0200
+@@ -764,8 +764,8 @@ void SavePackage::Finish() {
+   if (download_) {
+     std::vector<download::DownloadSaveItemData::ItemInfo> 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-117.0.5938.62/ui/gtk/gtk_ui.cc.me chromium-117.0.5938.62/ui/gtk/gtk_ui.cc
+--- chromium-117.0.5938.62/ui/gtk/gtk_ui.cc.me	2023-09-15 20:29:42.626502343 +0200
++++ chromium-117.0.5938.62/ui/gtk/gtk_ui.cc	2023-09-15 20:36:18.763091179 +0200
+@@ -955,11 +955,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
+     GdkRectangle geometry;
+     gdk_monitor_get_geometry(monitor, &geometry);
+     int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
+-    config.display_geometries.emplace_back(
++    config.display_geometries.emplace_back() = {
+         gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
+                   monitor_scale * geometry.width,
+                   monitor_scale * geometry.height),
+-        monitor_scale * font_scale);
++        static_cast<float>(monitor_scale * font_scale)};
+   }
+   return config;
+ }
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc.me	2023-10-06 10:38:52.473145692 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/contact_info_sync_util.cc	2023-10-06 10:37:30.268617169 +0200
+@@ -174,9 +174,9 @@ class ContactInfoProfileSetter {
+     CHECK(observations.empty());
+     for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
+          proto_observations) {
+-      observations.emplace_back(proto_observation.type(),
++      observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
+                                 ProfileTokenQuality::FormSignatureHash(
+-                                    proto_observation.form_hash()));
++                                    proto_observation.form_hash())};
+     }
+   }
+ 
+diff -up chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
+--- chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc.me	2023-10-06 10:41:37.746402215 +0200
++++ chromium-118.0.5993.54/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc	2023-10-06 10:42:28.469562927 +0200
+@@ -553,11 +553,11 @@ ServerCvc AutofillWalletCvcStructDataFro
+   base::StringToInt64(wallet_credential_specifics.instrument_id(),
+                       &instrument_id);
+ 
+-  return ServerCvc(
++  return ServerCvc{
+       instrument_id, base::UTF8ToUTF16(wallet_credential_specifics.cvc()),
+       base::Time::UnixEpoch() +
+           base::Milliseconds(wallet_credential_specifics
+-                                 .last_updated_time_unix_epoch_millis()));
++                                 .last_updated_time_unix_epoch_millis())};
+ }
+ 
+ VirtualCardUsageData VirtualCardUsageDataFromUsageSpecifics(
+diff -up chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc
+--- chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc.me	2023-10-06 13:46:57.287089040 +0200
++++ chromium-118.0.5993.54/content/browser/webid/idp_network_request_manager.cc	2023-10-06 13:47:25.450632156 +0200
+@@ -604,7 +604,7 @@ void OnTokenRequestParsed(
+     if (response_error) {
+       int error_code = response_error->FindInt(kErrorCodeKey).value_or(0);
+       GURL error_url = ExtractUrl(*response_error, kErrorUrlKey);
+-      token_result.error = TokenError(error_code, error_url);
++      token_result.error = TokenError{error_code, error_url};
+     }
+   }
+ 
diff --git a/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
new file mode 100644
index 0000000000000..5837ae584117d
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-python-3.12-deprecated.patch
@@ -0,0 +1,138 @@
+diff -up chromium-115.0.5790.102/base/write_build_date_header.py.me chromium-115.0.5790.102/base/write_build_date_header.py
+--- chromium-115.0.5790.102/base/write_build_date_header.py.me	2023-07-22 14:23:42.620679397 +0200
++++ chromium-115.0.5790.102/base/write_build_date_header.py	2023-07-22 15:24:46.833310310 +0200
+@@ -17,7 +17,7 @@ def main():
+   args = argument_parser.parse_args()
+ 
+   date_val = int(args.timestamp)
+-  date = datetime.datetime.utcfromtimestamp(date_val)
++  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
+   output = ('// Generated by //base/write_build_date_header.py\n'
+             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
+             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
+diff -up chromium-115.0.5790.102/build/write_buildflag_header.py.me chromium-115.0.5790.102/build/write_buildflag_header.py
+--- chromium-115.0.5790.102/build/write_buildflag_header.py.me	2023-07-22 14:16:14.196975451 +0200
++++ chromium-115.0.5790.102/build/write_buildflag_header.py	2023-07-22 14:20:24.977239994 +0200
+@@ -44,7 +44,7 @@ def GetOptions():
+   header_guard = cmdline_options.output.upper()
+   if header_guard[0].isdigit():
+     header_guard = '_' + header_guard
+-  header_guard = re.sub('[^\w]', '_', header_guard)
++  header_guard = re.sub(r'[^\w]', '_', header_guard)
+   header_guard += '_'
+ 
+   # The actual output file is inside the gen dir.
+diff -up chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py
+--- chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me	2023-07-22 14:47:34.230764210 +0200
++++ chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py	2023-07-22 15:11:50.360983383 +0200
+@@ -9,7 +9,8 @@
+ """
+ from __future__ import print_function
+ import abc
+-import imp
++import types
++import importlib
+ import optparse
+ import os
+ import re
+@@ -40,6 +41,12 @@ class GoogleProtobufModuleImporter:
+         return filepath
+     return None
+ 
++  def load_source(name: str, path: str) -> types.ModuleType:
++    spec = importlib.util.spec_from_file_location(name, path)
++    module = importlib.util.module_from_spec(spec)
++    spec.loader.exec_module(module)
++    return module
++
+   def _module_exists(self, fullname):
+     return self._fullname_to_filepath(fullname) is not None
+ 
+@@ -68,7 +75,7 @@ class GoogleProtobufModuleImporter:
+       raise ImportError(fullname)
+ 
+     filepath = self._fullname_to_filepath(fullname)
+-    return imp.load_source(fullname, filepath)
++    return load_source(fullname, filepath)
+ 
+ class BinaryProtoGenerator:
+ 
+diff -up chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py
+--- chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me	2023-07-22 15:17:19.114258801 +0200
++++ chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py	2023-07-22 15:17:43.368200491 +0200
+@@ -32,7 +32,7 @@ def FilterLine(filename, line, output):
+     return
+ 
+   if line.startswith("goog.provide"):
+-    match = re.match("goog.provide\('([^']+)'\);", line)
++    match = re.match(r"goog.provide\('([^']+)'\);", line)
+     if not match:
+       print("Invalid goog.provide line in %s:\n%s" % (filename, line))
+       sys.exit(1)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me	2023-07-22 15:12:41.850895179 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py	2023-07-22 15:12:55.844871207 +0200
+@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
+ 
+   def GetHTMLForInlineStylesheet(self, contents):
+     if self.current_module is None:
+-      if re.search('url\(.+\)', contents):
++      if re.search(r'url\(.+\)', contents):
+         raise Exception(
+             'Default HTMLGenerationController cannot handle inline style urls')
+       return contents
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me	2023-07-22 15:14:06.923717910 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py	2023-07-22 15:18:03.704150614 +0200
+@@ -4,4 +4,4 @@
+ 
+ 
+ def EscapeJSIfNeeded(js):
+-  return js.replace('</script>', '<\/script>')
++  return js.replace(r'</script>', r'<\/script>')
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me	2023-07-22 15:14:30.105662532 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py	2023-07-22 15:14:57.977595950 +0200
+@@ -293,6 +293,6 @@ class HTMLModuleParser():
+       html = ''
+     else:
+       if html.find('< /script>') != -1:
+-        raise Exception('Escape script tags with <\/script>')
++        raise Exception(r'Escape script tags with <\/script>')
+ 
+     return HTMLModuleParserResults(html)
+diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
+--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me	2023-07-22 15:13:12.316842990 +0200
++++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py	2023-07-22 15:13:49.684759091 +0200
+@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
+       return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
+ 
+     # I'm assuming we only have url()'s associated with images
+-    return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
++    return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+                   InlineUrl, self.contents)
+ 
+   def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
+@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
+       raise Exception('@imports are not supported')
+ 
+     matches = re.findall(
+-        'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
++        r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+         self.contents)
+ 
+     def resolve_url(url):
+diff -up chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py
+--- chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me	2023-07-22 15:11:56.826972306 +0200
++++ chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py	2023-07-22 15:12:37.550902545 +0200
+@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
+             source = self.preprocess(f.read())
+         return source, path, lambda: mtime == os.path.getmtime(path)
+ 
+-    blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+-    blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
++    blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
++    blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ 
+     def preprocess(self, source):
+         lines = source.split('\n')
diff --git a/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
new file mode 100644
index 0000000000000..ce9fbdebe2fb7
--- /dev/null
+++ b/srcpkgs/chromium/patches/chromium-118-use_system_freetype.patch
@@ -0,0 +1,91 @@
+commit ed354d00aeda84693611b14baa56a287557a26b5
+Author: Munira Tursunova <moonira@google.com>
+Date:   Tue Sep 12 11:54:48 2023 +0000
+
+    Add check for use_system_freetype when importing private freetype header
+    
+    In [0] the include of private freetype header was added, which caused
+    build breakage when use_system_freetype=true, see [1].
+    
+    This CL fixes the breakage by introducing USE_SYSTEM_FREETYPE build flag.
+    
+    [0] https://chromium-review.googlesource.com/c/chromium/src/+/4717485
+    [1] https://chromium-review.googlesource.com/c/chromium/src/+/4717485/comments/cdfca7b9_8e61b2e0
+    
+    Bug: 1429581
+    Change-Id: I7f7de4cdb2dc46092a91a47d766bedb58ddccb7c
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4843428
+    Commit-Queue: Munira Tursunova <moonira@google.com>
+    Reviewed-by: Dominik Röttsches <drott@chromium.org>
+    Reviewed-by: Rick Byers <rbyers@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1195323}
+
+diff --git a/third_party/BUILD.gn b/third_party/BUILD.gn
+index 7b086f95413ff..4ce797ebad722 100644
+--- a/third_party/BUILD.gn
++++ b/third_party/BUILD.gn
+@@ -2,6 +2,7 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
++import("//build/buildflag_header.gni")
+ import("//build/config/features.gni")
+ import("//build/config/freetype/freetype.gni")
+ import("//third_party/harfbuzz-ng/harfbuzz.gni")
+@@ -65,3 +66,8 @@ component("freetype_harfbuzz") {
+     public_deps += [ "//third_party/harfbuzz-ng:harfbuzz_source" ]
+   }
+ }
++
++buildflag_header("freetype_buildflags") {
++  header = "freetype_buildflags.h"
++  flags = [ "USE_SYSTEM_FREETYPE=$use_system_freetype" ]
++}
+diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
+index 591d2f939605b..f6a2cd2168d1e 100644
+--- a/third_party/blink/renderer/platform/BUILD.gn
++++ b/third_party/blink/renderer/platform/BUILD.gn
+@@ -1717,6 +1717,7 @@ component("platform") {
+     "//services/viz/public/cpp/gpu",
+     "//skia",
+     "//skia:skcms",
++    "//third_party:freetype_buildflags",
+     "//third_party:freetype_harfbuzz",
+     "//third_party/abseil-cpp:absl",
+     "//third_party/blink/public:image_resources",
+diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+index abe06f35c14a5..b2bfd88f0d85d 100644
+--- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc
++++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
+@@ -48,7 +48,7 @@
+ #include "third_party/blink/renderer/platform/wtf/math_extras.h"
+ #include "third_party/blink/renderer/platform/wtf/text/character_names.h"
+ #include "third_party/blink/renderer/platform/wtf/text/unicode.h"
+-#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#include "third_party/freetype_buildflags.h"
+ #include "third_party/skia/include/core/SkFontMetrics.h"
+ #include "third_party/skia/include/core/SkPath.h"
+ #include "third_party/skia/include/core/SkTypeface.h"
+@@ -57,12 +57,22 @@
+ #include "ui/gfx/geometry/skia_conversions.h"
+ #include "v8/include/v8.h"
+ 
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
++#include "third_party/freetype/src/src/autofit/afws-decl.h"
++#endif
++
+ namespace blink {
+ 
+ constexpr float kSmallCapsFontSizeMultiplier = 0.7f;
+ constexpr float kEmphasisMarkFontSizeMultiplier = 0.5f;
++
++#if !BUILDFLAG(USE_SYSTEM_FREETYPE)
+ constexpr int32_t kFontObjectsMemoryConsumption =
+     std::max(sizeof(AF_LatinMetricsRec), sizeof(AF_CJKMetricsRec));
++#else
++// sizeof(AF_LatinMetricsRec) = 2128
++constexpr int32_t kFontObjectsMemoryConsumption = 2128;
++#endif
+ 
+ SimpleFontData::SimpleFontData(const FontPlatformData& platform_data,
+                                scoped_refptr<CustomFontData> custom_data,
diff --git a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
similarity index 86%
rename from srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
rename to srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
index c66cb91539ac4..3b79f512487ae 100644
--- a/srcpkgs/chromium/patches/chromium-117-workaround_clang_bug-structured_binding.patch
+++ b/srcpkgs/chromium/patches/chromium-118-workaround_clang_bug-structured_binding.patch
@@ -94,16 +94,3 @@ diff -up chromium-117.0.5938.62/third_party/blink/renderer/core/layout/ng/grid/n
  
    const auto* cached_layout_subtree = constraint_space.GridLayoutSubtree();
    const auto container_writing_direction =
-diff -up chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc
---- chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc.me	2023-09-15 18:24:18.984133783 +0200
-+++ chromium-117.0.5938.62/chrome/browser/ui/autofill/chrome_autofill_client.cc	2023-09-15 18:28:50.420833595 +0200
-@@ -1100,7 +1100,8 @@ void ChromeAutofillClient::PropagateAuto
-           &renderer_form);
-     }
- 
--    for (const auto& [frame_token, frame_forms] : renderer_forms_by_frame) {
-+    for (const auto& [f_t, frame_forms] : renderer_forms_by_frame) {
-+      auto& frame_token = f_t;
-       // Attempt to find the RFH with this `frame_token`.
-       content::RenderFrameHost* rfh = nullptr;
-       GetWebContents().ForEachRenderFrameHost(
diff --git a/srcpkgs/chromium/patches/no-mte.patch b/srcpkgs/chromium/patches/no-mte.patch
index 973f4ac5d7eb8..56167e1e5c576 100644
--- a/srcpkgs/chromium/patches/no-mte.patch
+++ b/srcpkgs/chromium/patches/no-mte.patch
@@ -1,14 +1,11 @@
-Patch-Source: https://git.alpinelinux.org/aports/commit/community/chromium/no-mte.patch?id=ed25dc0164fd410ab1866b69c949cb4747e69434
-M115 needs ifuncs for this
---
 --- a/base/allocator/partition_allocator/partition_alloc_config.h
 +++ b/base/allocator/partition_allocator/partition_alloc_config.h
-@@ -151,7 +151,7 @@
+@@ -153,7 +153,7 @@
     defined(ARCH_CPU_LITTLE_ENDIAN))
  
  #define PA_CONFIG_HAS_MEMORY_TAGGING()              \
 -  (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
 +  (0 && defined(ARCH_CPU_ARM64) && defined(__clang__) && \
+    !defined(ADDRESS_SANITIZER) &&                   \
     (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
  
- #if PA_CONFIG(HAS_MEMORY_TAGGING)
diff --git a/srcpkgs/chromium/template b/srcpkgs/chromium/template
index 4d3bbe21e86f0..cc36911cd338d 100644
--- a/srcpkgs/chromium/template
+++ b/srcpkgs/chromium/template
@@ -1,7 +1,7 @@
 # Template file for 'chromium'
 pkgname=chromium
 # See https://chromiumdash.appspot.com/releases?platform=Linux for the latest version
-version=117.0.5938.132
+version=118.0.5993.70
 revision=1
 archs="i686* x86_64* aarch64* armv7l*"
 hostmakedepends="
@@ -27,7 +27,7 @@ maintainer="Duncaen <duncaen@voidlinux.org>"
 license="BSD-3-Clause"
 homepage="https://www.chromium.org/"
 distfiles="https://commondatastorage.googleapis.com/chromium-browser-official/${pkgname}-${version}.tar.xz"
-checksum=28f077123a51942839a9ec518a64930cbc192186e799ef8ccdef19c93ddbaead
+checksum=49ee00a734de3dae7c421eb3c974e8d451b4de6f5b4e34b603fd6435eab6993d
 
 lib32disabled=yes
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PR PATCH] [Merged]: chromium: update to 118.0.5993.70.
  2023-10-11 16:46 [PR PATCH] chromium: update to 118.0.5993.70 Duncaen
                   ` (3 preceding siblings ...)
  2023-10-12 23:08 ` Duncaen
@ 2023-10-12 23:08 ` Duncaen
  4 siblings, 0 replies; 6+ messages in thread
From: Duncaen @ 2023-10-12 23:08 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 250 bytes --]

There's a merged pull request on the void-packages repository

chromium: update to 118.0.5993.70.
https://github.com/void-linux/void-packages/pull/46606

Description:
[ci skip]

* [x] x86_64-glibc
* [x] x86_64-musl
* [x] aarch64-musl
* [x] i686

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-10-12 23:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-11 16:46 [PR PATCH] chromium: update to 118.0.5993.70 Duncaen
2023-10-11 18:09 ` [PR PATCH] [Updated] " Duncaen
2023-10-12 11:27 ` Duncaen
2023-10-12 15:41 ` Duncaen
2023-10-12 23:08 ` Duncaen
2023-10-12 23:08 ` [PR PATCH] [Merged]: " Duncaen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).