From 1f8fd846d2cc72c90c73c9867619f0da43b9c816 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Wed, 19 Jul 2023 09:21:08 +0200 Subject: [PATCH] update to 115.0.5790.98 --- chromium-108-system-brotli.patch | 36 -- chromium-114-add_qt6_linuxui_backend.patch | 545 ------------------ chromium-114-buildflag-el7.patch | 21 - chromium-114-constexpr-el7.patch | 62 -- chromium-114-norar.patch | 105 ---- chromium-114-typename.patch | 62 -- ...dSessionRefreshCookieFetcher::Result.patch | 226 ++++++++ chromium-115-buildflag-el7.patch | 21 + chromium-115-compiler-SkColor4f.patch | 26 + ...ium-115-emplace_back_on_vector-c++20.patch | 21 + ...14-gcc13.patch => chromium-115-gcc13.patch | 11 - chromium-115-initial_prefs-etc-path.patch | 16 + chromium-115-missing-cmath.patch | 22 + chromium-115-norar.patch | 63 ++ chromium-115-system-brotli.patch | 36 ++ chromium-115-typename.patch | 48 ++ ...15-wayland-load_default_cursor_theme.patch | 31 + ...karound_clang_bug-structured_binding.patch | 82 +-- ...-91.0.4472.77-initial_prefs-etc-path.patch | 15 - chromium.spec | 58 +- sources | 2 +- 21 files changed, 592 insertions(+), 917 deletions(-) delete mode 100644 chromium-108-system-brotli.patch delete mode 100644 chromium-114-add_qt6_linuxui_backend.patch delete mode 100644 chromium-114-buildflag-el7.patch delete mode 100644 chromium-114-constexpr-el7.patch delete mode 100644 chromium-114-norar.patch delete mode 100644 chromium-114-typename.patch create mode 100644 chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch create mode 100644 chromium-115-buildflag-el7.patch create mode 100644 chromium-115-compiler-SkColor4f.patch create mode 100644 chromium-115-emplace_back_on_vector-c++20.patch rename chromium-114-gcc13.patch => chromium-115-gcc13.patch (96%) create mode 100644 chromium-115-initial_prefs-etc-path.patch create mode 100644 chromium-115-missing-cmath.patch create mode 100644 chromium-115-norar.patch create mode 100644 chromium-115-system-brotli.patch create mode 100644 chromium-115-typename.patch create mode 100644 chromium-115-wayland-load_default_cursor_theme.patch rename chromium-114-workaround_clang_bug-structured_binding.patch => chromium-115-workaround_clang_bug-structured_binding.patch (53%) delete mode 100644 chromium-91.0.4472.77-initial_prefs-etc-path.patch diff --git a/chromium-108-system-brotli.patch b/chromium-108-system-brotli.patch deleted file mode 100644 index a5a4ecc7..00000000 --- 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 - - 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 - #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 - #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 fef27142..00000000 --- a/chromium-114-add_qt6_linuxui_backend.patch +++ /dev/null @@ -1,545 +0,0 @@ -commit 75f4b48eb71d4872ba3ac6c9fc3662a60eb4175d -Author: Tom Anderson -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 - Reviewed-by: Lei Zhang - 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 < ../qt5_shim_moc.cc <> 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(const_cast(this)); -- if (!strcmp(_clname, "QtInterface")) -+ } -+ if (!strcmp(_clname, "QtInterface")) { - return static_cast(const_cast(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(_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 -+#include -+#include -+#include "ui/qt/qt_shim.h" -+#if !defined(Q_MOC_OUTPUT_REVISION) -+#error "The header file 'qt_shim.h' doesn't include ." -+#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(_o); -+ (void)_t; -+ switch (_id) { -+ case 0: -+ _t->FontChanged((*reinterpret_cast>(_a[1]))); -+ break; -+ case 1: -+ _t->PaletteChanged( -+ (*reinterpret_cast>(_a[1]))); -+ break; -+ default:; -+ } -+ } -+} -+ -+const QMetaObject qt::QtShim::staticMetaObject = { -+ {QMetaObject::SuperData::link(), -+ 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, -+ QtPrivate::TypeAndForceComplete, -+ QtPrivate::TypeAndForceComplete, -+ QtPrivate::TypeAndForceComplete, -+ QtPrivate::TypeAndForceComplete -+ -+ >, -+ 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(this); -+ } -+ if (!strcmp(_clname, "QtInterface")) { -+ return static_cast(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(_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 6b9e468b..00000000 --- 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 926ba247..00000000 --- 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/.... --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-norar.patch b/chromium-114-norar.patch deleted file mode 100644 index 63205fa4..00000000 --- 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::CreateForArchiveType( - DownloadFileType_InspectionType file_type) { -- if (file_type == DownloadFileType::RAR) { -- return std::make_unique(); -- } else if (file_type == DownloadFileType::ZIP) { -+ if (file_type == DownloadFileType::ZIP) { - return std::make_unique(); - } else if (file_type == DownloadFileType::SEVEN_ZIP) { - return std::make_unique(); -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 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 2cec4ef7..00000000 --- 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 --SortedItems::iterator GetLastIter(SortedItems& cache) { -+typename SortedItems::iterator GetLastIter(SortedItems& cache) { - CHECK(!cache.empty()); - auto it = cache.end(); - return std::prev(it); -@@ -789,9 +789,9 @@ bool DownloadBubbleUpdateService::Remove - } - - template --SortedItems::iterator -+typename SortedItems::iterator - DownloadBubbleUpdateService::RemoveItemFromCacheByIter( -- SortedItems::iterator iter, -+ typename SortedItems::iterator iter, - SortedItems& cache, - IterMap& 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 -- SortedItems::iterator RemoveItemFromCacheByIter( -- SortedItems::iterator iter, -+ typename SortedItems::iterator RemoveItemFromCacheByIter( -+ typename SortedItems::iterator iter, - SortedItems& cache, - IterMap& 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 - void RunSavedCallbacks(RemoteSavedCallbacks& saved_callbacks, - const RemoteId& remote_id, -- std::remove_reference::type... result); -+ typename std::remove_reference::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 - void PrintBackendServiceManager::RunSavedCallbacks( - RemoteSavedCallbacks& saved_callbacks, - const RemoteId& remote_id, -- std::remove_reference::type... result) { -+ typename std::remove_reference::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-115-add_BoundSessionRefreshCookieFetcher::Result.patch b/chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch new file mode 100644 index 00000000..72e43856 --- /dev/null +++ b/chromium-115-add_BoundSessionRefreshCookieFetcher::Result.patch @@ -0,0 +1,226 @@ +commit 73e9d865abd6b636280c4bb45720af2ff2c1e374 +Author: Monica Basta +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 + Reviewed-by: Alex Ilin + 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 response_code; ++ enum class Result { ++ kSuccess = 0, ++ kConnectionError = 1, ++ kServerTransientError = 2, ++ kServerPersistentError = 3, + }; ++ + // Reports the result of the fetch request. + using RefreshCookieCompleteCallback = base::OnceCallback; + +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 headers) { + net::Error net_error = static_cast(url_loader_->NetError()); + +- std::move(callback_).Run( +- Result(net_error, headers ? absl::optional(headers->response_code()) +- : absl::nullopt)); ++ Result result = GetResultFromNetErrorAndHttpStatusCode( ++ net_error, ++ headers ? absl::optional(headers->response_code()) : absl::nullopt); ++ std::move(callback_).Run(result); ++} ++ ++BoundSessionRefreshCookieFetcher::Result ++BoundSessionRefreshCookieFetcherImpl::GetResultFromNetErrorAndHttpStatusCode( ++ net::Error net_error, ++ absl::optional 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 headers); ++ Result GetResultFromNetErrorAndHttpStatusCode( ++ net::Error net_error, ++ absl::optional response_code); + + const raw_ptr client_; + const scoped_refptr 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 00000000..d3e2a7d4 --- /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 00000000..7e17cb0f --- /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 00000000..d4dca6aa --- /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-114-gcc13.patch b/chromium-115-gcc13.patch similarity index 96% rename from chromium-114-gcc13.patch rename to chromium-115-gcc13.patch index c79e74e0..195671eb 100644 --- a/chromium-114-gcc13.patch +++ b/chromium-115-gcc13.patch @@ -242,17 +242,6 @@ diff -up chromium-109.0.5414.74/components/feature_engagement/internal/never_eve #include #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 - #include - - 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 diff --git a/chromium-115-initial_prefs-etc-path.patch b/chromium-115-initial_prefs-etc-path.patch new file mode 100644 index 00000000..b666b0c6 --- /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 00000000..0c8bacdc --- /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 + + 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 ++#include + + #include "net/base/net_export.h" + diff --git a/chromium-115-norar.patch b/chromium-115-norar.patch new file mode 100644 index 00000000..9edbe20d --- /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 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 00000000..c80c69ec --- /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 + + 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 + #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 + #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 00000000..fc704202 --- /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 +-SortedItems::const_iterator GetLastIter(const SortedItems& cache) { ++typename SortedItems::const_iterator GetLastIter(const SortedItems& cache) { + CHECK(!cache.empty()); + auto it = cache.end(); + return std::prev(it); +@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheM + } + + template +-SortedItems::iterator ++typename SortedItems::iterator + DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter( +- SortedItems::iterator iter, ++ typename SortedItems::iterator iter, + SortedItems& cache, + IterMap& iter_map) { + CHECK(iter != cache.end()); +diff -up chromium-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::ConstRefInputVector inputs) ++ typename ModelExecutor::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; + using USpan = base::span; + // 32 matches that used by HTMLToken::Attribute. +- typedef std::conditional, ++ typedef typename std::conditional, + 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 00000000..6f477747 --- /dev/null +++ b/chromium-115-wayland-load_default_cursor_theme.patch @@ -0,0 +1,31 @@ +commit 8f46ad499d8f8afd56bf5c82cbbcad67285ed8aa +Author: Phan Quang Minh +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 + Reviewed-by: Maksim Sisov + Commit-Queue: Maksim Sisov + 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-114-workaround_clang_bug-structured_binding.patch b/chromium-115-workaround_clang_bug-structured_binding.patch similarity index 53% rename from chromium-114-workaround_clang_bug-structured_binding.patch rename to chromium-115-workaround_clang_bug-structured_binding.patch index af8e7370..a70cdd9a 100644 --- a/chromium-114-workaround_clang_bug-structured_binding.patch +++ b/chromium-115-workaround_clang_bug-structured_binding.patch @@ -1,6 +1,20 @@ -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 +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); @@ -13,20 +27,7 @@ diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/n 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:: +@@ -655,8 +658,10 @@ NGGridSizingTree NGGridLayoutAlgorithm:: NGGridSizingTree sizing_tree; if (const auto* layout_subtree = ConstraintSpace().GridLayoutSubtree()) { @@ -39,8 +40,8 @@ diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/n const auto& node = Node(); grid_items = -@@ -1640,8 +1647,10 @@ void NGGridLayoutAlgorithm::InitializeTr - const absl::optional& opt_track_direction) const { +@@ -1798,8 +1803,10 @@ void NGGridLayoutAlgorithm::CompleteTrac + bool* opt_needs_additional_pass) const { DCHECK(sizing_subtree); - auto& [grid_items, layout_data, subtree_size] = @@ -50,12 +51,12 @@ diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/n + 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); - + const bool is_for_columns = track_direction == kForColumns; + const bool has_non_definite_track = +@@ -1924,8 +1931,10 @@ template + 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(); @@ -63,19 +64,18 @@ diff -up chromium-114.0.5735.26/third_party/blink/renderer/core/layout/ng/grid/n + 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"); + // 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 96825e29..00000000 --- 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 2bb04916..f4445939 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 - 115.0.5790.98-1 +- update to 115.0.5790.98 + * Tue Jun 27 2023 Than Ngo - 114.0.5735.198-1 - update to 114.0.5735.198 diff --git a/sources b/sources index 2dcd01cc..6af31fac 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