public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: update to 117.0.5938.62
@ 2026-08-07 16:05 Than Ngo
  0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:05 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/chromium
Branch : epel9-next
Commit : f32ee45ed4071cc7f341b9c00450705445f1f506
Author : Than Ngo <than@redhat.com>
Date   : 2023-09-13T12:37:16+02:00
Stats  : +740/-1189 in 16 file(s)
URL    : https://src.fedoraproject.org/rpms/chromium/c/f32ee45ed4071cc7f341b9c00450705445f1f506?branch=epel9-next

Log:
update to 117.0.5938.62

---
diff --git a/.gitignore b/.gitignore
index c705ef5..3a3bd01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,5 @@
 /testupload
 /node-v19.8.1-linux-arm64.tar.xz
 /node-v19.8.1-linux-x64.tar.xz
+/node-v20.6.1-linux-arm64.tar.xz
+/node-v20.6.1-linux-x64.tar.xz

diff --git a/chromium-108-widevine-other-locations.patch b/chromium-108-widevine-other-locations.patch
deleted file mode 100644
index 5a29089..0000000
--- a/chromium-108-widevine-other-locations.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -up chromium-108.0.5359.124/chrome/common/chrome_paths.cc.widevine-other-locations chromium-108.0.5359.124/chrome/common/chrome_paths.cc
---- chromium-108.0.5359.124/chrome/common/chrome_paths.cc.widevine-other-locations	2023-01-02 11:10:03.951330305 +0100
-+++ chromium-108.0.5359.124/chrome/common/chrome_paths.cc	2023-01-02 13:42:26.781022150 +0100
-@@ -319,6 +319,16 @@ bool PathProvider(int key, base::FilePat
- 
- #if BUILDFLAG(ENABLE_WIDEVINE)
-     case chrome::DIR_BUNDLED_WIDEVINE_CDM:
-+      base::PathService::Get(base::DIR_HOME, &cur);
-+      cur = cur.Append(FILE_PATH_LITERAL(".config/chromium/WidevineCdm"));
-+      if (base::PathExists(cur)) {
-+        break;
-+      }
-+      // Yes, this has an arch hardcoded in the path, but at this time, it is the only place to find libwidevinecdm.so
-+      if (base::PathExists(base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so")))) {
-+        cur = base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/WidevineCdm"));
-+        break;
-+      }
-       if (!GetComponentDirectory(&cur))
-         return false;
-       cur = cur.AppendASCII(kWidevineCdmBaseDirectory);
-diff -up chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn.widevine-other-locations chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn
---- chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn.widevine-other-locations	2023-01-02 11:10:45.953114153 +0100
-+++ chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn	2023-01-02 11:10:45.953114153 +0100
-@@ -22,7 +22,7 @@ buildflag_header("buildflags") {
- 
-   flags = [
-     "ENABLE_WIDEVINE=$enable_widevine",
--    "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm",
-+    "BUNDLE_WIDEVINE_CDM=true",
-     "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component",
-     "ENABLE_MEDIA_FOUNDATION_WIDEVINE_CDM=$enable_media_foundation_widevine_cdm",
-   ]

diff --git a/chromium-115-do_not_restrict_new_V4L2_decoders.v4l2.pach b/chromium-115-do_not_restrict_new_V4L2_decoders.v4l2.pach
deleted file mode 100644
index 416e973..0000000
--- a/chromium-115-do_not_restrict_new_V4L2_decoders.v4l2.pach
+++ /dev/null
@@ -1,30 +0,0 @@
-diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
-index bb0122ffd72d4..9262cc744582f 100644
---- a/media/base/media_switches.cc
-+++ b/media/base/media_switches.cc
-@@ -807,7 +807,7 @@ BASE_FEATURE(kVaapiVp9kSVCHWEncoding,
-              "VaapiVp9kSVCHWEncoding",
-              base::FEATURE_ENABLED_BY_DEFAULT);
- #endif  // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
--#if defined(ARCH_CPU_ARM_FAMILY) && BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
- // Enables the new V4L2StatefulVideoDecoder instead of V4L2VideoDecoder.
- BASE_FEATURE(kV4L2FlatStatelessVideoDecoder,
-              "V4L2FlatStatelessVideoDecoder",
-diff --git a/media/base/media_switches.h b/media/base/media_switches.h
-index 97d9602eee49e..aacfac69fae20 100644
---- a/media/base/media_switches.h
-+++ b/media/base/media_switches.h
-@@ -318,10 +318,10 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiH264TemporalLayerHWEncoding);
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp8TemporalLayerHWEncoding);
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVp9kSVCHWEncoding);
- #endif  // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
--#if defined(ARCH_CPU_ARM_FAMILY) && BUILDFLAG(IS_CHROMEOS)
-+#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kV4L2FlatStatelessVideoDecoder);
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kV4L2FlatStatefulVideoDecoder);
--#endif  // defined(ARCH_CPU_ARM_FAMILY) && BUILDFLAG(IS_CHROMEOS)
-+#endif  // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoBlitColorAccuracy);
- #if BUILDFLAG(IS_APPLE)
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kVideoToolboxVideoDecoder);

diff --git a/chromium-115-include_contains_h_header_for_V4L2StatefulVideoDecoder.patch b/chromium-115-include_contains_h_header_for_V4L2StatefulVideoDecoder.patch
deleted file mode 100644
index 93fbdb9..0000000
--- a/chromium-115-include_contains_h_header_for_V4L2StatefulVideoDecoder.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
-index c84dedb7d1c1f..ca8cd566d2018 100644
---- a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
-+++ b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
-@@ -9,6 +9,7 @@
- #include <sys/eventfd.h>
- #include <sys/ioctl.h>
- 
-+#include "base/containers/contains.h"
- #include "base/files/file_util.h"
- #include "base/functional/callback_helpers.h"
- #include "base/memory/ptr_util.h"

diff --git a/chromium-115-linux_ui_darkmode.patch b/chromium-115-linux_ui_darkmode.patch
deleted file mode 100644
index 12af02d..0000000
--- a/chromium-115-linux_ui_darkmode.patch
+++ /dev/null
@@ -1,297 +0,0 @@
-commit 4943182fdfe7adbcc49b10538d7d52b17dd538ff
-Author: Tom Anderson <thomasanderson@chromium.org>
-Date:   Fri Jul 21 22:35:40 2023 +0000
-
-    [Linux Ui] Set toolkit dark preference based on FDO dark preference
-    
-    The toolkit color scheme preference is not affected by the
-    `org.freedesktop.appearance color-scheme` setting.  It's up to
-    apps to manually toggle the toolkit theme based on this setting.
-    This is done by libadwaita, libhandy, firefox, and libreoffice.
-    
-    R=sky
-    
-    Change-Id: If05e61e6d0ec98ee1a74d442ce29b2ceb5337e86
-    Bug: 998903
-    Low-Coverage-Reason: No existing tests for dark_mode_manager_linux
-    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4701710
-    Reviewed-by: Scott Violet <sky@chromium.org>
-    Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-    Cr-Commit-Position: refs/heads/main@{#1173744}
-
-diff --git a/chrome/browser/ui/views/dark_mode_manager_linux.cc b/chrome/browser/ui/views/dark_mode_manager_linux.cc
-index 4127327433593..6f054ab76b305 100644
---- a/chrome/browser/ui/views/dark_mode_manager_linux.cc
-+++ b/chrome/browser/ui/views/dark_mode_manager_linux.cc
-@@ -67,7 +67,7 @@ DarkModeManagerLinux::DarkModeManagerLinux()
-   if (auto* linux_ui_theme = ui::GetDefaultLinuxUiTheme()) {
-     auto* native_theme = linux_ui_theme->GetNativeTheme();
-     native_theme_observer_.Observe(native_theme);
--    SetColorScheme(native_theme->ShouldUseDarkColors());
-+    SetColorScheme(native_theme->ShouldUseDarkColors(), true);
-   }
- }
- 
-@@ -80,7 +80,7 @@ DarkModeManagerLinux::~DarkModeManagerLinux() {
- 
- void DarkModeManagerLinux::OnNativeThemeUpdated(
-     ui::NativeTheme* observed_theme) {
--  SetColorScheme(observed_theme->ShouldUseDarkColors());
-+  SetColorScheme(observed_theme->ShouldUseDarkColors(), true);
- }
- 
- void DarkModeManagerLinux::OnSignalConnected(const std::string& interface_name,
-@@ -114,7 +114,7 @@ void DarkModeManagerLinux::OnPortalSettingChanged(dbus::Signal* signal) {
-     return;
-   }
- 
--  SetColorScheme(new_color_scheme == kFreedesktopColorSchemeDark);
-+  SetColorScheme(new_color_scheme == kFreedesktopColorSchemeDark, false);
- }
- 
- void DarkModeManagerLinux::OnReadColorSchemeResponse(dbus::Response* response) {
-@@ -137,13 +137,23 @@ void DarkModeManagerLinux::OnReadColorSchemeResponse(dbus::Response* response) {
-     return;
-   }
- 
--  // Ignore future updates from the toolkit theme.
--  native_theme_observer_.Reset();
-+  // Once we read the org.freedesktop.appearance color-scheme setting successfully,
-+  // it should always take precedence over the toolkit color scheme.
-+  ignore_toolkit_theme_changes_ = true;
- 
--  SetColorScheme(new_color_scheme == kFreedesktopColorSchemeDark);
-+  SetColorScheme(new_color_scheme == kFreedesktopColorSchemeDark, false);
- }
- 
--void DarkModeManagerLinux::SetColorScheme(bool prefer_dark_theme) {
-+void DarkModeManagerLinux::SetColorScheme(bool prefer_dark_theme,
-+                                          bool from_toolkit_theme) {
-+  if (from_toolkit_theme && ignore_toolkit_theme_changes_) {
-+    return;
-+  }
-+  if (!from_toolkit_theme) {
-+    for (auto* linux_ui_theme : ui::GetLinuxUiThemes()) {
-+      linux_ui_theme->SetDarkTheme(prefer_dark_theme);
-+    }
-+  }
-   if (prefer_dark_theme_ == prefer_dark_theme) {
-     return;
-   }
-diff --git a/chrome/browser/ui/views/dark_mode_manager_linux.h b/chrome/browser/ui/views/dark_mode_manager_linux.h
-index 34b07ffadbbef..e00d8617e0e23 100644
---- a/chrome/browser/ui/views/dark_mode_manager_linux.h
-+++ b/chrome/browser/ui/views/dark_mode_manager_linux.h
-@@ -44,12 +44,13 @@ class DarkModeManagerLinux : public NativeThemeObserver {
-   void OnReadColorSchemeResponse(dbus::Response* response);
- 
-   // Sets `prefer_dark_theme_` and propagates to the web theme.
--  void SetColorScheme(bool prefer_dark_theme);
-+  void SetColorScheme(bool prefer_dark_theme, bool from_toolkit_theme);
- 
-   scoped_refptr<dbus::Bus> bus_;
-   raw_ptr<dbus::ObjectProxy> settings_proxy_;
- 
-   bool prefer_dark_theme_ = false;
-+  bool ignore_toolkit_theme_changes_ = false;
- 
-   base::ScopedObservation<NativeTheme, NativeThemeObserver>
-       native_theme_observer_{this};
-diff --git a/ui/gtk/gtk_ui.cc b/ui/gtk/gtk_ui.cc
-index 2b6bb89e3071e..a463500570c03 100644
---- a/ui/gtk/gtk_ui.cc
-+++ b/ui/gtk/gtk_ui.cc
-@@ -463,6 +463,14 @@ bool GtkUi::PreferDarkTheme() const {
-   return dark;
- }
- 
-+void GtkUi::SetDarkTheme(bool dark) {
-+  auto* settings = gtk_settings_get_default();
-+  g_object_set(settings, "gtk-application-prefer-dark-theme", dark, nullptr);
-+  // OnThemeChanged() will be called via the
-+  // notify::gtk-application-prefer-dark-theme handler to update the native
-+  // theme.
-+}
-+
- bool GtkUi::AnimationsEnabled() const {
-   gboolean animations_enabled = false;
-   g_object_get(gtk_settings_get_default(), "gtk-enable-animations",
-diff --git a/ui/gtk/gtk_ui.h b/ui/gtk/gtk_ui.h
-index 573ea4066881b..53c02c50dac53 100644
---- a/ui/gtk/gtk_ui.h
-+++ b/ui/gtk/gtk_ui.h
-@@ -106,6 +106,7 @@ class GtkUi : public ui::LinuxUiAndTheme {
-   void GetInactiveSelectionBgColor(SkColor* color) const override;
-   void GetInactiveSelectionFgColor(SkColor* color) const override;
-   bool PreferDarkTheme() const override;
-+  void SetDarkTheme(bool dark) override;
-   std::unique_ptr<ui::NavButtonProvider> CreateNavButtonProvider() override;
-   ui::WindowFrameProvider* GetWindowFrameProvider(bool solid_frame) override;
- 
-diff --git a/ui/linux/fake_linux_ui.cc b/ui/linux/fake_linux_ui.cc
-index d236a0919f66b..8b67f04c25e7d 100644
---- a/ui/linux/fake_linux_ui.cc
-+++ b/ui/linux/fake_linux_ui.cc
-@@ -93,6 +93,8 @@ bool FakeLinuxUi::PreferDarkTheme() const {
-   return false;
- }
- 
-+void FakeLinuxUi::SetDarkTheme(bool dark) {}
-+
- bool FakeLinuxUi::AnimationsEnabled() const {
-   return true;
- }
-diff --git a/ui/linux/fake_linux_ui.h b/ui/linux/fake_linux_ui.h
-index 87aa82c930a35..daba20d196a7c 100644
---- a/ui/linux/fake_linux_ui.h
-+++ b/ui/linux/fake_linux_ui.h
-@@ -64,6 +64,7 @@ class FakeLinuxUi : public LinuxUiAndTheme {
-   void GetInactiveSelectionBgColor(SkColor* color) const override;
-   void GetInactiveSelectionFgColor(SkColor* color) const override;
-   bool PreferDarkTheme() const override;
-+  void SetDarkTheme(bool dark) override;
-   std::unique_ptr<ui::NavButtonProvider> CreateNavButtonProvider() override;
-   ui::WindowFrameProvider* GetWindowFrameProvider(bool solid_frame) override;
- };
-diff --git a/ui/linux/fallback_linux_ui.cc b/ui/linux/fallback_linux_ui.cc
-index ab116fda42b22..6d77be047e202 100644
---- a/ui/linux/fallback_linux_ui.cc
-+++ b/ui/linux/fallback_linux_ui.cc
-@@ -112,7 +112,11 @@ LinuxUi::WindowFrameAction FallbackLinuxUi::GetWindowFrameAction(
- }
- 
- bool FallbackLinuxUi::PreferDarkTheme() const {
--  return false;
-+  return theme_is_dark_;
-+}
-+
-+void FallbackLinuxUi::SetDarkTheme(bool dark) {
-+  theme_is_dark_ = dark;
- }
- 
- bool FallbackLinuxUi::AnimationsEnabled() const {
-diff --git a/ui/linux/fallback_linux_ui.h b/ui/linux/fallback_linux_ui.h
-index 0d0df25ec2caf..9901d4939400d 100644
---- a/ui/linux/fallback_linux_ui.h
-+++ b/ui/linux/fallback_linux_ui.h
-@@ -65,12 +65,14 @@ class FallbackLinuxUi : public LinuxUiAndTheme {
-   void GetInactiveSelectionBgColor(SkColor* color) const override;
-   void GetInactiveSelectionFgColor(SkColor* color) const override;
-   bool PreferDarkTheme() const override;
-+  void SetDarkTheme(bool dark) override;
-   std::unique_ptr<ui::NavButtonProvider> CreateNavButtonProvider() override;
-   ui::WindowFrameProvider* GetWindowFrameProvider(bool solid_frame) override;
- 
-  private:
-   std::string default_font_family_;
-   gfx::FontRenderParams default_font_render_params_;
-+  bool theme_is_dark_ = false;
- };
- 
- }  // namespace ui
-diff --git a/ui/linux/linux_ui.h b/ui/linux/linux_ui.h
-index 45b36fbeeabc4..a47134d7fa672 100644
---- a/ui/linux/linux_ui.h
-+++ b/ui/linux/linux_ui.h
-@@ -300,6 +300,10 @@ class COMPONENT_EXPORT(LINUX_UI) LinuxUiTheme {
-   // preferred.
-   virtual bool PreferDarkTheme() const = 0;
- 
-+  // Override the toolkit's dark mode preference.  Used when the dark mode
-+  // setting is provided by org.freedesktop.appearance instead of the toolkit.
-+  virtual void SetDarkTheme(bool dark) = 0;
-+
-   // Returns a new NavButtonProvider, or nullptr if the underlying
-   // toolkit does not support drawing client-side navigation buttons.
-   virtual std::unique_ptr<NavButtonProvider> CreateNavButtonProvider() = 0;
-diff --git a/ui/linux/linux_ui_factory.cc b/ui/linux/linux_ui_factory.cc
-index 5555ff3bf21f4..21be358d2af8e 100644
---- a/ui/linux/linux_ui_factory.cc
-+++ b/ui/linux/linux_ui_factory.cc
-@@ -10,6 +10,7 @@
- #include "base/command_line.h"
- #include "base/environment.h"
- #include "base/nix/xdg_util.h"
-+#include "base/no_destructor.h"
- #include "base/strings/string_util.h"
- #include "build/chromecast_buildflags.h"
- #include "ui/base/buildflags.h"
-@@ -35,10 +36,16 @@ namespace {
- 
- const char kUiToolkitFlag[] = "ui-toolkit";
- 
-+std::vector<LinuxUiTheme*>& GetLinuxUiThemesImpl() {
-+  static base::NoDestructor<std::vector<LinuxUiTheme*>> themes;
-+  return *themes;
-+}
-+
- std::unique_ptr<LinuxUiAndTheme> CreateGtkUi() {
- #if BUILDFLAG(USE_GTK)
-   auto gtk_ui = BuildGtkUi();
-   if (gtk_ui->Initialize()) {
-+    GetLinuxUiThemesImpl().push_back(gtk_ui.get());
-     return gtk_ui;
-   }
- #endif
-@@ -61,6 +68,7 @@ std::unique_ptr<LinuxUiAndTheme> CreateQtUi() {
- #if BUILDFLAG(USE_QT)
-   auto qt_ui = qt::CreateQtUi(GetGtkUi());
-   if (qt_ui->Initialize()) {
-+    GetLinuxUiThemesImpl().push_back(qt_ui.get());
-     return qt_ui;
-   }
- #endif
-@@ -156,6 +164,10 @@ LinuxUiTheme* GetLinuxUiTheme(SystemTheme system_theme) {
-   }
- }
- 
-+const std::vector<LinuxUiTheme*>& GetLinuxUiThemes() {
-+  return GetLinuxUiThemesImpl();
-+}
-+
- SystemTheme GetDefaultSystemTheme() {
-   std::unique_ptr<base::Environment> env = base::Environment::Create();
- 
-diff --git a/ui/linux/linux_ui_factory.h b/ui/linux/linux_ui_factory.h
-index 5d4f4f4761972..2f4820f2c6240 100644
---- a/ui/linux/linux_ui_factory.h
-+++ b/ui/linux/linux_ui_factory.h
-@@ -32,6 +32,10 @@ LinuxUiTheme* GetDefaultLinuxUiTheme();
- COMPONENT_EXPORT(LINUX_UI_FACTORY)
- LinuxUiTheme* GetLinuxUiTheme(SystemTheme system_theme);
- 
-+// Returns all `LinuxUiTheme`s that have been created.
-+COMPONENT_EXPORT(LINUX_UI_FACTORY)
-+const std::vector<LinuxUiTheme*>& GetLinuxUiThemes();
-+
- COMPONENT_EXPORT(LINUX_UI_FACTORY)
- SystemTheme GetDefaultSystemTheme();
- 
-diff --git a/ui/qt/qt_ui.cc b/ui/qt/qt_ui.cc
-index cd12c72a3cad4..37e165d76305e 100644
---- a/ui/qt/qt_ui.cc
-+++ b/ui/qt/qt_ui.cc
-@@ -355,6 +355,11 @@ bool QtUi::PreferDarkTheme() const {
-       shim_->GetColor(ColorType::kWindowBg, ColorState::kNormal));
- }
- 
-+DISABLE_CFI_VCALL
-+void QtUi::SetDarkTheme(bool dark) {
-+  // Qt::ColorScheme is only available in QT 6.5 and later.
-+}
-+
- DISABLE_CFI_VCALL
- bool QtUi::AnimationsEnabled() const {
-   return shim_->GetAnimationDurationMs() > 0;
-diff --git a/ui/qt/qt_ui.h b/ui/qt/qt_ui.h
-index 38ce8719ee1d8..787a9556b1264 100644
---- a/ui/qt/qt_ui.h
-+++ b/ui/qt/qt_ui.h
-@@ -82,6 +82,7 @@ class QtUi : public ui::LinuxUiAndTheme, QtInterface::Delegate {
-   void GetInactiveSelectionBgColor(SkColor* color) const override;
-   void GetInactiveSelectionFgColor(SkColor* color) const override;
-   bool PreferDarkTheme() const override;
-+  void SetDarkTheme(bool dark) override;
-   std::unique_ptr<ui::NavButtonProvider> CreateNavButtonProvider() override;
-   ui::WindowFrameProvider* GetWindowFrameProvider(bool solid_frame) override;
- 

diff --git a/chromium-115-python-3.12-deprecated.patch b/chromium-115-python-3.12-deprecated.patch
deleted file mode 100644
index f6fe3a2..0000000
--- a/chromium-115-python-3.12-deprecated.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-diff -up chromium-115.0.5790.102/base/write_build_date_header.py.me chromium-115.0.5790.102/base/write_build_date_header.py
---- chromium-115.0.5790.102/base/write_build_date_header.py.me	2023-07-22 14:23:42.620679397 +0200
-+++ chromium-115.0.5790.102/base/write_build_date_header.py	2023-07-22 15:24:46.833310310 +0200
-@@ -17,7 +17,7 @@ def main():
-   args = argument_parser.parse_args()
- 
-   date_val = int(args.timestamp)
--  date = datetime.datetime.utcfromtimestamp(date_val)
-+  date =  datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
-   output = ('// Generated by //base/write_build_date_header.py\n'
-             '#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
-             f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
-diff -up chromium-115.0.5790.102/build/write_buildflag_header.py.me chromium-115.0.5790.102/build/write_buildflag_header.py
---- chromium-115.0.5790.102/build/write_buildflag_header.py.me	2023-07-22 14:16:14.196975451 +0200
-+++ chromium-115.0.5790.102/build/write_buildflag_header.py	2023-07-22 14:20:24.977239994 +0200
-@@ -44,7 +44,7 @@ def GetOptions():
-   header_guard = cmdline_options.output.upper()
-   if header_guard[0].isdigit():
-     header_guard = '_' + header_guard
--  header_guard = re.sub('[^\w]', '_', header_guard)
-+  header_guard = re.sub(r'[^\w]', '_', header_guard)
-   header_guard += '_'
- 
-   # The actual output file is inside the gen dir.
-diff -up chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py
---- chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me	2023-07-22 14:47:34.230764210 +0200
-+++ chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py	2023-07-22 15:11:50.360983383 +0200
-@@ -9,7 +9,8 @@
- """
- from __future__ import print_function
- import abc
--import imp
-+import types
-+import importlib
- import optparse
- import os
- import re
-@@ -40,6 +41,12 @@ class GoogleProtobufModuleImporter:
-         return filepath
-     return None
- 
-+  def load_source(name: str, path: str) -> types.ModuleType:
-+    spec = importlib.util.spec_from_file_location(name, path)
-+    module = importlib.util.module_from_spec(spec)
-+    spec.loader.exec_module(module)
-+    return module
-+
-   def _module_exists(self, fullname):
-     return self._fullname_to_filepath(fullname) is not None
- 
-@@ -68,7 +75,7 @@ class GoogleProtobufModuleImporter:
-       raise ImportError(fullname)
- 
-     filepath = self._fullname_to_filepath(fullname)
--    return imp.load_source(fullname, filepath)
-+    return load_source(fullname, filepath)
- 
- class BinaryProtoGenerator:
- 
-diff -up chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py
---- chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me	2023-07-22 15:17:19.114258801 +0200
-+++ chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py	2023-07-22 15:17:43.368200491 +0200
-@@ -32,7 +32,7 @@ def FilterLine(filename, line, output):
-     return
- 
-   if line.startswith("goog.provide"):
--    match = re.match("goog.provide\('([^']+)'\);", line)
-+    match = re.match(r"goog.provide\('([^']+)'\);", line)
-     if not match:
-       print("Invalid goog.provide line in %s:\n%s" % (filename, line))
-       sys.exit(1)
-diff -up chromium-115.0.5790.102/mojo/public/tools/mojom/mojom/parse/lexer.py.me chromium-115.0.5790.102/mojo/public/tools/mojom/mojom/parse/lexer.py
---- chromium-115.0.5790.102/mojo/public/tools/mojom/mojom/parse/lexer.py.me	2023-07-22 14:10:40.372979365 +0200
-+++ chromium-115.0.5790.102/mojo/public/tools/mojom/mojom/parse/lexer.py	2023-07-22 14:13:31.200453442 +0200
-@@ -2,7 +2,6 @@
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- 
--import imp
- import os.path
- import sys
- 
-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 -up chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-tools/src/build-gn/generate_vulkan_layers_json.py.me chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-tools/src/build-gn/generate_vulkan_layers_json.py
-diff -up chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-validation-layers/src/build-gn/generate_vulkan_layers_json.py.me chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-validation-layers/src/build-gn/generate_vulkan_layers_json.py
---- chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-validation-layers/src/build-gn/generate_vulkan_layers_json.py.me	2023-07-22 16:02:48.330050088 +0200
-+++ chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-validation-layers/src/build-gn/generate_vulkan_layers_json.py	2023-07-22 16:03:02.320023617 +0200
-@@ -28,7 +28,6 @@ import platform
- import sys
- 
- def glob_slash(dirname):
--    """Like regular glob but replaces \ with / in returned paths."""
-     return [s.replace('\\', '/') for s in glob.glob(dirname)]
- 
- def main():
-diff -up chromium-115.0.5790.102/mojo/public/tools/mojom/mojom/fileutil.py.python-imp-deprecated chromium-115.0.5790.102/mojo/public/tools/mojom/mojom/fileutil.py
---- chromium-115.0.5790.102/mojo/public/tools/mojom/mojom/fileutil.py.python-imp-deprecated	2023-07-21 05:41:02.000000000 +0200
-+++ chromium-115.0.5790.102/mojo/public/tools/mojom/mojom/fileutil.py	2023-07-22 14:45:20.440127549 +0200
-@@ -3,7 +3,6 @@
- # found in the LICENSE file.
- 
- import errno
--import imp
- import os.path
- import sys
- 

diff --git a/chromium-115-workaround_clang_bug-structured_binding.patch b/chromium-115-workaround_clang_bug-structured_binding.patch
deleted file mode 100644
index a70cdd9..0000000
--- a/chromium-115-workaround_clang_bug-structured_binding.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc
---- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding	2023-06-07 21:48:37.000000000 +0200
-+++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc	2023-06-17 16:53:20.216628557 +0200
-@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
- void CdmPromiseAdapter::Clear(ClearReason reason) {
-   // Reject all outstanding promises.
-   DCHECK(thread_checker_.CalledOnValidThread());
--  for (auto& [promise_id, promise] : promises_) {
-+  for (auto& [p_i, p_e] : promises_) {
-+    auto& promise_id = p_i;
-+    auto& promise = p_e;
-     TRACE_EVENT_NESTABLE_ASYNC_END1(
-         "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
-         "status", "cleared");
-diff -up chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
---- chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding	2023-06-07 21:48:41.000000000 +0200
-+++ chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc	2023-06-17 18:47:06.001403966 +0200
-@@ -238,7 +238,10 @@ const NGLayoutResult* NGGridLayoutAlgori
-                               : BuildGridSizingTree(&oof_children);
- 
-   LayoutUnit intrinsic_block_size;
--  auto& [grid_items, layout_data, tree_size] = grid_sizing_tree.TreeRootData();
-+  auto& [g_i, l_d, t_s] = grid_sizing_tree.TreeRootData();
-+  auto& grid_items = g_i;
-+  auto& layout_data = l_d;
-+  auto& tree_size = t_s;
- 
-   if (IsBreakInside(BreakToken())) {
-     // TODO(layout-dev): When we support variable inline-size fragments we'll
-@@ -655,8 +658,10 @@ NGGridSizingTree NGGridLayoutAlgorithm::
-   NGGridSizingTree sizing_tree;
- 
-   if (const auto* layout_subtree = ConstraintSpace().GridLayoutSubtree()) {
--    auto& [grid_items, layout_data, subtree_size] =
--        sizing_tree.CreateSizingData();
-+    auto& [g_i, l_d, s_s] = sizing_tree.CreateSizingData();
-+    auto& grid_items = g_i;
-+    auto& layout_data = l_d;
-+    auto& subtree_size = s_s;
- 
-     const auto& node = Node();
-     grid_items =
-@@ -1798,8 +1803,10 @@ void NGGridLayoutAlgorithm::CompleteTrac
-     bool* opt_needs_additional_pass) const {
-   DCHECK(sizing_subtree);
- 
--  auto& [grid_items, layout_data, subtree_size] =
--      sizing_subtree.SubtreeRootData();
-+  auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData();
-+  auto& grid_items = g_i;
-+  auto& layout_data = l_d;
-+  auto& subtree_size = s_s;
- 
-   const bool is_for_columns = track_direction == kForColumns;
-   const bool has_non_definite_track =
-@@ -1924,8 +1931,10 @@ template <typename CallbackFunc>
- void NGGridLayoutAlgorithm::ForEachSubgrid(
-     const NGGridSizingSubtree& sizing_subtree,
-     const CallbackFunc& callback_func) const {
--  auto& [grid_items, layout_data, subtree_size] =
--      sizing_subtree.SubtreeRootData();
-+  auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData();
-+  auto& grid_items = g_i;
-+  auto& layout_data = l_d;
-+  auto& subtree_size = s_s;
- 
-   // If we know this subtree doesn't have nested subgrids we can exit early
-   // instead of iterating over every grid item looking for them.
-diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc
---- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me	2023-06-19 08:04:02.287072722 +0200
-+++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc	2023-06-19 08:18:24.576814950 +0200
-@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP
-     return;
-   }
- 
--  auto [document_url, key, callback] = std::move(*request);
-+  auto [d_u, key, callback] = std::move(*request);
-+  auto document_url = d_u;
- 
-   DCHECK(document_url.is_valid());
-   TRACE_EVENT1("ServiceWorker",

diff --git a/chromium-116-missing-header-files.patch b/chromium-116-missing-header-files.patch
deleted file mode 100644
index 14983d9..0000000
--- a/chromium-116-missing-header-files.patch
+++ /dev/null
@@ -1,479 +0,0 @@
-diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
---- chromium-110.0.5481.177/base/memory/ref_counted.h.me	2023-02-23 13:34:33.174817255 -0500
-+++ chromium-110.0.5481.177/base/memory/ref_counted.h	2023-02-23 13:42:28.646052469 -0500
-@@ -6,6 +6,7 @@
- #define BASE_MEMORY_REF_COUNTED_H_
- 
- #include <stddef.h>
-+#include <limits>
- 
- #include <utility>
- 
-diff -up chromium-109.0.5414.74/base/check_op.h.me chromium-109.0.5414.74/base/check_op.h
---- chromium-109.0.5414.74/base/check_op.h.me	2023-01-17 17:39:27.620875883 +0100
-+++ chromium-109.0.5414.74/base/check_op.h	2023-01-17 17:39:42.546060957 +0100
-@@ -5,6 +5,7 @@
- #ifndef BASE_CHECK_OP_H_
- #define BASE_CHECK_OP_H_
- 
-+#include <cstdint>
- #include <cstddef>
- #include <string>
- #include <type_traits>
-diff -up chromium-109.0.5414.74/base/debug/profiler.h.me chromium-109.0.5414.74/base/debug/profiler.h
---- chromium-109.0.5414.74/base/debug/profiler.h.me	2023-01-17 16:29:26.368090073 +0100
-+++ chromium-109.0.5414.74/base/debug/profiler.h	2023-01-17 16:59:41.190628679 +0100
-@@ -7,6 +7,7 @@
- 
- #include <stddef.h>
- 
-+#include <cstdint>
- #include <string>
- 
- #include "base/base_export.h"
-diff -up chromium-109.0.5414.74/gpu/config/gpu_feature_info.h.me chromium-109.0.5414.74/gpu/config/gpu_feature_info.h
---- chromium-109.0.5414.74/gpu/config/gpu_feature_info.h.me	2023-01-17 19:06:53.530675129 +0100
-+++ chromium-109.0.5414.74/gpu/config/gpu_feature_info.h	2023-01-17 19:07:08.874849879 +0100
-@@ -5,6 +5,7 @@
- #ifndef GPU_CONFIG_GPU_FEATURE_INFO_H_
- #define GPU_CONFIG_GPU_FEATURE_INFO_H_
- 
-+#include <cstdint>
- #include <string>
- #include <vector>
- 
-diff -up chromium-109.0.5414.74/net/base/net_export.h.me chromium-109.0.5414.74/net/base/net_export.h
---- chromium-109.0.5414.74/net/base/net_export.h.me	2023-01-17 18:16:34.133854615 +0100
-+++ chromium-109.0.5414.74/net/base/net_export.h	2023-01-17 18:16:15.945623153 +0100
-@@ -5,6 +5,8 @@
- #ifndef NET_BASE_NET_EXPORT_H_
- #define NET_BASE_NET_EXPORT_H_
- 
-+#include <cstdint>
-+
- // Defines NET_EXPORT so that functionality implemented by the net module can
- // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
- // access features not intended to be used directly by real consumers.
-diff -up chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h
---- chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me	2023-01-17 17:12:34.184686515 +0100
-+++ chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h	2023-01-17 17:13:16.537162420 +0100
-@@ -5,6 +5,7 @@
- #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
- #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
- 
-+#include <cstdint>
- #include <bitset>
- #include <string>
- 
-diff -up chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h.me chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h
---- chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h.me	2023-01-17 17:33:20.895717307 +0100
-+++ chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h	2023-01-17 17:34:03.456185365 +0100
-@@ -27,6 +27,7 @@
- #ifndef ABSL_STRINGS_STRING_VIEW_H_
- #define ABSL_STRINGS_STRING_VIEW_H_
- 
-+#include <cstdint>
- #include <algorithm>
- #include <cassert>
- #include <cstddef>
-diff -up chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h.me chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h
---- chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h.me	2023-01-17 17:36:15.017616250 +0100
-+++ chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h	2023-01-17 17:36:48.960982195 +0100
-@@ -10,6 +10,7 @@
- #ifndef GLSLANG_SHADERVARS_H_
- #define GLSLANG_SHADERVARS_H_
- 
-+#include <cstdint>
- #include <algorithm>
- #include <array>
- #include <string>
-diff -up chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.me chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
---- chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.me	2023-01-17 19:17:40.480876171 +0100
-+++ chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h	2023-01-17 19:17:46.803958320 +0100
-@@ -5,6 +5,7 @@
- #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_BLUETOOTH_WEB_BLUETOOTH_DEVICE_ID_H_
- #define THIRD_PARTY_BLINK_PUBLIC_COMMON_BLUETOOTH_WEB_BLUETOOTH_DEVICE_ID_H_
- 
-+#include <cstdint>
- #include <array>
- #include <string>
- 
-diff -up chromium-109.0.5414.74/third_party/dawn/src/tint/reader/spirv/namer.h.me chromium-109.0.5414.74/third_party/dawn/src/tint/reader/spirv/namer.h
---- chromium-109.0.5414.74/third_party/dawn/src/tint/reader/spirv/namer.h.me	2023-01-17 18:02:44.681538107 +0100
-+++ chromium-109.0.5414.74/third_party/dawn/src/tint/reader/spirv/namer.h	2023-01-17 18:02:57.208679140 +0100
-@@ -15,6 +15,7 @@
- #ifndef SRC_TINT_READER_SPIRV_NAMER_H_
- #define SRC_TINT_READER_SPIRV_NAMER_H_
- 
-+#include <cstdint>
- #include <string>
- #include <unordered_map>
- #include <vector>
-diff -up chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.me chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
---- chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.me	2023-01-18 15:22:38.472940648 +0100
-+++ chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h	2023-01-18 15:23:09.380255101 +0100
-@@ -5,6 +5,7 @@
- #ifndef DISCOVERY_DNSSD_PUBLIC_DNS_SD_TXT_RECORD_H_
- #define DISCOVERY_DNSSD_PUBLIC_DNS_SD_TXT_RECORD_H_
- 
-+#include <cstdint>
- #include <functional>
- #include <map>
- #include <set>
-diff -up chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp.me chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp
---- chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp.me	2023-01-17 15:37:48.530626516 +0100
-+++ chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp	2023-01-17 16:57:46.025548092 +0100
-@@ -17,6 +17,7 @@
- 
- #include "System/Debug.hpp"
- 
-+#include <cstdint>
- #include <cstddef>
- #include <functional>
- #include <unordered_set>
-diff -up chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.me chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
---- chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.me	2023-01-17 15:40:23.854386206 +0100
-+++ chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h	2023-01-17 16:58:19.397862885 +0100
-@@ -2388,6 +2388,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeV
- #ifdef VMA_IMPLEMENTATION
- #undef VMA_IMPLEMENTATION
- 
-+#include <cstdio>
- #include <cstdint>
- #include <cstdlib>
- #include <cstring>
-diff -up chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h.me chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h
---- chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h.me	2023-01-17 18:08:25.745491353 +0100
-+++ chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h	2023-01-17 18:08:35.777667632 +0100
-@@ -5,6 +5,7 @@
- #ifndef UI_GFX_LINEAR_GRADIENT_H_
- #define UI_GFX_LINEAR_GRADIENT_H_
- 
-+#include <cstdint>
- #include <array>
- #include <string>
- 
-diff -up chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h.me chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h
---- chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h.me	2023-01-19 10:10:21.287876736 +0100
-+++ chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h	2023-01-19 10:11:21.714778896 +0100
-@@ -17,6 +17,7 @@ limitations under the License.
- #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
- 
- #ifdef RUY_PROFILER
-+#include <string>
- #include <cstdio>
- #include <mutex>
- #include <vector>
-diff -up chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.me chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
---- chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.me	2023-01-19 10:30:27.533861985 +0100
-+++ chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h	2023-01-19 10:31:12.585554183 +0100
-@@ -31,6 +31,7 @@ limitations under the License.
- #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
- #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
- 
-+#include <cstdint>
- #include <complex>
- #include <deque>
- #include <vector>
-diff -up chromium-109.0.5414.74/base/containers/flat_map.h.mee chromium-109.0.5414.74/base/containers/flat_map.h
---- chromium-109.0.5414.74/base/containers/flat_map.h.mee	2023-01-19 10:59:52.214957773 +0100
-+++ chromium-109.0.5414.74/base/containers/flat_map.h	2023-01-19 11:00:06.415215309 +0100
-@@ -5,6 +5,7 @@
- #ifndef BASE_CONTAINERS_FLAT_MAP_H_
- #define BASE_CONTAINERS_FLAT_MAP_H_
- 
-+#include <cstdint>
- #include <functional>
- #include <tuple>
- #include <utility>
-diff -up chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h.mee chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h
---- chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h.mee	2023-01-19 10:36:40.571422826 +0100
-+++ chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h	2023-01-19 10:36:49.343565294 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
- #define COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
- 
-+#include <cstdint>
- #include <string>
- 
- #include "build/build_config.h"
-diff -up chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h.mee chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h
---- chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h.mee	2023-01-19 11:45:15.953159755 +0100
-+++ chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h	2023-01-19 11:45:22.320246241 +0100
-@@ -5,6 +5,8 @@
- #ifndef UI_BASE_PREDICTION_KALMAN_FILTER_H_
- #define UI_BASE_PREDICTION_KALMAN_FILTER_H_
- 
-+#include <cstdint>
-+
- #include "base/component_export.h"
- #include "ui/gfx/geometry/matrix3_f.h"
- 
-diff -up chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h.me chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h
---- chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h.me	2023-01-19 15:20:07.620987949 +0100
-+++ chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h	2023-01-19 15:20:18.324173702 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
- #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
- 
-+#include <cstdint>
- #include <string>
- 
- 
-diff -up chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h.me chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h
---- chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h.me	2023-01-19 16:00:14.350186515 +0100
-+++ chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h	2023-01-19 16:00:21.643307993 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
- #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
- 
-+#include <cstdint>
- #include <string>
- 
- namespace feature_engagement {
-diff -up chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h.me chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h
---- chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h.me	2023-01-19 15:59:18.210239416 +0100
-+++ chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h	2023-01-19 15:59:34.513515030 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
- #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
- 
-+#include <cstdint>
- #include <string>
- 
- #include "components/feature_engagement/internal/event_storage_validator.h"
-diff -up chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.me chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
---- chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.me	2023-01-19 16:09:29.216477182 +0100
-+++ chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc	2023-01-19 16:10:05.657089208 +0100
-@@ -45,6 +45,7 @@
- #include "llvm/Support/SaveAndRestore.h"
- #include "llvm/Support/raw_ostream.h"
- #include <algorithm>
-+#include <cstdint>
- #include <string>
- #include <sysexits.h>
- #ifdef HAVE_BACKTRACE
-diff -up chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h.me chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h
---- chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h.me	2023-01-19 16:32:05.338160131 +0100
-+++ chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h	2023-01-19 16:32:16.213326798 +0100
-@@ -5,6 +5,7 @@
- #ifndef CHROME_BROWSER_PRIVACY_BUDGET_ENCOUNTERED_SURFACE_TRACKER_H_
- #define CHROME_BROWSER_PRIVACY_BUDGET_ENCOUNTERED_SURFACE_TRACKER_H_
- 
-+#include <cstdint>
- #include <map>
- 
- #include "base/containers/flat_set.h"
-diff -up chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h.me chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h
---- chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h.me	2023-01-19 16:47:55.548571102 +0100
-+++ chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h	2023-01-19 16:48:29.214146529 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
- #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
- 
-+#include <cstdint>
- #include <string>
- 
- class GURL;
-diff -up chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h.me chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h
---- chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h.me	2023-01-19 16:57:29.525372814 +0100
-+++ chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h	2023-01-19 16:58:02.667979288 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
- #define COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
- 
-+#include <cstdint>
- #include <string>
- #include <utility>
- #include <vector>
-diff -up chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h.me chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h
---- chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h.me	2023-01-19 17:02:45.258544665 +0100
-+++ chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h	2023-01-19 17:02:52.577611757 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
- #define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
- 
-+#include <cstdint>
- #include <stddef.h>
- 
- #include <string>
-diff -up chromium-109.0.5414.74/pdf/document_attachment_info.h.me chromium-109.0.5414.74/pdf/document_attachment_info.h
---- chromium-109.0.5414.74/pdf/document_attachment_info.h.me	2023-01-19 17:28:28.552063534 +0100
-+++ chromium-109.0.5414.74/pdf/document_attachment_info.h	2023-01-19 17:28:48.072379953 +0100
-@@ -5,6 +5,7 @@
- #ifndef PDF_DOCUMENT_ATTACHMENT_INFO_H_
- #define PDF_DOCUMENT_ATTACHMENT_INFO_H_
- 
-+#include <cstdint>
- #include <string>
- 
- 
-diff -up chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h.me chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h
---- chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h.me	2023-01-19 18:25:47.648193710 +0100
-+++ chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h	2023-01-19 18:26:11.488593556 +0100
-@@ -5,6 +5,8 @@
- #ifndef CONSTANTS_ANNOTATION_FLAGS_H_
- #define CONSTANTS_ANNOTATION_FLAGS_H_
- 
-+#include <cstdint>
-+
- namespace pdfium {
- namespace annotation_flags {
- 
-diff -up chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
---- chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me	2023-04-15 16:44:55.344305412 +0200
-+++ chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h	2023-04-15 16:47:09.028666995 +0200
-@@ -2854,6 +2854,7 @@ static void vma_aligned_free(void* VMA_N
- 
- // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
- #if VMA_STATS_STRING_ENABLED
-+#include <stdio.h>
-     static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
-     {
-         snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
-diff -up chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h
---- chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me	2023-04-18 15:55:44.774916319 +0200
-+++ chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h	2023-04-18 15:55:54.441085882 +0200
-@@ -8,6 +8,7 @@
- #include <memory>
- #include <string>
- #include <vector>
-+#include <variant>
- 
- #include "base/containers/span.h"
- #include "base/functional/callback_forward.h"
-diff -up chromium-113.0.5672.37/gin/time_clamper.h.me chromium-113.0.5672.37/gin/time_clamper.h
---- chromium-113.0.5672.37/gin/time_clamper.h.me	2023-04-18 16:38:41.180437467 +0200
-+++ chromium-113.0.5672.37/gin/time_clamper.h	2023-04-18 16:39:43.857049432 +0200
-@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
-     const int64_t micros = now_micros % 1000;
-     // abs() is necessary for devices with times before unix-epoch (most likely
-     // configured incorrectly).
--    if (abs(micros) + kResolutionMicros < 1000) {
-+    if (std::abs(micros) + kResolutionMicros < 1000) {
-       return now_micros / 1000;
-     }
-     return ClampTimeResolution(now_micros) / 1000;
-diff -up chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc
---- chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me	2023-04-21 08:07:55.362714544 +0200
-+++ chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc	2023-04-21 08:14:35.424158693 +0200
-@@ -10,6 +10,7 @@
- #include <queue>
- #include <utility>
- #include <vector>
-+#include <cstring>
- 
- #include "base/check.h"
- #include "base/files/file_path.h"
-diff -up chromium-116.0.5845.50/components/bookmarks/common/url_load_stats.h.me chromium-116.0.5845.50/components/bookmarks/common/url_load_stats.h
---- chromium-116.0.5845.50/components/bookmarks/common/url_load_stats.h.me	2023-08-01 15:07:06.940881439 +0200
-+++ chromium-116.0.5845.50/components/bookmarks/common/url_load_stats.h	2023-08-01 15:09:29.301537450 +0200
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_BOOKMARKS_COMMON_URL_LOAD_STATS_H_
- #define COMPONENTS_BOOKMARKS_COMMON_URL_LOAD_STATS_H_
- 
-+#include <cstddef>
- #include <cstdint>
- #include <vector>
- 
-diff -up chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h
---- chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me	2023-07-30 19:44:54.718846606 +0200
-+++ chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h	2023-07-30 19:45:14.829249467 +0200
-@@ -8,6 +8,7 @@
- #include <array>
- #include <memory>
- #include <utility>
-+#include <variant>
- 
- #include "base/dcheck_is_on.h"
- #include "base/memory/ptr_util.h"
-diff -up chromium-116.0.5845.50/chrome/browser/ui/profile_view_utils.h.me chromium-116.0.5845.50/chrome/browser/ui/profile_view_utils.h
---- chromium-116.0.5845.50/chrome/browser/ui/profile_view_utils.h.me	2023-07-31 13:40:18.171175385 +0200
-+++ chromium-116.0.5845.50/chrome/browser/ui/profile_view_utils.h	2023-07-31 13:43:38.185244234 +0200
-@@ -7,6 +7,7 @@
- 
- #include <string>
- #include <utility>
-+#include <vector>
- 
- class Profile;
- class ProfileAttributesEntry;
-diff -up chromium-115.0.5790.32/skia/ext/skcolorspace_trfn.cc.me chromium-115.0.5790.32/skia/ext/skcolorspace_trfn.cc
---- chromium-115.0.5790.32/skia/ext/skcolorspace_trfn.cc.me	2023-06-18 12:33:52.387412788 +0200
-+++ chromium-115.0.5790.32/skia/ext/skcolorspace_trfn.cc	2023-06-18 12:35:28.229148935 +0200
-@@ -3,6 +3,7 @@
- // found in the LICENSE file.
- 
- #include "skia/ext/skcolorspace_trfn.h"
-+#include <cmath>
- 
- namespace skia {
- 
-diff -up chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h
---- chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint	2021-11-19 17:05:31.379750350 -0500
-+++ chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h	2021-11-19 17:07:35.191520127 -0500
-@@ -11,6 +11,7 @@
- #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
- #define COMMON_VIDEO_H264_SPS_PARSER_H_
- 
-+#include <cstdint>
- #include "absl/types/optional.h"
- #include "rtc_base/bitstream_reader.h"
- 
-diff -up chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h
---- chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint	2021-11-12 05:28:10.000000000 -0500
-+++ chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h	2021-11-19 17:05:31.379750350 -0500
-@@ -11,6 +11,7 @@
- #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
- #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
- 
-+#include <cstdint>
- #include <limits>
- 
- #include "absl/types/optional.h"
-diff -up chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h.missing-cstdint chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h
---- chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h.missing-cstdint	2021-11-12 05:25:24.000000000 -0500
-+++ chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h	2021-11-19 17:05:31.379750350 -0500
-@@ -9,6 +9,8 @@
- 
- #include "ui/gfx/buffer_types.h"
- 
-+#include <cstdint>
-+
- namespace ui {
- 
- int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
-diff -up chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc
---- chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring	2021-11-12 05:28:09.000000000 -0500
-+++ chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc	2021-11-19 17:10:02.927438695 -0500
-@@ -8,6 +8,8 @@
-  *  be found in the AUTHORS file in the root of the source tree.
-  */
- 
-+#include <cstring>
-+
- #include "audio/utility/channel_mixer.h"
- 
- #include "audio/utility/channel_mixing_matrix.h"
-diff -up chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
---- chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring	2021-11-12 05:28:10.000000000 -0500
-+++ chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc	2021-11-19 17:10:02.928438701 -0500
-@@ -10,6 +10,7 @@
- 
- #include "modules/video_coding/utility/ivf_file_reader.h"
- 
-+#include <cstring>
- #include <string>
- #include <vector>
- 
-diff -up chromium-116.0.5845.96/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc.me chromium-116.0.5845.96/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc
---- chromium-116.0.5845.96/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc.me	2023-08-15 10:42:54.732984421 +0200
-+++ chromium-116.0.5845.96/third_party/abseil-cpp/absl/debugging/internal/stacktrace_aarch64-inl.inc	2023-08-15 10:43:31.125950897 +0200
-@@ -13,6 +13,7 @@
- #include <cassert>
- #include <cstdint>
- #include <iostream>
-+#include <limits>
- 
- #include "absl/base/attributes.h"
- #include "absl/debugging/internal/address_is_readable.h"

diff --git a/chromium-116-v4l2-num_delta_pocs_of_ref_rps_idx.patch b/chromium-116-v4l2-num_delta_pocs_of_ref_rps_idx.patch
deleted file mode 100644
index ec91c3c..0000000
--- a/chromium-116-v4l2-num_delta_pocs_of_ref_rps_idx.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-commit 992f2b837f7c150bebe40a8186420c5c065b71f8
-Author: Chen-Yu Tsai <wenst@chromium.org>
-Date:   Mon Jul 31 04:50:11 2023 +0000
-
-    media/gpu/v4l2: Only set HEVC .num_delta_pocs_of_ref_rps_idx on ChromeOS
-    
-    The HEVC decode parameter .num_delta_pocs_of_ref_rps_idx field was
-    very recently added to support MediaTek's stateless HEVC decoder. It
-    was accepted upstream, but hasn't been part of a release yet, and so
-    hasn't trickled down into a distro package that can be included in the
-    sysroots.
-    
-    Guard the field assignment for now so that the Linux builds can proceed.
-    
-    Bug: b:258331312, b:291169645
-    Cq-Include-Trybots: luci.chromium.try:linux-v4l2-codec-rel
-    Change-Id: I1629be2373e7d67ea06a206226ad09bce90c3752
-    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4728846
-    Reviewed-by: Nathan Hebert <nhebert@chromium.org>
-    Auto-Submit: Chen-Yu Tsai <wenst@chromium.org>
-    Commit-Queue: Chen-Yu Tsai <wenst@chromium.org>
-    Cr-Commit-Position: refs/heads/main@{#1177093}
-
-diff --git a/media/gpu/v4l2/v4l2_video_decoder_delegate_h265.cc b/media/gpu/v4l2/v4l2_video_decoder_delegate_h265.cc
-index d683fbb5407a4..0f02f39758fe9 100644
---- a/media/gpu/v4l2/v4l2_video_decoder_delegate_h265.cc
-+++ b/media/gpu/v4l2/v4l2_video_decoder_delegate_h265.cc
-@@ -11,6 +11,7 @@
- #include <type_traits>
- 
- #include "base/logging.h"
-+#include "build/build_config.h"
- #include "media/gpu/macros.h"
- #include "media/gpu/v4l2/v4l2_decode_surface.h"
- #include "media/gpu/v4l2/v4l2_decode_surface_handler.h"
-@@ -410,8 +411,14 @@ V4L2VideoDecoderDelegateH265::SubmitFrameMetadata(
-       .pic_order_cnt_val = pic->pic_order_cnt_val_,
-       .short_term_ref_pic_set_size = static_cast<__u16>(slice_hdr->st_rps_bits),
-       .long_term_ref_pic_set_size = static_cast<__u16>(slice_hdr->lt_rps_bits),
-+#if BUILDFLAG(IS_CHROMEOS)
-+      // .num_delta_pocs_of_ref_rps_idx is upstream but not yet pulled
-+      // into linux build sysroot.
-+      // TODO(wenst): Remove once linux-libc-dev package is updated to
-+      // at least v6.5 in the sysroots.
-       .num_delta_pocs_of_ref_rps_idx =
-           static_cast<__u8>(slice_hdr->st_ref_pic_set.rps_idx_num_delta_pocs),
-+#endif
-       .flags = static_cast<__u64>(
-           (pic->irap_pic_ ? V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC : 0) |
-           ((pic->nal_unit_type_ >= H265NALU::IDR_W_RADL &&

diff --git a/chromium-117-missing-header-files.patch b/chromium-117-missing-header-files.patch
new file mode 100644
index 0000000..ad8e1e6
--- /dev/null
+++ b/chromium-117-missing-header-files.patch
@@ -0,0 +1,457 @@
+diff -up chromium-110.0.5481.177/base/memory/ref_counted.h.me chromium-110.0.5481.177/base/memory/ref_counted.h
+--- chromium-110.0.5481.177/base/memory/ref_counted.h.me	2023-02-23 13:34:33.174817255 -0500
++++ chromium-110.0.5481.177/base/memory/ref_counted.h	2023-02-23 13:42:28.646052469 -0500
+@@ -6,6 +6,7 @@
+ #define BASE_MEMORY_REF_COUNTED_H_
+ 
+ #include <stddef.h>
++#include <limits>
+ 
+ #include <utility>
+ 
+diff -up chromium-109.0.5414.74/base/check_op.h.me chromium-109.0.5414.74/base/check_op.h
+--- chromium-109.0.5414.74/base/check_op.h.me	2023-01-17 17:39:27.620875883 +0100
++++ chromium-109.0.5414.74/base/check_op.h	2023-01-17 17:39:42.546060957 +0100
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CHECK_OP_H_
+ #define BASE_CHECK_OP_H_
+ 
++#include <cstdint>
+ #include <cstddef>
+ #include <string>
+ #include <type_traits>
+diff -up chromium-109.0.5414.74/base/debug/profiler.h.me chromium-109.0.5414.74/base/debug/profiler.h
+--- chromium-109.0.5414.74/base/debug/profiler.h.me	2023-01-17 16:29:26.368090073 +0100
++++ chromium-109.0.5414.74/base/debug/profiler.h	2023-01-17 16:59:41.190628679 +0100
+@@ -7,6 +7,7 @@
+ 
+ #include <stddef.h>
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "base/base_export.h"
+diff -up chromium-109.0.5414.74/gpu/config/gpu_feature_info.h.me chromium-109.0.5414.74/gpu/config/gpu_feature_info.h
+--- chromium-109.0.5414.74/gpu/config/gpu_feature_info.h.me	2023-01-17 19:06:53.530675129 +0100
++++ chromium-109.0.5414.74/gpu/config/gpu_feature_info.h	2023-01-17 19:07:08.874849879 +0100
+@@ -5,6 +5,7 @@
+ #ifndef GPU_CONFIG_GPU_FEATURE_INFO_H_
+ #define GPU_CONFIG_GPU_FEATURE_INFO_H_
+ 
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ 
+diff -up chromium-109.0.5414.74/net/base/net_export.h.me chromium-109.0.5414.74/net/base/net_export.h
+--- chromium-109.0.5414.74/net/base/net_export.h.me	2023-01-17 18:16:34.133854615 +0100
++++ chromium-109.0.5414.74/net/base/net_export.h	2023-01-17 18:16:15.945623153 +0100
+@@ -5,6 +5,8 @@
+ #ifndef NET_BASE_NET_EXPORT_H_
+ #define NET_BASE_NET_EXPORT_H_
+ 
++#include <cstdint>
++
+ // Defines NET_EXPORT so that functionality implemented by the net module can
+ // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
+ // access features not intended to be used directly by real consumers.
+diff -up chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h
+--- chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me	2023-01-17 17:12:34.184686515 +0100
++++ chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h	2023-01-17 17:13:16.537162420 +0100
+@@ -5,6 +5,7 @@
+ #ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+ #define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+ 
++#include <cstdint>
+ #include <bitset>
+ #include <string>
+ 
+diff -up chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h.me chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h
+--- chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h.me	2023-01-17 17:33:20.895717307 +0100
++++ chromium-109.0.5414.74/third_party/abseil-cpp/absl/strings/string_view.h	2023-01-17 17:34:03.456185365 +0100
+@@ -27,6 +27,7 @@
+ #ifndef ABSL_STRINGS_STRING_VIEW_H_
+ #define ABSL_STRINGS_STRING_VIEW_H_
+ 
++#include <cstdint>
+ #include <algorithm>
+ #include <cassert>
+ #include <cstddef>
+diff -up chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h.me chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h
+--- chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h.me	2023-01-17 17:36:15.017616250 +0100
++++ chromium-109.0.5414.74/third_party/angle/include/GLSLANG/ShaderVars.h	2023-01-17 17:36:48.960982195 +0100
+@@ -10,6 +10,7 @@
+ #ifndef GLSLANG_SHADERVARS_H_
+ #define GLSLANG_SHADERVARS_H_
+ 
++#include <cstdint>
+ #include <algorithm>
+ #include <array>
+ #include <string>
+diff -up chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.me chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
+--- chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.me	2023-01-17 19:17:40.480876171 +0100
++++ chromium-109.0.5414.74/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h	2023-01-17 19:17:46.803958320 +0100
+@@ -5,6 +5,7 @@
+ #ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_BLUETOOTH_WEB_BLUETOOTH_DEVICE_ID_H_
+ #define THIRD_PARTY_BLINK_PUBLIC_COMMON_BLUETOOTH_WEB_BLUETOOTH_DEVICE_ID_H_
+ 
++#include <cstdint>
+ #include <array>
+ #include <string>
+ 
+diff -up chromium-117.0.5938.48/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.me chromium-117.0.5938.48/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
+--- chromium-117.0.5938.48/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.me	2023-01-17 18:02:44.681538107 +0100
++++ chromium-117.0.5938.48/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h	2023-01-17 18:02:57.208679140 +0100
+@@ -15,6 +15,7 @@
+ #ifndef SRC_TINT_READER_SPIRV_NAMER_H_
+ #define SRC_TINT_READER_SPIRV_NAMER_H_
+ 
++#include <cstdint>
+ #include <string>
+ #include <unordered_map>
+ #include <vector>
+diff -up chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.me chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
+--- chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.me	2023-01-18 15:22:38.472940648 +0100
++++ chromium-109.0.5414.74/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h	2023-01-18 15:23:09.380255101 +0100
+@@ -5,6 +5,7 @@
+ #ifndef DISCOVERY_DNSSD_PUBLIC_DNS_SD_TXT_RECORD_H_
+ #define DISCOVERY_DNSSD_PUBLIC_DNS_SD_TXT_RECORD_H_
+ 
++#include <cstdint>
+ #include <functional>
+ #include <map>
+ #include <set>
+diff -up chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp.me chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp
+--- chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp.me	2023-01-17 15:37:48.530626516 +0100
++++ chromium-109.0.5414.74/third_party/swiftshader/src/System/LRUCache.hpp	2023-01-17 16:57:46.025548092 +0100
+@@ -17,6 +17,7 @@
+ 
+ #include "System/Debug.hpp"
+ 
++#include <cstdint>
+ #include <cstddef>
+ #include <functional>
+ #include <unordered_set>
+diff -up chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.me chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
+--- chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.me	2023-01-17 15:40:23.854386206 +0100
++++ chromium-109.0.5414.74/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h	2023-01-17 16:58:19.397862885 +0100
+@@ -2388,6 +2388,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeV
+ #ifdef VMA_IMPLEMENTATION
+ #undef VMA_IMPLEMENTATION
+ 
++#include <cstdio>
+ #include <cstdint>
+ #include <cstdlib>
+ #include <cstring>
+diff -up chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h.me chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h
+--- chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h.me	2023-01-17 18:08:25.745491353 +0100
++++ chromium-109.0.5414.74/ui/gfx/geometry/linear_gradient.h	2023-01-17 18:08:35.777667632 +0100
+@@ -5,6 +5,7 @@
+ #ifndef UI_GFX_LINEAR_GRADIENT_H_
+ #define UI_GFX_LINEAR_GRADIENT_H_
+ 
++#include <cstdint>
+ #include <array>
+ #include <string>
+ 
+diff -up chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h.me chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h
+--- chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h.me	2023-01-19 10:10:21.287876736 +0100
++++ chromium-109.0.5414.74/third_party/ruy/src/ruy/profiler/instrumentation.h	2023-01-19 10:11:21.714778896 +0100
+@@ -17,6 +17,7 @@ limitations under the License.
+ #define RUY_RUY_PROFILER_INSTRUMENTATION_H_
+ 
+ #ifdef RUY_PROFILER
++#include <string>
+ #include <cstdio>
+ #include <mutex>
+ #include <vector>
+diff -up chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.me chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
+--- chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.me	2023-01-19 10:30:27.533861985 +0100
++++ chromium-109.0.5414.74/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h	2023-01-19 10:31:12.585554183 +0100
+@@ -31,6 +31,7 @@ limitations under the License.
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
+ 
++#include <cstdint>
+ #include <complex>
+ #include <deque>
+ #include <vector>
+diff -up chromium-109.0.5414.74/base/containers/flat_map.h.mee chromium-109.0.5414.74/base/containers/flat_map.h
+--- chromium-109.0.5414.74/base/containers/flat_map.h.mee	2023-01-19 10:59:52.214957773 +0100
++++ chromium-109.0.5414.74/base/containers/flat_map.h	2023-01-19 11:00:06.415215309 +0100
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CONTAINERS_FLAT_MAP_H_
+ #define BASE_CONTAINERS_FLAT_MAP_H_
+ 
++#include <cstdint>
+ #include <functional>
+ #include <tuple>
+ #include <utility>
+diff -up chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h.mee chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h
+--- chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h.mee	2023-01-19 10:36:40.571422826 +0100
++++ chromium-109.0.5414.74/components/crash/core/app/crash_reporter_client.h	2023-01-19 10:36:49.343565294 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
+ #define COMPONENTS_CRASH_CORE_APP_CRASH_REPORTER_CLIENT_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "build/build_config.h"
+diff -up chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h.mee chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h
+--- chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h.mee	2023-01-19 11:45:15.953159755 +0100
++++ chromium-109.0.5414.74/ui/base/prediction/kalman_filter.h	2023-01-19 11:45:22.320246241 +0100
+@@ -5,6 +5,8 @@
+ #ifndef UI_BASE_PREDICTION_KALMAN_FILTER_H_
+ #define UI_BASE_PREDICTION_KALMAN_FILTER_H_
+ 
++#include <cstdint>
++
+ #include "base/component_export.h"
+ #include "ui/gfx/geometry/matrix3_f.h"
+ 
+diff -up chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h.me chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h
+--- chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h.me	2023-01-19 15:20:07.620987949 +0100
++++ chromium-109.0.5414.74/components/password_manager/core/browser/generation/password_generator.h	2023-01-19 15:20:18.324173702 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
+ #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_GENERATION_PASSWORD_GENERATOR_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ 
+diff -up chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h.me chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h
+--- chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h.me	2023-01-19 16:00:14.350186515 +0100
++++ chromium-109.0.5414.74/components/feature_engagement/internal/event_storage_validator.h	2023-01-19 16:00:21.643307993 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_EVENT_STORAGE_VALIDATOR_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ namespace feature_engagement {
+diff -up chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h.me chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h
+--- chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h.me	2023-01-19 15:59:18.210239416 +0100
++++ chromium-109.0.5414.74/components/feature_engagement/internal/never_event_storage_validator.h	2023-01-19 15:59:34.513515030 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ #define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "components/feature_engagement/internal/event_storage_validator.h"
+diff -up chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.me chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
+--- chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.me	2023-01-19 16:09:29.216477182 +0100
++++ chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc	2023-01-19 16:10:05.657089208 +0100
+@@ -45,6 +45,7 @@
+ #include "llvm/Support/SaveAndRestore.h"
+ #include "llvm/Support/raw_ostream.h"
+ #include <algorithm>
++#include <cstdint>
+ #include <string>
+ #include <sysexits.h>
+ #ifdef HAVE_BACKTRACE
+diff -up chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h.me chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h
+--- chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h.me	2023-01-19 16:32:05.338160131 +0100
++++ chromium-109.0.5414.74/chrome/browser/privacy_budget/encountered_surface_tracker.h	2023-01-19 16:32:16.213326798 +0100
+@@ -5,6 +5,7 @@
+ #ifndef CHROME_BROWSER_PRIVACY_BUDGET_ENCOUNTERED_SURFACE_TRACKER_H_
+ #define CHROME_BROWSER_PRIVACY_BUDGET_ENCOUNTERED_SURFACE_TRACKER_H_
+ 
++#include <cstdint>
+ #include <map>
+ 
+ #include "base/containers/flat_set.h"
+diff -up chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h.me chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h
+--- chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h.me	2023-01-19 16:47:55.548571102 +0100
++++ chromium-109.0.5414.74/components/autofill/core/browser/autofill_ablation_study.h	2023-01-19 16:48:29.214146529 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
+ #define COMPONENTS_AUTOFILL_CORE_BROWSER_AUTOFILL_ABLATION_STUDY_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ class GURL;
+diff -up chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h.me chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h
+--- chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h.me	2023-01-19 16:57:29.525372814 +0100
++++ chromium-109.0.5414.74/components/omnibox/browser/on_device_head_model.h	2023-01-19 16:58:02.667979288 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
+ #define COMPONENTS_OMNIBOX_BROWSER_ON_DEVICE_HEAD_MODEL_H_
+ 
++#include <cstdint>
+ #include <string>
+ #include <utility>
+ #include <vector>
+diff -up chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h.me chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h
+--- chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h.me	2023-01-19 17:02:45.258544665 +0100
++++ chromium-109.0.5414.74/components/payments/content/utility/fingerprint_parser.h	2023-01-19 17:02:52.577611757 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+ #define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+ 
++#include <cstdint>
+ #include <stddef.h>
+ 
+ #include <string>
+diff -up chromium-109.0.5414.74/pdf/document_attachment_info.h.me chromium-109.0.5414.74/pdf/document_attachment_info.h
+--- chromium-109.0.5414.74/pdf/document_attachment_info.h.me	2023-01-19 17:28:28.552063534 +0100
++++ chromium-109.0.5414.74/pdf/document_attachment_info.h	2023-01-19 17:28:48.072379953 +0100
+@@ -5,6 +5,7 @@
+ #ifndef PDF_DOCUMENT_ATTACHMENT_INFO_H_
+ #define PDF_DOCUMENT_ATTACHMENT_INFO_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ 
+diff -up chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h.me chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h
+--- chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h.me	2023-01-19 18:25:47.648193710 +0100
++++ chromium-109.0.5414.74/third_party/pdfium/constants/annotation_flags.h	2023-01-19 18:26:11.488593556 +0100
+@@ -5,6 +5,8 @@
+ #ifndef CONSTANTS_ANNOTATION_FLAGS_H_
+ #define CONSTANTS_ANNOTATION_FLAGS_H_
+ 
++#include <cstdint>
++
+ namespace pdfium {
+ namespace annotation_flags {
+ 
+diff -up chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
+--- chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me	2023-04-15 16:44:55.344305412 +0200
++++ chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h	2023-04-15 16:47:09.028666995 +0200
+@@ -2854,6 +2854,7 @@ static void vma_aligned_free(void* VMA_N
+ 
+ // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
+ #if VMA_STATS_STRING_ENABLED
++#include <stdio.h>
+     static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
+     {
+         snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
+diff -up chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h
+--- chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me	2023-04-18 15:55:44.774916319 +0200
++++ chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h	2023-04-18 15:55:54.441085882 +0200
+@@ -8,6 +8,7 @@
+ #include <memory>
+ #include <string>
+ #include <vector>
++#include <variant>
+ 
+ #include "base/containers/span.h"
+ #include "base/functional/callback_forward.h"
+diff -up chromium-113.0.5672.37/gin/time_clamper.h.me chromium-113.0.5672.37/gin/time_clamper.h
+--- chromium-113.0.5672.37/gin/time_clamper.h.me	2023-04-18 16:38:41.180437467 +0200
++++ chromium-113.0.5672.37/gin/time_clamper.h	2023-04-18 16:39:43.857049432 +0200
+@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
+     const int64_t micros = now_micros % 1000;
+     // abs() is necessary for devices with times before unix-epoch (most likely
+     // configured incorrectly).
+-    if (abs(micros) + kResolutionMicros < 1000) {
++    if (std::abs(micros) + kResolutionMicros < 1000) {
+       return now_micros / 1000;
+     }
+     return ClampTimeResolution(now_micros) / 1000;
+diff -up chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc
+--- chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me	2023-04-21 08:07:55.362714544 +0200
++++ chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc	2023-04-21 08:14:35.424158693 +0200
+@@ -10,6 +10,7 @@
+ #include <queue>
+ #include <utility>
+ #include <vector>
++#include <cstring>
+ 
+ #include "base/check.h"
+ #include "base/files/file_path.h"
+diff -up chromium-115.0.5790.32/skia/ext/skcolorspace_trfn.cc.me chromium-115.0.5790.32/skia/ext/skcolorspace_trfn.cc
+--- chromium-115.0.5790.32/skia/ext/skcolorspace_trfn.cc.me	2023-06-18 12:33:52.387412788 +0200
++++ chromium-115.0.5790.32/skia/ext/skcolorspace_trfn.cc	2023-06-18 12:35:28.229148935 +0200
+@@ -3,6 +3,7 @@
+ // found in the LICENSE file.
+ 
+ #include "skia/ext/skcolorspace_trfn.h"
++#include <cmath>
+ 
+ namespace skia {
+ 
+diff -up chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h
+--- chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint	2021-11-19 17:05:31.379750350 -0500
++++ chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h	2021-11-19 17:07:35.191520127 -0500
+@@ -11,6 +11,7 @@
+ #ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
+ #define COMMON_VIDEO_H264_SPS_PARSER_H_
+ 
++#include <cstdint>
+ #include "absl/types/optional.h"
+ #include "rtc_base/bitstream_reader.h"
+ 
+diff -up chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h
+--- chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint	2021-11-12 05:28:10.000000000 -0500
++++ chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h	2021-11-19 17:05:31.379750350 -0500
+@@ -11,6 +11,7 @@
+ #ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ #define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+ 
++#include <cstdint>
+ #include <limits>
+ 
+ #include "absl/types/optional.h"
+diff -up chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h.missing-cstdint chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h
+--- chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h.missing-cstdint	2021-11-12 05:25:24.000000000 -0500
++++ chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h	2021-11-19 17:05:31.379750350 -0500
+@@ -9,6 +9,8 @@
+ 
+ #include "ui/gfx/buffer_types.h"
+ 
++#include <cstdint>
++
+ namespace ui {
+ 
+ int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);
+diff -up chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc
+--- chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring	2021-11-12 05:28:09.000000000 -0500
++++ chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc	2021-11-19 17:10:02.927438695 -0500
+@@ -8,6 +8,8 @@
+  *  be found in the AUTHORS file in the root of the source tree.
+  */
+ 
++#include <cstring>
++
+ #include "audio/utility/channel_mixer.h"
+ 
+ #include "audio/utility/channel_mixing_matrix.h"
+diff -up chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
+--- chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring	2021-11-12 05:28:10.000000000 -0500
++++ chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc	2021-11-19 17:10:02.928438701 -0500
+@@ -10,6 +10,7 @@
+ 
+ #include "modules/video_coding/utility/ivf_file_reader.h"
+ 
++#include <cstring>
+ #include <string>
+ #include <vector>
+ 
+diff -up chromium-117.0.5938.48/third_party/ipcz/src/ipcz/router_link.h.me chromium-117.0.5938.48/third_party/ipcz/src/ipcz/router_link.h
+--- chromium-117.0.5938.48/third_party/ipcz/src/ipcz/router_link.h.me	2023-09-10 17:53:04.826298351 +0200
++++ chromium-117.0.5938.48/third_party/ipcz/src/ipcz/router_link.h	2023-09-10 17:53:22.201756894 +0200
+@@ -5,6 +5,7 @@
+ #ifndef IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+ #define IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+ 
++#include <memory>
+ #include <cstddef>
+ #include <functional>
+ #include <string>
+diff -up chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/palettes/tones.cc.me chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/palettes/tones.cc
+--- chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/palettes/tones.cc.me	2023-09-10 17:36:27.199841051 +0200
++++ chromium-117.0.5938.48/third_party/material_color_utilities/src/cpp/palettes/tones.cc	2023-09-10 17:44:51.870554233 +0200
+@@ -14,6 +14,7 @@
+  * limitations under the License.
+  */
+ 
++#include <math.h>
+ #include "cpp/palettes/tones.h"
+ 
+ #include "cpp/cam/cam.h"

diff --git a/chromium-117-mnemonic-error.patch b/chromium-117-mnemonic-error.patch
new file mode 100644
index 0000000..455b3e5
--- /dev/null
+++ b/chromium-117-mnemonic-error.patch
@@ -0,0 +1,12 @@
+diff -up chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn.me chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn
+--- chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn.me	2023-09-10 16:54:00.804385139 +0200
++++ chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn	2023-09-10 16:54:13.540625077 +0200
+@@ -1694,8 +1694,6 @@ action_foreach("element_locator_test_pro
+   python_path_root = "${root_out_dir}/pyproto"
+   python_path_proto = "${python_path_root}/third_party/blink/renderer/core/lcp_critical_path_predictor"
+ 
+-  mnemonic = "ELOC_PROTO"
+-
+   source_dir = "lcp_critical_path_predictor/test_proto"
+   sources = rebase_path([ "lcp_image_id.asciipb" ], "", source_dir)
+ 

diff --git a/chromium-117-python-3.12-deprecated.patch b/chromium-117-python-3.12-deprecated.patch
new file mode 100644
index 0000000..0d02fcb
--- /dev/null
+++ b/chromium-117-python-3.12-deprecated.patch
@@ -0,0 +1,150 @@
+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 -up chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-tools/src/build-gn/generate_vulkan_layers_json.py.me chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-tools/src/build-gn/generate_vulkan_layers_json.py
+diff -up chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-validation-layers/src/build-gn/generate_vulkan_layers_json.py.me chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-validation-layers/src/build-gn/generate_vulkan_layers_json.py
+--- chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-validation-layers/src/build-gn/generate_vulkan_layers_json.py.me	2023-07-22 16:02:48.330050088 +0200
++++ chromium-115.0.5790.102/third_party/vulkan-deps/vulkan-validation-layers/src/build-gn/generate_vulkan_layers_json.py	2023-07-22 16:03:02.320023617 +0200
+@@ -28,7 +28,6 @@ import platform
+ import sys
+ 
+ def glob_slash(dirname):
+-    """Like regular glob but replaces \ with / in returned paths."""
+     return [s.replace('\\', '/') for s in glob.glob(dirname)]
+ 
+ def main():

diff --git a/chromium-117-widevine-other-locations.patch b/chromium-117-widevine-other-locations.patch
new file mode 100644
index 0000000..38f3a27
--- /dev/null
+++ b/chromium-117-widevine-other-locations.patch
@@ -0,0 +1,33 @@
+diff -up chromium-108.0.5359.124/chrome/common/chrome_paths.cc.widevine-other-locations chromium-108.0.5359.124/chrome/common/chrome_paths.cc
+--- chromium-108.0.5359.124/chrome/common/chrome_paths.cc.widevine-other-locations	2023-01-02 11:10:03.951330305 +0100
++++ chromium-108.0.5359.124/chrome/common/chrome_paths.cc	2023-01-02 13:42:26.781022150 +0100
+@@ -319,6 +319,16 @@ bool PathProvider(int key, base::FilePat
+ 
+ #if BUILDFLAG(ENABLE_WIDEVINE)
+     case chrome::DIR_BUNDLED_WIDEVINE_CDM:
++      base::PathService::Get(base::DIR_HOME, &cur);
++      cur = cur.Append(FILE_PATH_LITERAL(".config/chromium/WidevineCdm"));
++      if (base::PathExists(cur)) {
++        break;
++      }
++      // Yes, this has an arch hardcoded in the path, but at this time, it is the only place to find libwidevinecdm.so
++      if (base::PathExists(base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so")))) {
++        cur = base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/WidevineCdm"));
++        break;
++      }
+       if (!GetComponentDirectory(&cur)) {
+         return false;
+       }
+       cur = cur.AppendASCII(kWidevineCdmBaseDirectory);
+diff -up chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn.widevine-other-locations chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn
+--- chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn.widevine-other-locations	2023-01-02 11:10:45.953114153 +0100
++++ chromium-108.0.5359.124/third_party/widevine/cdm/BUILD.gn	2023-01-02 11:10:45.953114153 +0100
+@@ -22,7 +22,7 @@ buildflag_header("buildflags") {
+ 
+   flags = [
+     "ENABLE_WIDEVINE=$enable_widevine",
+-    "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm",
++    "BUNDLE_WIDEVINE_CDM=true",
+     "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component",
+     "ENABLE_MEDIA_FOUNDATION_WIDEVINE_CDM=$enable_media_foundation_widevine_cdm",
+   ]

diff --git a/chromium-117-workaround_clang_bug-structured_binding.patch b/chromium-117-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 0000000..ddde868
--- /dev/null
+++ b/chromium-117-workaround_clang_bug-structured_binding.patch
@@ -0,0 +1,69 @@
+diff -up chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc
+--- chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc.workaround_clang_bug-structured_binding	2023-06-07 21:48:37.000000000 +0200
++++ chromium-115.0.5790.24/media/base/cdm_promise_adapter.cc	2023-06-17 16:53:20.216628557 +0200
+@@ -94,7 +94,9 @@ void CdmPromiseAdapter::RejectPromise(ui
+ void CdmPromiseAdapter::Clear(ClearReason reason) {
+   // Reject all outstanding promises.
+   DCHECK(thread_checker_.CalledOnValidThread());
+-  for (auto& [promise_id, promise] : promises_) {
++  for (auto& [p_i, p_e] : promises_) {
++    auto& promise_id = p_i;
++    auto& promise = p_e;
+     TRACE_EVENT_NESTABLE_ASYNC_END1(
+         "media", "CdmPromise", TRACE_ID_WITH_SCOPE("CdmPromise", promise_id),
+         "status", "cleared");
+diff -up chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
+--- chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding	2023-06-07 21:48:41.000000000 +0200
++++ chromium-115.0.5790.24/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc	2023-06-17 18:47:06.001403966 +0200
+@@ -655,8 +658,10 @@ NGGridSizingTree NGGridLayoutAlgorithm::
+   NGGridSizingTree sizing_tree;
+ 
+   if (const auto* layout_subtree = ConstraintSpace().GridLayoutSubtree()) {
+-    auto& [grid_items, layout_data, subtree_size] =
+-        sizing_tree.CreateSizingData();
++    auto& [g_i, l_d, s_s] = sizing_tree.CreateSizingData();
++    auto& grid_items = g_i;
++    auto& layout_data = l_d;
++    auto& subtree_size = s_s;
+ 
+     const auto& node = Node();
+     grid_items =
+@@ -1798,8 +1803,10 @@ void NGGridLayoutAlgorithm::CompleteTrac
+     bool* opt_needs_additional_pass) const {
+   DCHECK(sizing_subtree);
+ 
+-  auto& [grid_items, layout_data, subtree_size] =
+-      sizing_subtree.SubtreeRootData();
++  auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData();
++  auto& grid_items = g_i;
++  auto& layout_data = l_d;
++  auto& subtree_size = s_s;
+ 
+   const bool is_for_columns = track_direction == kForColumns;
+   const bool has_non_definite_track =
+@@ -1924,8 +1931,10 @@ template <typename CallbackFunc>
+ void NGGridLayoutAlgorithm::ForEachSubgrid(
+     const NGGridSizingSubtree& sizing_subtree,
+     const CallbackFunc& callback_func) const {
+-  auto& [grid_items, layout_data, subtree_size] =
+-      sizing_subtree.SubtreeRootData();
++  auto& [g_i, l_d, s_s] = sizing_subtree.SubtreeRootData();
++  auto& grid_items = g_i;
++  auto& layout_data = l_d;
++  auto& subtree_size = s_s;
+ 
+   // If we know this subtree doesn't have nested subgrids we can exit early
+   // instead of iterating over every grid item looking for them.
+diff -up chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc
+--- chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc.me	2023-06-19 08:04:02.287072722 +0200
++++ chromium-115.0.5790.32/content/browser/service_worker/service_worker_context_wrapper.cc	2023-06-19 08:18:24.576814950 +0200
+@@ -1393,7 +1393,8 @@ void ServiceWorkerContextWrapper::MaybeP
+     return;
+   }
+ 
+-  auto [document_url, key, callback] = std::move(*request);
++  auto [d_u, key, callback] = std::move(*request);
++  auto document_url = d_u;
+ 
+   DCHECK(document_url.is_valid());
+   TRACE_EVENT1("ServiceWorker",

diff --git a/chromium.spec b/chromium.spec
index 5e9d9d8..5887783 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -41,7 +41,7 @@
 %global build_remoting 0
 
 # set nodejs_version
-%global nodejs_version v19.8.1
+%global nodejs_version v20.6.1
 
 # set version for devtoolset and gcc-toolset
 %global dts_version 12
@@ -235,7 +235,7 @@
 %endif
 
 Name:	chromium%{chromium_channel}
-Version: 116.0.5845.187
+Version: 117.0.5938.62
 Release: 1%{?dist}
 Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
 Url: http://www.chromium.org/Home
@@ -257,7 +257,7 @@ Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch
 Patch6: chromium-115-norar.patch
 
 # Try to load widevine from other places
-Patch8: chromium-108-widevine-other-locations.patch
+Patch8: chromium-117-widevine-other-locations.patch
 
 # Tell bootstrap.py to always use the version of Python we specify
 Patch11: chromium-93.0.4577.63-py3-bootstrap.patch
@@ -334,7 +334,7 @@ Patch116: chromium-112-ffmpeg-first_dts.patch
 # revert new-channel-layout-api on f36, old ffmpeg-free
 Patch117: chromium-108-ffmpeg-revert-new-channel-layout-api.patch
 
-# revert AV1 VA-API video encode due to old libva on el9
+# revert AV1 VAAPI video encode due to old libva on el9
 Patch130: chromium-114-revert-av1enc-el9.patch
 
 # compiler build errors
@@ -342,13 +342,13 @@ Patch300: chromium-116-no_matching_constructor.patch
 Patch301: chromium-115-compiler-SkColor4f.patch
 
 # workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826
-Patch302: chromium-115-workaround_clang_bug-structured_binding.patch
+Patch302: chromium-117-workaround_clang_bug-structured_binding.patch
 
 # missing typename
 Patch303: chromium-116-typename.patch
 
 # missing include header files
-Patch304: chromium-116-missing-header-files.patch
+Patch304: chromium-117-missing-header-files.patch
 
 # compiler error with c++20
 Patch306: chromium-116-emplace_back_on_vector-c++20.patch
@@ -358,29 +358,17 @@ Patch306: chromium-116-emplace_back_on_vector-c++20.patch
 # error: fatal error: 'sys/ifunc.h' file not found
 Patch307: chromium-116-arm64-memory_tagging.patch
 
-# upstream, do not restrict new V4L2 decoders to ARM or ChromeOS 
-# error: use of undeclared identifier 'kV4L2FlatStatefulVideoDecoder'
-# error: use of undeclared identifier 'kV4L2FlatStatelessVideoDecoder'
-Patch308: chromium-115-do_not_restrict_new_V4L2_decoders.v4l2.pach
-
-# upstream, include contains.h header for V4L2StatefulVideoDecoder
-# error: no member named 'Contains' in namespace 'base'
-Patch309: chromium-115-include_contains_h_header_for_V4L2StatefulVideoDecoder.patch
-
 # clang warnings
 Patch311: chromium-115-clang-warnings.patch
 
 # imp module is removed in python-3.12
-Patch312: chromium-115-python-3.12-deprecated.patch
+Patch312: chromium-117-python-3.12-deprecated.patch
 
-# upstream patches
-# Set toolkit dark preference based on FDO dark preference
-Patch350: chromium-115-linux_ui_darkmode.patch
 # Tweak about:gpu, Add dark mode support
 Patch351: chromium-116-tweak_about_gpu.patch
-# Guard the field assignment num_delta_pocs_of_ref_rps_idx as it is not supported
-# in fedora < 39
-Patch352: chromium-116-v4l2-num_delta_pocs_of_ref_rps_idx.patch
+
+# build error
+Patch352: chromium-117-mnemonic-error.patch
 
 # Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
 # http://build.chromium.org/buildbot/official/
@@ -973,26 +961,16 @@ udev.
 %endif
 %endif
 
-%patch -P308 -p1 -b .do_not_restrict_new_V4L2_decoders.v4l2
-%patch -P309 -p1 -b .include_contains_h_header_for_V4L2StatefulVideoDecoder
 %patch -P311 -p1 -b .clang-warnings
 %patch -P312 -p1 -b .python-3.12-deprecated
 
-%patch -P350 -p1 -b .linux_ui_darkmode
 %patch -P351 -p1 -b .tweak_about_gpu
-
-%ifarch aarch64
-%if 0%{?fedora} < 39
-%patch -P352 -p1 -b .num_delta_pocs_of_ref_rps_idx
-%endif 
-%endif
-
+%patch -P352 -p1 -b .mnemonic-error
 
 # Change shebang in all relevant files in this directory and all subdirectories
 # See `man find` for how the `-exec command {} +` syntax works
 find -type f \( -iname "*.py" \) -exec sed -i '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python3}=' {} +
 
-
 %if 0%{?rhel} == 8
   pushd third_party/node/linux
 %ifarch x86_64
@@ -1668,6 +1646,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
 %{chromium_path}/chromedriver
 
 %changelog
+* Wed Sep 13 2023 Than Ngo <than@redhat.com> - 117.0.5938.62-1
+- update to 117.0.5938.62
+
 * Tue Sep 12 2023 Than Ngo <than@redhat.com> - 116.0.5845.187-1
 - update to 116.0.5845.187
 

diff --git a/sources b/sources
index 743e6ef..5ab915c 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (node-v19.8.1-linux-arm64.tar.xz) = 86ff19085669e92ce7afe2fd7d4df0c5441df2d88c00f29d5463b805f3cf5625626db8aebf98349c9a495b772da1ce6d68263730018207ea98815058a1c81397
-SHA512 (node-v19.8.1-linux-x64.tar.xz) = 925c0037c6b7074d0b0245bced20d0a0d9b1300f53b808106f16b5018d763f5f5b00bc321b33fa1033d736b1e1076608da9b7fcae66aed53d27b100b1186e2c6
-SHA512 (chromium-116.0.5845.187-clean.tar.xz) = f84ca1ff67eb2a8bc5d7bddcfeac31b9a74a567a370b2d1a57ff62b0d29191f43399e0d62685ed90a8b83011c677c236dad223faed4a7c6e4137ff43f17e422a
+SHA512 (chromium-117.0.5938.62-clean.tar.xz) = a71654732449f101518c34e92da1136fd68fa2c428d042cf00168c3aa6096eaf2f21904d398e752a7d482ed9eda5ea1e77eba0f73789373407d2ba3f9e4fbae5
+SHA512 (node-v20.6.1-linux-arm64.tar.xz) = adfcaf2c22614797fd69fb46d94c1cbf64dea0213cc817c45d3904b634dbf1f4e62e4ebd95bfa4ba0a9c559747d42115406edc471af294334160ba6e103e31d0
+SHA512 (node-v20.6.1-linux-x64.tar.xz) = 7e15c05041a9a50f0046266aadb2e092a5aefbec19be1c7c809471add520cb57c7df3c47d88b1888b29bf2979dca3c92adddfd965370fa2a9da4ea02186464fd

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-07 16:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 16:05 [rpms/chromium] epel9-next: update to 117.0.5938.62 Than Ngo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox