epel8
Tom spot Callaway 3 years ago
commit db263f775a

2
.gitignore vendored

@ -24,3 +24,5 @@
/xcb-proto-1.14.tar.xz
/NotoSansSymbols2-Regular.ttf
/NotoSansTibetan-Regular.ttf
/node-v12.22.6-linux-arm64.tar.xz
/node-v12.22.6-linux-x64.tar.xz

@ -1,23 +0,0 @@
diff -up chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h
--- chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h.gcc-include-memory 2019-09-13 14:44:24.962770079 +0200
+++ chromium-77.0.3865.75/third_party/one_euro_filter/src/one_euro_filter.h 2019-09-13 14:44:45.347073612 +0200
@@ -3,6 +3,8 @@
#include "low_pass_filter.h"
+#include <memory>
+
namespace one_euro_filter {
namespace test {
class OneEuroFilterTest;
diff -up chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h.missing-memory chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h
--- chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h.missing-memory 2020-02-21 12:25:17.206021379 -0500
+++ chromium-80.0.3987.106/third_party/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h 2020-02-21 12:25:31.613759976 -0500
@@ -12,6 +12,7 @@
#define MODULES_AUDIO_PROCESSING_AEC3_REVERB_MODEL_ESTIMATOR_H_
#include <array>
+#include <memory>
#include <vector>
#include "absl/types/optional.h"

@ -1,26 +0,0 @@
diff -up chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn.gcc-swiftshader-visibility chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn
--- chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn.gcc-swiftshader-visibility 2021-02-25 16:31:51.929335783 +0000
+++ chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libEGL/BUILD.gn 2021-02-25 16:31:51.929335783 +0000
@@ -42,7 +42,8 @@ config("swiftshader_libEGL_private_confi
} else if (is_clang) {
defines += [ "EGLAPI=__attribute__((visibility(\"protected\"))) __attribute__((no_sanitize(\"function\")))" ]
} else {
- defines += [ "EGLAPI= " ]
+ cflags += [ "-fvisibility=protected" ]
+ defines += [ "EGLAPI=__attribute__((visibility(\"protected\")))" ]
}
}
}
diff -up chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn.gcc-swiftshader-visibility chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn
--- chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn.gcc-swiftshader-visibility 2021-02-25 18:16:28.576901417 +0000
+++ chromium-88.0.4324.182/third_party/swiftshader/src/OpenGL/libGLESv2/BUILD.gn 2021-02-25 18:17:50.356567690 +0000
@@ -57,7 +57,8 @@ config("swiftshader_libGLESv2_private_co
} else if (is_clang) {
defines += [ "GL_APICALL=__attribute__((visibility(\"protected\"))) __attribute__((no_sanitize(\"function\")))" ]
} else {
- defines += [ "GL_APICALL= " ]
+ cflags += [ "-fvisibility=protected" ]
+ defines += [ "GL_APICALL=__attribute__((visibility(\"protected\")))" ]
}
}
}

@ -0,0 +1,45 @@
From c2d0133f47afb59b4ce64e42215d1d053f15250a Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Tue, 13 Apr 2021 23:21:42 +0000
Subject: [PATCH] fix crash in ThemeService
ThemeSyncableService and ThemeService are owned by each other. On
destruction of ThemeService, ThemeSyncableService gets destructed as
well, but calls RemoveObserver of partly destructed ThemeService object.
To avoid already destructed |observers_| list, move it before
|theme_syncable_service_| definition.
Bug: 1190561
Change-Id: I4dc2c990d589071d97b7fa737afef54463c84751
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2821311
Commit-Queue: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#872164}
---
chrome/browser/themes/theme_service.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/themes/theme_service.h b/chrome/browser/themes/theme_service.h
index 592d40ae9de0f..337dfac9a040f 100644
--- a/chrome/browser/themes/theme_service.h
+++ b/chrome/browser/themes/theme_service.h
@@ -299,6 +299,10 @@ class ThemeService : public KeyedService,
// The number of infobars currently displayed.
int number_of_reinstallers_ = 0;
+ // Declared before |theme_syncable_service_|, because ThemeSyncableService
+ // removes itself from the |observers_| list on destruction.
+ base::ObserverList<ThemeServiceObserver> observers_;
+
std::unique_ptr<ThemeSyncableService> theme_syncable_service_;
#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -320,8 +324,6 @@ class ThemeService : public KeyedService,
ScopedObserver<ui::NativeTheme, ui::NativeThemeObserver>
native_theme_observer_{this};
- base::ObserverList<ThemeServiceObserver> observers_;
-
base::WeakPtrFactory<ThemeService> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(ThemeService);

@ -0,0 +1,25 @@
--- a/buildtools/linux64/clang-format.orig 2021-08-23 09:18:56.269570955 +0200
+++ b/buildtools/linux64/clang-format 2021-08-23 09:17:55.531190516 +0200
@@ -10,9 +10,9 @@
args = sys.argv[1:]
inputfiles = [a for a in args if not a.startswith('-')]
-contents = ''
+contents = b''
if '-' in args or not inputfiles:
- contents = sys.stdin.read()
+ contents = sys.stdin.buffer.read()
# Tarball builds may or may not have depot_tools in $PATH. In the former case,
# running 'clang-format' will call back into this script infinitely. Strip off
@@ -34,8 +34,8 @@
stdout, stderr = proc.communicate(input=contents)
# Ignore if clang-format fails. Eg: it may be too old to support C++14.
if proc.returncode == 0:
- sys.stdout.write(stdout)
- sys.stderr.write(stderr)
+ sys.stdout.buffer.write(stdout)
+ sys.stderr.buffer.write(stderr)
sys.exit(0)
except OSError:
# Ignore if clang-format is not installed.

@ -0,0 +1,17 @@
GCC: make VRegister::from_code() constexpr on aarch64
LiftoffRegister::gp() and LiftoffRegister::fp() are constexpr.
Therefore, VRegister::from_code() needs to be constexpr as well.
diff --git a/v8/src/codegen/arm64/register-arm64.h b/v8/src/codegen/arm64/register-arm64.h
index 1150daf..21007a5 100644
--- a/v8/src/codegen/arm64/register-arm64.h
+++ b/v8/src/codegen/arm64/register-arm64.h
@@ -413,7 +413,7 @@ class VRegister : public CPURegister {
static constexpr int kMaxNumRegisters = kNumberOfVRegisters;
STATIC_ASSERT(kMaxNumRegisters == kDoubleAfterLast);
- static VRegister from_code(int code) {
+ static constexpr VRegister from_code(int code) {
// Always return a D register.
return VRegister::Create(code, kDRegSizeInBits);
}

@ -0,0 +1,70 @@
diff -up chromium-92.0.4515.107/components/cast_channel/enum_table.h.EnumTable-crash chromium-92.0.4515.107/components/cast_channel/enum_table.h
--- chromium-92.0.4515.107/components/cast_channel/enum_table.h.EnumTable-crash 2021-07-19 14:45:12.000000000 -0400
+++ chromium-92.0.4515.107/components/cast_channel/enum_table.h 2021-07-26 17:41:21.987375385 -0400
@@ -212,7 +212,7 @@ class
template <typename E>
friend class EnumTable;
- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
+ DISALLOW_ASSIGN(GenericEnumTableEntry);
};
// Yes, these constructors really needs to be inlined. Even though they look
@@ -250,8 +250,7 @@ class EnumTable {
// Constructor for regular entries.
constexpr Entry(E value, base::StringPiece str)
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
-
- DISALLOW_COPY_AND_ASSIGN(Entry);
+ DISALLOW_ASSIGN(Entry);
};
static_assert(sizeof(E) <= sizeof(int32_t),
@@ -306,15 +305,14 @@ class EnumTable {
if (is_sorted_) {
const std::size_t index = static_cast<std::size_t>(value);
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
- const auto& entry = data_.begin()[index];
+ const auto& entry = data_[index];
if (ANALYZER_ASSUME_TRUE(entry.has_str()))
return entry.str();
}
return absl::nullopt;
}
return GenericEnumTableEntry::FindByValue(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), static_cast<int32_t>(value));
+ &data_[0], data_.size(), static_cast<int32_t>(value));
}
// This overload of GetString is designed for cases where the argument is a
@@ -342,8 +340,7 @@ class EnumTable {
// enum value directly.
absl::optional<E> GetEnum(base::StringPiece str) const {
auto* entry = GenericEnumTableEntry::FindByString(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), str);
+ &data_[0], data_.size(), str);
return entry ? static_cast<E>(entry->value) : absl::optional<E>();
}
@@ -358,7 +355,7 @@ class EnumTable {
// Align the data on a cache line boundary.
alignas(64)
#endif
- std::initializer_list<Entry> data_;
+ const std::vector<Entry> data_;
bool is_sorted_;
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
@@ -370,8 +367,8 @@ class EnumTable {
for (std::size_t i = 0; i < data.size(); i++) {
for (std::size_t j = i + 1; j < data.size(); j++) {
- const Entry& ei = data.begin()[i];
- const Entry& ej = data.begin()[j];
+ const Entry& ei = data[i];
+ const Entry& ej = data[j];
DCHECK(ei.value != ej.value)
<< "Found duplicate enum values at indices " << i << " and " << j;
DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))

@ -0,0 +1,45 @@
diff -up chromium-92.0.4515.107/tools/gn/src/gn/err.h.gn-gcc-cleanup chromium-92.0.4515.107/tools/gn/src/gn/err.h
--- chromium-92.0.4515.107/tools/gn/src/gn/err.h.gn-gcc-cleanup 2021-07-19 14:54:04.000000000 -0400
+++ chromium-92.0.4515.107/tools/gn/src/gn/err.h 2021-07-26 17:23:54.477420431 -0400
@@ -56,7 +56,7 @@ class Err {
const std::string& help_text = std::string());
Err(const Err& other);
-
+ Err& operator=(const Err& other) = default;
~Err();
bool has_error() const { return has_error_; }
diff -up chromium-92.0.4515.107/tools/gn/src/gn/label_pattern.h.gn-gcc-cleanup chromium-92.0.4515.107/tools/gn/src/gn/label_pattern.h
--- chromium-92.0.4515.107/tools/gn/src/gn/label_pattern.h.gn-gcc-cleanup 2021-07-26 17:23:54.478420447 -0400
+++ chromium-92.0.4515.107/tools/gn/src/gn/label_pattern.h 2021-07-26 17:26:36.904894419 -0400
@@ -33,6 +33,7 @@ class LabelPattern {
std::string_view name,
const Label& toolchain_label);
LabelPattern(const LabelPattern& other);
+ LabelPattern& operator=(const LabelPattern& other) = default;
~LabelPattern();
// Converts the given input string to a pattern. This does special stuff
diff -up chromium-92.0.4515.107/tools/gn/src/gn/substitution_list.h.gn-gcc-cleanup chromium-92.0.4515.107/tools/gn/src/gn/substitution_list.h
--- chromium-92.0.4515.107/tools/gn/src/gn/substitution_list.h.gn-gcc-cleanup 2021-07-19 14:54:04.000000000 -0400
+++ chromium-92.0.4515.107/tools/gn/src/gn/substitution_list.h 2021-07-26 17:23:54.478420447 -0400
@@ -15,6 +15,7 @@ class SubstitutionList {
public:
SubstitutionList();
SubstitutionList(const SubstitutionList& other);
+ SubstitutionList& operator=(const SubstitutionList& other) = default;
~SubstitutionList();
bool Parse(const Value& value, Err* err);
diff -up chromium-92.0.4515.107/tools/gn/src/gn/substitution_pattern.h.gn-gcc-cleanup chromium-92.0.4515.107/tools/gn/src/gn/substitution_pattern.h
--- chromium-92.0.4515.107/tools/gn/src/gn/substitution_pattern.h.gn-gcc-cleanup 2021-07-19 14:54:04.000000000 -0400
+++ chromium-92.0.4515.107/tools/gn/src/gn/substitution_pattern.h 2021-07-26 17:23:54.478420447 -0400
@@ -35,6 +35,7 @@ class SubstitutionPattern {
SubstitutionPattern();
SubstitutionPattern(const SubstitutionPattern& other);
+ SubstitutionPattern& operator=(const SubstitutionPattern& other) = default;
~SubstitutionPattern();
// Parses the given string and fills in the pattern. The pattern must only

@ -0,0 +1,90 @@
diff -up chromium-92.0.4515.107/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-92.0.4515.107/chrome/common/safe_browsing/BUILD.gn
--- chromium-92.0.4515.107/chrome/common/safe_browsing/BUILD.gn.nounrar 2021-07-19 14:45:10.000000000 -0400
+++ chromium-92.0.4515.107/chrome/common/safe_browsing/BUILD.gn 2021-07-26 16:44:53.670761825 -0400
@@ -43,39 +43,6 @@ if (safe_browsing_mode == 1) {
public_deps = [ "//components/safe_browsing/core:csd_proto" ]
}
- source_set("rar_analyzer") {
- sources = [
- "rar_analyzer.cc",
- "rar_analyzer.h",
- ]
-
- deps = [
- ":archive_analyzer_results",
- ":download_type_util",
- "//base",
- "//base:i18n",
- "//components/safe_browsing/core:features",
- "//components/safe_browsing/core:file_type_policies",
- "//third_party/unrar:unrar",
- ]
-
- defines = [
- "_FILE_OFFSET_BITS=64",
- "LARGEFILE_SOURCE",
- "RAR_SMP",
- "SILENT",
-
- # The following is set to disable certain macro definitions in the unrar
- # source code.
- "CHROMIUM_UNRAR",
-
- # Disables exceptions in unrar, replaces them with process termination.
- "UNRAR_NO_EXCEPTIONS",
- ]
-
- public_deps = [ "//components/safe_browsing/core:csd_proto" ]
- }
-
if (is_mac) {
source_set("disk_image_type_sniffer_mac") {
sources = [
@@ -145,7 +112,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing/core:features",
]
diff -up chromium-92.0.4515.107/chrome/common/safe_browsing/DEPS.nounrar chromium-92.0.4515.107/chrome/common/safe_browsing/DEPS
--- chromium-92.0.4515.107/chrome/common/safe_browsing/DEPS.nounrar 2021-07-19 14:45:10.000000000 -0400
+++ chromium-92.0.4515.107/chrome/common/safe_browsing/DEPS 2021-07-26 16:44:53.670761825 -0400
@@ -1,6 +1,5 @@
include_rules = [
"+components/safe_browsing",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
]
diff -up chromium-92.0.4515.107/chrome/services/file_util/BUILD.gn.nounrar chromium-92.0.4515.107/chrome/services/file_util/BUILD.gn
--- chromium-92.0.4515.107/chrome/services/file_util/BUILD.gn.nounrar 2021-07-26 16:44:53.670761825 -0400
+++ chromium-92.0.4515.107/chrome/services/file_util/BUILD.gn 2021-07-26 16:48:21.283924750 -0400
@@ -50,7 +50,6 @@ source_set("file_util") {
deps += [
"//chrome/common/safe_browsing",
"//chrome/common/safe_browsing:archive_analyzer_results",
- "//chrome/common/safe_browsing:rar_analyzer",
]
}
diff -up chromium-92.0.4515.107/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-92.0.4515.107/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-92.0.4515.107/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2021-07-19 14:45:11.000000000 -0400
+++ chromium-92.0.4515.107/chrome/services/file_util/safe_archive_analyzer.cc 2021-07-26 16:44:53.670761825 -0400
@@ -45,10 +45,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
base::File temporary_file,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
safe_browsing::ArchiveAnalyzerResults results;
safe_browsing::rar_analyzer::AnalyzeRarFile(
std::move(rar_file), std::move(temporary_file), &results);
std::move(callback).Run(results);
+#else
+ NOTREACHED();
+#endif
}

@ -0,0 +1,24 @@
diff -up chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
--- chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2021-07-19 14:47:19.000000000 -0400
+++ chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2021-07-26 17:02:23.160750472 -0400
@@ -83,7 +83,7 @@ def _MinifyJS(input_js):
with tempfile.NamedTemporaryFile() as _:
args = [
- 'python',
+ 'python2',
rjsmin_path
]
p = subprocess.Popen(args,
diff -up chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py.py2 chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py
--- chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py.py2 2021-07-19 14:45:43.000000000 -0400
+++ chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py 2021-07-26 17:02:23.160750472 -0400
@@ -130,7 +130,7 @@ def main(argv):
if not options.debug:
gn_gen_args += ' is_debug=false'
subprocess.check_call([
- gn_path, 'gen', out_dir,
+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python2',
'--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
])

@ -0,0 +1,24 @@
diff -up chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
--- chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 2021-07-19 14:47:19.000000000 -0400
+++ chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py 2021-07-26 17:02:23.160750472 -0400
@@ -83,7 +83,7 @@ def _MinifyJS(input_js):
with tempfile.NamedTemporaryFile() as _:
args = [
- 'python',
+ 'python3',
rjsmin_path
]
p = subprocess.Popen(args,
diff -up chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py.py2 chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py
--- chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py.py2 2021-07-19 14:45:43.000000000 -0400
+++ chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py 2021-07-26 17:02:23.160750472 -0400
@@ -130,7 +130,7 @@ def main(argv):
if not options.debug:
gn_gen_args += ' is_debug=false'
subprocess.check_call([
- gn_path, 'gen', out_dir,
+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python3',
'--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
])

@ -0,0 +1,17 @@
diff -up chromium-92.0.4515.107/third_party/jinja2/tests.py.py3 chromium-92.0.4515.107/third_party/jinja2/tests.py
--- chromium-92.0.4515.107/third_party/jinja2/tests.py.py3 2021-07-28 15:53:45.670961029 -0400
+++ chromium-92.0.4515.107/third_party/jinja2/tests.py 2021-07-28 15:55:56.637013096 -0400
@@ -10,7 +10,12 @@
"""
import operator
import re
-from collections import Mapping
+import sys
+if sys.version_info[:2] >= (3, 8): # pragma: no cover
+ from collections.abc import Mapping
+else: # pragma: no cover
+ from collections import Mapping
+
from jinja2.runtime import Undefined
from jinja2._compat import text_type, string_types, integer_types
import decimal

@ -0,0 +1,13 @@
diff -up chromium-92.0.4515.107/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc.sigstkszfix chromium-92.0.4515.107/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc
diff -up chromium-92.0.4515.107/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.sigstkszfix chromium-92.0.4515.107/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
--- chromium-92.0.4515.107/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.sigstkszfix 2021-07-19 14:47:20.000000000 -0400
+++ chromium-92.0.4515.107/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2021-07-26 17:28:50.155924005 -0400
@@ -138,7 +138,7 @@ void InstallAlternateStackLocked() {
// SIGSTKSZ may be too small to prevent the signal handlers from overrunning
// the alternative stack. Ensure that the size of the alternative stack is
// large enough.
- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ);
+ static const unsigned kSigStackSize = std::max(static_cast<long>(16384), SIGSTKSZ);
// Only set an alternative stack if there isn't already one, or if the current
// one is too small.

@ -0,0 +1,12 @@
diff -up chromium-92.0.4515.107/components/os_crypt/features.gni.disblegnomekeyring chromium-92.0.4515.107/components/os_crypt/features.gni
--- chromium-92.0.4515.107/components/os_crypt/features.gni.disblegnomekeyring 2021-07-26 22:31:54.887207201 -0400
+++ chromium-92.0.4515.107/components/os_crypt/features.gni 2021-07-26 22:35:00.879013268 -0400
@@ -8,7 +8,7 @@ import("//build/config/ui.gni")
declare_args() {
# Whether to use libgnome-keyring (deprecated by libsecret).
# See http://crbug.com/466975 and http://crbug.com/355223.
- use_gnome_keyring = (is_linux || is_chromeos_lacros) && use_glib
+ use_gnome_keyring = false
# Whether to make account and service names for the crypto key storage
# configurable at runtime for embedders.

@ -0,0 +1,16 @@
diff -up chromium-92.0.4515.107/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.clone3 chromium-92.0.4515.107/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
--- chromium-92.0.4515.107/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc.clone3 2021-08-16 09:05:35.836277326 -0400
+++ chromium-92.0.4515.107/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2021-08-16 09:06:17.420502628 -0400
@@ -178,6 +178,12 @@ ResultExpr EvaluateSyscallImpl(int fs_de
return RestrictCloneToThreadsAndEPERMFork();
}
+ // clone3 takes a pointer argument which we cannot examine, so return ENOSYS
+ // to force the libc to use clone. See https://crbug.com/1213452.
+ if (sysno == __NR_clone3) {
+ return Error(ENOSYS);
+ }
+
if (sysno == __NR_fcntl)
return RestrictFcntlCommands();

File diff suppressed because it is too large Load Diff

@ -0,0 +1,20 @@
diff -up chromium-92.0.4515.107/chrome/common/chrome_paths.cc.widevine-other-locations chromium-92.0.4515.107/chrome/common/chrome_paths.cc
--- chromium-92.0.4515.107/chrome/common/chrome_paths.cc.widevine-other-locations 2021-07-26 16:50:41.815065696 -0400
+++ chromium-92.0.4515.107/chrome/common/chrome_paths.cc 2021-07-26 16:58:08.334868284 -0400
@@ -313,6 +313,16 @@ bool PathProvider(int key, base::FilePat
#if BUILDFLAG(ENABLE_WIDEVINE)
case chrome::DIR_BUNDLED_WIDEVINE_CDM:
+ base::PathService::Get(base::DIR_HOME, &cur);
+ cur = cur.Append(FILE_PATH_LITERAL(".local/lib/libwidevinecdm.so"));
+ if (base::PathExists(cur)) {
+ break;
+ }
+ // Yes, this has an arch hardcoded in the path, but at this time, it is the only place to find libwidevinecdm.so
+ if (base::PathExists(base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so")))) {
+ cur = base::FilePath(FILE_PATH_LITERAL("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"));
+ break;
+ }
if (!GetComponentDirectory(&cur))
return false;
#if !BUILDFLAG(IS_CHROMEOS_ASH)

@ -0,0 +1,30 @@
From 2f5514051210388bfcff605570d33f08cfa7bcaa Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Wed, 21 Jul 2021 08:34:58 +0000
Subject: [PATCH] IWYU: usage of unique_ptr requires including <memory> in bluetooth low energy scan filter.
Fix build because of missing include:
../../device/bluetooth/bluetooth_low_energy_scan_filter.h:57:15: error: unique_ptr in namespace std does not name a template type
57 | static std::unique_ptr<BluetoothLowEnergyScanFilter> Create(
| ^~~~~~~~~~
Bug: 819294
Change-Id: I347953a083f1bcdf744fd86e1a73954c6f86b32e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3041155
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Cr-Commit-Position: refs/heads/master@{#903819}
---
diff --git a/device/bluetooth/bluetooth_low_energy_scan_filter.h b/device/bluetooth/bluetooth_low_energy_scan_filter.h
index a0436c1..7ae606c 100644
--- a/device/bluetooth/bluetooth_low_energy_scan_filter.h
+++ b/device/bluetooth/bluetooth_low_energy_scan_filter.h
@@ -7,6 +7,7 @@
#include <stddef.h>
#include <stdint.h>
+#include <memory>
#include <vector>
#include "base/time/time.h"

@ -0,0 +1,30 @@
From 8ae99ee447cf5f0160ea4ae978cdf37f5dcecd1e Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Wed, 21 Jul 2021 08:36:20 +0000
Subject: [PATCH] IWYU: missing memory include for unique_ptr usage in class_property.h
Fix GCC build breakage because of missing inclide:
./../ui/base/class_property.h:120:58: error: std::unique_ptr has not been declared
120 | T* SetProperty(const ClassProperty<T*>* property, std::unique_ptr<T> value);
| ^~~~~~~~~~
Bug: 819294
Change-Id: I46b921876702b8d44674689bbb5acdc107db21e5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3041030
Reviewed-by: Peter Boström <pbos@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Cr-Commit-Position: refs/heads/master@{#903820}
---
diff --git a/ui/base/class_property.h b/ui/base/class_property.h
index f7b2f55..88b4938 100644
--- a/ui/base/class_property.h
+++ b/ui/base/class_property.h
@@ -8,6 +8,7 @@
#include <stdint.h>
#include <map>
+#include <memory>
#include <set>
#include <type_traits>

@ -0,0 +1,47 @@
From 7108f83c8ad1bad4072e4f32da3db6d59cf51400 Mon Sep 17 00:00:00 2001
From: Ivan Murashov <ivan.murashov@lge.com>
Date: Tue, 20 Jul 2021 13:16:44 +0300
Subject: [PATCH] GCC: Remove double declaration of ContextSet
After the CL
https://chromium-review.googlesource.com/c/angle/angle/+/2965780
the build with GCC failed with error:
/third_party/angle/src/libANGLE/Display.h:325:37: error: declaration of
'typedef class std::__1::set<gl::Context*> egl::Display::ContextSet'
changes meaning of 'ContextSet' [-fpermissive]
/third_party/angle/src/libANGLE/Display.h:75:7: note: 'ContextSet'
declared here as 'using ContextSet = class std::__1::set<gl::Context*>'
To fix the error the double declaration of ContextSet is removed.
Bug: angleproject:5878, chromium:819294
Change-Id: Id9e52061af53ea18dd5d13b960daaa67a14f61ca
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3038804
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
---
diff --git a/third_party/angle/CONTRIBUTORS b/third_party/angle/CONTRIBUTORS
index 887ddc2..94b1b4d 100644
--- a/third_party/angle/CONTRIBUTORS
+++ b/third_party/angle/CONTRIBUTORS
@@ -154,6 +154,7 @@
LG Electronics, Inc.
Jani Hautakangas
+ Ivan Murashov
IBM Inc.
Junliang Yan
diff --git a/third_party/angle/src/libANGLE/Display.h b/third_party/angle/src/libANGLE/Display.h
index f33123b..f0c0910 100644
--- a/third_party/angle/src/libANGLE/Display.h
+++ b/third_party/angle/src/libANGLE/Display.h
@@ -322,7 +322,6 @@
ConfigSet mConfigSet;
- typedef std::set<gl::Context *> ContextSet;
ContextSet mContextSet;
typedef std::set<Image *> ImageSet;

@ -0,0 +1,24 @@
From 409859ad9ba763a4267fb3457df7cd8eb0b7387b Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 25 Jul 2021 19:43:45 +0000
Subject: [PATCH] IWYU: add vector for std::vector
---
chrome/browser/devtools/devtools_embedder_message_dispatcher.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/chrome/browser/devtools/devtools_embedder_message_dispatcher.h b/chrome/browser/devtools/devtools_embedder_message_dispatcher.h
index 12f8500..4007112 100644
--- a/chrome/browser/devtools/devtools_embedder_message_dispatcher.h
+++ b/chrome/browser/devtools/devtools_embedder_message_dispatcher.h
@@ -8,6 +8,7 @@
#include <map>
#include <memory>
#include <string>
+#include <vector>
#include "base/callback.h"
#include "ui/gfx/geometry/insets.h"
--
2.31.1

@ -0,0 +1,49 @@
From 802150d7be94e5317b257df545d55ce5b007ae65 Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Tue, 20 Jul 2021 18:50:11 +0000
Subject: [PATCH] libstdc++: do not use unique_ptr bool() operator in a constexpr in form_forest.h
Fix build breakage in GCC, because of calling non constexpr functions from a
constexpr function. In this case, libstdc++ unique_ptr bool() operator is not
constexpr, so it cannot be used inside CompareByFrameToken.
An example of build breakage caused by this:
../../components/autofill/content/browser/form_forest.h:157:21: error: call to non-constexpr function std::unique_ptr<_Tp, _Dp>::operator bool() const [with _Tp = autofill::internal::FormForest::FrameData; _Dp = std::default_delete<autofill::internal::FormForest::FrameData>]
157 | return f && g ? f->frame_token < g->frame_token : f.get() < g.get();
| ^
Bug: 957519
Change-Id: I3c49559084fe58886a03520729873b7c4ac89bbf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3041050
Commit-Queue: Dominic Battré <battre@chromium.org>
Reviewed-by: Dominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#903595}
---
diff --git a/components/autofill/content/browser/form_forest.h b/components/autofill/content/browser/form_forest.h
index c89a8eb..f414ab8 100644
--- a/components/autofill/content/browser/form_forest.h
+++ b/components/autofill/content/browser/form_forest.h
@@ -152,16 +152,16 @@
// used by FrameData sets.
struct CompareByFrameToken {
using is_transparent = void;
- constexpr bool operator()(const std::unique_ptr<FrameData>& f,
- const std::unique_ptr<FrameData>& g) const {
+ bool operator()(const std::unique_ptr<FrameData>& f,
+ const std::unique_ptr<FrameData>& g) const {
return f && g ? f->frame_token < g->frame_token : f.get() < g.get();
}
- constexpr bool operator()(const std::unique_ptr<FrameData>& f,
- const LocalFrameToken& g) const {
+ bool operator()(const std::unique_ptr<FrameData>& f,
+ const LocalFrameToken& g) const {
return f ? f->frame_token < g : true;
}
- constexpr bool operator()(const LocalFrameToken& f,
- const std::unique_ptr<FrameData>& g) const {
+ bool operator()(const LocalFrameToken& f,
+ const std::unique_ptr<FrameData>& g) const {
return g ? f < g->frame_token : false;
}
};

@ -0,0 +1,30 @@
From 17d0e3dfcd0690df0e7b212fedcb95402f16935d Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Fri, 23 Jul 2021 10:17:49 +0000
Subject: [PATCH] IWYU: missing include for using std::vector in hash password manager.
Fix build breakage:
../../components/password_manager/core/browser/hash_password_manager.h:44:8: error: vector in namespace std does not name a template type
44 | std::vector<PasswordHashData> RetrieveAllPasswordHashes();
| ^~~~~~
Bug: 819294
Change-Id: I8c8a4ec3972eedb87a312c5ec56adf4a21b1b2a2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3041046
Commit-Queue: Vasilii Sukhanov <vasilii@chromium.org>
Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#904696}
---
diff --git a/components/password_manager/core/browser/hash_password_manager.h b/components/password_manager/core/browser/hash_password_manager.h
index c762c5a..85e656ed 100644
--- a/components/password_manager/core/browser/hash_password_manager.h
+++ b/components/password_manager/core/browser/hash_password_manager.h
@@ -6,6 +6,7 @@
#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_HASH_PASSWORD_MANAGER_H_
#include <string>
+#include <vector>
#include "base/callback.h"
#include "base/callback_list.h"

@ -0,0 +1,24 @@
From 92fc089d50fc81b9903cd0573c95749e41081474 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sun, 25 Jul 2021 21:38:26 +0000
Subject: [PATCH] IWYU: add cstring for std::strcpy
---
extensions/browser/extension_dialog_auto_confirm.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/extensions/browser/extension_dialog_auto_confirm.cc b/extensions/browser/extension_dialog_auto_confirm.cc
index adb4ac3..be8b161 100644
--- a/extensions/browser/extension_dialog_auto_confirm.cc
+++ b/extensions/browser/extension_dialog_auto_confirm.cc
@@ -4,6 +4,7 @@
#include "extensions/browser/extension_dialog_auto_confirm.h"
+#include <cstring>
#include <utility>
#include "base/check.h"
--
2.31.1

@ -0,0 +1,117 @@
From 7a6289c5ace52cf88f0e19caa5f78b7c15d0e7a6 Mon Sep 17 00:00:00 2001
From: Miklos Vajna <vmiklos@collabora.co.uk>
Date: Wed, 21 Jul 2021 17:42:30 +0000
Subject: [PATCH] fxcodec, fxge: fix missing includes with libstdc++
These missing includes break the build with gcc/libstdc++, they were not
a problem in practice with clang/libc++.
Change-Id: I40013f97ba7ab06f32aa59f87b04aec06a19478c
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/83210
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
---
diff --git a/third_party/pdfium/core/fxcodec/jpeg/jpegmodule.cpp b/third_party/pdfium/core/fxcodec/jpeg/jpegmodule.cpp
index cea0679..036f250 100644
--- a/third_party/pdfium/core/fxcodec/jpeg/jpegmodule.cpp
+++ b/third_party/pdfium/core/fxcodec/jpeg/jpegmodule.cpp
@@ -7,6 +7,7 @@
#include "core/fxcodec/jpeg/jpegmodule.h"
#include <setjmp.h>
+#include <string.h>
#include <memory>
#include <utility>
diff --git a/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp b/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp
index c66985a..9c1122b 100644
--- a/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp
+++ b/third_party/pdfium/core/fxcodec/jpx/cjpx_decoder.cpp
@@ -6,6 +6,8 @@
#include "core/fxcodec/jpx/cjpx_decoder.h"
+#include <string.h>
+
#include <algorithm>
#include <limits>
#include <utility>
diff --git a/third_party/pdfium/core/fxge/cfx_cliprgn.cpp b/third_party/pdfium/core/fxge/cfx_cliprgn.cpp
index 5369d52..d198852 100644
--- a/third_party/pdfium/core/fxge/cfx_cliprgn.cpp
+++ b/third_party/pdfium/core/fxge/cfx_cliprgn.cpp
@@ -6,6 +6,8 @@
#include "core/fxge/cfx_cliprgn.h"
+#include <string.h>
+
#include <utility>
#include "core/fxge/dib/cfx_dibitmap.h"
diff --git a/third_party/pdfium/core/fxge/dib/cfx_bitmapcomposer.cpp b/third_party/pdfium/core/fxge/dib/cfx_bitmapcomposer.cpp
index 6f9b420..0f1ffae 100644
--- a/third_party/pdfium/core/fxge/dib/cfx_bitmapcomposer.cpp
+++ b/third_party/pdfium/core/fxge/dib/cfx_bitmapcomposer.cpp
@@ -6,6 +6,8 @@
#include "core/fxge/dib/cfx_bitmapcomposer.h"
+#include <string.h>
+
#include "core/fxge/cfx_cliprgn.h"
#include "core/fxge/dib/cfx_dibitmap.h"
diff --git a/third_party/pdfium/core/fxge/dib/cfx_bitmapstorer.cpp b/third_party/pdfium/core/fxge/dib/cfx_bitmapstorer.cpp
index f57c00e..45a0a18 100644
--- a/third_party/pdfium/core/fxge/dib/cfx_bitmapstorer.cpp
+++ b/third_party/pdfium/core/fxge/dib/cfx_bitmapstorer.cpp
@@ -6,6 +6,8 @@
#include "core/fxge/dib/cfx_bitmapstorer.h"
+#include <string.h>
+
#include <utility>
#include "core/fxge/dib/cfx_dibitmap.h"
diff --git a/third_party/pdfium/core/fxge/dib/cfx_dibbase.cpp b/third_party/pdfium/core/fxge/dib/cfx_dibbase.cpp
index 4ec0ddb..a1de2fb 100644
--- a/third_party/pdfium/core/fxge/dib/cfx_dibbase.cpp
+++ b/third_party/pdfium/core/fxge/dib/cfx_dibbase.cpp
@@ -6,6 +6,8 @@
#include "core/fxge/dib/cfx_dibbase.h"
+#include <string.h>
+
#include <algorithm>
#include <memory>
#include <utility>
diff --git a/third_party/pdfium/core/fxge/dib/cfx_dibitmap.cpp b/third_party/pdfium/core/fxge/dib/cfx_dibitmap.cpp
index d7ccf6c..94e8acc 100644
--- a/third_party/pdfium/core/fxge/dib/cfx_dibitmap.cpp
+++ b/third_party/pdfium/core/fxge/dib/cfx_dibitmap.cpp
@@ -6,6 +6,8 @@
#include "core/fxge/dib/cfx_dibitmap.h"
+#include <string.h>
+
#include <limits>
#include <memory>
#include <utility>
diff --git a/third_party/pdfium/core/fxge/dib/cfx_scanlinecompositor.cpp b/third_party/pdfium/core/fxge/dib/cfx_scanlinecompositor.cpp
index e8362d7..c04c6dc 100644
--- a/third_party/pdfium/core/fxge/dib/cfx_scanlinecompositor.cpp
+++ b/third_party/pdfium/core/fxge/dib/cfx_scanlinecompositor.cpp
@@ -6,6 +6,8 @@
#include "core/fxge/dib/cfx_scanlinecompositor.h"
+#include <string.h>
+
#include <algorithm>
#include "core/fxge/dib/fx_dib.h"

@ -0,0 +1,34 @@
diff -up chromium-93.0.4577.63/buildtools/linux64/clang-format.clang-format-py3 chromium-93.0.4577.63/buildtools/linux64/clang-format
--- chromium-93.0.4577.63/buildtools/linux64/clang-format.clang-format-py3 2021-09-03 04:42:46.736294345 +0000
+++ chromium-93.0.4577.63/buildtools/linux64/clang-format 2021-09-03 04:59:55.296512600 +0000
@@ -10,9 +10,9 @@ import sys
args = sys.argv[1:]
inputfiles = [a for a in args if not a.startswith('-')]
-contents = ''
+contents = b''
if '-' in args or not inputfiles:
- contents = sys.stdin.read()
+ contents = sys.stdin.buffer.read()
# Tarball builds may or may not have depot_tools in $PATH. In the former case,
# running 'clang-format' will call back into this script infinitely. Strip off
@@ -34,14 +34,14 @@ try:
stdout, stderr = proc.communicate(input=contents)
# Ignore if clang-format fails. Eg: it may be too old to support C++14.
if proc.returncode == 0:
- sys.stdout.write(stdout)
- sys.stderr.write(stderr)
+ sys.stdout.buffer.write(stdout)
+ sys.stderr.buffer.write(stderr)
sys.exit(0)
except OSError:
# Ignore if clang-format is not installed.
pass
# If any failure happens, continue with unformatted files.
-sys.stdout.write(contents)
+sys.stdout.buffer.write(contents)
for inputfile in inputfiles:
- sys.stdout.write(open(inputfile).read())
+ sys.stdout.buffer.write(open(inputfile).read())

@ -0,0 +1,52 @@
diff -up chromium-93.0.4577.63/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp.freetype-2.11 chromium-93.0.4577.63/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
--- chromium-93.0.4577.63/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp.freetype-2.11 2021-09-02 08:49:18.996863417 -0400
+++ chromium-93.0.4577.63/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp 2021-09-02 08:56:07.716626801 -0400
@@ -712,7 +712,11 @@ void colrv1_draw_paint(SkCanvas* canvas,
canvas->drawPaint(colrPaint);
break;
}
+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
case FT_COLR_PAINTFORMAT_TRANSFORM:
+#else
+ case FT_COLR_PAINTFORMAT_TRANSFORMED:
+#endif
case FT_COLR_PAINTFORMAT_TRANSLATE:
case FT_COLR_PAINTFORMAT_SCALE:
case FT_COLR_PAINTFORMAT_ROTATE:
@@ -760,10 +764,17 @@ void colrv1_transform(SkCanvas* canvas,
SkMatrix transform;
switch (colrv1_paint.format) {
+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
case FT_COLR_PAINTFORMAT_TRANSFORM: {
transform = ToSkMatrix(colrv1_paint.u.transform.affine);
break;
}
+#else
+ case FT_COLR_PAINTFORMAT_TRANSFORMED: {
+ transform = ToSkMatrix(colrv1_paint.u.transformed.affine);
+ break;
+ }
+#endif
case FT_COLR_PAINTFORMAT_TRANSLATE: {
transform = SkMatrix::Translate(
SkFixedToScalar(colrv1_paint.u.translate.dx),
@@ -889,11 +900,18 @@ bool colrv1_traverse_paint(SkCanvas* can
traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID,
FT_COLOR_NO_ROOT_TRANSFORM);
break;
+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
case FT_COLR_PAINTFORMAT_TRANSFORM:
colrv1_transform(canvas, face, paint);
traverse_result = colrv1_traverse_paint(canvas, palette, face,
paint.u.transform.paint, visited_set);
break;
+#else
+ case FT_COLR_PAINTFORMAT_TRANSFORMED:
+ colrv1_transform(canvas, face, paint);
+ traverse_result = colrv1_traverse_paint(canvas, palette, face,
+ paint.u.transformed.paint, visited_set);
+#endif
case FT_COLR_PAINTFORMAT_TRANSLATE:
colrv1_transform(canvas, face, paint);
traverse_result = colrv1_traverse_paint(canvas, palette, face,

@ -0,0 +1,45 @@
diff -up chromium-93.0.4577.63/net/base/test_data_stream.cc.missing-cstring chromium-93.0.4577.63/net/base/test_data_stream.cc
--- chromium-93.0.4577.63/net/base/test_data_stream.cc.missing-cstring 2021-09-03 13:59:54.051831465 +0000
+++ chromium-93.0.4577.63/net/base/test_data_stream.cc 2021-09-03 14:00:05.448414041 +0000
@@ -5,6 +5,7 @@
#include "net/base/test_data_stream.h"
#include <algorithm>
+#include <cstring>
namespace net {
diff -up chromium-93.0.4577.63/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring chromium-93.0.4577.63/third_party/webrtc/audio/utility/channel_mixer.cc
--- chromium-93.0.4577.63/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring 2021-09-03 12:29:44.105246962 +0000
+++ chromium-93.0.4577.63/third_party/webrtc/audio/utility/channel_mixer.cc 2021-09-03 12:29:44.106246925 +0000
@@ -8,6 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include <cstring>
+
#include "audio/utility/channel_mixer.h"
#include "audio/utility/channel_mixing_matrix.h"
diff -up chromium-93.0.4577.63/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring chromium-93.0.4577.63/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
--- chromium-93.0.4577.63/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring 2021-09-03 12:29:43.585266089 +0000
+++ chromium-93.0.4577.63/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc 2021-09-03 12:29:43.585266089 +0000
@@ -23,6 +23,7 @@
#include <sys/mman.h>
#include <sys/syscall.h>
+#include <cstring>
#include <memory>
#include <utility>
diff -up chromium-93.0.4577.63/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring chromium-93.0.4577.63/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
--- chromium-93.0.4577.63/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring 2021-09-03 12:29:43.275277492 +0000
+++ chromium-93.0.4577.63/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc 2021-09-03 12:29:43.273277565 +0000
@@ -10,6 +10,7 @@
#include "modules/video_coding/utility/ivf_file_reader.h"
+#include <cstring>
#include <string>
#include <vector>

@ -0,0 +1,12 @@
diff -up chromium-93.0.4577.63/services/network/test/test_url_loader_factory.h.mojo-header-fix chromium-93.0.4577.63/services/network/test/test_url_loader_factory.h
--- chromium-93.0.4577.63/services/network/test/test_url_loader_factory.h.mojo-header-fix 2021-09-03 17:22:17.902206557 +0000
+++ chromium-93.0.4577.63/services/network/test/test_url_loader_factory.h 2021-09-03 17:22:31.853693947 +0000
@@ -19,7 +19,7 @@
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/mojom/url_loader.mojom.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
-#include "services/network/public/mojom/url_response_head.mojom-forward.h"
+#include "services/network/public/mojom/url_response_head.mojom.h"
namespace network {
class WeakWrapperSharedURLLoaderFactory;

@ -0,0 +1,90 @@
diff -up chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn
--- chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn.nounrar 2021-09-02 08:22:31.280927364 -0400
+++ chromium-93.0.4577.63/chrome/common/safe_browsing/BUILD.gn 2021-09-02 08:23:32.143189935 -0400
@@ -43,39 +43,6 @@ if (safe_browsing_mode == 1) {
public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
}
- source_set("rar_analyzer") {
- sources = [
- "rar_analyzer.cc",
- "rar_analyzer.h",
- ]
-
- deps = [
- ":archive_analyzer_results",
- ":download_type_util",
- "//base",
- "//base:i18n",
- "//components/safe_browsing/content/common:file_type_policies",
- "//components/safe_browsing/core/common",
- "//third_party/unrar:unrar",
- ]
-
- defines = [
- "_FILE_OFFSET_BITS=64",
- "LARGEFILE_SOURCE",
- "RAR_SMP",
- "SILENT",
-
- # The following is set to disable certain macro definitions in the unrar
- # source code.
- "CHROMIUM_UNRAR",
-
- # Disables exceptions in unrar, replaces them with process termination.
- "UNRAR_NO_EXCEPTIONS",
- ]
-
- public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
- }
-
if (is_mac) {
source_set("disk_image_type_sniffer_mac") {
sources = [
@@ -149,7 +116,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing/core/common",
]
diff -up chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS.nounrar chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS
--- chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS.nounrar 2021-09-02 08:22:31.280927364 -0400
+++ chromium-93.0.4577.63/chrome/common/safe_browsing/DEPS 2021-09-02 08:23:56.092293262 -0400
@@ -2,6 +2,5 @@ include_rules = [
"+components/safe_browsing/content/common",
"+components/safe_browsing/core/common",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
]
diff -up chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn.nounrar chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn
--- chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn.nounrar 2021-08-31 21:39:29.000000000 -0400
+++ chromium-93.0.4577.63/chrome/services/file_util/BUILD.gn 2021-09-02 08:22:31.280927364 -0400
@@ -50,7 +50,6 @@ source_set("file_util") {
deps += [
"//chrome/common/safe_browsing",
"//chrome/common/safe_browsing:archive_analyzer_results",
- "//chrome/common/safe_browsing:rar_analyzer",
]
}
diff -up chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2021-08-31 21:39:29.000000000 -0400
+++ chromium-93.0.4577.63/chrome/services/file_util/safe_archive_analyzer.cc 2021-09-02 08:22:31.281927369 -0400
@@ -45,10 +45,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
base::File temporary_file,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
safe_browsing::ArchiveAnalyzerResults results;
safe_browsing::rar_analyzer::AnalyzeRarFile(
std::move(rar_file), std::move(temporary_file), &results);
std::move(callback).Run(results);
+#else
+ NOTREACHED();
+#endif
}

@ -0,0 +1,12 @@
diff -up chromium-93.0.4577.63/tools/gn/bootstrap/bootstrap.py.py3 chromium-93.0.4577.63/tools/gn/bootstrap/bootstrap.py
--- chromium-93.0.4577.63/tools/gn/bootstrap/bootstrap.py.py3 2021-08-31 21:40:34.000000000 -0400
+++ chromium-93.0.4577.63/tools/gn/bootstrap/bootstrap.py 2021-09-02 08:26:04.415846917 -0400
@@ -130,7 +130,7 @@ def main(argv):
if not options.debug:
gn_gen_args += ' is_debug=false'
subprocess.check_call([
- gn_path, 'gen', out_dir,
+ gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python3',
'--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
])

@ -0,0 +1,21 @@
diff -up chromium-93.0.4577.63/remoting/host/remote_open_url_client.cc.remoting-nodestructor-fix chromium-93.0.4577.63/remoting/host/remote_open_url_client.cc
--- chromium-93.0.4577.63/remoting/host/remote_open_url_client.cc.remoting-nodestructor-fix 2021-09-03 17:30:44.162605313 +0000
+++ chromium-93.0.4577.63/remoting/host/remote_open_url_client.cc 2021-09-03 17:31:01.017986003 +0000
@@ -56,7 +56,7 @@ void ShowMessageDialog(const std::string
}
bool IsBrowserValid(const std::string& browser) {
- static const base::NoDestructor<base::flat_set<std::string>> invalid_browsers(
+ static const base::NoDestructor<base::flat_set<std::string>> invalid_browsers{
{
// This is the chromoting forwarder itself.
"crd-url-forwarder.desktop",
@@ -64,7 +64,7 @@ bool IsBrowserValid(const std::string& b
// XFCE's forwarder. May potentially launch the chromoting forwarder
// recursively.
"xfce4-web-browser.desktop",
- });
+ }};
if (browser.empty()) {
return false;
}

@ -0,0 +1,11 @@
diff -up chromium-93.0.4577.63/components/cast_channel/enum_table.h.vector-fix chromium-93.0.4577.63/components/cast_channel/enum_table.h
--- chromium-93.0.4577.63/components/cast_channel/enum_table.h.vector-fix 2021-09-03 12:23:37.974714814 +0000
+++ chromium-93.0.4577.63/components/cast_channel/enum_table.h 2021-09-03 12:23:51.330223540 +0000
@@ -8,6 +8,7 @@
#include <cstdint>
#include <cstring>
#include <ostream>
+#include <vector>
#include "base/check_op.h"
#include "base/macros.h"

@ -0,0 +1,14 @@
diff -up chromium-93.0.4577.63/chrome/browser/component_updater/registration.cc.widevine-no-download chromium-93.0.4577.63/chrome/browser/component_updater/registration.cc
--- chromium-93.0.4577.63/chrome/browser/component_updater/registration.cc.widevine-no-download 2021-09-02 08:37:03.910692041 -0400
+++ chromium-93.0.4577.63/chrome/browser/component_updater/registration.cc 2021-09-02 08:45:07.446778150 -0400
@@ -118,10 +118,6 @@ void RegisterComponentsForUpdate(bool is
RegisterMediaFoundationWidevineCdmComponent(cus);
#endif
-#if BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
- RegisterWidevineCdmComponent(cus);
-#endif // BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
-
#if BUILDFLAG(ENABLE_NACL) && !defined(OS_ANDROID)
#if BUILDFLAG(IS_CHROMEOS_ASH)
// PNaCl on Chrome OS is on rootfs and there is no need to download it. But

@ -0,0 +1,97 @@
diff -up chromium-93.0.4577.82/components/paint_preview/common/subset_font.cc.hbfix chromium-93.0.4577.82/components/paint_preview/common/subset_font.cc
--- chromium-93.0.4577.82/components/paint_preview/common/subset_font.cc.hbfix 2021-09-20 11:37:58.633517817 -0400
+++ chromium-93.0.4577.82/components/paint_preview/common/subset_font.cc 2021-09-20 11:40:12.111235467 -0400
@@ -72,9 +72,11 @@ sk_sp<SkData> SubsetFont(SkTypeface* typ
hb_set_t* glyphs =
hb_subset_input_glyph_set(input.get()); // Owned by |input|.
usage.ForEach(base::BindRepeating(&AddGlyphs, base::Unretained(glyphs)));
- hb_subset_input_set_retain_gids(input.get(), true);
+ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS);
- HbScoped<hb_face_t> subset_face(hb_subset(face.get(), input.get()));
+ HbScoped<hb_face_t> subset_face(hb_subset_or_fail(face.get(), input.get()));
+ if (!subset_face)
+ return nullptr;
HbScoped<hb_blob_t> subset_blob(hb_face_reference_blob(subset_face.get()));
if (!subset_blob)
return nullptr;
diff -up chromium-93.0.4577.82/third_party/skia/gn/skia.gni.hbfix chromium-93.0.4577.82/third_party/skia/gn/skia.gni
--- chromium-93.0.4577.82/third_party/skia/gn/skia.gni.hbfix 2021-09-20 11:41:20.078600944 -0400
+++ chromium-93.0.4577.82/third_party/skia/gn/skia.gni 2021-09-20 11:42:29.851976086 -0400
@@ -33,8 +33,6 @@ declare_args() {
skia_include_multiframe_procs = false
skia_lex = false
skia_libgifcodec_path = "third_party/externals/libgifcodec"
- skia_pdf_subset_harfbuzz =
- false # TODO: set skia_pdf_subset_harfbuzz to skia_use_harfbuzz.
skia_qt_path = getenv("QT_PATH")
skia_skqp_global_error_tolerance = 0
skia_tools_require_resources = false
@@ -99,6 +97,10 @@ declare_args() {
}
declare_args() {
+ skia_pdf_subset_harfbuzz = skia_use_harfbuzz
+}
+
+declare_args() {
skia_compile_sksl_tests = skia_compile_processors
skia_enable_fontmgr_android = skia_use_expat && skia_use_freetype
skia_enable_fontmgr_custom_directory = skia_use_freetype && !is_fuchsia
diff -up chromium-93.0.4577.82/third_party/skia/src/pdf/SkPDFSubsetFont.cpp.hbfix chromium-93.0.4577.82/third_party/skia/src/pdf/SkPDFSubsetFont.cpp
--- chromium-93.0.4577.82/third_party/skia/src/pdf/SkPDFSubsetFont.cpp.hbfix 2021-09-20 13:34:57.861369449 -0400
+++ chromium-93.0.4577.82/third_party/skia/src/pdf/SkPDFSubsetFont.cpp 2021-09-20 13:38:28.063504311 -0400
@@ -49,6 +49,37 @@ static sk_sp<SkData> to_data(HBBlob blob
blob.release());
}
+template<typename...> using void_t = void;
+template<typename T, typename = void>
+struct SkPDFHarfBuzzSubset {
+ // This is the HarfBuzz 3.0 interface.
+ // hb_subset_flags_t does not exist in 2.0. It isn't dependent on T, so inline the value of
+ // HB_SUBSET_FLAGS_RETAIN_GIDS until 2.0 is no longer supported.
+ static HBFace Make(T input, hb_face_t* face) {
+ // TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
+ // If it isn't known if a font is 'tricky', retain the hints.
+ hb_subset_input_set_flags(input, 2/*HB_SUBSET_FLAGS_RETAIN_GIDS*/);
+ return HBFace(hb_subset_or_fail(face, input));
+ }
+};
+template<typename T>
+struct SkPDFHarfBuzzSubset<T, void_t<
+ decltype(hb_subset_input_set_retain_gids(std::declval<T>(), std::declval<bool>())),
+ decltype(hb_subset_input_set_drop_hints(std::declval<T>(), std::declval<bool>())),
+ decltype(hb_subset(std::declval<hb_face_t*>(), std::declval<T>()))
+ >>
+{
+ // This is the HarfBuzz 2.0 (non-public) interface, used if it exists.
+ // This code should be removed as soon as all users are migrated to the newer API.
+ static HBFace Make(T input, hb_face_t* face) {
+ hb_subset_input_set_retain_gids(input, true);
+ // TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
+ // If it isn't known if a font is 'tricky', retain the hints.
+ hb_subset_input_set_drop_hints(input, false);
+ return HBFace(hb_subset(face, input));
+ }
+};
+
static sk_sp<SkData> subset_harfbuzz(sk_sp<SkData> fontData,
const SkPDFGlyphUse& glyphUsage,
int ttcIndex) {
@@ -71,11 +102,10 @@ static sk_sp<SkData> subset_harfbuzz(sk_
hb_set_t* glyphs = hb_subset_input_glyph_set(input.get());
glyphUsage.getSetValues([&glyphs](unsigned gid) { hb_set_add(glyphs, gid);});
- hb_subset_input_set_retain_gids(input.get(), true);
- // TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
- // If it isn't known if a font is 'tricky', retain the hints.
- hb_subset_input_set_drop_hints(input.get(), false);
- HBFace subset(hb_subset(face.get(), input.get()));
+ HBFace subset = SkPDFHarfBuzzSubset<hb_subset_input_t*>::Make(input.get(), face.get());
+ if (!subset) {
+ return nullptr;
+ }
HBBlob result(hb_face_reference_blob(subset.get()));
return to_data(std::move(result));
}

@ -0,0 +1,31 @@
From 45bea088d3771c7ff9f77173e451422452c031b3 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Mon, 02 Aug 2021 16:57:05 +0000
Subject: [PATCH] GCC: drop WARN_USED_RESULT in lambda in ConversionStorageSql
GCC 9.3 only allows GNU attributes between [] and () in lambda
expressions. See https://gcc.gnu.org/PR90333 for details. However,
clang only allows attributes after () only. Seems not strictly
necessary to enforce the attribute here.
Bug: 819294
Change-Id: I342deb25239837dea0f6f5e7709b1467789e342b
---
diff --git a/content/browser/conversions/conversion_storage_sql.cc b/content/browser/conversions/conversion_storage_sql.cc
index 84bc897..b6fc4e9 100644
--- a/content/browser/conversions/conversion_storage_sql.cc
+++ b/content/browser/conversions/conversion_storage_sql.cc
@@ -688,9 +688,11 @@
bool ConversionStorageSql::DeleteExpiredImpressions() {
const int kMaxDeletesPerBatch = 100;
+ // GCC accepts attribute between [] and () only
+ // clang accepts attribute after () only
auto delete_impressions_from_paged_select =
[this](sql::Statement& statement)
- VALID_CONTEXT_REQUIRED(sequence_checker_) WARN_UNUSED_RESULT -> bool {
+ VALID_CONTEXT_REQUIRED(sequence_checker_) -> bool {
while (true) {
std::vector<int64_t> impression_ids;
while (statement.Step()) {

@ -0,0 +1,24 @@
From 4eeacdaa57b29a079fe09315eb22557c06aa522e Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 13 Aug 2021 12:57:42 +0000
Subject: [PATCH] IWYU: add memory for std::unique_ptr in blink::CustomSpaces
---
.../blink/renderer/platform/heap/v8_wrapper/custom_spaces.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h b/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
index df0465a..640cb33 100644
--- a/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
+++ b/third_party/blink/renderer/platform/heap/v8_wrapper/custom_spaces.h
@@ -5,6 +5,7 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_CUSTOM_SPACES_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_HEAP_V8_WRAPPER_CUSTOM_SPACES_H_
+#include <memory>
#include <vector>
#include "third_party/blink/renderer/platform/platform_export.h"
--
2.31.1

@ -0,0 +1,12 @@
diff -up chromium-94.0.4606.54/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 chromium-94.0.4606.54/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h
--- chromium-94.0.4606.54/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h.gcc9 2021-09-20 15:13:05.000000000 -0400
+++ chromium-94.0.4606.54/third_party/tcmalloc/vendor/src/base/linux_syscall_support.h 2021-09-23 12:41:53.540357702 -0400
@@ -1485,7 +1485,7 @@ struct kernel_stat {
"d"(LSS_SYSCALL_ARG(parent_tidptr)),
"r"(LSS_SYSCALL_ARG(newtls)),
"r"(LSS_SYSCALL_ARG(child_tidptr))
- : "rsp", "memory", "r8", "r10", "r11", "rcx");
+ : "memory", "r8", "r10", "r11", "rcx");
}
LSS_RETURN(int, __res);
}

@ -0,0 +1,22 @@
diff -up chromium-94.0.4606.54/remoting/host/remote_open_url_client.cc.remoting-nodestructor-fix chromium-94.0.4606.54/remoting/host/remote_open_url_client.cc
diff -up chromium-94.0.4606.54/remoting/host/remote_open_url_client_delegate_linux.cc.remoting-nodestructor-fix chromium-94.0.4606.54/remoting/host/remote_open_url_client_delegate_linux.cc
--- chromium-94.0.4606.54/remoting/host/remote_open_url_client_delegate_linux.cc.remoting-nodestructor-fix 2021-09-24 11:02:02.662082902 -0400
+++ chromium-94.0.4606.54/remoting/host/remote_open_url_client_delegate_linux.cc 2021-09-24 11:06:05.207472179 -0400
@@ -47,7 +47,7 @@ void ShowMessageDialog(const std::string
}
bool IsBrowserValid(const std::string& browser) {
- static const base::NoDestructor<base::flat_set<std::string>> invalid_browsers(
+ static const base::NoDestructor<base::flat_set<std::string>> invalid_browsers{
{
// This is the chromoting forwarder itself.
"crd-url-forwarder.desktop",
@@ -55,7 +55,7 @@ bool IsBrowserValid(const std::string& b
// XFCE's forwarder. May potentially launch the chromoting forwarder
// recursively.
"xfce4-web-browser.desktop",
- });
+ }};
if (browser.empty()) {
return false;
}

@ -0,0 +1,16 @@
diff -up chromium-94.0.4606.54/third_party/webrtc/BUILD.gn.fix-multiple-define chromium-94.0.4606.54/third_party/webrtc/BUILD.gn
--- chromium-94.0.4606.54/third_party/webrtc/BUILD.gn.fix-multiple-define 2021-09-24 13:22:48.067565858 -0400
+++ chromium-94.0.4606.54/third_party/webrtc/BUILD.gn 2021-09-24 13:23:10.163664830 -0400
@@ -119,10 +119,10 @@ config("common_inherited_config") {
ldflags = []
if (rtc_enable_symbol_export || is_component_build) {
- defines = [ "WEBRTC_ENABLE_SYMBOL_EXPORT" ]
+ defines += [ "WEBRTC_ENABLE_SYMBOL_EXPORT" ]
}
if (rtc_enable_objc_symbol_export) {
- defines = [ "WEBRTC_ENABLE_OBJC_SYMBOL_EXPORT" ]
+ defines += [ "WEBRTC_ENABLE_OBJC_SYMBOL_EXPORT" ]
}
if (build_with_mozilla) {

@ -0,0 +1,12 @@
diff -up chromium-94.0.4606.61/remoting/host/mojom/remoting_mojom_traits.h.extra-qualification chromium-94.0.4606.61/remoting/host/mojom/remoting_mojom_traits.h
--- chromium-94.0.4606.61/remoting/host/mojom/remoting_mojom_traits.h.extra-qualification 2021-09-25 01:48:28.812426004 +0000
+++ chromium-94.0.4606.61/remoting/host/mojom/remoting_mojom_traits.h 2021-09-25 01:48:59.072267580 +0000
@@ -17,7 +17,7 @@
namespace mojo {
template <>
-class mojo::StructTraits<remoting::mojom::ClipboardEventDataView,
+class StructTraits<remoting::mojom::ClipboardEventDataView,
::remoting::protocol::ClipboardEvent> {
public:
static const std::string& mime_type(

@ -0,0 +1,24 @@
diff -up chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h
--- chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h.InkDropHost-crash 2021-10-05 16:04:46.313586509 -0400
+++ chromium-94.0.4606.71/ui/views/animation/ink_drop_host_view.h 2021-10-05 16:05:12.213732558 -0400
@@ -228,6 +228,11 @@ class VIEWS_EXPORT InkDropHost {
// Used to observe View and inform the InkDrop of host-transform changes.
ViewLayerTransformObserver host_view_transform_observer_;
+ // Declared before |ink_drop_|, because InkDropImpl may call
+ // RemoveInkDropLayer on partly destructed InkDropHost. In
+ // that case |ink_drop_mask_| must be still valid.
+ std::unique_ptr<views::InkDropMask> ink_drop_mask_;
+
// Should not be accessed directly. Use GetInkDrop() instead.
std::unique_ptr<InkDrop> ink_drop_;
@@ -249,8 +254,6 @@ class VIEWS_EXPORT InkDropHost {
int ink_drop_small_corner_radius_ = 2;
int ink_drop_large_corner_radius_ = 4;
- std::unique_ptr<views::InkDropMask> ink_drop_mask_;
-
base::RepeatingCallback<std::unique_ptr<InkDrop>()> create_ink_drop_callback_;
base::RepeatingCallback<std::unique_ptr<InkDropRipple>()>
create_ink_drop_ripple_callback_;

@ -0,0 +1,15 @@
diff -up chromium-94.0.4606.71/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc.nullptr-fix chromium-94.0.4606.71/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc
--- chromium-94.0.4606.71/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc.nullptr-fix 2021-10-06 15:23:11.590602162 -0400
+++ chromium-94.0.4606.71/base/allocator/allocator_shim_default_dispatch_to_partition_alloc.cc 2021-10-06 15:29:21.508762249 -0400
@@ -380,7 +380,10 @@ void PartitionFree(const AllocatorDispat
size_t PartitionGetSizeEstimate(const AllocatorDispatch*,
void* address,
void* context) {
- PA_DCHECK(address);
+ // This is used to implement malloc_usable_size(3). Per its man page, "if ptr
+ // is NULL, 0 is returned".
+ if (!address)
+ return 0;
#if defined(OS_APPLE)
if (!base::IsManagedByPartitionAlloc(address)) {

@ -0,0 +1,11 @@
diff -up chromium-94.0.4606.71/remoting/codec/codec_test.cc.missing-header chromium-94.0.4606.71/remoting/codec/codec_test.cc
--- chromium-94.0.4606.71/remoting/codec/codec_test.cc.missing-header 2021-10-07 18:01:11.846157616 +0000
+++ chromium-94.0.4606.71/remoting/codec/codec_test.cc 2021-10-07 18:01:22.913662166 +0000
@@ -8,6 +8,7 @@
#include <stdint.h>
#include <stdlib.h>
+#include <cmath>
#include <memory>
#include <utility>

@ -0,0 +1,37 @@
diff -up chromium-94.0.4606.81/buildtools/linux64/clang-format.clang-format-py3 chromium-94.0.4606.81/buildtools/linux64/clang-format
--- chromium-94.0.4606.81/buildtools/linux64/clang-format.clang-format-py3 2021-10-08 11:26:16.411861005 -0400
+++ chromium-94.0.4606.81/buildtools/linux64/clang-format 2021-10-08 11:32:16.005895508 -0400
@@ -12,9 +12,9 @@ def main():
args = sys.argv[1:]
inputfiles = [a for a in args if not a.startswith('-')]
- contents = ''
+ contents = b''
if '-' in args or not inputfiles:
- contents = sys.stdin.read()
+ contents = sys.stdin.buffer.read()
# Tarball builds may or may not have depot_tools in $PATH. In the former case,
# running 'clang-format' will call back into this script infinitely. Strip off
@@ -37,17 +37,17 @@ def main():
stdout, stderr = proc.communicate(input=contents)
# Ignore if clang-format fails. Eg: it may be too old to support C++14.
if proc.returncode == 0:
- sys.stdout.write(stdout)
- sys.stderr.write(stderr)
+ sys.stdout.buffer.write(stdout)
+ sys.stderr.buffer.write(stderr)
return 0
except OSError:
# Ignore if clang-format is not installed.
pass
# If any failure happens, continue with unformatted files.
- sys.stdout.write(contents)
+ sys.stdout.buffer.write(contents)
for inputfile in inputfiles:
- sys.stdout.write(open(inputfile).read())
+ sys.stdout.buffer.write(open(inputfile).read())
return 0

@ -0,0 +1,13 @@
diff -up chromium-94.0.4606.81/build/config/compiler/BUILD.gn.i686-hack chromium-94.0.4606.81/build/config/compiler/BUILD.gn
--- chromium-94.0.4606.81/build/config/compiler/BUILD.gn.i686-hack 2021-10-20 15:56:09.409349920 -0400
+++ chromium-94.0.4606.81/build/config/compiler/BUILD.gn 2021-10-20 15:57:30.409831217 -0400
@@ -360,6 +360,9 @@ config("compiler") {
if (fatal_linker_warnings && is_apple) {
ldflags += [ "-Wl,-fatal_warnings" ]
}
+
+ ldflags += [ "-Wl,--no-keep-memory" ]
+ ldflags += [ "-Wl,--reduce-memory-overheads" ]
}
if (is_clang && is_debug) {

@ -0,0 +1,41 @@
From c23f09d436b566934d02c26a19e3cf5d31545855 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 4 Sep 2021 17:02:00 +0000
Subject: [PATCH] GCC: fix template specialization in webrtc::BitstreamReader
GCC complains that explicit specialization in non-namespace scope
is happening for webrtc::BitstreamReader::Read(). However, specialization
for bool isn't used because std::is_unsigned<bool>::value returns true.
Add std::is_same for bool check and enable second specialization only
for bool types.
---
third_party/webrtc/rtc_base/bitstream_reader.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/third_party/webrtc/rtc_base/bitstream_reader.h b/third_party/webrtc/rtc_base/bitstream_reader.h
index 8c0f66f..cd8537f 100644
--- a/third_party/webrtc/rtc_base/bitstream_reader.h
+++ b/third_party/webrtc/rtc_base/bitstream_reader.h
@@ -61,14 +61,16 @@ class BitstreamReader {
// Reads unsigned integer of fixed width.
template <typename T,
typename std::enable_if<std::is_unsigned<T>::value &&
+ !std::is_same<T, bool>::value &&
sizeof(T) <= 8>::type* = nullptr>
ABSL_MUST_USE_RESULT T Read() {
return rtc::dchecked_cast<T>(ReadBits(sizeof(T) * 8));
}
// Reads single bit as boolean.
- template <>
- ABSL_MUST_USE_RESULT bool Read<bool>() {
+ template <typename T,
+ typename std::enable_if<std::is_same<T, bool>::value>::type* = nullptr>
+ ABSL_MUST_USE_RESULT bool Read() {
return ReadBit() != 0;
}
--
2.32.0

@ -0,0 +1,229 @@
From 3d4ba855e014987cad86d62a8dff533492255695 Mon Sep 17 00:00:00 2001
From: Antonio Sanchez <cantonios@google.com>
Date: Wed, 1 Sep 2021 14:11:21 -0700
Subject: [PATCH] Fix AVX integer packet issues.
Most are instances of AVX2 functions not protected by
`EIGEN_VECTORIZE_AVX2`. There was also a missing semi-colon
for AVX512.
---
Eigen/src/Core/arch/AVX/PacketMath.h | 83 ++++++++++++++++++-------
Eigen/src/Core/arch/AVX512/PacketMath.h | 6 +-
2 files changed, 63 insertions(+), 26 deletions(-)
diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
index dc1a1d6b0..247ee4efd 100644
--- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
@@ -262,10 +262,6 @@ template<> EIGEN_STRONG_INLINE Packet4d peven_mask(const Packet4d& /*a*/) { retu
template<> EIGEN_STRONG_INLINE Packet8f pload1<Packet8f>(const float* from) { return _mm256_broadcast_ss(from); }
template<> EIGEN_STRONG_INLINE Packet4d pload1<Packet4d>(const double* from) { return _mm256_broadcast_sd(from); }
-template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return _mm256_add_ps(_mm256_set1_ps(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
-template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return _mm256_add_pd(_mm256_set1_pd(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
-template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return _mm256_add_epi32(_mm256_set1_epi32(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
-
template<> EIGEN_STRONG_INLINE Packet8f padd<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_add_ps(a,b); }
template<> EIGEN_STRONG_INLINE Packet4d padd<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_add_pd(a,b); }
template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const Packet8i& b) {
@@ -278,6 +274,10 @@ template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const
#endif
}
+template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
+template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
+template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
+
template<> EIGEN_STRONG_INLINE Packet8f psub<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_sub_ps(a,b); }
template<> EIGEN_STRONG_INLINE Packet4d psub<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_sub_pd(a,b); }
template<> EIGEN_STRONG_INLINE Packet8i psub<Packet8i>(const Packet8i& a, const Packet8i& b) {
@@ -300,7 +300,7 @@ template<> EIGEN_STRONG_INLINE Packet4d pnegate(const Packet4d& a)
}
template<> EIGEN_STRONG_INLINE Packet8i pnegate(const Packet8i& a)
{
- return _mm256_sub_epi32(_mm256_set1_epi32(0), a);
+ return psub(pzero(a), a);
}
template<> EIGEN_STRONG_INLINE Packet8f pconj(const Packet8f& a) { return a; }
@@ -419,7 +419,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pmin<Packet4d>(const Packet4d& a, const
#endif
}
template<> EIGEN_STRONG_INLINE Packet8i pmin<Packet8i>(const Packet8i& a, const Packet8i& b) {
+#ifdef EIGEN_VECTORIZE_AVX2
return _mm256_min_epi32(a, b);
+#else
+ __m128i lo = _mm_min_epi32(_mm256_extractf128_si256(a, 0), _mm256_extractf128_si256(b, 0));
+ __m128i hi = _mm_min_epi32(_mm256_extractf128_si256(a, 1), _mm256_extractf128_si256(b, 1));
+ return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
+#endif
}
template<> EIGEN_STRONG_INLINE Packet8f pmax<Packet8f>(const Packet8f& a, const Packet8f& b) {
@@ -445,7 +451,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pmax<Packet4d>(const Packet4d& a, const
#endif
}
template<> EIGEN_STRONG_INLINE Packet8i pmax<Packet8i>(const Packet8i& a, const Packet8i& b) {
+#ifdef EIGEN_VECTORIZE_AVX2
return _mm256_max_epi32(a, b);
+#else
+ __m128i lo = _mm_max_epi32(_mm256_extractf128_si256(a, 0), _mm256_extractf128_si256(b, 0));
+ __m128i hi = _mm_max_epi32(_mm256_extractf128_si256(a, 1), _mm256_extractf128_si256(b, 1));
+ return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
+#endif
}
// Add specializations for min/max with prescribed NaN progation.
@@ -641,17 +653,25 @@ template<> EIGEN_STRONG_INLINE Packet8f ploaddup<Packet8f>(const float* from)
// then we can perform a consistent permutation on the global register to get everything in shape:
return _mm256_permute_ps(tmp, _MM_SHUFFLE(3,3,2,2));
}
-// Loads 2 doubles from memory a returns the packet {a0, a0 a1, a1}
+// Loads 2 doubles from memory a returns the packet {a0, a0, a1, a1}
template<> EIGEN_STRONG_INLINE Packet4d ploaddup<Packet4d>(const double* from)
{
Packet4d tmp = _mm256_broadcast_pd((const __m128d*)(const void*)from);
return _mm256_permute_pd(tmp, 3<<2);
}
-// Loads 4 integers from memory a returns the packet {a0, a0 a1, a1, a2, a2, a3, a3}
+// Loads 4 integers from memory a returns the packet {a0, a0, a1, a1, a2, a2, a3, a3}
template<> EIGEN_STRONG_INLINE Packet8i ploaddup<Packet8i>(const int* from)
{
- Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
+#ifdef EIGEN_VECTORIZE_AVX2
+ const Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
return _mm256_permutevar8x32_epi32(a, _mm256_setr_epi32(0, 0, 1, 1, 2, 2, 3, 3));
+#else
+ __m256 tmp = _mm256_broadcast_ps((const __m128*)(const void*)from);
+ // mimic an "inplace" permutation of the lower 128bits using a blend
+ tmp = _mm256_blend_ps(tmp,_mm256_castps128_ps256(_mm_permute_ps( _mm256_castps256_ps128(tmp), _MM_SHUFFLE(1,0,1,0))), 15);
+ // then we can perform a consistent permutation on the global register to get everything in shape:
+ return _mm256_castps_si256(_mm256_permute_ps(tmp, _MM_SHUFFLE(3,3,2,2)));
+#endif
}
// Loads 2 floats from memory a returns the packet {a0, a0 a0, a0, a1, a1, a1, a1}
@@ -662,7 +682,7 @@ template<> EIGEN_STRONG_INLINE Packet8f ploadquad<Packet8f>(const float* from)
}
template<> EIGEN_STRONG_INLINE Packet8i ploadquad<Packet8i>(const int* from)
{
- return _mm256_inserti128_si256(_mm256_set1_epi32(*from), _mm_set1_epi32(*(from+1)), 1);
+ return _mm256_insertf128_si256(_mm256_set1_epi32(*from), _mm_set1_epi32(*(from+1)), 1);
}
template<> EIGEN_STRONG_INLINE void pstore<float>(float* to, const Packet8f& from) { EIGEN_DEBUG_ALIGNED_STORE _mm256_store_ps(to, from); }
@@ -723,13 +743,13 @@ template<> EIGEN_DEVICE_FUNC inline void pscatter<double, Packet4d>(double* to,
}
template<> EIGEN_DEVICE_FUNC inline void pscatter<int, Packet8i>(int* to, const Packet8i& from, Index stride)
{
- __m128i low = _mm256_extracti128_si256(from, 0);
+ __m128i low = _mm256_extractf128_si256(from, 0);
to[stride*0] = _mm_extract_epi32(low, 0);
to[stride*1] = _mm_extract_epi32(low, 1);
to[stride*2] = _mm_extract_epi32(low, 2);
to[stride*3] = _mm_extract_epi32(low, 3);
- __m128i high = _mm256_extracti128_si256(from, 1);
+ __m128i high = _mm256_extractf128_si256(from, 1);
to[stride*4] = _mm_extract_epi32(high, 0);
to[stride*5] = _mm_extract_epi32(high, 1);
to[stride*6] = _mm_extract_epi32(high, 2);
@@ -803,7 +823,13 @@ template<> EIGEN_STRONG_INLINE Packet4d pabs(const Packet4d& a)
}
template<> EIGEN_STRONG_INLINE Packet8i pabs(const Packet8i& a)
{
+#ifdef EIGEN_VECTORIZE_AVX2
return _mm256_abs_epi32(a);
+#else
+ __m128i lo = _mm_abs_epi32(_mm256_extractf128_si256(a, 0));
+ __m128i hi = _mm_abs_epi32(_mm256_extractf128_si256(a, 1));
+ return _mm256_insertf128_si256(_mm256_castsi128_si256(lo), (hi), 1);
+#endif
}
template<> EIGEN_STRONG_INLINE Packet8f pfrexp<Packet8f>(const Packet8f& a, Packet8f& exponent) {
@@ -989,16 +1015,27 @@ ptranspose(PacketBlock<Packet8f,4>& kernel) {
#define MM256_SHUFFLE_EPI32(A, B, M) \
_mm256_castps_si256(_mm256_shuffle_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B), M))
+#ifdef EIGEN_VECTORIZE_AVX2
+#define MM256_UNPACKLO_EPI32(A, B) \
+ _mm256_castps_si256(_mm256_unpacklo_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
+#define MM256_UNPACKHI_EPI32(A, B) \
+ _mm256_castps_si256(_mm256_unpackhi_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
+#else
+#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_ps(A, B)
+#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_ps(A, B)
+#endif
+
+
EIGEN_DEVICE_FUNC inline void
ptranspose(PacketBlock<Packet8i,8>& kernel) {
- __m256i T0 = _mm256_unpacklo_epi32(kernel.packet[0], kernel.packet[1]);
- __m256i T1 = _mm256_unpackhi_epi32(kernel.packet[0], kernel.packet[1]);
- __m256i T2 = _mm256_unpacklo_epi32(kernel.packet[2], kernel.packet[3]);
- __m256i T3 = _mm256_unpackhi_epi32(kernel.packet[2], kernel.packet[3]);
- __m256i T4 = _mm256_unpacklo_epi32(kernel.packet[4], kernel.packet[5]);
- __m256i T5 = _mm256_unpackhi_epi32(kernel.packet[4], kernel.packet[5]);
- __m256i T6 = _mm256_unpacklo_epi32(kernel.packet[6], kernel.packet[7]);
- __m256i T7 = _mm256_unpackhi_epi32(kernel.packet[6], kernel.packet[7]);
+ __m256i T0 = MM256_UNPACKLO_EPI32(kernel.packet[0], kernel.packet[1]);
+ __m256i T1 = MM256_UNPACKHI_EPI32(kernel.packet[0], kernel.packet[1]);
+ __m256i T2 = MM256_UNPACKLO_EPI32(kernel.packet[2], kernel.packet[3]);
+ __m256i T3 = MM256_UNPACKHI_EPI32(kernel.packet[2], kernel.packet[3]);
+ __m256i T4 = MM256_UNPACKLO_EPI32(kernel.packet[4], kernel.packet[5]);
+ __m256i T5 = MM256_UNPACKHI_EPI32(kernel.packet[4], kernel.packet[5]);
+ __m256i T6 = MM256_UNPACKLO_EPI32(kernel.packet[6], kernel.packet[7]);
+ __m256i T7 = MM256_UNPACKHI_EPI32(kernel.packet[6], kernel.packet[7]);
__m256i S0 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(1,0,1,0));
__m256i S1 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(3,2,3,2));
__m256i S2 = MM256_SHUFFLE_EPI32(T1,T3,_MM_SHUFFLE(1,0,1,0));
@@ -1019,10 +1056,10 @@ ptranspose(PacketBlock<Packet8i,8>& kernel) {
EIGEN_DEVICE_FUNC inline void
ptranspose(PacketBlock<Packet8i,4>& kernel) {
- __m256i T0 = _mm256_unpacklo_epi32(kernel.packet[0], kernel.packet[1]);
- __m256i T1 = _mm256_unpackhi_epi32(kernel.packet[0], kernel.packet[1]);
- __m256i T2 = _mm256_unpacklo_epi32(kernel.packet[2], kernel.packet[3]);
- __m256i T3 = _mm256_unpackhi_epi32(kernel.packet[2], kernel.packet[3]);
+ __m256i T0 = MM256_UNPACKLO_EPI32(kernel.packet[0], kernel.packet[1]);
+ __m256i T1 = MM256_UNPACKHI_EPI32(kernel.packet[0], kernel.packet[1]);
+ __m256i T2 = MM256_UNPACKLO_EPI32(kernel.packet[2], kernel.packet[3]);
+ __m256i T3 = MM256_UNPACKHI_EPI32(kernel.packet[2], kernel.packet[3]);
__m256i S0 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(1,0,1,0));
__m256i S1 = MM256_SHUFFLE_EPI32(T0,T2,_MM_SHUFFLE(3,2,3,2));
diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
index 6ce15c677..0810f66ee 100644
--- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
+++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX512/PacketMath.h
@@ -1028,7 +1028,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
// AVX512F does not define _mm512_extracti32x8_epi32 to extract _m256i from _m512i
#define EIGEN_EXTRACT_8i_FROM_16i(INPUT, OUTPUT) \
- __m256i OUTPUT##_0 = _mm512_extracti32x8_epi32(INPUT, 0) \
+ __m256i OUTPUT##_0 = _mm512_extracti32x8_epi32(INPUT, 0); \
__m256i OUTPUT##_1 = _mm512_extracti32x8_epi32(INPUT, 1)
#else
#define EIGEN_EXTRACT_8f_FROM_16f(INPUT, OUTPUT) \
@@ -1037,7 +1037,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
_mm512_extractf32x4_ps(INPUT, 1), 1); \
__m256 OUTPUT##_1 = _mm256_insertf128_ps( \
_mm256_castps128_ps256(_mm512_extractf32x4_ps(INPUT, 2)), \
- _mm512_extractf32x4_ps(INPUT, 3), 1);
+ _mm512_extractf32x4_ps(INPUT, 3), 1)
#define EIGEN_EXTRACT_8i_FROM_16i(INPUT, OUTPUT) \
__m256i OUTPUT##_0 = _mm256_insertf128_si256( \
@@ -1045,7 +1045,7 @@ template<> EIGEN_STRONG_INLINE Packet8d pldexp<Packet8d>(const Packet8d& a, cons
_mm512_extracti32x4_epi32(INPUT, 1), 1); \
__m256i OUTPUT##_1 = _mm256_insertf128_si256( \
_mm256_castsi128_si256(_mm512_extracti32x4_epi32(INPUT, 2)), \
- _mm512_extracti32x4_epi32(INPUT, 3), 1);
+ _mm512_extracti32x4_epi32(INPUT, 3), 1)
#endif
#ifdef EIGEN_VECTORIZE_AVX512DQ
--
GitLab

@ -0,0 +1,30 @@
From def145547fc6abd14236e103b9443a36064f664f Mon Sep 17 00:00:00 2001
From: Antonio Sanchez <cantonios@google.com>
Date: Thu, 2 Sep 2021 16:21:07 -0700
Subject: [PATCH] Add missing packet types in pset1 call.
Oops, introduced this when "fixing" integer packets.
---
Eigen/src/Core/arch/AVX/PacketMath.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
index 247ee4efd..8da9031dc 100644
--- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
@@ -274,9 +274,9 @@ template<> EIGEN_STRONG_INLINE Packet8i padd<Packet8i>(const Packet8i& a, const
#endif
}
-template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
-template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
-template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
+template<> EIGEN_STRONG_INLINE Packet8f plset<Packet8f>(const float& a) { return padd(pset1<Packet8f>(a), _mm256_set_ps(7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0)); }
+template<> EIGEN_STRONG_INLINE Packet4d plset<Packet4d>(const double& a) { return padd(pset1<Packet4d>(a), _mm256_set_pd(3.0,2.0,1.0,0.0)); }
+template<> EIGEN_STRONG_INLINE Packet8i plset<Packet8i>(const int& a) { return padd(pset1<Packet8i>(a), _mm256_set_epi32(7,6,5,4,3,2,1,0)); }
template<> EIGEN_STRONG_INLINE Packet8f psub<Packet8f>(const Packet8f& a, const Packet8f& b) { return _mm256_sub_ps(a,b); }
template<> EIGEN_STRONG_INLINE Packet4d psub<Packet4d>(const Packet4d& a, const Packet4d& b) { return _mm256_sub_pd(a,b); }
--
GitLab

@ -0,0 +1,44 @@
From 7792b1e909a98703181aecb8810b4b654004c25d Mon Sep 17 00:00:00 2001
From: Antonio Sanchez <cantonios@google.com>
Date: Fri, 3 Sep 2021 10:41:35 -0700
Subject: [PATCH] Fix AVX2 PacketMath.h.
There were a couple typos ps -> epi32, and an unaligned load issue.
---
Eigen/src/Core/arch/AVX/PacketMath.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
index 8da9031dc..41cb7af9c 100644
--- a/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
+++ b/third_party/eigen3/src/Eigen/src/Core/arch/AVX/PacketMath.h
@@ -663,7 +663,7 @@ template<> EIGEN_STRONG_INLINE Packet4d ploaddup<Packet4d>(const double* from)
template<> EIGEN_STRONG_INLINE Packet8i ploaddup<Packet8i>(const int* from)
{
#ifdef EIGEN_VECTORIZE_AVX2
- const Packet8i a = _mm256_castsi128_si256(pload<Packet4i>(from));
+ const Packet8i a = _mm256_castsi128_si256(ploadu<Packet4i>(from));
return _mm256_permutevar8x32_epi32(a, _mm256_setr_epi32(0, 0, 1, 1, 2, 2, 3, 3));
#else
__m256 tmp = _mm256_broadcast_ps((const __m128*)(const void*)from);
@@ -1015,14 +1015,14 @@ ptranspose(PacketBlock<Packet8f,4>& kernel) {
#define MM256_SHUFFLE_EPI32(A, B, M) \
_mm256_castps_si256(_mm256_shuffle_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B), M))
-#ifdef EIGEN_VECTORIZE_AVX2
+#ifndef EIGEN_VECTORIZE_AVX2
#define MM256_UNPACKLO_EPI32(A, B) \
_mm256_castps_si256(_mm256_unpacklo_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
#define MM256_UNPACKHI_EPI32(A, B) \
_mm256_castps_si256(_mm256_unpackhi_ps(_mm256_castsi256_ps(A), _mm256_castsi256_ps(B)))
#else
-#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_ps(A, B)
-#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_ps(A, B)
+#define MM256_UNPACKLO_EPI32(A, B) _mm256_unpacklo_epi32(A, B)
+#define MM256_UNPACKHI_EPI32(A, B) _mm256_unpackhi_epi32(A, B)
#endif
--
GitLab

@ -0,0 +1,30 @@
diff --git a/third_party/libyuv/source/row_neon64.cc b/third_party/libyuv/source/row_neon64.cc
index 350c964..2aab413 100644
--- a/third_party/libyuv/source/row_neon64.cc
+++ b/third_party/libyuv/source/row_neon64.cc
@@ -1835,7 +1835,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb,
: "+r"(src_argb), // %0
"+r"(dst_ab64), // %1
"+r"(width) // %2
- : "m"(kShuffleARGBToABGR) // %3
+ : "Q"(kShuffleARGBToABGR) // %3
: "cc", "memory", "v0", "v1", "v2", "v3", "v4");
}
@@ -1859,7 +1859,7 @@ void AR64ToARGBRow_NEON(const uint16_t* src_ar64,
: "+r"(src_ar64), // %0
"+r"(dst_argb), // %1
"+r"(width) // %2
- : "m"(kShuffleAR64ToARGB) // %3
+ : "Q"(kShuffleAR64ToARGB) // %3
: "cc", "memory", "v0", "v1", "v2", "v3", "v4");
}
@@ -1883,7 +1883,7 @@ void AB64ToARGBRow_NEON(const uint16_t* src_ab64,
: "+r"(src_ab64), // %0
"+r"(dst_argb), // %1
"+r"(width) // %2
- : "m"(kShuffleAB64ToARGB) // %3
+ : "Q"(kShuffleAB64ToARGB) // %3
: "cc", "memory", "v0", "v1", "v2", "v3", "v4");
}

@ -0,0 +1,13 @@
diff --git a/third_party/libyuv/source/row_neon.cc b/third_party/libyuv/source/row_neon.cc
index 6ef6f1c..e4a9e1e 100644
--- a/third_party/libyuv/source/row_neon.cc
+++ b/third_party/libyuv/source/row_neon.cc
@@ -2346,7 +2346,7 @@ void ARGBToAB64Row_NEON(const uint8_t* src_argb,
uint16_t* dst_ab64,
int width) {
asm volatile(
- "vld1.8 q4, %3 \n" // shuffler
+ "vld1.8 {d8, d9}, %3 \n" // shuffler
"1: \n"
"vld1.8 {q0}, [%0]! \n"
"vld1.8 {q2}, [%0]! \n"

@ -0,0 +1,13 @@
diff --git a/third_party/maldoca/BUILD.gn b/third_party/maldoca/BUILD.gn
index eeab205..29a0a2c 100644
--- a/third_party/maldoca/BUILD.gn
+++ b/third_party/maldoca/BUILD.gn
@@ -224,7 +224,7 @@ source_set("maldoca-ole") {
"//third_party/libxml",
"//third_party/protobuf:protobuf_lite",
"//third_party/re2",
- "//third_party/zlib:zlib_common_headers",
+ "//third_party/zlib:zlib",
"//third_party/zlib/google:zip",
]

@ -0,0 +1,25 @@
From a9d986203bcfbaab84f270c1dc6c3abb4c450ee1 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Fri, 17 Sep 2021 14:57:33 +0000
Subject: [PATCH] IWYU: add stddef.h for size_t in WindowManager
---
net/third_party/quiche/src/http2/adapter/window_manager.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/third_party/quiche/src/http2/adapter/window_manager.h b/net/third_party/quiche/src/http2/adapter/window_manager.h
index f15982d..5a7701e 100644
--- a/net/third_party/quiche/src/http2/adapter/window_manager.h
+++ b/net/third_party/quiche/src/http2/adapter/window_manager.h
@@ -1,6 +1,8 @@
#ifndef QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
#define QUICHE_HTTP2_ADAPTER_WINDOW_MANAGER_H_
+#include <stddef.h>
+
#include <functional>
#include "common/platform/api/quiche_export.h"
--
2.32.0

@ -0,0 +1,30 @@
From 603d765ca5154db27718d89a2ee9be2a95a64254 Mon Sep 17 00:00:00 2001
From: Alexander Dunaev <adunaev@igalia.com>
Date: Fri, 29 Oct 2021 20:54:46 +0700
Subject: [PATCH] [linux/xfce] Set zero insets on maximising the window.
It turned out that Xfwm handles the frame insets not the way KWin and
Mutter do.
Bug: 1260821
Change-Id: I69e71049157c03b74d78bc5edb7a60bf39cdda8b
---
diff --git a/ui/platform_window/x11/x11_window.cc b/ui/platform_window/x11/x11_window.cc
index dd381747..706f19c 100644
--- a/ui/platform_window/x11/x11_window.cc
+++ b/ui/platform_window/x11/x11_window.cc
@@ -676,6 +676,13 @@
// save this one for later too.
should_maximize_after_map_ = !window_mapped_in_client_;
+ // Some WMs keep respecting the frame extents even if the window is maximised.
+ // Remove the insets when maximising. The extents will be set again when the
+ // window is restored to normal state.
+ // See https://crbug.com/1260821
+ if (CanSetDecorationInsets())
+ SetDecorationInsets(nullptr);
+
SetWMSpecState(true, x11::GetAtom("_NET_WM_STATE_MAXIMIZED_VERT"),
x11::GetAtom("_NET_WM_STATE_MAXIMIZED_HORZ"));
}

@ -0,0 +1,57 @@
diff -up chromium-95.0.4638.69/net/base/test_data_stream.cc.missing-cstring chromium-95.0.4638.69/net/base/test_data_stream.cc
--- chromium-95.0.4638.69/net/base/test_data_stream.cc.missing-cstring 2021-11-14 16:04:59.911270740 +0000
+++ chromium-95.0.4638.69/net/base/test_data_stream.cc 2021-11-14 16:04:59.881272143 +0000
@@ -5,6 +5,7 @@
#include "net/base/test_data_stream.h"
#include <algorithm>
+#include <cstring>
namespace net {
diff -up chromium-95.0.4638.69/net/filter/filter_source_stream_test_util.cc.missing-cstring chromium-95.0.4638.69/net/filter/filter_source_stream_test_util.cc
--- chromium-95.0.4638.69/net/filter/filter_source_stream_test_util.cc.missing-cstring 2021-11-15 15:54:35.895963882 +0000
+++ chromium-95.0.4638.69/net/filter/filter_source_stream_test_util.cc 2021-11-15 15:54:50.342288149 +0000
@@ -4,6 +4,8 @@
#include "net/filter/filter_source_stream_test_util.h"
+#include <cstring>
+
#include "base/bit_cast.h"
#include "base/check_op.h"
#include "third_party/zlib/zlib.h"
diff -up chromium-95.0.4638.69/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring chromium-95.0.4638.69/third_party/webrtc/audio/utility/channel_mixer.cc
--- chromium-95.0.4638.69/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring 2021-11-14 16:05:24.613116022 +0000
+++ chromium-95.0.4638.69/third_party/webrtc/audio/utility/channel_mixer.cc 2021-11-14 16:05:24.614115975 +0000
@@ -8,6 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include <cstring>
+
#include "audio/utility/channel_mixer.h"
#include "audio/utility/channel_mixing_matrix.h"
diff -up chromium-95.0.4638.69/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring chromium-95.0.4638.69/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
--- chromium-95.0.4638.69/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring 2021-11-14 16:05:24.095140235 +0000
+++ chromium-95.0.4638.69/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc 2021-11-14 16:05:24.095140235 +0000
@@ -19,6 +19,7 @@
#include <sys/mman.h>
#include <sys/syscall.h>
+#include <cstring>
#include <memory>
#include <utility>
diff -up chromium-95.0.4638.69/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring chromium-95.0.4638.69/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
--- chromium-95.0.4638.69/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring 2021-11-14 16:05:23.794154305 +0000
+++ chromium-95.0.4638.69/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc 2021-11-14 16:05:23.792154399 +0000
@@ -10,6 +10,7 @@
#include "modules/video_coding/utility/ivf_file_reader.h"
+#include <cstring>
#include <string>
#include <vector>

@ -0,0 +1,90 @@
diff -up chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn
--- chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn.nounrar 2021-10-28 23:07:12.000000000 -0400
+++ chromium-95.0.4638.69/chrome/common/safe_browsing/BUILD.gn 2021-11-12 11:33:52.691346496 -0500
@@ -58,39 +58,6 @@ if (safe_browsing_mode == 1) {
public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
}
- source_set("rar_analyzer") {
- sources = [
- "rar_analyzer.cc",
- "rar_analyzer.h",
- ]
-
- deps = [
- ":archive_analyzer_results",
- ":download_type_util",
- "//base",
- "//base:i18n",
- "//components/safe_browsing/content/common:file_type_policies",
- "//components/safe_browsing/core/common",
- "//third_party/unrar:unrar",
- ]
-
- defines = [
- "_FILE_OFFSET_BITS=64",
- "LARGEFILE_SOURCE",
- "RAR_SMP",
- "SILENT",
-
- # The following is set to disable certain macro definitions in the unrar
- # source code.
- "CHROMIUM_UNRAR",
-
- # Disables exceptions in unrar, replaces them with process termination.
- "UNRAR_NO_EXCEPTIONS",
- ]
-
- public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
- }
-
if (is_linux || is_win) {
source_set("document_analyzer") {
sources = [
@@ -189,7 +156,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing/core/common",
]
diff -up chromium-95.0.4638.69/chrome/common/safe_browsing/DEPS.nounrar chromium-95.0.4638.69/chrome/common/safe_browsing/DEPS
--- chromium-95.0.4638.69/chrome/common/safe_browsing/DEPS.nounrar 2021-11-12 11:30:02.629954310 -0500
+++ chromium-95.0.4638.69/chrome/common/safe_browsing/DEPS 2021-11-12 11:34:16.732491978 -0500
@@ -3,6 +3,5 @@ include_rules = [
"+components/safe_browsing/core/common",
"+third_party/maldoca",
"+third_party/protobuf",
- "+third_party/unrar",
"+third_party/zlib",
]
diff -up chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn.nounrar chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn
--- chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn.nounrar 2021-11-12 11:30:02.629954310 -0500
+++ chromium-95.0.4638.69/chrome/services/file_util/BUILD.gn 2021-11-12 11:36:08.277168386 -0500
@@ -60,7 +60,6 @@ source_set("file_util") {
deps += [
"//chrome/common/safe_browsing",
"//chrome/common/safe_browsing:archive_analyzer_results",
- "//chrome/common/safe_browsing:rar_analyzer",
]
if (is_linux || is_win) {
diff -up chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2021-10-28 23:07:12.000000000 -0400
+++ chromium-95.0.4638.69/chrome/services/file_util/safe_archive_analyzer.cc 2021-11-12 11:30:02.630954316 -0500
@@ -45,10 +45,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
base::File temporary_file,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
safe_browsing::ArchiveAnalyzerResults results;
safe_browsing::rar_analyzer::AnalyzeRarFile(
std::move(rar_file), std::move(temporary_file), &results);
std::move(callback).Run(results);
+#else
+ NOTREACHED();
+#endif
}

@ -0,0 +1,24 @@
From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 9 Oct 2021 08:27:04 +0000
Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
---
base/command_line.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/base/command_line.h b/base/command_line.h
index 706726a..ad02812 100644
--- a/base/command_line.h
+++ b/base/command_line.h
@@ -19,6 +19,7 @@
#include <stddef.h>
#include <functional>
#include <map>
+#include <memory>
#include <string>
#include <vector>
--
2.32.0

@ -0,0 +1,25 @@
From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Wed, 6 Oct 2021 15:36:47 +0000
Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
---
chrome/browser/commerce/coupons/coupon_db.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
index f0758f4..93e2dd3 100644
--- a/chrome/browser/commerce/coupons/coupon_db.h
+++ b/chrome/browser/commerce/coupons/coupon_db.h
@@ -5,6 +5,8 @@
#ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
#define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+#include <vector>
+
#include "base/callback_helpers.h"
#include "base/memory/weak_ptr.h"
#include "url/gurl.h"
--
2.32.0

@ -0,0 +1,24 @@
From 9e36b3c28935fb50d43ccef443be786a8e3f8a5f Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 9 Oct 2021 16:17:34 +0000
Subject: [PATCH] IWYU: add string.h for memcmp in ui:: DrmRenderNodePathFinder
---
ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
index 06776a7..d5b7b71 100644
--- a/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
+++ b/ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.cc
@@ -5,6 +5,7 @@
#include "ui/ozone/platform/wayland/gpu/drm_render_node_path_finder.h"
#include <fcntl.h>
+#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
--
2.32.0

@ -0,0 +1,76 @@
diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
index aad9e08..2f3fcad 100644
--- a/components/cast_channel/enum_table.h
+++ b/components/cast_channel/enum_table.h
@@ -8,6 +8,7 @@
#include <cstdint>
#include <cstring>
#include <ostream>
+#include <vector>
#include "base/check_op.h"
#include "base/macros.h"
@@ -188,7 +189,6 @@ class
inline constexpr GenericEnumTableEntry(int32_t value);
inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
private:
@@ -254,7 +254,6 @@ class EnumTable {
constexpr Entry(E value, base::StringPiece str)
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
- Entry(const Entry&) = delete;
Entry& operator=(const Entry&) = delete;
};
@@ -313,15 +312,14 @@ class EnumTable {
if (is_sorted_) {
const std::size_t index = static_cast<std::size_t>(value);
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
- const auto& entry = data_.begin()[index];
+ const auto& entry = data_[index];
if (ANALYZER_ASSUME_TRUE(entry.has_str()))
return entry.str();
}
return absl::nullopt;
}
return GenericEnumTableEntry::FindByValue(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), static_cast<int32_t>(value));
+ &data_[0], data_.size(), static_cast<int32_t>(value));
}
// This overload of GetString is designed for cases where the argument is a
@@ -349,8 +347,7 @@ class EnumTable {
// enum value directly.
absl::optional<E> GetEnum(base::StringPiece str) const {
auto* entry = GenericEnumTableEntry::FindByString(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), str);
+ &data_[0], data_.size(), str);
return entry ? static_cast<E>(entry->value) : absl::optional<E>();
}
@@ -365,7 +362,7 @@ class EnumTable {
// Align the data on a cache line boundary.
alignas(64)
#endif
- std::initializer_list<Entry> data_;
+ const std::vector<Entry> data_;
bool is_sorted_;
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
@@ -377,8 +374,8 @@ class EnumTable {
for (std::size_t i = 0; i < data.size(); i++) {
for (std::size_t j = i + 1; j < data.size(); j++) {
- const Entry& ei = data.begin()[i];
- const Entry& ej = data.begin()[j];
+ const Entry& ei = data[i];
+ const Entry& ej = data[j];
DCHECK(ei.value != ej.value)
<< "Found duplicate enum values at indices " << i << " and " << j;
DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))

@ -0,0 +1,31 @@
From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Fri, 08 Oct 2021 06:32:55 +0000
Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
Fix compilation error:
../../services/network/restricted_cookie_manager.cc:164:30: error: no match for operator[] (operand types are network::CookieAccessesByURLAndSite {aka std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >} and std::tuple<const GURL&, const net::SiteForCookies&>)
There is no conversion from tuple to pair.
Bug: 957519
Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Cr-Commit-Position: refs/heads/main@{#929597}
---
diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
index 425426f..c8c10c6 100644
--- a/services/network/restricted_cookie_manager.cc
+++ b/services/network/restricted_cookie_manager.cc
@@ -161,7 +161,7 @@
const GURL& url,
const net::SiteForCookies& site_for_cookies) {
std::unique_ptr<CookieAccesses>& entry =
- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
+ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
if (!entry) {
entry = std::make_unique<CookieAccesses>();
}

@ -0,0 +1,51 @@
From 245e71ae8de3f4b5f3478739be819981bb12dfab Mon Sep 17 00:00:00 2001
From: Alexander Dunaev <adunaev@igalia.com>
Date: Sat, 13 Nov 2021 06:35:35 +0000
Subject: [PATCH] [linux/xfce] Introduced a hack for Xfwm.
This proposes an alternative to [1]. Either this patch or that one
should be landed, but not both. See the linked crbug for the details.
Setting the frame extents via the _GTK_FRAME_EXTENTS property turned out
to be problematic at Xfwm. While the issue is agreed to be a bug in the
window manager, for now we disable setting the frame extents on that WM.
This patch introduces a logic that disables setting the window property
on Xfwm.
[1] https://chromium-review.googlesource.com/c/chromium/src/+/3275653
Bug: 1260821
Change-Id: I4b734ac0dc2b97d7ed6b1842564a33ec6e4b4035
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3275272
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Alexander Dunaev <adunaev@igalia.com>
Cr-Commit-Position: refs/heads/main@{#941444}
---
diff --git a/ui/platform_window/x11/x11_window.cc b/ui/platform_window/x11/x11_window.cc
index 2b20835..4fa2992 100644
--- a/ui/platform_window/x11/x11_window.cc
+++ b/ui/platform_window/x11/x11_window.cc
@@ -1016,6 +1016,21 @@
}
bool X11Window::CanSetDecorationInsets() const {
+ // Xfwm handles _GTK_FRAME_EXTENTS a bit unexpected way. That is a known bug
+ // that will be eventually fixed, but for now we have to disable the function
+ // for Xfce. The block below should be removed when Xfwm is updated with the
+ // fix and is known to work properly.
+ // See https://crbug.com/1260821.
+ {
+ static WindowManagerName wm_name = WM_OTHER;
+ static bool checked_for_wm = false;
+ if (!checked_for_wm) {
+ wm_name = GuessWindowManager();
+ checked_for_wm = true;
+ }
+ if (wm_name == WM_XFWM4)
+ return false;
+ }
return ui::WmSupportsHint(x11::GetAtom("_GTK_FRAME_EXTENTS"));
}

@ -0,0 +1,12 @@
diff -up chromium-96.0.4664.110/content/public/common/content_features.cc.enable-WebRTCPipeWireCapturer-byDefault chromium-96.0.4664.110/content/public/common/content_features.cc
--- chromium-96.0.4664.110/content/public/common/content_features.cc.enable-WebRTCPipeWireCapturer-byDefault 2021-12-20 11:24:28.862940185 -0500
+++ chromium-96.0.4664.110/content/public/common/content_features.cc 2021-12-20 11:24:43.397027114 -0500
@@ -1125,7 +1125,7 @@ const base::Feature kAuraWindowSubtreeCa
// Controls whether the PipeWire support for screen capturing is enabled on the
// Wayland display server.
const base::Feature kWebRtcPipeWireCapturer{"WebRTCPipeWireCapturer",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
#endif // defined(WEBRTC_USE_PIPEWIRE)
enum class VideoCaptureServiceConfiguration {

@ -0,0 +1,25 @@
diff -up chromium-96.0.4664.45/remoting/signaling/message_tracker.cc.gcc-remoting-constexpr chromium-96.0.4664.45/remoting/signaling/message_tracker.cc
--- chromium-96.0.4664.45/remoting/signaling/message_tracker.cc.gcc-remoting-constexpr 2021-11-19 16:53:23.197177348 -0500
+++ chromium-96.0.4664.45/remoting/signaling/message_tracker.cc 2021-11-19 17:03:16.354910826 -0500
@@ -9,7 +9,7 @@
namespace remoting {
// static
-const base::TimeDelta MessageTracker::kCleanupInterval = base::Minutes(2);
+constexpr base::TimeDelta MessageTracker::kCleanupInterval;
MessageTracker::MessageTracker() = default;
diff -up chromium-96.0.4664.45/remoting/signaling/message_tracker.h.gcc-remoting-constexpr chromium-96.0.4664.45/remoting/signaling/message_tracker.h
--- chromium-96.0.4664.45/remoting/signaling/message_tracker.h.gcc-remoting-constexpr 2021-11-12 05:24:33.000000000 -0500
+++ chromium-96.0.4664.45/remoting/signaling/message_tracker.h 2021-11-19 17:03:00.112809836 -0500
@@ -40,7 +40,8 @@ class MessageTracker final {
// All IDs older than now - kCleanupInterval will be eventually removed, but
// they are not guaranteed to be immediately removed after the interval.
- static const base::TimeDelta kCleanupInterval;
+ static constexpr base::TimeDelta kCleanupInterval =
+ base::Minutes(2);
void RemoveExpiredIds();

@ -0,0 +1,35 @@
diff -up chromium-96.0.4664.45/third_party/webrtc/common_video/h264/pps_parser.h.missing-cstdint chromium-96.0.4664.45/third_party/webrtc/common_video/h264/pps_parser.h
diff -up chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h
--- chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h.missing-cstdint 2021-11-19 17:05:31.379750350 -0500
+++ chromium-96.0.4664.45/third_party/webrtc/common_video/h264/sps_parser.h 2021-11-19 17:07:35.191520127 -0500
@@ -11,6 +11,7 @@
#ifndef COMMON_VIDEO_H264_SPS_PARSER_H_
#define COMMON_VIDEO_H264_SPS_PARSER_H_
+#include <cstdint>
#include "absl/types/optional.h"
#include "rtc_base/bitstream_reader.h"
diff -up chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h
--- chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h.missing-cstdint 2021-11-12 05:28:10.000000000 -0500
+++ chromium-96.0.4664.45/third_party/webrtc/modules/include/module_common_types_public.h 2021-11-19 17:05:31.379750350 -0500
@@ -11,6 +11,7 @@
#ifndef MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
#define MODULES_INCLUDE_MODULE_COMMON_TYPES_PUBLIC_H_
+#include <cstdint>
#include <limits>
#include "absl/types/optional.h"
diff -up chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h.missing-cstdint chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h
--- chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h.missing-cstdint 2021-11-12 05:25:24.000000000 -0500
+++ chromium-96.0.4664.45/ui/gfx/linux/drm_util_linux.h 2021-11-19 17:05:31.379750350 -0500
@@ -9,6 +9,8 @@
#include "ui/gfx/buffer_types.h"
+#include <cstdint>
+
namespace ui {
int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);

@ -0,0 +1,24 @@
diff -up chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc
--- chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc.missing-cstring 2021-11-12 05:28:09.000000000 -0500
+++ chromium-96.0.4664.45/third_party/webrtc/audio/utility/channel_mixer.cc 2021-11-19 17:10:02.927438695 -0500
@@ -8,6 +8,8 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include <cstring>
+
#include "audio/utility/channel_mixer.h"
#include "audio/utility/channel_mixing_matrix.h"
diff -up chromium-96.0.4664.45/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc.missing-cstring chromium-96.0.4664.45/third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
diff -up chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
--- chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-cstring 2021-11-12 05:28:10.000000000 -0500
+++ chromium-96.0.4664.45/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc 2021-11-19 17:10:02.928438701 -0500
@@ -10,6 +10,7 @@
#include "modules/video_coding/utility/ivf_file_reader.h"
+#include <cstring>
#include <string>
#include <vector>

@ -0,0 +1,17 @@
diff -up chromium-96.0.4664.45/net/test/embedded_test_server/http2_connection.cc.no-const chromium-96.0.4664.45/net/test/embedded_test_server/http2_connection.cc
--- chromium-96.0.4664.45/net/test/embedded_test_server/http2_connection.cc.no-const 2021-11-23 18:56:57.700174009 +0000
+++ chromium-96.0.4664.45/net/test/embedded_test_server/http2_connection.cc 2021-11-23 18:57:39.405201162 +0000
@@ -24,10 +24,9 @@ namespace net {
namespace {
-std::vector<const http2::adapter::Header> GenerateHeaders(
- HttpStatusCode status,
- base::StringPairs headers) {
- std::vector<const http2::adapter::Header> response_vector;
+std::vector<http2::adapter::Header> GenerateHeaders(HttpStatusCode status,
+ base::StringPairs headers) {
+ std::vector<http2::adapter::Header> response_vector;
response_vector.emplace_back(
http2::adapter::HeaderRep(std::string(":status")),
http2::adapter::HeaderRep(base::NumberToString(status)));

@ -0,0 +1,91 @@
Workaround GCC ICE with MiraclePtr, see https://gcc.gnu.org/PR103455
--- a/gpu/command_buffer/client/gl_helper.h
+++ b/gpu/command_buffer/client/gl_helper.h
@@ -34,7 +34,7 @@ class ScopedGLuint {
GenFunc gen_func,
DeleteFunc delete_func)
: gl_(gl), id_(0u), delete_func_(delete_func) {
- (gl_->*gen_func)(1, &id_);
+ (gl_.get()->*gen_func)(1, &id_);
}
operator GLuint() const { return id_; }
@@ -46,7 +46,7 @@ class ScopedGLuint {
~ScopedGLuint() {
if (id_ != 0) {
- (gl_->*delete_func_)(1, &id_);
+ (gl_.get()->*delete_func_)(1, &id_);
}
}
@@ -86,13 +86,13 @@ class ScopedBinder {
typedef void (gles2::GLES2Interface::*BindFunc)(GLenum target, GLuint id);
ScopedBinder(gles2::GLES2Interface* gl, GLuint id, BindFunc bind_func)
: gl_(gl), bind_func_(bind_func) {
- (gl_->*bind_func_)(Target, id);
+ (gl_.get()->*bind_func_)(Target, id);
}
ScopedBinder(const ScopedBinder&) = delete;
ScopedBinder& operator=(const ScopedBinder&) = delete;
- virtual ~ScopedBinder() { (gl_->*bind_func_)(Target, 0); }
+ virtual ~ScopedBinder() { (gl_.get()->*bind_func_)(Target, 0); }
private:
raw_ptr<gles2::GLES2Interface> gl_;
--- a/ui/accessibility/ax_node.h
+++ b/ui/accessibility/ax_node.h
@@ -822,10 +822,10 @@ AXNode::ChildIteratorBase<NodeType,
// increment the iterator past the end, we remain at the past-the-end iterator
// condition.
if (child_ && parent_) {
- if (child_ == (parent_->*LastChild)())
+ if (child_ == (parent_.get()->*LastChild)())
child_ = nullptr;
else
- child_ = (child_->*NextSibling)();
+ child_ = (child_.get()->*NextSibling)();
}
return *this;
@@ -850,12 +850,12 @@ AXNode::ChildIteratorBase<NodeType,
// If the iterator is past the end, |child_=nullptr|, decrement the iterator
// gives us the last iterator element.
if (!child_)
- child_ = (parent_->*LastChild)();
+ child_ = (parent_.get()->*LastChild)();
// Decrement the iterator gives us the previous element, except when the
// iterator is at the beginning; in which case, decrementing the iterator
// remains at the beginning.
- else if (child_ != (parent_->*FirstChild)())
- child_ = (child_->*PreviousSibling)();
+ else if (child_ != (parent_.get()->*FirstChild)())
+ child_ = (child_.get()->*PreviousSibling)();
}
return *this;
--- a/ui/views/layout/flex_layout_types.cc
+++ b/ui/views/layout/flex_layout_types.cc
@@ -59,7 +59,7 @@ class LazySize {
const gfx::Size& operator*() const { return *get(); }
const gfx::Size* get() const {
if (!size_)
- size_ = (view_->*size_func_)();
+ size_ = (view_.get()->*size_func_)();
return &size_.value();
}
LazyDimension width() const {
--- a/chrome/browser/ui/views/passwords/auto_signin_first_run_dialog_view.cc
+++ b/chrome/browser/ui/views/passwords/auto_signin_first_run_dialog_view.cc
@@ -37,7 +37,7 @@ AutoSigninFirstRunDialogView::AutoSigninFirstRunDialogView(
auto call_controller = [](AutoSigninFirstRunDialogView* dialog,
ControllerCallbackFn func) {
if (dialog->controller_) {
- (dialog->controller_->*func)();
+ (dialog->controller_.get()->*func)();
}
};
SetAcceptCallback(

@ -0,0 +1,27 @@
From 8e2458ffc6727943518a622753b074b42e713403 Mon Sep 17 00:00:00 2001
From: Stephan Hartmann <stha09@googlemail.com>
Date: Sat, 18 Dec 2021 08:38:57 +0000
Subject: [PATCH] libstdc++: fix DCHECK_NE in ui::WaylandFrameManager
There is no CheckOpValueStr() for std::unique_ptr. Use get() to
compare pointer values.
---
ui/ozone/platform/wayland/host/wayland_frame_manager.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/ozone/platform/wayland/host/wayland_frame_manager.cc b/ui/ozone/platform/wayland/host/wayland_frame_manager.cc
index 569526c..58fae14 100644
--- a/ui/ozone/platform/wayland/host/wayland_frame_manager.cc
+++ b/ui/ozone/platform/wayland/host/wayland_frame_manager.cc
@@ -379,7 +379,7 @@ void WaylandFrameManager::OnPresentation(
// Investigate the issue with surface sync.
frame->feedback = gfx::PresentationFeedback::Failure();
}
- CHECK_NE(frame, submitted_frames_.back());
+ CHECK_NE(frame.get(), submitted_frames_.back().get());
}
MaybeProcessSubmittedFrames();
}
--
2.32.0

@ -0,0 +1,75 @@
diff -up chromium-98.0.4758.80/components/cast_channel/enum_table.h.EnumTable-crash chromium-98.0.4758.80/components/cast_channel/enum_table.h
--- chromium-98.0.4758.80/components/cast_channel/enum_table.h.EnumTable-crash 2022-02-01 00:41:47.000000000 +0000
+++ chromium-98.0.4758.80/components/cast_channel/enum_table.h 2022-02-02 18:54:23.096214186 +0000
@@ -8,6 +8,7 @@
#include <cstdint>
#include <cstring>
#include <ostream>
+#include <vector>
#include "base/check_op.h"
#include "base/notreached.h"
@@ -187,7 +188,6 @@ class
inline constexpr GenericEnumTableEntry(int32_t value);
inline constexpr GenericEnumTableEntry(int32_t value, base::StringPiece str);
- GenericEnumTableEntry(const GenericEnumTableEntry&) = delete;
GenericEnumTableEntry& operator=(const GenericEnumTableEntry&) = delete;
private:
@@ -253,7 +253,6 @@ class EnumTable {
constexpr Entry(E value, base::StringPiece str)
: GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
- Entry(const Entry&) = delete;
Entry& operator=(const Entry&) = delete;
};
@@ -312,15 +311,14 @@ class EnumTable {
if (is_sorted_) {
const std::size_t index = static_cast<std::size_t>(value);
if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
- const auto& entry = data_.begin()[index];
+ const auto& entry = data_[index];
if (ANALYZER_ASSUME_TRUE(entry.has_str()))
return entry.str();
}
return absl::nullopt;
}
return GenericEnumTableEntry::FindByValue(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), static_cast<int32_t>(value));
+ &data_[0], data_.size(), static_cast<int32_t>(value));
}
// This overload of GetString is designed for cases where the argument is a
@@ -348,8 +346,7 @@ class EnumTable {
// enum value directly.
absl::optional<E> GetEnum(base::StringPiece str) const {
auto* entry = GenericEnumTableEntry::FindByString(
- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
- data_.size(), str);
+ &data_[0], data_.size(), str);
return entry ? static_cast<E>(entry->value) : absl::optional<E>();
}
@@ -364,7 +361,7 @@ class EnumTable {
// Align the data on a cache line boundary.
alignas(64)
#endif
- std::initializer_list<Entry> data_;
+ const std::vector<Entry> data_;
bool is_sorted_;
constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
@@ -376,8 +373,8 @@ class EnumTable {
for (std::size_t i = 0; i < data.size(); i++) {
for (std::size_t j = i + 1; j < data.size(); j++) {
- const Entry& ei = data.begin()[i];
- const Entry& ej = data.begin()[j];
+ const Entry& ei = data[i];
+ const Entry& ej = data[j];
DCHECK(ei.value != ej.value)
<< "Found duplicate enum values at indices " << i << " and " << j;
DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))

@ -0,0 +1,15 @@
diff -up chromium-98.0.4758.80/base/allocator/partition_allocator/starscan/metadata_allocator.h.wtf chromium-98.0.4758.80/base/allocator/partition_allocator/starscan/metadata_allocator.h
--- chromium-98.0.4758.80/base/allocator/partition_allocator/starscan/metadata_allocator.h.wtf 2022-02-05 16:05:15.125570250 +0000
+++ chromium-98.0.4758.80/base/allocator/partition_allocator/starscan/metadata_allocator.h 2022-02-05 16:11:45.519670294 +0000
@@ -39,6 +39,11 @@ class MetadataAllocator {
}
template <typename U>
+ bool operator==(const MetadataAllocator<U>&) const {
+ return true;
+ }
+
+ template <typename U>
bool operator!=(const MetadataAllocator<U>& o) {
return !operator==(o);
}

@ -0,0 +1,62 @@
diff -up chromium-98.0.4758.80/chrome/browser/about_flags.cc.accel-mjpeg chromium-98.0.4758.80/chrome/browser/about_flags.cc
--- chromium-98.0.4758.80/chrome/browser/about_flags.cc.accel-mjpeg 2022-02-01 00:41:40.000000000 +0000
+++ chromium-98.0.4758.80/chrome/browser/about_flags.cc 2022-02-02 19:23:15.554137616 +0000
@@ -3822,12 +3822,12 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop,
MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)},
#endif // ENABLE_VR
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || defined(OS_LINUX)
{"disable-accelerated-mjpeg-decode",
flag_descriptions::kAcceleratedMjpegDecodeName,
- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS,
+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux,
SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)},
-#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // BUILDFLAG(IS_CHROMEOS_ASH) || OS_LINUX
{"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName,
flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)},
diff -up chromium-98.0.4758.80/chrome/browser/flag_descriptions.cc.accel-mjpeg chromium-98.0.4758.80/chrome/browser/flag_descriptions.cc
--- chromium-98.0.4758.80/chrome/browser/flag_descriptions.cc.accel-mjpeg 2022-02-02 19:23:15.555137569 +0000
+++ chromium-98.0.4758.80/chrome/browser/flag_descriptions.cc 2022-02-02 19:30:58.315465225 +0000
@@ -3979,7 +3979,7 @@ const char kUseAngleGL[] = "OpenGL";
// Chrome OS -------------------------------------------------------------------
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
const char kAcceleratedMjpegDecodeName[] =
"Hardware-accelerated mjpeg decode for captured frame";
@@ -3987,6 +3987,10 @@ const char kAcceleratedMjpegDecodeDescri
"Enable hardware-accelerated mjpeg decode for captured frame where "
"available.";
+#endif
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+
const char kAllowDisableMouseAccelerationName[] =
"Allow disabling mouse acceleration";
const char kAllowDisableMouseAccelerationDescription[] =
diff -up chromium-98.0.4758.80/chrome/browser/flag_descriptions.h.accel-mjpeg chromium-98.0.4758.80/chrome/browser/flag_descriptions.h
--- chromium-98.0.4758.80/chrome/browser/flag_descriptions.h.accel-mjpeg 2022-02-02 19:23:15.556137523 +0000
+++ chromium-98.0.4758.80/chrome/browser/flag_descriptions.h 2022-02-02 19:31:59.585595773 +0000
@@ -2297,11 +2297,15 @@ extern const char kUseAngleGL[];
// Chrome OS ------------------------------------------------------------------
-#if BUILDFLAG(IS_CHROMEOS_ASH)
+#if BUILDFLAG(IS_CHROMEOS_ASH) || (defined(OS_LINUX) && !defined(OS_ANDROID))
extern const char kAcceleratedMjpegDecodeName[];
extern const char kAcceleratedMjpegDecodeDescription[];
+#endif
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+
extern const char kAllowDisableMouseAccelerationName[];
extern const char kAllowDisableMouseAccelerationDescription[];

@ -0,0 +1,20 @@
diff -up chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc.erase-fix chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc
--- chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc.erase-fix 2022-02-03 19:16:57.784979831 +0000
+++ chromium-98.0.4758.80/components/ui_devtools/views/ui_element_with_metadata.cc 2022-02-03 19:17:12.983633352 +0000
@@ -19,14 +19,14 @@ namespace {
// Remove any custom editor "prefixes" from the property name. The prefixes must
// not be valid identifier characters.
void StripPrefix(std::string& property_name) {
- auto cur = property_name.cbegin();
+ auto cur = property_name.begin();
for (; cur < property_name.cend(); ++cur) {
if ((*cur >= 'A' && *cur <= 'Z') || (*cur >= 'a' && *cur <= 'z') ||
*cur == '_') {
break;
}
}
- property_name.erase(property_name.cbegin(), cur);
+ property_name.erase(property_name.begin(), cur);
}
} // namespace

@ -0,0 +1,167 @@
diff -up chromium-98.0.4758.80/chrome/service/cloud_print/print_system_cups.cc.el7cups chromium-98.0.4758.80/chrome/service/cloud_print/print_system_cups.cc
--- chromium-98.0.4758.80/chrome/service/cloud_print/print_system_cups.cc.el7cups 2022-02-05 16:24:50.301779674 +0000
+++ chromium-98.0.4758.80/chrome/service/cloud_print/print_system_cups.cc 2022-02-05 16:24:50.302779651 +0000
@@ -729,8 +729,9 @@ int PrintSystemCUPS::PrintFile(const GUR
// Use default (local) print server.
if (url.is_empty())
return cupsPrintFile(name, filename, title, num_options, options);
-
- printing::HttpConnectionCUPS http(url, encryption, /*blocking=*/false);
+
+ printing::HttpConnectionCUPS http(url, encryption);
+ http.SetBlocking(false);
return cupsPrintFile2(http.http(), name, filename, title, num_options,
options);
}
@@ -746,7 +747,8 @@ int PrintSystemCUPS::GetJobs(cups_job_t*
if (url.is_empty())
return cupsGetJobs(jobs, name, myjobs, whichjobs);
- printing::HttpConnectionCUPS http(url, encryption, /*blocking=*/false);
+ printing::HttpConnectionCUPS http(url, encryption);
+ http.SetBlocking(false);
return cupsGetJobs2(http.http(), jobs, name, myjobs, whichjobs);
}
diff -up chromium-98.0.4758.80/printing/backend/cups_helper.cc.el7cups chromium-98.0.4758.80/printing/backend/cups_helper.cc
--- chromium-98.0.4758.80/printing/backend/cups_helper.cc.el7cups 2022-02-05 16:25:16.885173676 +0000
+++ chromium-98.0.4758.80/printing/backend/cups_helper.cc 2022-02-05 16:25:16.886173653 +0000
@@ -34,18 +34,6 @@ namespace printing {
// This section contains helper code for PPD parsing for semantic capabilities.
namespace {
-// Function availability can be tested by checking whether its address is not
-// nullptr. Weak symbols remove the need for platform specific build flags and
-// allow for appropriate CUPS usage on platforms with non-uniform version
-// support, namely Linux.
-#define WEAK_CUPS_FN(x) extern "C" __attribute__((weak)) decltype(x) x
-
-WEAK_CUPS_FN(httpConnect2);
-
-// Timeout for establishing a CUPS connection. It is expected that cupsd is
-// able to start and respond on all systems within this duration.
-constexpr base::TimeDelta kCupsTimeout = base::Seconds(5);
-
// CUPS default max copies value (parsed from kCupsMaxCopies PPD attribute).
constexpr int32_t kDefaultMaxCopies = 9999;
constexpr char kCupsMaxCopies[] = "cupsMaxCopies";
@@ -527,8 +515,7 @@ const int kDefaultIPPServerPort = 631;
// Helper wrapper around http_t structure, with connection and cleanup
// functionality.
HttpConnectionCUPS::HttpConnectionCUPS(const GURL& print_server_url,
- http_encryption_t encryption,
- bool blocking)
+ http_encryption_t encryption)
: http_(nullptr) {
// If we have an empty url, use default print server.
if (print_server_url.is_empty())
@@ -538,17 +525,10 @@ HttpConnectionCUPS::HttpConnectionCUPS(c
if (port == url::PORT_UNSPECIFIED)
port = kDefaultIPPServerPort;
- if (httpConnect2) {
- http_ = httpConnect2(print_server_url.host().c_str(), port,
- /*addrlist=*/nullptr, AF_UNSPEC, encryption,
- blocking ? 1 : 0, kCupsTimeout.InMilliseconds(),
- /*cancel=*/nullptr);
- } else {
- // Continue to use deprecated CUPS calls because because older Linux
- // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6.
- http_ =
- httpConnectEncrypt(print_server_url.host().c_str(), port, encryption);
- }
+ // Continue to use deprecated CUPS calls because because older Linux
+ // distribution such as RHEL/CentOS 7 are shipped with CUPS 1.6.
+ http_ =
+ httpConnectEncrypt(print_server_url.host().c_str(), port, encryption);
if (!http_) {
LOG(ERROR) << "CP_CUPS: Failed connecting to print server: "
@@ -556,8 +536,6 @@ HttpConnectionCUPS::HttpConnectionCUPS(c
return;
}
- if (!httpConnect2)
- httpBlocking(http_, blocking ? 1 : 0);
}
HttpConnectionCUPS::~HttpConnectionCUPS() {
@@ -565,6 +543,10 @@ HttpConnectionCUPS::~HttpConnectionCUPS(
httpClose(http_);
}
+void HttpConnectionCUPS::SetBlocking(bool blocking) {
+ httpBlocking(http_, blocking ? 1 : 0);
+}
+
http_t* HttpConnectionCUPS::http() {
return http_;
}
diff -up chromium-98.0.4758.80/printing/backend/cups_helper.h.el7cups chromium-98.0.4758.80/printing/backend/cups_helper.h
--- chromium-98.0.4758.80/printing/backend/cups_helper.h.el7cups 2022-02-05 16:25:16.886173653 +0000
+++ chromium-98.0.4758.80/printing/backend/cups_helper.h 2022-02-05 16:25:16.886173653 +0000
@@ -34,10 +34,11 @@ constexpr cups_ptype_t kDestinationsFilt
class COMPONENT_EXPORT(PRINT_BACKEND) HttpConnectionCUPS {
public:
HttpConnectionCUPS(const GURL& print_server_url,
- http_encryption_t encryption,
- bool blocking);
+ http_encryption_t encryption);
~HttpConnectionCUPS();
+ void SetBlocking(bool blocking);
+
http_t* http();
private:
diff -up chromium-98.0.4758.80/printing/backend/print_backend_cups.cc.el7cups chromium-98.0.4758.80/printing/backend/print_backend_cups.cc
--- chromium-98.0.4758.80/printing/backend/print_backend_cups.cc.el7cups 2022-02-05 16:25:16.887173630 +0000
+++ chromium-98.0.4758.80/printing/backend/print_backend_cups.cc 2022-02-07 00:23:16.315248327 +0000
@@ -146,7 +146,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
// not showing as available. Using cupsEnumDests() allows us to do our own
// filtering should any duplicates occur.
CupsDestsData dests_data = {0, nullptr};
- ipp_status_t last_error = IPP_STATUS_OK;
+ ipp_status_t last_error = IPP_OK;
if (print_server_url_.is_empty()) {
VLOG(1) << "CUPS: using cupsEnumDests to enumerate printers";
if (!cupsEnumDests(CUPS_DEST_FLAGS_NONE, kCupsTimeoutMs,
@@ -173,7 +173,7 @@ mojom::ResultCode PrintBackendCUPS::Enum
// no printer drivers installed. Rely upon CUPS error code to distinguish
// between these.
DCHECK(!dests_data.dests);
- if (last_error != IPP_STATUS_ERROR_NOT_FOUND) {
+ if (last_error != IPP_NOT_FOUND) {
VLOG(1) << "CUPS: Error getting printers from CUPS server"
<< ", server: " << print_server_url_
<< ", error: " << static_cast<int>(last_error) << " - "
@@ -336,7 +336,8 @@ int PrintBackendCUPS::GetDests(cups_dest
if (print_server_url_.is_empty())
return cupsGetDests2(CUPS_HTTP_DEFAULT, dests);
- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
+ HttpConnectionCUPS http(print_server_url_, cups_encryption_);
+ http.SetBlocking(blocking_);
// This call must be made in the same scope as `http` because its destructor
// closes the connection.
@@ -362,7 +363,8 @@ base::FilePath PrintBackendCUPS::GetPPD(
// connection will timeout after 10 seconds of no data period. And it will
// return the same way as if data was completely and successfully
// downloaded.
- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
+ HttpConnectionCUPS http(print_server_url_, cups_encryption_);
+ http.SetBlocking(blocking_);
ppd_file_path = cupsGetPPD2(http.http(), name);
// Check if the get full PPD, since non-blocking call may simply return
// normally after timeout expired.
@@ -398,7 +400,8 @@ PrintBackendCUPS::ScopedDestination Prin
// Use default (local) print server.
dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, printer_name.c_str(), nullptr);
} else {
- HttpConnectionCUPS http(print_server_url_, cups_encryption_, blocking_);
+ HttpConnectionCUPS http(print_server_url_, cups_encryption_);
+ http.SetBlocking(blocking_);
dest = cupsGetNamedDest(http.http(), printer_name.c_str(), nullptr);
}
return ScopedDestination(dest);

@ -0,0 +1,127 @@
diff -up chromium-98.0.4758.80/mojo/core/channel_linux.cc.epel7-header-workarounds chromium-98.0.4758.80/mojo/core/channel_linux.cc
--- chromium-98.0.4758.80/mojo/core/channel_linux.cc.epel7-header-workarounds 2022-02-03 18:37:49.535504412 +0000
+++ chromium-98.0.4758.80/mojo/core/channel_linux.cc 2022-02-03 18:55:08.833815527 +0000
@@ -44,6 +44,25 @@
#include "base/android/build_info.h"
#endif
+#ifndef F_LINUX_SPECIFIC_BASE
+#define F_LINUX_SPECIFIC_BASE 1024
+#endif
+#ifndef F_SEAL_SEAL
+#define F_SEAL_SEAL 0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+#define F_SEAL_SHRINK 0x0002
+#endif
+#ifndef F_SEAL_GROW
+#define F_SEAL_GROW 0x0004
+#endif
+#ifndef F_ADD_SEALS
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
+#endif
+#ifndef F_GET_SEALS
+#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
+#endif
+
#ifndef EFD_ZERO_ON_WAKE
#define EFD_ZERO_ON_WAKE O_NOFOLLOW
#endif
diff -up chromium-98.0.4758.80/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds chromium-98.0.4758.80/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
--- chromium-98.0.4758.80/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds 2022-02-01 00:41:54.000000000 +0000
+++ chromium-98.0.4758.80/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2022-02-03 18:37:49.536504389 +0000
@@ -53,6 +53,25 @@
#endif // defined(OS_ANDROID)
+#ifndef F_LINUX_SPECIFIC_BASE
+#define F_LINUX_SPECIFIC_BASE 1024
+#endif
+#ifndef F_SEAL_SEAL
+#define F_SEAL_SEAL 0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+#define F_SEAL_SHRINK 0x0002
+#endif
+#ifndef F_SEAL_GROW
+#define F_SEAL_GROW 0x0004
+#endif
+#ifndef F_ADD_SEALS
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
+#endif
+#ifndef F_GET_SEALS
+#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
+#endif
+
#if defined(__arm__) && !defined(MAP_STACK)
#define MAP_STACK 0x20000 // Daisy build environment has old headers.
#endif
diff -up chromium-98.0.4758.80/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds chromium-98.0.4758.80/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
--- chromium-98.0.4758.80/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-01 00:41:54.000000000 +0000
+++ chromium-98.0.4758.80/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc 2022-02-03 18:37:49.535504412 +0000
@@ -6,7 +6,24 @@
#include <errno.h>
#include <fcntl.h>
-#include <linux/kcmp.h>
+#ifndef KCMP_FILE
+#define KCMP_FILE 0
+#endif
+#ifndef F_LINUX_SPECIFIC_BASE
+#define F_LINUX_SPECIFIC_BASE 1024
+#endif
+#ifndef F_SEAL_SEAL
+#define F_SEAL_SEAL 0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+#define F_SEAL_SHRINK 0x0002
+#endif
+#ifndef F_SEAL_GROW
+#define F_SEAL_GROW 0x0004
+#endif
+#ifndef F_ADD_SEALS
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
+#endif
#include <sys/socket.h>
// Some arch's (arm64 for instance) unistd.h don't pull in symbols used here
diff -up chromium-98.0.4758.80/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds chromium-98.0.4758.80/sandbox/policy/linux/bpf_gpu_policy_linux.cc
--- chromium-98.0.4758.80/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-03 18:37:49.535504412 +0000
+++ chromium-98.0.4758.80/sandbox/policy/linux/bpf_gpu_policy_linux.cc 2022-02-03 18:56:24.382093563 +0000
@@ -22,6 +22,22 @@
#include "sandbox/policy/linux/sandbox_linux.h"
#include "sandbox/policy/linux/sandbox_seccomp_bpf_linux.h"
+#ifndef F_LINUX_SPECIFIC_BASE
+#define F_LINUX_SPECIFIC_BASE 1024
+#endif
+#ifndef F_SEAL_SEAL
+#define F_SEAL_SEAL 0x0001
+#endif
+#ifndef F_SEAL_SHRINK
+#define F_SEAL_SHRINK 0x0002
+#endif
+#ifndef F_SEAL_GROW
+#define F_SEAL_GROW 0x0004
+#endif
+#ifndef F_ADD_SEALS
+#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
+#endif
+
using sandbox::bpf_dsl::AllOf;
using sandbox::bpf_dsl::Allow;
using sandbox::bpf_dsl::Arg;
diff -up chromium-98.0.4758.80/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds chromium-98.0.4758.80/ui/events/ozone/evdev/event_converter_evdev_impl.cc
--- chromium-98.0.4758.80/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds 2022-02-03 18:37:49.536504389 +0000
+++ chromium-98.0.4758.80/ui/events/ozone/evdev/event_converter_evdev_impl.cc 2022-02-03 18:57:16.842897816 +0000
@@ -23,6 +23,10 @@
#include "ui/events/ozone/evdev/numberpad_metrics.h"
#endif
+#ifndef SW_PEN_INSERTED
+#define SW_PEN_INSERTED 0x0f /* set = pen inserted */
+#endif
+
namespace ui {
namespace {

@ -0,0 +1,12 @@
diff -up chromium-98.0.4758.80/content/common/user_agent.cc.fedora-user-agent chromium-98.0.4758.80/content/common/user_agent.cc
--- chromium-98.0.4758.80/content/common/user_agent.cc.fedora-user-agent 2022-02-02 19:16:37.841755606 +0000
+++ chromium-98.0.4758.80/content/common/user_agent.cc 2022-02-02 19:19:52.395650550 +0000
@@ -34,7 +34,7 @@ std::string GetUserAgentPlatform() {
#elif defined(OS_MAC)
return "Macintosh; ";
#elif defined(USE_OZONE)
- return "X11; "; // strange, but that's what Firefox uses
+ return "X11; Fedora; "; // strange, but that's what Firefox uses
#elif defined(OS_ANDROID)
return "Linux; ";
#elif defined(OS_FUCHSIA)

@ -0,0 +1,56 @@
diff -up chromium-98.0.4758.80/remoting/base/util.cc.remoting-cstring chromium-98.0.4758.80/remoting/base/util.cc
--- chromium-98.0.4758.80/remoting/base/util.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000
+++ chromium-98.0.4758.80/remoting/base/util.cc 2022-02-02 15:55:01.352340901 +0000
@@ -4,6 +4,7 @@
#include "remoting/base/util.h"
+#include <cstring>
#include <math.h>
#include "base/logging.h"
diff -up chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc.remoting-cstring chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc
--- chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000
+++ chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc 2022-02-02 15:55:01.353340854 +0000
@@ -5,6 +5,7 @@
#include "remoting/client/display/gl_helpers.h"
#include "base/logging.h"
+#include <cstring>
namespace remoting {
diff -up chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc
--- chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000
+++ chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc 2022-02-02 15:55:01.353340854 +0000
@@ -4,6 +4,7 @@
#include "remoting/host/fake_mouse_cursor_monitor.h"
+#include <cstring>
#include <memory>
#include "base/check.h"
diff -up chromium-98.0.4758.80/remoting/host/host_config_unittest.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/host_config_unittest.cc
--- chromium-98.0.4758.80/remoting/host/host_config_unittest.cc.remoting-cstring 2022-02-02 15:55:01.353340854 +0000
+++ chromium-98.0.4758.80/remoting/host/host_config_unittest.cc 2022-02-02 15:57:20.295794172 +0000
@@ -10,6 +10,7 @@
#include "base/values.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
+#include <cstring>
namespace remoting {
diff -up chromium-98.0.4758.80/remoting/host/host_secret.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/host_secret.cc
--- chromium-98.0.4758.80/remoting/host/host_secret.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000
+++ chromium-98.0.4758.80/remoting/host/host_secret.cc 2022-02-02 15:55:01.353340854 +0000
@@ -6,7 +6,7 @@
#include <stdint.h>
-#include <string>
+#include <cstring>
#include "base/rand_util.h"
#include "base/strings/string_number_conversions.h"

@ -0,0 +1,84 @@
diff -up chromium-98.0.4758.80/remoting/host/mojom/remoting_mojom_traits.h.extra-qualification chromium-98.0.4758.80/remoting/host/mojom/remoting_mojom_traits.h
--- chromium-98.0.4758.80/remoting/host/mojom/remoting_mojom_traits.h.extra-qualification 2022-02-04 00:55:00.643766557 +0000
+++ chromium-98.0.4758.80/remoting/host/mojom/remoting_mojom_traits.h 2022-02-04 00:56:18.272148934 +0000
@@ -21,7 +21,7 @@
namespace mojo {
template <>
-class mojo::StructTraits<remoting::mojom::BoolDataView, bool> {
+class StructTraits<remoting::mojom::BoolDataView, bool> {
public:
static bool value(bool value) { return value; }
@@ -32,7 +32,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::FloatDataView, float> {
+class StructTraits<remoting::mojom::FloatDataView, float> {
public:
static float value(float value) { return value; }
@@ -43,7 +43,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::Int32DataView, int32_t> {
+class StructTraits<remoting::mojom::Int32DataView, int32_t> {
public:
static int32_t value(int32_t value) { return value; }
@@ -109,7 +109,7 @@ struct EnumTraits<remoting::mojom::Mouse
};
template <>
-class mojo::StructTraits<remoting::mojom::ClipboardEventDataView,
+class StructTraits<remoting::mojom::ClipboardEventDataView,
::remoting::protocol::ClipboardEvent> {
public:
static const std::string& mime_type(
@@ -127,7 +127,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::KeyEventDataView,
+class StructTraits<remoting::mojom::KeyEventDataView,
::remoting::protocol::KeyEvent> {
public:
static bool pressed(const ::remoting::protocol::KeyEvent& event) {
@@ -163,7 +163,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::MouseEventDataView,
+class StructTraits<remoting::mojom::MouseEventDataView,
::remoting::protocol::MouseEvent> {
public:
static absl::optional<int32_t> x(
@@ -252,7 +252,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::TextEventDataView,
+class StructTraits<remoting::mojom::TextEventDataView,
::remoting::protocol::TextEvent> {
public:
static const std::string& text(const ::remoting::protocol::TextEvent& event) {
@@ -264,7 +264,7 @@ class mojo::StructTraits<remoting::mojom
};
template <>
-class mojo::StructTraits<remoting::mojom::TouchEventPointDataView,
+class StructTraits<remoting::mojom::TouchEventPointDataView,
::remoting::protocol::TouchEventPoint> {
public:
static uint32_t id(const ::remoting::protocol::TouchEventPoint& event) {
@@ -341,7 +341,7 @@ struct EnumTraits<remoting::mojom::Touch
};
template <>
-class mojo::StructTraits<remoting::mojom::TouchEventDataView,
+class StructTraits<remoting::mojom::TouchEventDataView,
::remoting::protocol::TouchEvent> {
public:
static ::remoting::protocol::TouchEvent::TouchEventType event_type(

@ -134,7 +134,7 @@ X-MultipleArgs=false
Type=Application
Icon=chromium-browser
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=Chromium-browser
Keywords=web;browser;internet;
Actions=new-window;new-private-window;

@ -50,6 +50,11 @@ CHROMIUM_DISTRO_FLAGS=" --enable-plugins \
--enable-sync \
--auto-ssl-client-auth @@EXTRA_FLAGS@@"
# This provides a much better experience on Wayland.
if [ "$XDG_SESSION_TYPE" == "wayland" ] || [[ $WAYLAND_DISPLAY ]] ; then
CHROMIUM_DISTRO_FLAGS="--ozone-platform=wayland $CHROMIUM_DISTRO_FLAGS"
fi
if [ -f "$HERE/PepperFlash/libpepflashplayer.so" ] && [ -f "$HERE/PepperFlash/manifest.json" ] ; then
CHROMIUM_FLASH_VERSION=$(grep '"version":' "$HERE/PepperFlash/manifest.json" | awk -F\" '{ print $4 }')
CHROMIUM_FLASH_FLAGS=" --ppapi-flash-path=$HERE/PepperFlash/libpepflashplayer.so \

@ -0,0 +1,50 @@
--- a/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
+++ b/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
@@ -712,7 +712,11 @@ void colrv1_draw_paint(SkCanvas* canvas,
canvas->drawPaint(colrPaint);
break;
}
+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
+ case FT_COLR_PAINTFORMAT_TRANSFORM:
+#else
case FT_COLR_PAINTFORMAT_TRANSFORMED:
+#endif
case FT_COLR_PAINTFORMAT_TRANSLATE:
case FT_COLR_PAINTFORMAT_ROTATE:
case FT_COLR_PAINTFORMAT_SKEW:
@@ -759,10 +763,17 @@ void colrv1_transform(SkCanvas* canvas, FT_Face face, FT_COLR_Paint colrv1_paint
SkMatrix transform;
switch (colrv1_paint.format) {
+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
+ case FT_COLR_PAINTFORMAT_TRANSFORM: {
+ transform = ToSkMatrix(colrv1_paint.u.transform.affine);
+ break;
+ }
+#else
case FT_COLR_PAINTFORMAT_TRANSFORMED: {
transform = ToSkMatrix(colrv1_paint.u.transformed.affine);
break;
}
+#endif
case FT_COLR_PAINTFORMAT_TRANSLATE: {
transform = SkMatrix::Translate(
SkFixedToScalar(colrv1_paint.u.translate.dx),
@@ -880,10 +891,17 @@ bool colrv1_traverse_paint(SkCanvas* canvas,
traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID,
FT_COLOR_NO_ROOT_TRANSFORM);
break;
+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
+ case FT_COLR_PAINTFORMAT_TRANSFORM:
+ colrv1_transform(canvas, face, paint);
+ traverse_result = colrv1_traverse_paint(canvas, palette, face,
+ paint.u.transform.paint, visited_set);
+#else
case FT_COLR_PAINTFORMAT_TRANSFORMED:
colrv1_transform(canvas, face, paint);
traverse_result = colrv1_traverse_paint(canvas, palette, face,
paint.u.transformed.paint, visited_set);
+#endif
break;
case FT_COLR_PAINTFORMAT_TRANSLATE:
colrv1_transform(canvas, face, paint);

File diff suppressed because one or more lines are too long

@ -79,6 +79,7 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/codec_par.h \
libavcodec/dct.h \
libavcodec/dct32.h \
libavcodec/defs.h \
libavcodec/error_resilience.h \
libavcodec/fdctdsp.h \
libavcodec/fft.h \
@ -236,6 +237,8 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavcodec/hpeldsp.c \
libavcodec/mdct15.c \
libavcodec/mdct_template.c \
libavcodec/options.c \
libavcodec/pcm.c \
libavcodec/pel_template.c \
libavcodec/utils.c \
libavcodec/videodsp.c \
@ -255,7 +258,9 @@ manual_files=" libavcodec/aarch64/fft_neon.S \
libavutil/fixed_dsp.c \
libavutil/float_dsp.c \
libavutil/imgutils.c \
libavutil/tx_float.c \
libavutil/tx_template.c \
libavutil/utils.c \
libavutil/x86/cpu.c \
libavutil/x86/float_dsp_init.c \
libavutil/x86/x86inc.asm \
@ -276,7 +281,6 @@ mp3_files=" libavcodec/aarch64/aacpsdsp_init_aarch64.c \
libavcodec/aacsbr.c \
libavcodec/aactab.c \
libavcodec/ac3tab.c \
libavcodec/autorename_libavcodec_aacdec.c \
libavcodec/autorename_libavcodec_mpegaudiodsp.c \
libavcodec/autorename_libavcodec_sbrdsp.c \
libavcodec/cbrt_data.c \

@ -15,9 +15,10 @@ SHA512 (Tinos-Bold.ttf) = 54aeca804c06a4d5c57ade596e73df91a6a1c4401c4aadba55d987
SHA512 (Tinos-Italic.ttf) = d4f4f096110ef98a781a2a0e0d319317e5f84e650fe6f4d4f6b0e22a16414278217f37497b904a18540273c0e2d79d4f1faabde3b0eb5446283b318c73bafb38
SHA512 (Tinos-Regular.ttf) = 58085c5dac6d067d60ba2ab3220c4a0cc1efcf279cadfcfb8746a5e5fa1a6f6daa62750dc2051b3b2d8a51b4d2e9bb0f66594caf2253c0870ed9c7286fa45e8f
SHA512 (Ahem.ttf) = aeb64b10ab9c87860714cb60b4900254b13dc52c51319256a1a3722c882026ab7c616bf628fbc2fe14e38a6003f3a481af60b52a7ed62071d28ddaf428e4e3fd
SHA512 (node-v10.15.3-linux-x64.tar.gz) = 5eb544ef706562981340a82acc79e2162c6a3e4049b4a95f69ce353ee5b0f929c60b1fc457e8249b3fb0696f82fc28c5f543f5947db19fae4e9d5c21b906bb20
SHA512 (xcb-proto-1.14.tar.xz) = de66d568163b6da2be9d6c59984f3afa3acd119a781378638045fd68018665ef5c9af98f024e9962ba3eb7c7a4d85c27ba70ffafceb2324ccc6940f34de16690
SHA512 (depot_tools.git-master.tar.gz) = dc323888812b66cc92c53a24a8a58ccf9e2961be67aa21852bd091b8b49569071f06ae9104cb58950e6253ac3a29f0db0663e9f35ef2b1ea28696efb38b42708
SHA512 (NotoSansSymbols2-Regular.ttf) = 2644b42c3fdccfe12395f9b61553aced169a0f1dc09f5a0fd7898e9d0a372ee4422b6b1cdab3c86ecc91db437e9ae8a951e64e85edc3ac9e9fca428852dbb2ad
SHA512 (NotoSansTibetan-Regular.ttf) = fb5a48fcaea80eebe7d692f6fcf00d59d47658a358d0ec8e046fc559873f88bd595b2da474d2826abd9e9305f3741c69058d867b1e6048f37fe7d71b5d3af36a
SHA512 (chromium-91.0.4472.114-clean.tar.xz) = 2379fdbca889cfed28e9ab530eabcd654f16ee2d4313d684fd8eafdb9b4c25efa04e0af23323537c7a492e7913125c59ec8b53c2b7437e20496882c9af47a9be
SHA512 (node-v12.22.6-linux-arm64.tar.xz) = 87ce5eb954deb1d0debe6fa02b28a3cc675e12fca1e51d44b123ab294aa39ce0c6b8ac9eae1e7a6e32673ea2c2d480651d9ba7eea73012f0529503eebe9eb34d
SHA512 (node-v12.22.6-linux-x64.tar.xz) = e1b55c32343cb2ccc40d888c705414bebf9c46b02083d13731df79b1e79521b7277761f6bcca041e40e3a2e47c67bb8e7848aa2b919a9de5c2ebf62c4a9c7176
SHA512 (chromium-98.0.4758.80-clean.tar.xz) = b3c95418683bc1ce24dcda8e1510fc5623ef97a9fca6574a75fb372648edaa078c715592c3f9fa0f6c0557b8edf1c3436faec093b620bef7b050a8c3aa4a2f96

Loading…
Cancel
Save