public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: update to 115.0.5790.98
@ 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 : 1f8fd846d2cc72c90c73c9867619f0da43b9c816
Author : Than Ngo <than@redhat.com>
Date   : 2023-07-19T09:21:08+02:00
Stats  : +1010/-1335 in 23 file(s)
URL    : https://src.fedoraproject.org/rpms/chromium/c/1f8fd846d2cc72c90c73c9867619f0da43b9c816?branch=epel9-next

Log:
update to 115.0.5790.98

---
diff --git a/chromium-108-system-brotli.patch b/chromium-108-system-brotli.patch
deleted file mode 100644
index a5a4ecc..0000000
--- a/chromium-108-system-brotli.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -up chromium-108.0.5359.124/net/filter/brotli_source_stream.cc.me chromium-108.0.5359.124/net/filter/brotli_source_stream.cc
---- chromium-108.0.5359.124/net/filter/brotli_source_stream.cc.me	2022-12-30 16:00:58.320318310 +0100
-+++ chromium-108.0.5359.124/net/filter/brotli_source_stream.cc	2022-12-30 16:01:24.928581631 +0100
-@@ -10,7 +10,7 @@
- #include "base/memory/raw_ptr.h"
- #include "base/metrics/histogram_macros.h"
- #include "net/base/io_buffer.h"
--#include "third_party/brotli/include/brotli/decode.h"
-+#include <brotli/decode.h>
- 
- namespace net {
- 
-diff -up chromium-108.0.5359.124/net/ssl/cert_compression.cc.me chromium-108.0.5359.124/net/ssl/cert_compression.cc
---- chromium-108.0.5359.124/net/ssl/cert_compression.cc.me	2022-12-30 15:57:59.859543993 +0100
-+++ chromium-108.0.5359.124/net/ssl/cert_compression.cc	2022-12-30 16:00:48.560221723 +0100
-@@ -9,7 +9,7 @@
- #include "third_party/boringssl/src/include/openssl/ssl.h"
- 
- #if !defined(NET_DISABLE_BROTLI)
--#include "third_party/brotli/include/brotli/decode.h"
-+#include <brotli/decode.h>
- #endif
- 
- namespace net {
-diff -up chromium-108.0.5359.124/ui/base/resource/resource_bundle.cc.me chromium-108.0.5359.124/ui/base/resource/resource_bundle.cc
---- chromium-108.0.5359.124/ui/base/resource/resource_bundle.cc.me	2022-12-30 21:12:27.058346797 +0100
-+++ chromium-108.0.5359.124/ui/base/resource/resource_bundle.cc	2022-12-30 21:13:58.363183795 +0100
-@@ -31,7 +31,7 @@
- #include "build/build_config.h"
- #include "net/filter/gzip_header.h"
- #include "skia/ext/image_operations.h"
--#include "third_party/brotli/include/brotli/decode.h"
-+#include <brotli/decode.h>
- #include "third_party/skia/include/core/SkBitmap.h"
- #include "third_party/skia/include/core/SkColor.h"
- #include "third_party/zlib/google/compression_utils.h"

diff --git a/chromium-114-add_qt6_linuxui_backend.patch b/chromium-114-add_qt6_linuxui_backend.patch
deleted file mode 100644
index fef2714..0000000
--- a/chromium-114-add_qt6_linuxui_backend.patch
+++ /dev/null
@@ -1,545 +0,0 @@
-commit 75f4b48eb71d4872ba3ac6c9fc3662a60eb4175d
-Author: Tom Anderson <thomasanderson@chromium.org>
-Date:   Thu Apr 27 02:21:34 2023 +0000
-
-    Add QT6 LinuxUi backend
-    
-    - Enable QT6 by default on KDE6
-    - If QT6 load fails, fallback to QT5 (and vice versa)
-    - Add use_qt6 build flag for packager control
-    - Add --qt-version runtime flag for user control
-    
-    R=thestig
-    
-    Change-Id: Ib1d9f6183663ecf7b9ddfe9d7f3e3442e534ccda
-    Fixed: 1434754
-    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4475369
-    Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
-    Reviewed-by: Lei Zhang <thestig@chromium.org>
-    Cr-Commit-Position: refs/heads/main@{#1136295}
-
-diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn
-index 5639b9ffc996e..3bacd3398d4a2 100644
---- a/chrome/installer/linux/BUILD.gn
-+++ b/chrome/installer/linux/BUILD.gn
-@@ -109,6 +109,9 @@ if (use_qt) {
-   # to prevent a hard dependency on QT for the package.
-   packaging_files += [ "$root_out_dir/libqt5_shim.so" ]
- }
-+if (use_qt6) {
-+  packaging_files += [ "$root_out_dir/libqt6_shim.so" ]
-+}
- 
- action_foreach("calculate_deb_dependencies") {
-   deps = [ ":installer_deps" ]
-@@ -249,6 +252,12 @@ if (use_qt) {
-     deps = [ "//ui/qt:qt5_shim" ]
-   }
- }
-+if (use_qt6) {
-+  strip_binary("strip_qt6_shim") {
-+    binary_input = "$root_out_dir/libqt6_shim.so"
-+    deps = [ "//ui/qt:qt6_shim" ]
-+  }
-+}
- 
- # This target builds all "normal" Linux installers.  You must set
- # is_component_build=false before building this target.
-@@ -447,6 +456,12 @@ group("installer_deps") {
-       "//ui/qt:qt5_shim",
-     ]
-   }
-+  if (use_qt6) {
-+    public_deps += [
-+      ":strip_qt6_shim",
-+      "//ui/qt:qt6_shim",
-+    ]
-+  }
- }
- 
- # Creates .deb and .rpm (RPM for non-ChromeOS only) installer packages.
-diff --git a/chrome/installer/linux/common/installer.include b/chrome/installer/linux/common/installer.include
-index 8d76f1f280b01..439ef5ccb0f52 100644
---- a/chrome/installer/linux/common/installer.include
-+++ b/chrome/installer/linux/common/installer.include
-@@ -254,6 +254,11 @@ stage_install_common() {
-     strippedfile="${OUTPUTDIR}/${file}.stripped"
-     install -m ${SHLIB_PERMS} "${strippedfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
-   fi
-+  if [ -f "${OUTPUTDIR}/libqt6_shim.so" ]; then
-+    file="libqt6_shim.so"
-+    strippedfile="${OUTPUTDIR}/${file}.stripped"
-+    install -m ${SHLIB_PERMS} "${strippedfile}" "${STAGEDIR}/${INSTALLDIR}/${file}"
-+  fi
- 
-   # libc++
-   if [ -f "${OUTPUTDIR}/lib/libc++.so" ]; then
-diff --git a/ui/qt/BUILD.gn b/ui/qt/BUILD.gn
-index bbede00daa4d0..6a67961edc2f7 100644
---- a/ui/qt/BUILD.gn
-+++ b/ui/qt/BUILD.gn
-@@ -11,13 +11,6 @@ assert(use_qt)
- assert(is_linux)
- assert(!is_castos)
- 
--pkg_config("qt5_config") {
--  packages = [
--    "Qt5Core",
--    "Qt5Widgets",
--  ]
--}
--
- config("qt_internal_config") {
-   if (is_clang) {
-     # libstdc++ headers are incompatible with -fcomplete-member-pointers.
-@@ -56,40 +49,57 @@ if (!use_sysroot) {
-   }
- }
- 
--shared_library("qt5_shim") {
--  visibility = [
--    ":qt",
--    "//chrome/installer/linux:*",
--  ]
--
--  # Since qt_shim is a shared library even in non-component builds, it shouldn't
--  # depend on any other targets since that would duplicate code between binaries
--  # leading to increased size and potential issues from duplicated global state.
--  no_default_deps = true
--  assert_no_deps = [
--    "//base",
--    "//buildtools/third_party/libc++",
--  ]
--  deps = [ ":qt_interface" ]
--
--  configs -= [ "//build/config/compiler:runtime_library" ]
--  configs += [
--    ":qt_internal_config",
--    ":qt5_config",
--  ]
-+template("qt_shim") {
-+  pkg_config("qt" + invoker.qt_version + "_config") {
-+    packages = [
-+      "Qt" + invoker.qt_version + "Core",
-+      "Qt" + invoker.qt_version + "Widgets",
-+    ]
-+  }
- 
--  public = []
--  sources = [
--    "qt_shim.cc",
--    "qt_shim.h",
--  ]
--  if (use_sysroot) {
--    # This file is generated with gen_qt_shim_moc.sh on an amd64 system to
--    # avoid a build-time dependency on `moc` when using the sysroot.
--    sources += [ "qt_shim_moc.cc" ]
--  } else {
--    sources += get_target_outputs(":generate_moc")
--    deps += [ ":generate_moc" ]
-+  shared_library(target_name) {
-+    visibility = [
-+      ":qt",
-+      "//chrome/installer/linux:*",
-+    ]
-+
-+    # Since qt_shim is a shared library even in non-component builds, it shouldn't
-+    # depend on any other targets since that would duplicate code between binaries
-+    # leading to increased size and potential issues from duplicated global state.
-+    no_default_deps = true
-+    assert_no_deps = [
-+      "//base",
-+      "//buildtools/third_party/libc++",
-+    ]
-+    deps = [ ":qt_interface" ]
-+
-+    configs -= [ "//build/config/compiler:runtime_library" ]
-+    configs += [
-+      ":qt_internal_config",
-+      ":qt" + invoker.qt_version + "_config",
-+    ]
-+
-+    public = []
-+    sources = [
-+      "qt_shim.cc",
-+      "qt_shim.h",
-+    ]
-+    if (use_sysroot) {
-+      # This file is generated with gen_qt_shim_moc.sh on an amd64 system to
-+      # avoid a build-time dependency on `moc` when using the sysroot.
-+      sources += [ "qt" + invoker.qt_version + "_shim_moc.cc" ]
-+    } else {
-+      sources += get_target_outputs(":generate_moc")
-+      deps += [ ":generate_moc" ]
-+    }
-+  }
-+}
-+qt_shim("qt5_shim") {
-+  qt_version = "5"
-+}
-+if (use_qt6) {
-+  qt_shim("qt6_shim") {
-+    qt_version = "6"
-   }
- }
- 
-@@ -100,6 +110,9 @@ component("qt") {
- 
-   # qt_shim is in data_deps since we want to load it manually.
-   data_deps = [ ":qt5_shim" ]
-+  if (use_qt6) {
-+    data_deps += [ ":qt6_shim" ]
-+  }
-   deps = [
-     ":qt_interface",
-     "//base",
-diff --git a/ui/qt/gen_qt_shim_moc.sh b/ui/qt/gen_qt_shim_moc.sh
-index 74272d5611dab..9d02c2dfcb12f 100755
---- a/ui/qt/gen_qt_shim_moc.sh
-+++ b/ui/qt/gen_qt_shim_moc.sh
-@@ -6,11 +6,15 @@
- set -o nounset
- set -o errexit
- 
--URL="http://archive.debian.org/debian/pool/main/q/qtbase-opensource-src"
--PACKAGE="qtbase5-dev-tools_5.3.2+dfsg-4+deb8u2_amd64.deb"
--SHA256="7703754f2c230ce6b8b6030b6c1e7e030899aa9f45a415498df04bd5ec061a76"
--SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-+URL5="http://archive.debian.org/debian/pool/main/q/qtbase-opensource-src"
-+PACKAGE5="qtbase5-dev-tools_5.3.2+dfsg-4+deb8u2_amd64.deb"
-+SHA256_5="7703754f2c230ce6b8b6030b6c1e7e030899aa9f45a415498df04bd5ec061a76"
-+
-+URL6="http://archive.ubuntu.com/ubuntu/pool/universe/q/qt6-base"
-+PACKAGE6="qt6-base-dev-tools_6.2.4+dfsg-2ubuntu1_amd64.deb"
-+SHA256_6="8dddfc79e7743185b07c478ca0f96a4ccc13d48ecccc42f44d2578c33c7d9b8b"
- 
-+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- TMP_DIR=$(mktemp -d -p "$SCRIPT_DIR")
- function cleanup {
-     rm -rf "$TMP_DIR"
-@@ -18,16 +22,22 @@ function cleanup {
- trap cleanup EXIT
- 
- cd "$TMP_DIR"
--wget "$URL/$PACKAGE"
--echo "$SHA256  $PACKAGE" | shasum -a 256 -c
--dpkg -x "$PACKAGE" .
--cat > ../qt_shim_moc.cc <<EOF
--// Copyright 2022 The Chromium Authors
-+wget "$URL5/$PACKAGE5"
-+echo "$SHA256_5  $PACKAGE5" | shasum -a 256 -c
-+dpkg -x "$PACKAGE5" .
-+wget "$URL6/$PACKAGE6"
-+echo "$SHA256_6  $PACKAGE6" | shasum -a 256 -c
-+dpkg -x "$PACKAGE6" .
-+cat > ../qt5_shim_moc.cc <<EOF
-+// Copyright 2023 The Chromium Authors
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- 
- EOF
- cd "$SCRIPT_DIR/../.."
-+cp ui/qt/qt5_shim_moc.cc ui/qt/qt6_shim_moc.cc
- "$TMP_DIR/usr/lib/x86_64-linux-gnu/qt5/bin/moc" ui/qt/qt_shim.h \
--    >> ui/qt/qt_shim_moc.cc
--git cl format ui/qt/qt_shim_moc.cc
-+    >> ui/qt/qt5_shim_moc.cc
-+"$TMP_DIR//usr/lib/qt6/libexec/moc" ui/qt/qt_shim.h \
-+    >> ui/qt/qt6_shim_moc.cc
-+git cl format ui/qt/qt5_shim_moc.cc ui/qt/qt6_shim_moc.cc
-diff --git a/ui/qt/qt.gni b/ui/qt/qt.gni
-index 27bb6375880b7..f45823270cb91 100644
---- a/ui/qt/qt.gni
-+++ b/ui/qt/qt.gni
-@@ -4,9 +4,17 @@
- 
- import("//build/config/chromecast_build.gni")
- import("//build/config/sanitizers/sanitizers.gni")
-+import("//build/config/sysroot.gni")
- 
- declare_args() {
-   # TODO(https://crbug.com/1424435): Allow QT in MSAN builds once QT is
-   # added to the instrumented libraries.
-   use_qt = is_linux && !is_castos && !is_msan
- }
-+
-+declare_args() {
-+  use_qt6 = use_qt && use_sysroot
-+}
-+
-+# use_qt6 => use_qt
-+assert(!use_qt6 || use_qt)
-diff --git a/ui/qt/qt_shim_moc.cc b/ui/qt/qt5_shim_moc.cc
-similarity index 95%
-rename from ui/qt/qt_shim_moc.cc
-rename to ui/qt/qt5_shim_moc.cc
-index dafbfadce56ba..8f8b6b57784a8 100644
---- a/ui/qt/qt_shim_moc.cc
-+++ b/ui/qt/qt5_shim_moc.cc
-@@ -1,4 +1,4 @@
--// Copyright 2022 The Chromium Authors
-+// Copyright 2023 The Chromium Authors
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- 
-@@ -89,26 +89,32 @@ const QMetaObject* qt::QtShim::metaObject() const {
- }
- 
- void* qt::QtShim::qt_metacast(const char* _clname) {
--  if (!_clname)
-+  if (!_clname) {
-     return 0;
--  if (!strcmp(_clname, qt_meta_stringdata_qt__QtShim.stringdata))
-+  }
-+  if (!strcmp(_clname, qt_meta_stringdata_qt__QtShim.stringdata)) {
-     return static_cast<void*>(const_cast<QtShim*>(this));
--  if (!strcmp(_clname, "QtInterface"))
-+  }
-+  if (!strcmp(_clname, "QtInterface")) {
-     return static_cast<QtInterface*>(const_cast<QtShim*>(this));
-+  }
-   return QObject::qt_metacast(_clname);
- }
- 
- int qt::QtShim::qt_metacall(QMetaObject::Call _c, int _id, void** _a) {
-   _id = QObject::qt_metacall(_c, _id, _a);
--  if (_id < 0)
-+  if (_id < 0) {
-     return _id;
-+  }
-   if (_c == QMetaObject::InvokeMetaMethod) {
--    if (_id < 2)
-+    if (_id < 2) {
-       qt_static_metacall(this, _c, _id, _a);
-+    }
-     _id -= 2;
-   } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
--    if (_id < 2)
-+    if (_id < 2) {
-       *reinterpret_cast<int*>(_a[0]) = -1;
-+    }
-     _id -= 2;
-   }
-   return _id;
-diff --git a/ui/qt/qt6_shim_moc.cc b/ui/qt/qt6_shim_moc.cc
-new file mode 100644
-index 0000000000000..6d02ca317b65d
---- /dev/null
-+++ b/ui/qt/qt6_shim_moc.cc
-@@ -0,0 +1,143 @@
-+// Copyright 2023 The Chromium Authors
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+/****************************************************************************
-+** Meta object code from reading C++ file 'qt_shim.h'
-+**
-+** Created by: The Qt Meta Object Compiler version 68 (Qt 6.2.4)
-+**
-+** WARNING! All changes made in this file will be lost!
-+*****************************************************************************/
-+
-+#include <QtCore/qbytearray.h>
-+#include <QtCore/qmetatype.h>
-+#include <memory>
-+#include "ui/qt/qt_shim.h"
-+#if !defined(Q_MOC_OUTPUT_REVISION)
-+#error "The header file 'qt_shim.h' doesn't include <QObject>."
-+#elif Q_MOC_OUTPUT_REVISION != 68
-+#error "This file was generated using the moc from 6.2.4. It"
-+#error "cannot be used with the include files from this version of Qt."
-+#error "(The moc has changed too much.)"
-+#endif
-+
-+QT_BEGIN_MOC_NAMESPACE
-+QT_WARNING_PUSH
-+QT_WARNING_DISABLE_DEPRECATED
-+struct qt_meta_stringdata_qt__QtShim_t {
-+  const uint offsetsAndSize[12];
-+  char stringdata0[52];
-+};
-+#define QT_MOC_LITERAL(ofs, len) \
-+  uint(offsetof(qt_meta_stringdata_qt__QtShim_t, stringdata0) + ofs), len
-+static const qt_meta_stringdata_qt__QtShim_t qt_meta_stringdata_qt__QtShim = {
-+    {
-+        QT_MOC_LITERAL(0, 10),   // "qt::QtShim"
-+        QT_MOC_LITERAL(11, 11),  // "FontChanged"
-+        QT_MOC_LITERAL(23, 0),   // ""
-+        QT_MOC_LITERAL(24, 4),   // "font"
-+        QT_MOC_LITERAL(29, 14),  // "PaletteChanged"
-+        QT_MOC_LITERAL(44, 7)    // "palette"
-+
-+    },
-+    "qt::QtShim\0FontChanged\0\0font\0"
-+    "PaletteChanged\0palette"};
-+#undef QT_MOC_LITERAL
-+
-+static const uint qt_meta_data_qt__QtShim[] = {
-+
-+    // content:
-+    10,     // revision
-+    0,      // classname
-+    0, 0,   // classinfo
-+    2, 14,  // methods
-+    0, 0,   // properties
-+    0, 0,   // enums/sets
-+    0, 0,   // constructors
-+    0,      // flags
-+    0,      // signalCount
-+
-+    // slots: name, argc, parameters, tag, flags, initial metatype offsets
-+    1, 1, 26, 2, 0x08, 1 /* Private */, 4, 1, 29, 2, 0x08, 3 /* Private */,
-+
-+    // slots: parameters
-+    QMetaType::Void, QMetaType::QFont, 3, QMetaType::Void, QMetaType::QPalette,
-+    5,
-+
-+    0  // eod
-+};
-+
-+void qt::QtShim::qt_static_metacall(QObject* _o,
-+                                    QMetaObject::Call _c,
-+                                    int _id,
-+                                    void** _a) {
-+  if (_c == QMetaObject::InvokeMetaMethod) {
-+    auto* _t = static_cast<QtShim*>(_o);
-+    (void)_t;
-+    switch (_id) {
-+      case 0:
-+        _t->FontChanged((*reinterpret_cast<std::add_pointer_t<QFont>>(_a[1])));
-+        break;
-+      case 1:
-+        _t->PaletteChanged(
-+            (*reinterpret_cast<std::add_pointer_t<QPalette>>(_a[1])));
-+        break;
-+      default:;
-+    }
-+  }
-+}
-+
-+const QMetaObject qt::QtShim::staticMetaObject = {
-+    {QMetaObject::SuperData::link<QObject::staticMetaObject>(),
-+     qt_meta_stringdata_qt__QtShim.offsetsAndSize, qt_meta_data_qt__QtShim,
-+     qt_static_metacall, nullptr,
-+     qt_incomplete_metaTypeArray<
-+         qt_meta_stringdata_qt__QtShim_t,
-+         QtPrivate::TypeAndForceComplete<QtShim, std::true_type>,
-+         QtPrivate::TypeAndForceComplete<void, std::false_type>,
-+         QtPrivate::TypeAndForceComplete<const QFont&, std::false_type>,
-+         QtPrivate::TypeAndForceComplete<void, std::false_type>,
-+         QtPrivate::TypeAndForceComplete<const QPalette&, std::false_type>
-+
-+         >,
-+     nullptr}};
-+
-+const QMetaObject* qt::QtShim::metaObject() const {
-+  return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject()
-+                                    : &staticMetaObject;
-+}
-+
-+void* qt::QtShim::qt_metacast(const char* _clname) {
-+  if (!_clname) {
-+    return nullptr;
-+  }
-+  if (!strcmp(_clname, qt_meta_stringdata_qt__QtShim.stringdata0)) {
-+    return static_cast<void*>(this);
-+  }
-+  if (!strcmp(_clname, "QtInterface")) {
-+    return static_cast<QtInterface*>(this);
-+  }
-+  return QObject::qt_metacast(_clname);
-+}
-+
-+int qt::QtShim::qt_metacall(QMetaObject::Call _c, int _id, void** _a) {
-+  _id = QObject::qt_metacall(_c, _id, _a);
-+  if (_id < 0) {
-+    return _id;
-+  }
-+  if (_c == QMetaObject::InvokeMetaMethod) {
-+    if (_id < 2) {
-+      qt_static_metacall(this, _c, _id, _a);
-+    }
-+    _id -= 2;
-+  } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
-+    if (_id < 2) {
-+      *reinterpret_cast<QMetaType*>(_a[0]) = QMetaType();
-+    }
-+    _id -= 2;
-+  }
-+  return _id;
-+}
-+QT_WARNING_POP
-+QT_END_MOC_NAMESPACE
-diff --git a/ui/qt/qt_ui.cc b/ui/qt/qt_ui.cc
-index d4052b7e8bc3d..6a3b58e9f930b 100644
---- a/ui/qt/qt_ui.cc
-+++ b/ui/qt/qt_ui.cc
-@@ -14,7 +14,9 @@
- #include "base/check.h"
- #include "base/command_line.h"
- #include "base/compiler_specific.h"
-+#include "base/environment.h"
- #include "base/memory/raw_ptr.h"
-+#include "base/nix/xdg_util.h"
- #include "base/notreached.h"
- #include "base/path_service.h"
- #include "base/time/time.h"
-@@ -47,6 +49,45 @@ namespace qt {
- 
- namespace {
- 
-+const char kQtVersionFlag[] = "qt-version";
-+
-+void* LoadLibrary(const base::FilePath& path) {
-+  return dlopen(path.value().c_str(), RTLD_NOW | RTLD_GLOBAL);
-+}
-+
-+void* LoadLibraryOrFallback(const base::FilePath& path,
-+                            const char* preferred,
-+                            const char* fallback) {
-+  if (void* library = LoadLibrary(path.Append(preferred))) {
-+    return library;
-+  }
-+  return LoadLibrary(path.Append(fallback));
-+}
-+
-+bool PreferQt6() {
-+  auto* cmd = base::CommandLine::ForCurrentProcess();
-+  if (cmd->HasSwitch(kQtVersionFlag)) {
-+    std::string qt_version_string = cmd->GetSwitchValueASCII(kQtVersionFlag);
-+    unsigned int qt_version = 0;
-+    if (base::StringToUint(qt_version_string, &qt_version)) {
-+      switch (qt_version) {
-+        case 5:
-+          return false;
-+        case 6:
-+          return true;
-+        default:
-+          LOG(ERROR) << "Unsupported QT version " << qt_version;
-+      }
-+    } else {
-+      LOG(ERROR) << "Unable to parse QT version " << qt_version_string;
-+    }
-+  }
-+
-+  auto env = base::Environment::Create();
-+  auto desktop = base::nix::GetDesktopEnvironment(env.get());
-+  return desktop == base::nix::DESKTOP_ENVIRONMENT_KDE6;
-+}
-+
- int QtWeightToCssWeight(int weight) {
-   struct {
-     int qt_weight;
-@@ -179,8 +220,10 @@ bool QtUi::Initialize() {
-   base::FilePath path;
-   if (!base::PathService::Get(base::DIR_MODULE, &path))
-     return false;
--  path = path.Append("libqt5_shim.so");
--  void* libqt_shim = dlopen(path.value().c_str(), RTLD_NOW | RTLD_GLOBAL);
-+  void* libqt_shim =
-+      PreferQt6()
-+          ? LoadLibraryOrFallback(path, "libqt6_shim.so", "libqt5_shim.so")
-+          : LoadLibraryOrFallback(path, "libqt5_shim.so", "libqt6_shim.so");
-   if (!libqt_shim)
-     return false;
-   void* create_qt_interface = dlsym(libqt_shim, "CreateQtInterface");

diff --git a/chromium-114-buildflag-el7.patch b/chromium-114-buildflag-el7.patch
deleted file mode 100644
index 6b9e468..0000000
--- a/chromium-114-buildflag-el7.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up chromium-114.0.5735.26/components/omnibox/browser/omnibox_edit_model.cc.me chromium-114.0.5735.26/components/omnibox/browser/omnibox_edit_model.cc
---- chromium-114.0.5735.26/components/omnibox/browser/omnibox_edit_model.cc.me	2023-05-14 09:14:10.886314480 +0200
-+++ chromium-114.0.5735.26/components/omnibox/browser/omnibox_edit_model.cc	2023-05-14 09:16:59.380054720 +0200
-@@ -79,7 +79,7 @@
- #include "ui/gfx/vector_icon_types.h"
- #endif
- 
--#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-+#ifdef GOOGLE_CHROME_BRANDING
- #include "components/vector_icons/vector_icons.h"  // nogncheck
- #endif
- 
-@@ -628,7 +628,7 @@ bool OmniboxEditModel::ShouldShowCurrent
- }
- 
- ui::ImageModel OmniboxEditModel::GetSuperGIcon(int image_size, bool dark_mode) {
--#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
-+#ifdef GOOGLE_CHROME_BRANDING
-   if (dark_mode) {
-     return ui::ImageModel::FromVectorIcon(
-         vector_icons::kGoogleGLogoMonochromeIcon, ui::kColorRefPrimary100,

diff --git a/chromium-114-constexpr-el7.patch b/chromium-114-constexpr-el7.patch
deleted file mode 100644
index 926ba24..0000000
--- a/chromium-114-constexpr-el7.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff -up chromium-114.0.5735.26/components/version_info/version_info.cc.constexpr-el7 chromium-114.0.5735.26/components/version_info/version_info.cc
-diff -up chromium-114.0.5735.26/components/version_info/version_info.h.constexpr-el7 chromium-114.0.5735.26/components/version_info/version_info.h
---- chromium-114.0.5735.26/components/version_info/version_info.h.constexpr-el7	2023-05-11 03:36:19.000000000 +0200
-+++ chromium-114.0.5735.26/components/version_info/version_info.h	2023-05-14 10:59:19.921578645 +0200
-@@ -27,18 +27,18 @@ const std::string GetProductNameAndVersi
-     const std::string& build_version);
- 
- // Returns the product name, e.g. "Chromium" or "Google Chrome".
--constexpr std::string GetProductName() {
-+static const std::string GetProductName() {
-   return PRODUCT_NAME;
- }
- 
- // Returns the version number, e.g. "6.0.490.1".
--constexpr std::string GetVersionNumber() {
-+static const std::string GetVersionNumber() {
-   return PRODUCT_VERSION;
- }
- 
- // Returns the product name and version information for the User-Agent header,
- // in the format: Chrome/<major_version>.<minor_version>.<build>.<patch>.
--constexpr std::string GetProductNameAndVersionForUserAgent() {
-+static const std::string GetProductNameAndVersionForUserAgent() {
-   return "Chrome/" + GetVersionNumber();
- }
- 
-@@ -53,7 +53,7 @@ std::string GetMajorVersionNumber();
- const base::Version& GetVersion();
- 
- // Returns a version control specific identifier of this release.
--constexpr std::string GetLastChange() {
-+static const std::string GetLastChange() {
-   return LAST_CHANGE;
- }
- 
-@@ -65,7 +65,7 @@ constexpr bool IsOfficialBuild() {
- }
- 
- // Returns the OS type, e.g. "Windows", "Linux", "FreeBSD", ...
--constexpr std::string GetOSType() {
-+static const std::string GetOSType() {
- #if BUILDFLAG(IS_WIN)
-   return "Windows";
- #elif BUILDFLAG(IS_IOS)
-@@ -97,7 +97,7 @@ constexpr std::string GetOSType() {
- 
- // Returns a string equivalent of |channel|, independent of whether the build
- // is branded or not and without any additional modifiers.
--constexpr std::string GetChannelString(Channel channel) {
-+static const std::string GetChannelString(Channel channel) {
-   switch (channel) {
-     case Channel::STABLE:
-       return "stable";
-@@ -114,7 +114,7 @@ constexpr std::string GetChannelString(C
- }
- 
- // Returns a list of sanitizers enabled in this build.
--constexpr std::string GetSanitizerList() {
-+static const std::string GetSanitizerList() {
-   return ""
- #if defined(ADDRESS_SANITIZER)
-          "address "

diff --git a/chromium-114-gcc13.patch b/chromium-114-gcc13.patch
deleted file mode 100644
index c79e74e..0000000
--- a/chromium-114-gcc13.patch
+++ /dev/null
@@ -1,389 +0,0 @@
-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/components/viz/common/view_transition_element_resource_id.h.me chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h
---- chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h.me	2023-01-17 19:03:10.920014806 +0100
-+++ chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h	2023-01-17 19:03:48.736395274 +0100
-@@ -5,6 +5,7 @@
- #ifndef COMPONENTS_VIZ_COMMON_VIEW_TRANSITION_ELEMENT_RESOURCE_ID_H_
- #define COMPONENTS_VIZ_COMMON_VIEW_TRANSITION_ELEMENT_RESOURCE_ID_H_
- 
-+#include <cstdint>
- #include <string>
- #include <vector>
- 
-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/include/llvm/Support/Signals.h.me chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h
---- chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h.me	2023-01-19 16:06:17.548272878 +0100
-+++ chromium-109.0.5414.74/third_party/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Support/Signals.h	2023-01-19 16:06:25.685410592 +0100
-@@ -14,6 +14,7 @@
- #ifndef LLVM_SUPPORT_SIGNALS_H
- #define LLVM_SUPPORT_SIGNALS_H
- 
-+#include <cstdint>
- #include <string>
- 
- namespace llvm {
-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-109.0.5414.74/base/cpu.h.me chromium-109.0.5414.74/base/cpu.h
---- chromium-109.0.5414.74/base/cpu.h.me	2023-01-19 21:31:02.905062987 +0100
-+++ chromium-109.0.5414.74/base/cpu.h	2023-01-19 21:31:32.298573267 +0100
-@@ -5,6 +5,7 @@
- #ifndef BASE_CPU_H_
- #define BASE_CPU_H_
- 
-+#include <cstdint>
- #include <string>
- 
- #include "base/base_export.h"
-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 --git a/chromium-114-norar.patch b/chromium-114-norar.patch
deleted file mode 100644
index 63205fa..0000000
--- a/chromium-114-norar.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-diff -up chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
---- chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar	2023-05-18 00:37:47.000000000 +0200
-+++ chromium-114.0.5735.35/chrome/browser/safe_browsing/download_protection/file_analyzer.cc	2023-05-21 18:12:30.368425080 +0200
-@@ -77,8 +77,6 @@ void FileAnalyzer::Start(const base::Fil
- 
-   if (inspection_type == DownloadFileType::ZIP) {
-     StartExtractZipFeatures();
--  } else if (inspection_type == DownloadFileType::RAR) {
--    StartExtractRarFeatures();
- #if BUILDFLAG(IS_MAC)
-   } else if (inspection_type == DownloadFileType::DMG) {
-     StartExtractDmgFeatures();
-diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc
---- chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc.nounrar	2023-05-18 00:37:48.000000000 +0200
-+++ chromium-114.0.5735.35/chrome/common/safe_browsing/archive_analyzer.cc	2023-05-21 18:11:14.870058635 +0200
-@@ -8,7 +8,6 @@
- #include "build/build_config.h"
- #include "build/buildflag.h"
- #include "chrome/common/safe_browsing/archive_analyzer_results.h"
--#include "chrome/common/safe_browsing/rar_analyzer.h"
- #include "chrome/common/safe_browsing/seven_zip_analyzer.h"
- #include "chrome/common/safe_browsing/zip_analyzer.h"
- #include "components/safe_browsing/content/common/proto/download_file_types.pb.h"
-@@ -23,9 +22,7 @@ namespace safe_browsing {
- // static
- std::unique_ptr<ArchiveAnalyzer> ArchiveAnalyzer::CreateForArchiveType(
-     DownloadFileType_InspectionType file_type) {
--  if (file_type == DownloadFileType::RAR) {
--    return std::make_unique<RarAnalyzer>();
--  } else if (file_type == DownloadFileType::ZIP) {
-+  if (file_type == DownloadFileType::ZIP) {
-     return std::make_unique<ZipAnalyzer>();
-   } else if (file_type == DownloadFileType::SEVEN_ZIP) {
-     return std::make_unique<SevenZipAnalyzer>();
-diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn
---- chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn.nounrar	2023-05-18 00:37:48.000000000 +0200
-+++ chromium-114.0.5735.35/chrome/common/safe_browsing/BUILD.gn	2023-05-21 18:11:14.869058617 +0200
-@@ -145,8 +145,6 @@ source_set("safe_browsing") {
-       "protobuf_message_log_macros.h",
-       "protobuf_message_read_macros.h",
-       "protobuf_message_write_macros.h",
--      "rar_analyzer.cc",
--      "rar_analyzer.h",
-       "seven_zip_analyzer.cc",
-       "seven_zip_analyzer.h",
-       "zip_analyzer.cc",
-@@ -162,7 +160,6 @@ source_set("safe_browsing") {
-       "//components/safe_browsing/content/common:file_type_policies",
-       "//components/safe_browsing/core/common",
-       "//third_party/lzma_sdk/google:seven_zip_reader",
--      "//third_party/unrar:unrar",
-     ]
- 
-     if (is_linux) {
-diff -up chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc
---- chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc.nounrar	2023-05-18 00:37:48.000000000 +0200
-+++ chromium-114.0.5735.35/chrome/common/safe_browsing/zip_analyzer.cc	2023-05-21 18:11:14.869058617 +0200
-@@ -18,7 +18,6 @@
- #include "base/time/time.h"
- #include "build/build_config.h"
- #include "chrome/common/safe_browsing/archive_analyzer_results.h"
--#include "chrome/common/safe_browsing/rar_analyzer.h"
- #include "components/safe_browsing/content/common/file_type_policies.h"
- #include "components/safe_browsing/core/common/features.h"
- #include "components/safe_browsing/core/common/proto/csd.pb.h"
-diff -up chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc.nounrar	2023-05-18 00:37:48.000000000 +0200
-+++ chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.cc	2023-05-21 18:11:14.870058635 +0200
-@@ -71,6 +71,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
-     base::File rar_file,
-     mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
-     AnalyzeRarFileCallback callback) {
-+#if 0
-   DCHECK(rar_file.IsValid());
-   temp_file_getter_.Bind(std::move(temp_file_getter));
-   callback_ = std::move(callback);
-@@ -86,6 +87,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
-   rar_analyzer_.Analyze(std::move(rar_file), base::FilePath(),
-                         std::move(analysis_finished_callback),
-                         std::move(temp_file_getter_callback), &results_);
-+#else
-+  NOTREACHED();
-+#endif
- }
- 
- void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
-diff -up chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h.nounrar chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h
---- chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h.nounrar	2023-05-18 00:37:48.000000000 +0200
-+++ chromium-114.0.5735.35/chrome/services/file_util/safe_archive_analyzer.h	2023-05-21 18:11:14.870058635 +0200
-@@ -6,7 +6,6 @@
- #define CHROME_SERVICES_FILE_UTIL_SAFE_ARCHIVE_ANALYZER_H_
- 
- #include "chrome/common/safe_browsing/archive_analyzer_results.h"
--#include "chrome/common/safe_browsing/rar_analyzer.h"
- #include "chrome/common/safe_browsing/seven_zip_analyzer.h"
- #include "chrome/common/safe_browsing/zip_analyzer.h"
- #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
-@@ -63,7 +62,6 @@ class SafeArchiveAnalyzer : public chrom
-   void Timeout();
- 
-   safe_browsing::ZipAnalyzer zip_analyzer_;
--  safe_browsing::RarAnalyzer rar_analyzer_;
-   safe_browsing::SevenZipAnalyzer seven_zip_analyzer_;
- #if BUILDFLAG(IS_MAC)
-   safe_browsing::dmg::DMGAnalyzer dmg_analyzer_;

diff --git a/chromium-114-typename.patch b/chromium-114-typename.patch
deleted file mode 100644
index 2cec4ef..0000000
--- a/chromium-114-typename.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc
---- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc.me	2023-05-03 17:46:37.194000834 +0200
-+++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.cc	2023-05-03 17:48:05.170317575 +0200
-@@ -87,7 +87,7 @@ ItemSortKey GetSortKey(const Item& item)
- // Helper to get an iterator to the last element in the cache. The cache
- // must not be empty.
- template <typename Item>
--SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
-+typename SortedItems<Item>::iterator GetLastIter(SortedItems<Item>& cache) {
-   CHECK(!cache.empty());
-   auto it = cache.end();
-   return std::prev(it);
-@@ -789,9 +789,9 @@ bool DownloadBubbleUpdateService::Remove
- }
- 
- template <typename Id, typename Item>
--SortedItems<Item>::iterator
-+typename SortedItems<Item>::iterator
- DownloadBubbleUpdateService::RemoveItemFromCacheByIter(
--    SortedItems<Item>::iterator iter,
-+    typename SortedItems<Item>::iterator iter,
-     SortedItems<Item>& cache,
-     IterMap<Id, Item>& iter_map) {
-   CHECK(iter != cache.end());
-diff -up chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h
---- chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h.me	2023-05-03 17:48:14.079551820 +0200
-+++ chromium-113.0.5672.63/chrome/browser/download/bubble/download_bubble_update_service.h	2023-05-03 17:49:24.702387180 +0200
-@@ -208,8 +208,8 @@ class DownloadBubbleUpdateService
- 
-   // Removes item if we already have the iterator to it. Returns next iterator.
-   template <typename Id, typename Item>
--  SortedItems<Item>::iterator RemoveItemFromCacheByIter(
--      SortedItems<Item>::iterator iter,
-+  typename SortedItems<Item>::iterator RemoveItemFromCacheByIter(
-+      typename SortedItems<Item>::iterator iter,
-       SortedItems<Item>& cache,
-       IterMap<Id, Item>& iter_map);
- 
-diff -up chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h.me chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h
---- chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h.me	2023-05-14 00:03:48.455961696 +0200
-+++ chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.h	2023-05-14 00:04:24.776589164 +0200
-@@ -587,7 +587,7 @@ class PrintBackendServiceManager {
-   template <class... T>
-   void RunSavedCallbacks(RemoteSavedCallbacks<T...>& saved_callbacks,
-                          const RemoteId& remote_id,
--                         std::remove_reference<T>::type... result);
-+                         typename std::remove_reference<T>::type... result);
- 
-   // Test support for client ID management.
-   static void SetClientsForTesting(
-diff -up chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc.me chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc
---- chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc.me	2023-05-14 12:40:29.555926646 +0200
-+++ chromium-114.0.5735.26/chrome/browser/printing/print_backend_service_manager.cc	2023-05-14 12:41:12.150471791 +0200
-@@ -1477,7 +1477,7 @@ template <class... T>
- void PrintBackendServiceManager::RunSavedCallbacks(
-     RemoteSavedCallbacks<T...>& saved_callbacks,
-     const RemoteId& remote_id,
--    std::remove_reference<T>::type... result) {
-+    typename std::remove_reference<T>::type... result) {
-   auto found_callbacks_map = saved_callbacks.find(remote_id);
-   if (found_callbacks_map == saved_callbacks.end())
-     return;  // No callbacks to run.

diff --git a/chromium-114-workaround_clang_bug-structured_binding.patch b/chromium-114-workaround_clang_bug-structured_binding.patch
deleted file mode 100644
index af8e737..0000000
--- a/chromium-114-workaround_clang_bug-structured_binding.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc
---- chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc.workaround_clang_bug-structured_binding	2023-05-11 03:36:27.000000000 +0200
-+++ chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/ng_grid_layout_algorithm.cc	2023-05-14 11:49:42.558129164 +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
-@@ -520,8 +523,10 @@ wtf_size_t NGGridLayoutAlgorithm::BuildG
-                                 row_auto_repetitions);
- 
-   bool has_nested_subgrid = false;
--  auto& [grid_items, layout_data, subtree_size] =
--      sizing_tree->CreateSizingData(opt_subgrid_data);
-+  auto& [g_i, l_d, s_s] = sizing_tree->CreateSizingData(opt_subgrid_data);
-+  auto& grid_items = g_i;
-+  auto& layout_data = l_d;
-+  auto& subtree_size = s_s;
- 
-   if (!must_ignore_children) {
-     // Construct grid items that are not subgridded.
-@@ -650,8 +655,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 =
-@@ -1640,8 +1647,10 @@ void NGGridLayoutAlgorithm::InitializeTr
-     const absl::optional<GridTrackSizingDirection>& opt_track_direction) 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;
- 
-   auto InitAndCacheTrackSizes = [&](GridTrackSizingDirection track_direction) {
-     InitializeTrackCollection(opt_subgrid_data, track_direction, &layout_data);
-@@ -1825,8 +1834,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 =
-diff -up chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc
---- chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc.me	2023-05-14 17:35:00.446844465 +0200
-+++ chromium-114.0.5735.26/media/base/cdm_promise_adapter.cc	2023-05-14 17:39:22.991733926 +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 --git a/chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch b/chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch
new file mode 100644
index 0000000..72e4385
--- /dev/null
+++ b/chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch
@@ -0,0 +1,226 @@
+commit 73e9d865abd6b636280c4bb45720af2ff2c1e374
+Author: Monica Basta <msalama@chromium.org>
+Date:   Fri Jun 2 13:25:42 2023 +0000
+
+    [BSC]: Add BoundSessionRefreshCookieFetcher::Result
+    
+    Bug: b/273920907
+    Change-Id: I6508dcb79592420bfa3ebe3aac872c097a303a02
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4574672
+    Commit-Queue: Monica Basta <msalama@chromium.org>
+    Reviewed-by: Alex Ilin <alexilin@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1152484}
+
+diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_cookie_controller_impl.cc b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_controller_impl.cc
+index 4e7e0b092a568..1c8c0110e3516 100644
+--- a/chrome/browser/signin/bound_session_credentials/bound_session_cookie_controller_impl.cc
++++ b/chrome/browser/signin/bound_session_credentials/bound_session_cookie_controller_impl.cc
+@@ -93,7 +93,7 @@ void BoundSessionCookieControllerImpl::MaybeRefreshCookie() {
+ void BoundSessionCookieControllerImpl::OnCookieRefreshFetched(
+     BoundSessionRefreshCookieFetcher::Result result) {
+   refresh_cookie_fetcher_.reset();
+-  if (result.net_error == net::OK && result.response_code == net::HTTP_OK) {
++  if (result == BoundSessionRefreshCookieFetcher::Result::kSuccess) {
+     // Requests are resumed once the cookie is set in the cookie jar. The
+     // cookie is expected to be fresh and `this` is notified with its
+     // expiration date before `OnCookieRefreshFetched` is called.
+diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h
+index db62988635a26..f7a8b3693346f 100644
+--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h
++++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher.h
+@@ -14,10 +14,13 @@
+ // created per request.
+ class BoundSessionRefreshCookieFetcher {
+  public:
+-  struct Result {
+-    net::Error net_error;
+-    absl::optional<int> response_code;
++  enum class Result {
++    kSuccess = 0,
++    kConnectionError = 1,
++    kServerTransientError = 2,
++    kServerPersistentError = 3,
+   };
++
+   // Reports the result of the fetch request.
+   using RefreshCookieCompleteCallback = base::OnceCallback<void(Result)>;
+ 
+diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc
+index 46be6f06b147a..a6f038b158311 100644
+--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc
++++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.cc
+@@ -8,6 +8,7 @@
+ 
+ #include "components/signin/public/base/signin_client.h"
+ #include "google_apis/gaia/gaia_urls.h"
++#include "net/http/http_status_code.h"
+ #include "net/traffic_annotation/network_traffic_annotation.h"
+ #include "services/network/public/cpp/resource_request.h"
+ #include "services/network/public/cpp/shared_url_loader_factory.h"
+@@ -102,7 +103,36 @@ void BoundSessionRefreshCookieFetcherImpl::OnURLLoaderComplete(
+     scoped_refptr<net::HttpResponseHeaders> headers) {
+   net::Error net_error = static_cast<net::Error>(url_loader_->NetError());
+ 
+-  std::move(callback_).Run(
+-      Result(net_error, headers ? absl::optional<int>(headers->response_code())
+-                                : absl::nullopt));
++  Result result = GetResultFromNetErrorAndHttpStatusCode(
++      net_error,
++      headers ? absl::optional<int>(headers->response_code()) : absl::nullopt);
++  std::move(callback_).Run(result);
++}
++
++BoundSessionRefreshCookieFetcher::Result
++BoundSessionRefreshCookieFetcherImpl::GetResultFromNetErrorAndHttpStatusCode(
++    net::Error net_error,
++    absl::optional<int> response_code) {
++  if ((net_error != net::OK &&
++       net_error != net::ERR_HTTP_RESPONSE_CODE_FAILURE) ||
++      !response_code) {
++    return BoundSessionRefreshCookieFetcher::Result::kConnectionError;
++  }
++
++  if (response_code == net::HTTP_OK) {
++    return BoundSessionRefreshCookieFetcher::Result::kSuccess;
++  }
++
++  if (response_code >= net::HTTP_INTERNAL_SERVER_ERROR) {
++    // Server error 5xx.
++    return BoundSessionRefreshCookieFetcher::Result::kServerTransientError;
++  }
++
++  if (response_code >= net::HTTP_BAD_REQUEST) {
++    // Server error 4xx.
++    return BoundSessionRefreshCookieFetcher::Result::kServerPersistentError;
++  }
++
++  // Unexpected response code.
++  return BoundSessionRefreshCookieFetcher::Result::kServerPersistentError;
+ }
+diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h
+index 733ffbaae088c..52943f0194c32 100644
+--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h
++++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl.h
+@@ -31,8 +31,14 @@ class BoundSessionRefreshCookieFetcherImpl
+   void Start(RefreshCookieCompleteCallback callback) override;
+ 
+  private:
++  FRIEND_TEST_ALL_PREFIXES(BoundSessionRefreshCookieFetcherImplTest,
++                           GetResultFromNetErrorAndHttpStatusCode);
++
+   void StartRefreshRequest();
+   void OnURLLoaderComplete(scoped_refptr<net::HttpResponseHeaders> headers);
++  Result GetResultFromNetErrorAndHttpStatusCode(
++      net::Error net_error,
++      absl::optional<int> response_code);
+ 
+   const raw_ptr<SigninClient> client_;
+   const scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
+diff --git a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc
+index d018592022d55..36ae64f83e4ee 100644
+--- a/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc
++++ b/chrome/browser/signin/bound_session_credentials/bound_session_refresh_cookie_fetcher_impl_unittest.cc
+@@ -19,8 +19,6 @@
+ #include "services/network/test/test_utils.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+ 
+-namespace {
+-
+ class BoundSessionRefreshCookieFetcherImplTest : public ::testing::Test {
+  public:
+   BoundSessionRefreshCookieFetcherImplTest() {
+@@ -55,8 +53,7 @@ TEST_F(BoundSessionRefreshCookieFetcherImplTest, Success) {
+       pending_request->request.url.spec(), "");
+   EXPECT_TRUE(future.Wait());
+   BoundSessionRefreshCookieFetcher::Result result = future.Get();
+-  EXPECT_EQ(result.net_error, net::OK);
+-  EXPECT_EQ(result.response_code, net::HTTP_OK);
++  EXPECT_EQ(result, BoundSessionRefreshCookieFetcher::Result::kSuccess);
+ }
+ 
+ TEST_F(BoundSessionRefreshCookieFetcherImplTest, FailureNetError) {
+@@ -75,8 +72,7 @@ TEST_F(BoundSessionRefreshCookieFetcherImplTest, FailureNetError) {
+ 
+   EXPECT_TRUE(future.Wait());
+   BoundSessionRefreshCookieFetcher::Result result = future.Get();
+-  EXPECT_EQ(result.net_error, status.error_code);
+-  EXPECT_FALSE(result.response_code.has_value());
++  EXPECT_EQ(result, BoundSessionRefreshCookieFetcher::Result::kConnectionError);
+ }
+ 
+ TEST_F(BoundSessionRefreshCookieFetcherImplTest, FailureHttpError) {
+@@ -93,8 +89,38 @@ TEST_F(BoundSessionRefreshCookieFetcherImplTest, FailureHttpError) {
+ 
+   EXPECT_TRUE(future.Wait());
+   BoundSessionRefreshCookieFetcher::Result result = future.Get();
+-  EXPECT_EQ(result.net_error, net::ERR_HTTP_RESPONSE_CODE_FAILURE);
+-  EXPECT_EQ(result.response_code, net::HTTP_UNAUTHORIZED);
++  EXPECT_EQ(result,
++            BoundSessionRefreshCookieFetcher::Result::kServerPersistentError);
++}
++
++TEST_F(BoundSessionRefreshCookieFetcherImplTest,
++       GetResultFromNetErrorAndHttpStatusCode) {
++  // Connection error.
++  EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode(
++                net::ERR_CONNECTION_TIMED_OUT, absl::nullopt),
++            BoundSessionRefreshCookieFetcher::Result::kConnectionError);
++  // net::OK.
++  EXPECT_EQ(
++      fetcher_->GetResultFromNetErrorAndHttpStatusCode(net::OK, net::HTTP_OK),
++      BoundSessionRefreshCookieFetcher::Result::kSuccess);
++  // net::ERR_HTTP_RESPONSE_CODE_FAILURE
++  EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode(
++                net::ERR_HTTP_RESPONSE_CODE_FAILURE, net::HTTP_BAD_REQUEST),
++            BoundSessionRefreshCookieFetcher::Result::kServerPersistentError);
++  // Persistent error.
++  EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode(
++                net::OK, net::HTTP_BAD_REQUEST),
++            BoundSessionRefreshCookieFetcher::Result::kServerPersistentError);
++  EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode(
++                net::OK, net::HTTP_NOT_FOUND),
++            BoundSessionRefreshCookieFetcher::Result::kServerPersistentError);
++  // Transient error.
++  EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode(
++                net::OK, net::HTTP_INTERNAL_SERVER_ERROR),
++            BoundSessionRefreshCookieFetcher::Result::kServerTransientError);
++  EXPECT_EQ(fetcher_->GetResultFromNetErrorAndHttpStatusCode(
++                net::OK, net::HTTP_GATEWAY_TIMEOUT),
++            BoundSessionRefreshCookieFetcher::Result::kServerTransientError);
+ }
+ 
+ TEST_F(BoundSessionRefreshCookieFetcherImplTest, NetworkDelayed) {
+@@ -114,5 +140,3 @@ TEST_F(BoundSessionRefreshCookieFetcherImplTest, NetworkDelayed) {
+ 
+   EXPECT_TRUE(future.Wait());
+ }
+-
+-}  // namespace
+diff --git a/chrome/browser/signin/bound_session_credentials/fake_bound_session_refresh_cookie_fetcher.cc b/chrome/browser/signin/bound_session_credentials/fake_bound_session_refresh_cookie_fetcher.cc
+index b4b1a07e687cb..fcfa9305d04e9 100644
+--- a/chrome/browser/signin/bound_session_credentials/fake_bound_session_refresh_cookie_fetcher.cc
++++ b/chrome/browser/signin/bound_session_credentials/fake_bound_session_refresh_cookie_fetcher.cc
+@@ -51,7 +51,8 @@ void FakeBoundSessionRefreshCookieFetcher::SimulateCompleteRefreshRequest(
+     // Synchronous since tests use `BoundSessionTestCookieManager`.
+     OnRefreshCookieCompleted(CreateFakeCookie(cookie_expiration.value()));
+   } else {
+-    std::move(callback_).Run(Result(net::Error::OK, net::HTTP_FORBIDDEN));
++    std::move(callback_).Run(
++        BoundSessionRefreshCookieFetcher::Result::kServerPersistentError);
+   }
+ }
+ 
+@@ -83,9 +84,11 @@ void FakeBoundSessionRefreshCookieFetcher::OnCookieSet(
+     net::CookieAccessResult access_result) {
+   bool success = access_result.status.IsInclude();
+   if (!success) {
+-    std::move(callback_).Run(Result(net::Error::OK, net::HTTP_FORBIDDEN));
++    std::move(callback_).Run(
++        BoundSessionRefreshCookieFetcher::Result::kServerPersistentError);
+   } else {
+-    std::move(callback_).Run(Result(net::Error::OK, net::HTTP_OK));
++    std::move(callback_).Run(
++        BoundSessionRefreshCookieFetcher::Result::kSuccess);
+   }
+   // |This| may be destroyed
+ }

diff --git a/chromium-115-buildflag-el7.patch b/chromium-115-buildflag-el7.patch
new file mode 100644
index 0000000..d3e2a7d
--- /dev/null
+++ b/chromium-115-buildflag-el7.patch
@@ -0,0 +1,21 @@
+diff -up chromium-115.0.5790.24/components/omnibox/browser/omnibox_edit_model.cc.buildflag-el7 chromium-115.0.5790.24/components/omnibox/browser/omnibox_edit_model.cc
+--- chromium-115.0.5790.24/components/omnibox/browser/omnibox_edit_model.cc.buildflag-el7	2023-06-07 21:48:29.000000000 +0200
++++ chromium-115.0.5790.24/components/omnibox/browser/omnibox_edit_model.cc	2023-06-17 16:50:46.373867625 +0200
+@@ -79,7 +79,7 @@
+ #include "ui/gfx/vector_icon_types.h"
+ #endif
+ 
+-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
++#ifdef GOOGLE_CHROME_BRANDING
+ #include "components/vector_icons/vector_icons.h"  // nogncheck
+ #endif
+ 
+@@ -631,7 +631,7 @@ bool OmniboxEditModel::ShouldShowCurrent
+ 
+ ui::ImageModel OmniboxEditModel::GetSuperGIcon(int image_size,
+                                                bool dark_mode) const {
+-#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
++#ifdef GOOGLE_CHROME_BRANDING
+   if (dark_mode) {
+     return ui::ImageModel::FromVectorIcon(
+         vector_icons::kGoogleGLogoMonochromeIcon, ui::kColorRefPrimary100,

diff --git a/chromium-115-compiler-SkColor4f.patch b/chromium-115-compiler-SkColor4f.patch
new file mode 100644
index 0000000..7e17cb0
--- /dev/null
+++ b/chromium-115-compiler-SkColor4f.patch
@@ -0,0 +1,26 @@
+diff -up chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc
+--- chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc.me	2023-06-24 10:38:11.011511463 +0200
++++ chromium-115.0.5790.40/third_party/blink/renderer/modules/canvas/canvas2d/canvas_style.cc	2023-06-24 13:07:35.865375884 +0200
+@@ -84,6 +84,7 @@ CanvasStyle::CanvasStyle(const CanvasSty
+ 
+ void CanvasStyle::ApplyToFlags(cc::PaintFlags& flags,
+                                float global_alpha) const {
++  SkColor4f custom_color = SkColor4f{0.0f, 0.0f, 0.0f, global_alpha};
+   switch (type_) {
+     case kColor:
+       ApplyColorToFlags(flags, global_alpha);
+@@ -91,12 +92,12 @@ void CanvasStyle::ApplyToFlags(cc::Paint
+     case kGradient:
+       GetCanvasGradient()->GetGradient()->ApplyToFlags(flags, SkMatrix::I(),
+                                                        ImageDrawOptions());
+-      flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
++      flags.setColor(custom_color);
+       break;
+     case kImagePattern:
+       GetCanvasPattern()->GetPattern()->ApplyToFlags(
+           flags, AffineTransformToSkMatrix(GetCanvasPattern()->GetTransform()));
+-      flags.setColor(SkColor4f(0.0f, 0.0f, 0.0f, global_alpha));
++      flags.setColor(custom_color);
+       break;
+     default:
+       NOTREACHED();

diff --git a/chromium-115-emplace_back_on_vector-c++20.patch b/chromium-115-emplace_back_on_vector-c++20.patch
new file mode 100644
index 0000000..d4dca6a
--- /dev/null
+++ b/chromium-115-emplace_back_on_vector-c++20.patch
@@ -0,0 +1,21 @@
+diff -up chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc
+--- chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc.me	2023-06-25 10:06:58.445990069 +0200
++++ chromium-115.0.5790.40/chrome/test/chromedriver/capabilities.cc	2023-06-25 10:51:17.640818231 +0200
+@@ -355,7 +355,7 @@ Status ParseMobileEmulation(const base::
+                         "'version' field of type string");
+         }
+ 
+-        brands.emplace_back(*brand, *version);
++        brands.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.brands = std::move(brands);
+@@ -392,7 +392,7 @@ Status ParseMobileEmulation(const base::
+                         "a 'version' field of type string");
+         }
+ 
+-        full_version_list.emplace_back(*brand, *version);
++        full_version_list.emplace_back() = {*brand, *version};
+       }
+ 
+       client_hints.full_version_list = std::move(full_version_list);

diff --git a/chromium-115-gcc13.patch b/chromium-115-gcc13.patch
new file mode 100644
index 0000000..195671e
--- /dev/null
+++ b/chromium-115-gcc13.patch
@@ -0,0 +1,378 @@
+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/components/viz/common/view_transition_element_resource_id.h.me chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h
+--- chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h.me	2023-01-17 19:03:10.920014806 +0100
++++ chromium-109.0.5414.74/components/viz/common/view_transition_element_resource_id.h	2023-01-17 19:03:48.736395274 +0100
+@@ -5,6 +5,7 @@
+ #ifndef COMPONENTS_VIZ_COMMON_VIEW_TRANSITION_ELEMENT_RESOURCE_ID_H_
+ #define COMPONENTS_VIZ_COMMON_VIEW_TRANSITION_ELEMENT_RESOURCE_ID_H_
+ 
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ 
+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-109.0.5414.74/base/cpu.h.me chromium-109.0.5414.74/base/cpu.h
+--- chromium-109.0.5414.74/base/cpu.h.me	2023-01-19 21:31:02.905062987 +0100
++++ chromium-109.0.5414.74/base/cpu.h	2023-01-19 21:31:32.298573267 +0100
+@@ -5,6 +5,7 @@
+ #ifndef BASE_CPU_H_
+ #define BASE_CPU_H_
+ 
++#include <cstdint>
+ #include <string>
+ 
+ #include "base/base_export.h"
+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 --git a/chromium-115-initial_prefs-etc-path.patch b/chromium-115-initial_prefs-etc-path.patch
new file mode 100644
index 0000000..b666b0c
--- /dev/null
+++ b/chromium-115-initial_prefs-etc-path.patch
@@ -0,0 +1,16 @@
+diff -up chromium-115.0.5790.32/chrome/browser/first_run/first_run_internal_linux.cc.me chromium-115.0.5790.32/chrome/browser/first_run/first_run_internal_linux.cc
+--- chromium-115.0.5790.32/chrome/browser/first_run/first_run_internal_linux.cc.me	2023-06-17 19:43:08.481952671 +0200
++++ chromium-115.0.5790.32/chrome/browser/first_run/first_run_internal_linux.cc	2023-06-17 19:44:26.165349772 +0200
+@@ -20,10 +20,8 @@ bool IsOrganicFirstRun() {
+ 
+ base::FilePath InitialPrefsPath() {
+   // The standard location of the initial prefs is next to the chrome binary.
+-  base::FilePath dir_exe;
+-  if (!base::PathService::Get(base::DIR_EXE, &dir_exe)) {
+-    return base::FilePath();
+-  }
++  // ...but we patch it to use /etc/chromium
++  base::FilePath dir_exe = base::FilePath("/etc/chromium");
+ 
+   return installer::InitialPreferences::Path(dir_exe);
+ }

diff --git a/chromium-115-missing-cmath.patch b/chromium-115-missing-cmath.patch
new file mode 100644
index 0000000..0c8bacd
--- /dev/null
+++ b/chromium-115-missing-cmath.patch
@@ -0,0 +1,22 @@
+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-115.0.5790.32/net/cert/pki/verify_name_match.h.me chromium-115.0.5790.32/net/cert/pki/verify_name_match.h
+--- chromium-115.0.5790.32/net/cert/pki/verify_name_match.h.me	2023-06-18 14:23:13.847725775 +0200
++++ chromium-115.0.5790.32/net/cert/pki/verify_name_match.h	2023-06-18 14:23:41.637221117 +0200
+@@ -6,6 +6,7 @@
+ #define NET_CERT_PKI_VERIFY_NAME_MATCH_H_
+ 
+ #include <string>
++#include <vector>
+ 
+ #include "net/base/net_export.h"
+ 

diff --git a/chromium-115-norar.patch b/chromium-115-norar.patch
new file mode 100644
index 0000000..9edbe20
--- /dev/null
+++ b/chromium-115-norar.patch
@@ -0,0 +1,63 @@
+diff -up chromium-115.0.5790.24/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar chromium-115.0.5790.24/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
+--- chromium-115.0.5790.24/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar	2023-06-07 21:48:24.000000000 +0200
++++ chromium-115.0.5790.24/chrome/browser/safe_browsing/download_protection/file_analyzer.cc	2023-06-17 14:33:36.906639952 +0200
+@@ -77,8 +77,6 @@ void FileAnalyzer::Start(const base::Fil
+ 
+   if (inspection_type == DownloadFileType::ZIP) {
+     StartExtractZipFeatures();
+-  } else if (inspection_type == DownloadFileType::RAR) {
+-    StartExtractRarFeatures();
+ #if BUILDFLAG(IS_MAC)
+   } else if (inspection_type == DownloadFileType::DMG) {
+     StartExtractDmgFeatures();
+diff -up chromium-115.0.5790.24/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-115.0.5790.24/chrome/common/safe_browsing/BUILD.gn
+--- chromium-115.0.5790.24/chrome/common/safe_browsing/BUILD.gn.nounrar	2023-06-07 21:48:26.000000000 +0200
++++ chromium-115.0.5790.24/chrome/common/safe_browsing/BUILD.gn	2023-06-17 14:33:36.906639952 +0200
+@@ -134,7 +134,6 @@ source_set("safe_browsing") {
+       "//components/safe_browsing/content/common:file_type_policies",
+       "//components/safe_browsing/core/common",
+       "//third_party/lzma_sdk/google:seven_zip_reader",
+-      "//third_party/unrar:unrar",
+     ]
+ 
+     public_deps = [
+diff -up chromium-115.0.5790.24/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-115.0.5790.24/chrome/services/file_util/safe_archive_analyzer.cc
+--- chromium-115.0.5790.24/chrome/services/file_util/safe_archive_analyzer.cc.nounrar	2023-06-07 21:48:26.000000000 +0200
++++ chromium-115.0.5790.24/chrome/services/file_util/safe_archive_analyzer.cc	2023-06-17 14:33:36.906639952 +0200
+@@ -69,6 +69,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
+     base::File rar_file,
+     mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
+     AnalyzeRarFileCallback callback) {
++#if 0
+   DCHECK(rar_file.IsValid());
+   temp_file_getter_.Bind(std::move(temp_file_getter));
+   callback_ = std::move(callback);
+@@ -84,6 +85,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
+   rar_analyzer_.Analyze(std::move(rar_file), base::FilePath(),
+                         std::move(analysis_finished_callback),
+                         std::move(temp_file_getter_callback), &results_);
++#else
++  NOTREACHED();
++#endif
+ }
+ 
+ void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
+diff -up chromium-115.0.5790.24/chrome/services/file_util/safe_archive_analyzer.h.nounrar chromium-115.0.5790.24/chrome/services/file_util/safe_archive_analyzer.h
+--- chromium-115.0.5790.24/chrome/services/file_util/safe_archive_analyzer.h.nounrar	2023-06-07 21:48:26.000000000 +0200
++++ chromium-115.0.5790.24/chrome/services/file_util/safe_archive_analyzer.h	2023-06-17 14:40:20.953942489 +0200
+@@ -7,7 +7,6 @@
+ 
+ #include "chrome/common/safe_browsing/archive_analyzer_results.h"
+ #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
+-#include "chrome/utility/safe_browsing/rar_analyzer.h"
+ #include "chrome/utility/safe_browsing/seven_zip_analyzer.h"
+ #include "chrome/utility/safe_browsing/zip_analyzer.h"
+ #include "mojo/public/cpp/bindings/remote.h"
+@@ -63,7 +62,6 @@ class SafeArchiveAnalyzer : public chrom
+   void Timeout();
+ 
+   safe_browsing::ZipAnalyzer zip_analyzer_;
+-  safe_browsing::RarAnalyzer rar_analyzer_;
+   safe_browsing::SevenZipAnalyzer seven_zip_analyzer_;
+ #if BUILDFLAG(IS_MAC)
+   safe_browsing::dmg::DMGAnalyzer dmg_analyzer_;

diff --git a/chromium-115-system-brotli.patch b/chromium-115-system-brotli.patch
new file mode 100644
index 0000000..c80c69e
--- /dev/null
+++ b/chromium-115-system-brotli.patch
@@ -0,0 +1,36 @@
+diff -up chromium-115.0.5790.24/net/filter/brotli_source_stream.cc.system-brotli chromium-115.0.5790.24/net/filter/brotli_source_stream.cc
+--- chromium-115.0.5790.24/net/filter/brotli_source_stream.cc.system-brotli	2023-06-07 21:48:38.000000000 +0200
++++ chromium-115.0.5790.24/net/filter/brotli_source_stream.cc	2023-06-17 14:42:19.734299929 +0200
+@@ -10,7 +10,7 @@
+ #include "base/memory/raw_ptr.h"
+ #include "base/metrics/histogram_macros.h"
+ #include "net/base/io_buffer.h"
+-#include "third_party/brotli/include/brotli/decode.h"
++#include <brotli/decode.h>
+ 
+ namespace net {
+ 
+diff -up chromium-115.0.5790.24/net/ssl/cert_compression.cc.system-brotli chromium-115.0.5790.24/net/ssl/cert_compression.cc
+--- chromium-115.0.5790.24/net/ssl/cert_compression.cc.system-brotli	2023-06-07 21:48:38.000000000 +0200
++++ chromium-115.0.5790.24/net/ssl/cert_compression.cc	2023-06-17 14:42:19.734299929 +0200
+@@ -9,7 +9,7 @@
+ #include "third_party/boringssl/src/include/openssl/ssl.h"
+ 
+ #if !defined(NET_DISABLE_BROTLI)
+-#include "third_party/brotli/include/brotli/decode.h"
++#include <brotli/decode.h>
+ #endif
+ 
+ namespace net {
+diff -up chromium-115.0.5790.24/ui/base/resource/resource_bundle.cc.system-brotli chromium-115.0.5790.24/ui/base/resource/resource_bundle.cc
+--- chromium-115.0.5790.24/ui/base/resource/resource_bundle.cc.system-brotli	2023-06-17 14:42:19.734299929 +0200
++++ chromium-115.0.5790.24/ui/base/resource/resource_bundle.cc	2023-06-17 14:44:18.591002119 +0200
+@@ -32,7 +32,7 @@
+ #include "net/filter/gzip_header.h"
+ #include "skia/ext/image_operations.h"
+ #include "third_party/abseil-cpp/absl/types/variant.h"
+-#include "third_party/brotli/include/brotli/decode.h"
++#include <brotli/decode.h>
+ #include "third_party/skia/include/core/SkBitmap.h"
+ #include "third_party/skia/include/core/SkColor.h"
+ #include "third_party/zlib/google/compression_utils.h"

diff --git a/chromium-115-typename.patch b/chromium-115-typename.patch
new file mode 100644
index 0000000..fc70420
--- /dev/null
+++ b/chromium-115-typename.patch
@@ -0,0 +1,48 @@
+diff -up chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.typename chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc
+--- chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.typename	2023-06-17 14:50:56.342591702 +0200
++++ chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc	2023-06-17 14:57:48.024377375 +0200
+@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item)
+ // Helper to get an iterator to the last element in the cache. The cache
+ // must not be empty.
+ template <typename Item>
+-SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
++typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
+   CHECK(!cache.empty());
+   auto it = cache.end();
+   return std::prev(it);
+@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheM
+ }
+ 
+ template <typename Id, typename Item>
+-SortedItems<Item>::iterator
++typename SortedItems<Item>::iterator
+ DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
+-    SortedItems<Item>::iterator iter,
++    typename SortedItems<Item>::iterator iter,
+     SortedItems<Item>& cache,
+     IterMap<Id, Item>& iter_map) {
+   CHECK(iter != cache.end());
+diff -up chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h
+--- chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me	2023-06-18 21:52:53.515625237 +0200
++++ chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h	2023-06-18 21:53:06.881881293 +0200
+@@ -189,7 +189,7 @@ class TFLiteModelExecutor : public Model
+   void SendForBatchExecution(
+       BatchExecutionCallback callback_on_complete,
+       base::TimeTicks start_time,
+-      ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
++      typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+       override {
+     DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
+     DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+diff -up chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me1 chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
+--- chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me1	2023-06-19 10:03:32.319218678 +0200
++++ chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc	2023-06-19 10:04:12.023942232 +0200
+@@ -169,7 +169,7 @@ class HTMLFastPathParser {
+   using Span = base::span<const Char>;
+   using USpan = base::span<const UChar>;
+   // 32 matches that used by HTMLToken::Attribute.
+-  typedef std::conditional<std::is_same_v<Char, UChar>,
++  typedef typename std::conditional<std::is_same_v<Char, UChar>,
+                            UCharLiteralBuffer<32>,
+                            LCharLiteralBuffer<32>>::type LiteralBufferType;
+   typedef UCharLiteralBuffer<32> UCharLiteralBufferType;

diff --git a/chromium-115-wayland-load_default_cursor_theme.patch b/chromium-115-wayland-load_default_cursor_theme.patch
new file mode 100644
index 0000000..6f47774
--- /dev/null
+++ b/chromium-115-wayland-load_default_cursor_theme.patch
@@ -0,0 +1,31 @@
+commit 8f46ad499d8f8afd56bf5c82cbbcad67285ed8aa
+Author: Phan Quang Minh <phanquangminh217@gmail.com>
+Date:   Wed May 24 10:13:45 2023 +0000
+
+    ozone/wayland: Load default cursor theme if theme name is empty
+    
+    We might need to load the cursor theme even if `OnCursorThemeName` never
+    gets called (e.g. Qt theme backend). In this case we will need to load
+    the default theme by passing `NULL` to wl_cursor_theme_load.
+    
+    Change-Id: I0e1814178319734a4d0fe7574cdc8c7a1d1cf7a5
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4553659
+    Reviewed-by: Antonio Gomes <tonikitoo@igalia.com>
+    Reviewed-by: Maksim Sisov <msisov@igalia.com>
+    Commit-Queue: Maksim Sisov <msisov@igalia.com>
+    Cr-Commit-Position: refs/heads/main@{#1148441}
+
+diff --git a/ui/ozone/platform/wayland/host/wayland_cursor_factory.cc b/ui/ozone/platform/wayland/host/wayland_cursor_factory.cc
+index 9ab12b1994c68..11b162554abc8 100644
+--- a/ui/ozone/platform/wayland/host/wayland_cursor_factory.cc
++++ b/ui/ozone/platform/wayland/host/wayland_cursor_factory.cc
+@@ -230,7 +230,8 @@ void WaylandCursorFactory::MaybeLoadThemeCursors() {
+   base::ThreadPool::PostTaskAndReplyWithResult(
+       FROM_HERE,
+       {base::MayBlock(), base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN},
+-      base::BindOnce(wl_cursor_theme_load, name_.c_str(), GetCacheKey(),
++      base::BindOnce(wl_cursor_theme_load,
++                     name_.empty() ? nullptr : name_.c_str(), GetCacheKey(),
+                      connection_->buffer_factory()->shm()),
+       base::BindOnce(&WaylandCursorFactory::OnThemeLoaded,
+                      weak_factory_.GetWeakPtr(), name_, size_));

diff --git a/chromium-115-workaround_clang_bug-structured_binding.patch b/chromium-115-workaround_clang_bug-structured_binding.patch
new file mode 100644
index 0000000..a70cdd9
--- /dev/null
+++ b/chromium-115-workaround_clang_bug-structured_binding.patch
@@ -0,0 +1,81 @@
+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-91.0.4472.77-initial_prefs-etc-path.patch b/chromium-91.0.4472.77-initial_prefs-etc-path.patch
deleted file mode 100644
index 96825e2..0000000
--- a/chromium-91.0.4472.77-initial_prefs-etc-path.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc.etc chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc
---- chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc.etc	2021-06-01 16:37:39.182531036 -0400
-+++ chromium-91.0.4472.77/chrome/browser/first_run/first_run_internal_linux.cc	2021-06-01 16:39:31.590102809 -0400
-@@ -20,9 +20,9 @@ bool IsOrganicFirstRun() {
- 
- base::FilePath InitialPrefsPath() {
-   // The standard location of the initial prefs is next to the chrome binary.
-+  // ...but we patch it to use /etc/chromium
-   base::FilePath initial_prefs;
--  if (!base::PathService::Get(base::DIR_EXE, &initial_prefs))
--    return base::FilePath();
-+  initial_prefs = base::FilePath("/etc/chromium");
- 
-   base::FilePath new_path = initial_prefs.AppendASCII(installer::kInitialPrefs);
-   if (base::PathIsReadable(new_path))

diff --git a/chromium.spec b/chromium.spec
index 2bb0491..f444593 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -6,12 +6,6 @@
 # enable|disable system build flags
 %global system_build_flags 0
 
-# disable the package notes info on f36
-# workaround for linking issue
-%if 0%{?fedora} == 36
-%undefine _package_note_file
-%endif
-
 # set default numjobs for the koji build
 %ifarch aarch64
 %global numjobs 8
@@ -240,7 +234,7 @@
 %endif
 
 Name:	chromium%{chromium_channel}
-Version: 114.0.5735.198
+Version: 115.0.5790.98
 Release: 1%{?dist}
 Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
 Url: http://www.chromium.org/Home
@@ -250,7 +244,7 @@ License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND G
 Patch0: chromium-70.0.3538.67-sandbox-pie.patch
 
 # Use /etc/chromium for initial_prefs
-Patch1: chromium-91.0.4472.77-initial_prefs-etc-path.patch
+Patch1: chromium-115-initial_prefs-etc-path.patch
 
 # Use gn system files
 Patch2: chromium-107.0.5304.110-gn-system.patch
@@ -259,7 +253,7 @@ Patch2: chromium-107.0.5304.110-gn-system.patch
 Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch
 
 # Do not use unrar code, it is non-free
-Patch6: chromium-114-norar.patch
+Patch6: chromium-115-norar.patch
 
 # Try to load widevine from other places
 Patch8: chromium-108-widevine-other-locations.patch
@@ -302,7 +296,7 @@ Patch70: chromium-105.0.5195.52-python-six-1.16.0.patch
 Patch82: chromium-98.0.4758.102-remoting-no-tests.patch
 
 # patch for using system brotli
-Patch89: chromium-108-system-brotli.patch
+Patch89: chromium-115-system-brotli.patch
 
 # disable GlobalMediaControlsCastStartStop to avoid crash
 # when using the address bar media player button
@@ -336,9 +330,8 @@ Patch106: chromium-98.0.4758.80-epel7-erase-fix.patch
 # Add additional operator== to make el7 happy.
 Patch107: chromium-99.0.4844.51-el7-extra-operator==.patch
 # workaround for clang bug on el7
-Patch108: chromium-114-constexpr-el7.patch
 Patch109: chromium-114-wireless-el7.patch
-Patch110: chromium-114-buildflag-el7.patch
+Patch110: chromium-115-buildflag-el7.patch
 
 # system ffmpeg
 Patch114: chromium-107-ffmpeg-duration.patch
@@ -349,19 +342,36 @@ Patch116: chromium-112-ffmpeg-first_dts.patch
 Patch117: chromium-108-ffmpeg-revert-new-channel-layout-api.patch
 
 # gcc13
-Patch122: chromium-114-gcc13.patch
+Patch122: chromium-115-gcc13.patch
 
 # revert AV1 VA-API video encode due to old libva on el9
 Patch130: chromium-114-revert-av1enc-el9.patch
 
 # Apply these patches to work around EPEL8 issues
 Patch300: chromium-113-rhel8-force-disable-use_gnome_keyring.patch
+
+# compiler build errors
+Patch301: chromium-115-compiler-SkColor4f.patch
+
 # workaround for clang bug, https://github.com/llvm/llvm-project/issues/57826
-Patch302: chromium-114-workaround_clang_bug-structured_binding.patch
+Patch302: chromium-115-workaround_clang_bug-structured_binding.patch
+
 # missing typename
-Patch303: chromium-114-typename.patch
+Patch303: chromium-115-typename.patch
+
+# missing cmath
+Patch304: chromium-115-missing-cmath.patch
+
+# add BoundSessionRefreshCookieFetcher::Result
+Patch305: chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch
+
+# compiler error with c++20
+Patch306: chromium-115-emplace_back_on_vector-c++20.patch
+
+# Load default cursor theme if theme name is empty
+Patch310: chromium-115-wayland-load_default_cursor_theme.patch
+
 # Qt issue
-Patch320: chromium-114-add_qt6_linuxui_backend.patch
 Patch321: chromium-114-qt-handle_scale_factor_changes.patch
 Patch322: chromium-114-qt-fix_font_double_scaling.patch
 Patch323: chromium-114-qt_deps.patch
@@ -942,7 +952,6 @@ udev.
 %patch -P105 -p1 -b .el7-old-libdrm
 %patch -P106 -p1 -b .el7-erase-fix
 %patch -P107 -p1 -b .el7-extra-operator-equalequal
-%patch -P108 -p1 -b .constexpr
 %patch -P109 -p1 -b .wireless
 %patch -P110 -p1 -b .buildflag-el7
 %endif
@@ -959,13 +968,18 @@ udev.
 
 %if %{clang}
 %if 0%{?rhel} || 0%{?fedora} < 38
+%patch -P301 -p1 -b .workaround_clang-SkColor4f
 %patch -P302 -p1 -b .workaround_clang_bug-structured_binding
 %endif
 %endif
 
 %patch -P303 -p1 -b .typename
+%patch -P304 -p1 -b .cmath
+%patch -P305 -p1 -b .add_BoundSessionRefreshCookieFetcher::Result
+%patch -P306 -p1 -b .emplace_back_on_vector-c++20
+
+%patch -P310 -p1 -b .wayland_load_default_cursor_theme
 
-%patch -P320 -p1 -b .add_qt6_linuxui_backend
 %patch -P321 -p1 -b .handle_scale_factor_changes
 %patch -P322 -p1 -b .fix_font_double_scaling
 %patch -P323 -p1 -b .qt_deps
@@ -1025,7 +1039,9 @@ sed -i 's|moc|moc-qt5|g' ui/qt/moc_wrapper.py
 %build
 # utf8 issue on epel7, Internal parsing error 'ascii' codec can't
 # decode byte 0xe2 in position 474: ordinal not in range(128)
+%if 0%{?rhel} == 7
 export LANG=en_US.UTF-8
+%endif
 
 # reduce warnings
 %if %{clang}
@@ -1112,6 +1128,9 @@ CHROMIUM_CORE_GN_DEFINES+=' is_clang=false'
 CHROMIUM_CORE_GN_DEFINES+=' use_lld=false'
 %endif
 
+# disable rust, it's only using for testing
+CHROMIUM_CORE_GN_DEFINES+=' enable_rust=false'
+
 CHROMIUM_CORE_GN_DEFINES+=' use_sysroot=false disable_fieldtrial_testing_config=true rtc_enable_symbol_export=true'
 
 %if %{use_gold}
@@ -1647,6 +1666,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
 %{chromium_path}/chromedriver
 
 %changelog
+* Tue Jul 18 2023 Than Ngo <than@redhat.com> - 115.0.5790.98-1
+- update to 115.0.5790.98
+
 * Tue Jun 27 2023 Than Ngo <than@redhat.com> - 114.0.5735.198-1
 - update to 114.0.5735.198
 

diff --git a/sources b/sources
index 2dcd01c..6af31fa 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-114.0.5735.198-clean.tar.xz) = 00d80802d074ce7f0b6f6c307f4454f7636c2d8b6aca33ab8309852d9e8cecc724a71bcfd996ba385f6c2e6306a03d12605d9bb53eb199e7982d2656cf462279
+SHA512 (chromium-115.0.5790.98-clean.tar.xz) = 5c0069ef0f70eaa8143eb876c838ba207fc7c231cc4daf83f70a0c4c5d785b0e4150442e1cfd232fd7d976a5c60a3cf23cfca07f2cdbfe7330d979f61f142658

^ 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 115.0.5790.98 Than Ngo

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