update to 115.0.5790.98

epel8
Than Ngo 1 year ago
parent daadf4916d
commit 1f8fd846d2

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

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

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

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

@ -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_;

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

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

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

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

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

@ -242,17 +242,6 @@ diff -up chromium-109.0.5414.74/components/feature_engagement/internal/never_eve
#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

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

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

@ -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_;

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

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

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

@ -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<GridTrackSizingDirection>& 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 <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();
@ -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",

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

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

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

Loading…
Cancel
Save