Compare commits

..

53 commits

Author SHA1 Message Date
Than Ngo
04024577a9 Merge branch 'rawhide' into f37 2023-11-29 12:57:17 +01:00
Than Ngo
34f8a12084 Merge branch 'rawhide' into f37 2023-11-19 19:52:19 +01:00
Than Ngo
a9f9bf8f32 Merge branch 'rawhide' into f37 2023-11-16 21:16:28 +01:00
Than Ngo
0f6eab45f2 Merge branch 'rawhide' into f37 2023-11-16 10:24:04 +01:00
Than Ngo
e70896092b Merge branch 'rawhide' into f37 2023-11-09 12:53:33 +01:00
Than Ngo
ca940bd33f Merge branch 'rawhide' into f37 2023-11-02 08:45:43 +01:00
Than Ngo
cf7c814e45 Merge branch 'rawhide' into f37 2023-11-01 23:23:15 +01:00
Than Ngo
7d7cbf62e8 Merge branch 'rawhide' into f37 2023-10-25 11:59:20 +02:00
Than Ngo
ade59c8ac1 Merge branch 'rawhide' into f37 2023-10-18 21:10:24 +02:00
Than Ngo
fe9b10f246 Merge branch 'rawhide' into f37 2023-10-16 18:35:10 +02:00
Than Ngo
28a3a497ab Merge branch 'rawhide' into f37 2023-10-11 11:31:54 +02:00
Than Ngo
0980713663 Merge branch 'rawhide' into f37 2023-10-05 11:27:37 +02:00
Than Ngo
fe4abf846f Merge branch 'rawhide' into f37 2023-09-28 14:15:24 +02:00
Than Ngo
365368164a Merge branch 'rawhide' into f37 2023-09-23 14:09:36 +02:00
Than Ngo
a35f3c4225 Merge branch 'rawhide' into f37 2023-09-22 14:07:00 +02:00
Than Ngo
4f926fc29e Merge branch 'rawhide' into f37 2023-09-17 20:20:03 +02:00
Than Ngo
261cefc10f Merge branch 'rawhide' into f37 2023-09-17 19:50:33 +02:00
Than Ngo
2302538081 Merge branch 'rawhide' into f37 2023-09-16 23:07:38 +02:00
Than Ngo
bbf9888e0b Merge branch 'rawhide' into f37 2023-09-15 22:11:58 +02:00
Than Ngo
de2f7ade77 Merge branch 'rawhide' into f37 2023-09-15 18:19:04 +02:00
Than Ngo
cef76194ca Merge branch 'rawhide' into f37 2023-09-15 14:46:35 +02:00
Than Ngo
0c6c161cd4 Merge branch 'rawhide' into f37 2023-09-14 17:12:04 +02:00
Than Ngo
49ce6b03fb Merge branch 'rawhide' into f37 2023-09-13 14:14:31 +02:00
Than Ngo
5d697f789c Merge branch 'rawhide' into f37 2023-09-12 10:08:58 +02:00
Than Ngo
b27b5a0b6f Merge branch 'rawhide' into f37 2023-09-08 14:42:48 +02:00
Than Ngo
5c091b8f52 Merge branch 'rawhide' into f37 2023-08-17 09:08:36 +02:00
Than Ngo
5f8622285b Merge branch 'rawhide' into f37 2023-08-15 23:37:05 +02:00
Than Ngo
5fb4b567ee Merge branch 'rawhide' into f37 2023-08-15 13:57:17 +02:00
Than Ngo
b6eb0b50e7 Merge branch 'rawhide' into f37 2023-08-09 14:26:50 +02:00
Than Ngo
0f7ac49d0a Merge branch 'rawhide' into f37 2023-08-03 13:29:30 +02:00
Than Ngo
7e6b8e984d Merge branch 'rawhide' into f37 2023-07-27 11:47:40 +02:00
Than Ngo
89dcd0fcb6 Merge branch 'rawhide' into f37 2023-07-22 11:38:19 +02:00
Than Ngo
e93e272004 Merge branch 'rawhide' into f37 2023-07-20 22:25:52 +02:00
Than Ngo
0c572bb4a0 Merge branch 'rawhide' into f37 2023-07-19 09:22:27 +02:00
Than Ngo
6a4a8cd978 Merge branch 'rawhide' into f37 2023-06-27 14:38:49 +02:00
Than Ngo
0bd04c9779 Merge branch 'rawhide' into f37 2023-06-14 19:53:12 +02:00
Than Ngo
c8555c9286 Merge branch 'rawhide' into f37 2023-06-07 19:08:08 +02:00
Than Ngo
e16e2fb1bd Merge branch 'rawhide' into f37 2023-05-28 10:10:31 +02:00
Than Ngo
4fc05ed318 Merge branch 'rawhide' into f37 2023-05-17 08:56:55 +02:00
Than Ngo
727bfa72c2 Merge branch 'rawhide' into f37 2023-05-09 13:56:30 +02:00
Than Ngo
b4ee137328 Merge branch 'rawhide' into f37 2023-05-05 12:45:20 +02:00
Than Ngo
aa225e99f8 Merge branch 'rawhide' into f37 2023-05-03 19:37:38 +02:00
Than Ngo
085faf03ef Merge branch 'rawhide' into f37 2023-05-03 17:00:41 +02:00
Than Ngo
90af7ef5a6 fix commit conflict 2023-05-03 12:55:51 +02:00
Than Ngo
12933d604c Merge branch 'rawhide' into f37 2023-05-03 12:54:56 +02:00
Than Ngo
eb01eec3dc update to 112.0.5615.165 2023-04-20 15:08:12 +02:00
Than Ngo
f9eafac6a6 cleanup 2023-04-17 20:58:05 +02:00
Than Ngo
66e8c8d875 bump release 2023-04-17 20:56:51 +02:00
Than Ngo
33e1791e3b - fix vaapi issue on xwayland
- fix the build order, chrome_feed_response_metadata.pb.h file not found
2023-04-17 20:56:04 +02:00
Than Ngo
ce40f75d7c rebase ozone-wayland-vaapi-support patch 2023-04-15 15:46:58 +02:00
Than Ngo
8daa9b8e2a update to 112.0.5615.121 2023-04-15 15:46:58 +02:00
Than Ngo
d71eb0d4d4 fix build failure on rhel8 2023-04-15 15:46:58 +02:00
Than Ngo
c6b27f0a7a update feed_protos.patch 2023-04-06 12:28:02 +02:00
147 changed files with 7223 additions and 155786 deletions

8
.gitignore vendored
View file

@ -35,11 +35,3 @@
/node-v20.6.1-linux-x64.tar.xz
/linux-arm64-0.19.2.tgz
/linux-x64-0.19.2.tgz
/v0.69.4.tar.gz
/bindgen-cli-aarch64.tar.xz
/bindgen-cli-x86_64.tar.xz
/linux-ppc64-0.19.2.tgz
/node-v22.14.0-linux-arm64.tar.xz
/node-v22.14.0-linux-ppc64le.tar.xz
/node-v22.14.0-linux-x64.tar.xz
/node-v22.14.0-stripped.tar.gz

File diff suppressed because it is too large Load diff

View file

@ -1,57 +0,0 @@
From 40309fb53e39477490fd6928ebe67c4fb78de380 Mon Sep 17 00:00:00 2001
From: Shawn Anastasio <shawnanastasio@gmail.com>
Date: Sun, 10 Mar 2019 21:01:37 -0500
Subject: [PATCH] Add ppc64 target to libaom
---
third_party/libaom/BUILD.gn | 12 ++++++++++++
third_party/libaom/cmake_update.sh | 3 +++
2 files changed, 15 insertions(+)
Index: chromium-144.0.7559.59/third_party/libaom/BUILD.gn
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libaom/BUILD.gn
+++ chromium-144.0.7559.59/third_party/libaom/BUILD.gn
@@ -299,6 +299,18 @@ if (current_cpu == "arm64" || current_cp
}
}
+if (current_cpu == "ppc64") {
+ source_set("libaom_intrinsics_vsx") {
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+ configs += [ ":libaom_config" ]
+ sources = [
+ "//third_party/libaom/source/libaom/aom_ports/ppc_cpudetect.c",
+ ]
+ sources += aom_av1_common_intrin_vsx
+ }
+}
+
static_library("libaom") {
check_includes = false
if (!is_debug && is_win) {
@@ -368,6 +380,9 @@ static_library("libaom") {
# This is needed by all arm boards due to aom_arm_cpu_caps()
sources += [ "source/libaom/aom_ports/aarch32_cpudetect.c" ]
}
+ if (current_cpu == "ppc64") {
+ deps += [ ":libaom_intrinsics_vsx" ]
+ }
if (is_android) {
deps += [ "//third_party/cpu_features:ndk_compat" ]
}
Index: chromium-144.0.7559.59/third_party/libaom/cmake_update.sh
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libaom/cmake_update.sh
+++ chromium-144.0.7559.59/third_party/libaom/cmake_update.sh
@@ -167,6 +167,9 @@ egrep \
"#define [A-Z0-9_]+[[:space:]]+[01]" "${CFG}/win/ia32/config/aom_config.h" \
| awk '{print "%define " $2 " " $3}' > "${CFG}/win/ia32/config/aom_config.asm"
+reset_dirs linux/ppc64
+gen_config_files linux/ppc64 "${toolchain}/ppc-linux-gcc.cmake ${all_platforms}"
+
# Copy linux configurations and modify for Windows.
reset_dirs win/x64
cp "${CFG}/linux/x64/config"/* "${CFG}/win/x64/config/"

File diff suppressed because it is too large Load diff

View file

@ -1,13 +0,0 @@
Index: chromium-144.0.7559.59/v8/gni/v8.gni
===================================================================
--- chromium-144.0.7559.59.orig/v8/gni/v8.gni
+++ chromium-144.0.7559.59/v8/gni/v8.gni
@@ -317,7 +317,7 @@ assert(
if (v8_enable_pointer_compression == "") {
v8_enable_pointer_compression =
v8_current_cpu == "arm64" || v8_current_cpu == "x64" ||
- v8_current_cpu == "loong64"
+ v8_current_cpu == "loong64" || v8_current_cpu == "ppc64"
}
# The Wasm interpreter is currently supported only on arm64 and x64, on

View file

@ -1,30 +0,0 @@
From ea104a841fca1ff4d5430915f1b7c52c6a642f13 Mon Sep 17 00:00:00 2001
From: Timothy Pearson <tpearson@raptorengineering.com>
Date: Fri, 21 Sep 2018 21:44:17 -0500
Subject: [PATCH] Force baseline POWER8 / AltiVec / VSX CPU features when on a
PPC64 platform in LE mode
---
BUILD.gn | 6 ++++++
1 file changed, 6 insertions(+)
Index: chromium-144.0.7559.59/v8/BUILD.gn
===================================================================
--- chromium-144.0.7559.59.orig/v8/BUILD.gn
+++ chromium-144.0.7559.59/v8/BUILD.gn
@@ -1596,7 +1596,14 @@ config("toolchain") {
if (v8_current_cpu == "ppc64") {
defines += [ "V8_TARGET_ARCH_PPC64" ]
cflags += [ "-ffp-contract=off" ]
- if (current_os == "aix") {
+ if (current_os == "linux") {
+ cflags += [
+ # Enable usage of AltiVec, VSX, and other POWER8 and higher features
+ "-mcpu=power8",
+ "-maltivec",
+ "-mvsx",
+ ]
+ } else if (current_os == "aix") {
cflags += [
# Work around AIX ceil, trunc and round oddities.
"-mcpu=power5+",

File diff suppressed because it is too large Load diff

View file

@ -1,773 +0,0 @@
From cda9400739dfa064907d822f00578bb51b24a404 Mon Sep 17 00:00:00 2001
From: Shawn Anastasio <shawnanastasio@yahoo.com>
Date: Fri, 17 Aug 2018 14:18:33 -0500
Subject: [PATCH] Implement support for ppc64 on Linux
This patch implements support for the ppc64 architecture on Linux systems.
Notable changes include:
* Modification of tests to support non-4K page sizes
* minidump_writer: Determine size of stack to capture based on page size
* dump_writer_common: Introduce member function GetVectorRegisters to
ThreadInfo on ppc64 systems. This allows Altivec/VMX registers to be
dumped like they are on OS X. linux_ptrace_dumper has been updated
to utilize this function along with the ptrace mode NT_PPC_VMX.
* processor/exploitability_unittest.cc: Tests were disabled on
non-x86 systems. They assume the system objdump is capable of
disassembling x86 binaries which is not the case on other
architectures.
To-do:
* tools/linux/md2core has been updated as well, but functionality
has not been confirmed and restoration of Altivec/VMX registers
has not been implemented
Note that proper functionality depends on updates to third_party/LSS
that introduce PPC64 support. An in-progress patch that allows
breakpad to build and run successfully is available at:
https://wiki.raptorcs.com/wiki/Porting/Chromium
---
.../dump_writer_common/raw_context_cpu.h | 2 +
.../linux/dump_writer_common/thread_info.cc | 56 ++++++++++++++++++-
.../linux/dump_writer_common/thread_info.h | 9 +++
.../dump_writer_common/ucontext_reader.cc | 42 ++++++++++++++
.../dump_writer_common/ucontext_reader.h | 3 +
src/client/linux/handler/exception_handler.cc | 22 +++++++-
src/client/linux/handler/exception_handler.h | 6 +-
.../handler/exception_handler_unittest.cc | 8 ++-
.../microdump_writer/microdump_writer.cc | 14 ++++-
.../microdump_writer_unittest.cc | 15 ++++-
.../minidump_writer/linux_core_dumper.cc | 8 ++-
.../linux/minidump_writer/linux_dumper.cc | 4 +-
.../linux/minidump_writer/linux_dumper.h | 3 +-
.../linux_dumper_unittest_helper.cc | 2 +
.../minidump_writer/linux_ptrace_dumper.cc | 19 +++++--
.../linux_ptrace_dumper_unittest.cc | 5 ++
.../linux/minidump_writer/minidump_writer.cc | 18 ++++--
.../linux/minidump_writer/minidump_writer.h | 2 +
.../minidump_writer_unittest.cc | 3 +
src/common/linux/memory_mapped_file.cc | 3 +-
.../linux/memory_mapped_file_unittest.cc | 7 ++-
src/common/memory_allocator_unittest.cc | 3 +-
src/processor/exploitability_linux.cc | 2 +
src/processor/exploitability_unittest.cc | 15 +++--
src/tools/linux/md2core/minidump-2-core.cc | 45 +++++++++++++++
25 files changed, 281 insertions(+), 35 deletions(-)
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
@@ -51,6 +51,8 @@ typedef MDRawContextRISCV64 RawContextCP
# else
# error "Unexpected __riscv_xlen"
# endif
+#elif defined(__powerpc64__)
+typedef MDRawContextPPC64 RawContextCPU;
#else
#error "This code has not been ported to your platform yet."
#endif
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
@@ -336,7 +336,42 @@ void ThreadInfo::FillCPUContext(RawConte
#error "Unexpected __riscv_xlen"
#endif
}
-#endif // __riscv
+
+#elif defined(__powerpc64__)
+
+uintptr_t ThreadInfo::GetInstructionPointer() const {
+ return mcontext.gp_regs[PT_NIP];
+}
+
+void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+ out->context_flags = MD_CONTEXT_PPC64_FULL;
+ for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
+ out->gpr[i] = mcontext.gp_regs[i];
+
+ out->lr = mcontext.gp_regs[PT_LNK];
+ out->srr0 = mcontext.gp_regs[PT_NIP];
+ out->srr1 = mcontext.gp_regs[PT_MSR];
+ out->cr = mcontext.gp_regs[PT_CCR];
+ out->xer = mcontext.gp_regs[PT_XER];
+ out->ctr = mcontext.gp_regs[PT_CTR];
+
+ for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
+ out->float_save.fpregs[i] = mcontext.fp_regs[i];
+
+ out->float_save.fpscr = mcontext.fp_regs[NFPREG-1];
+
+ for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
+ out->vector_save.save_vr[i] = \
+ {(((uint64_t)vregs.vrregs[i][0]) << 32)
+ | vregs.vrregs[i][1],
+ (((uint64_t)vregs.vrregs[i][2]) << 32)
+ | vregs.vrregs[i][3]};
+
+ out->vrsave = vregs.vrsave;
+ out->vector_save.save_vscr = {0, vregs.vscr.vscr_word};
+ out->vector_save.save_vrvalid = 0xFFFFFFFF;
+}
+#endif // __powerpc64__
void ThreadInfo::GetGeneralPurposeRegisters(void** gp_regs, size_t* size) {
assert(gp_regs || size);
@@ -350,6 +385,11 @@ void ThreadInfo::GetGeneralPurposeRegist
*gp_regs = mcontext.__gregs;
if (size)
*size = sizeof(mcontext.__gregs);
+#elif defined(__powerpc64__)
+ if (gp_regs)
+ *gp_regs = mcontext.gp_regs;
+ if (size)
+ *size = sizeof(mcontext.gp_regs);
#else
if (gp_regs)
*gp_regs = &regs;
@@ -384,6 +424,11 @@ void ThreadInfo::GetFloatingPointRegiste
# else
# error "Unexpected __riscv_flen"
# endif
+#elif defined(__powerpc64__)
+ if (fp_regs)
+ *fp_regs = &mcontext.fp_regs;
+ if (size)
+ *size = sizeof(mcontext.fp_regs);
#else
if (fp_regs)
*fp_regs = &fpregs;
@@ -392,4 +437,13 @@ void ThreadInfo::GetFloatingPointRegiste
#endif
}
+#if defined(__powerpc64__)
+void ThreadInfo::GetVectorRegisters(void** v_regs, size_t* size) {
+ if (v_regs)
+ *v_regs = &vregs;
+ if (size)
+ *size = sizeof(vregs);
+}
+#endif
+
} // namespace google_breakpad
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
@@ -67,6 +67,10 @@ struct ThreadInfo {
// Use the structures defined in <sys/user.h>
struct user_regs_struct regs;
struct user_fpsimd_struct fpregs;
+#elif defined(__powerpc64__)
+ // Use the structures defined in <sys/ucontext.h>.
+ mcontext_t mcontext;
+ struct _libc_vrstate vregs;
#elif defined(__mips__) || defined(__riscv)
// Use the structure defined in <sys/ucontext.h>.
mcontext_t mcontext;
@@ -83,6 +87,11 @@ struct ThreadInfo {
// Returns the pointer and size of float point register area.
void GetFloatingPointRegisters(void** fp_regs, size_t* size);
+
+#if defined(__powerpc64__)
+ // Returns the pointer and size of the vector register area. (PPC64 only)
+ void GetVectorRegisters(void** v_regs, size_t* size);
+#endif
};
} // namespace google_breakpad
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
@@ -324,6 +324,48 @@ void UContextReader::FillCPUContext(RawC
#error "Unexpected __riscv_xlen"
#endif
}
+
+#elif defined(__powerpc64__)
+
+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP];
+}
+
+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.gp_regs[PT_NIP];
+}
+
+void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+ const struct _libc_vrstate* vregs) {
+ out->context_flags = MD_CONTEXT_PPC64_FULL;
+
+ for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
+ out->gpr[i] = uc->uc_mcontext.gp_regs[i];
+
+ out->lr = uc->uc_mcontext.gp_regs[PT_LNK];
+ out->srr0 = uc->uc_mcontext.gp_regs[PT_NIP];
+ out->srr1 = uc->uc_mcontext.gp_regs[PT_MSR];
+ out->cr = uc->uc_mcontext.gp_regs[PT_CCR];
+ out->xer = uc->uc_mcontext.gp_regs[PT_XER];
+ out->ctr = uc->uc_mcontext.gp_regs[PT_CTR];
+
+ for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
+ out->float_save.fpregs[i] = uc->uc_mcontext.fp_regs[i];
+
+ out->float_save.fpscr = uc->uc_mcontext.fp_regs[NFPREG-1];
+
+ for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
+ out->vector_save.save_vr[i] =
+ {(((uint64_t)vregs->vrregs[i][0]) << 32)
+ | vregs->vrregs[i][1],
+ (((uint64_t)vregs->vrregs[i][2]) << 32)
+ | vregs->vrregs[i][3]};
+
+ out->vrsave = vregs->vrsave;
+ out->vector_save.save_vscr = {0, vregs->vscr.vscr_word};
+ out->vector_save.save_vrvalid = 0xFFFFFFFF;
+}
+
#endif
} // namespace google_breakpad
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
@@ -54,6 +54,9 @@ struct UContextReader {
#elif defined(__aarch64__)
static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
const struct fpsimd_context* fpregs);
+#elif defined(__powerpc64__)
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+ const struct _libc_vrstate* vregs);
#else
static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc);
#endif
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
@@ -466,6 +466,13 @@ bool ExceptionHandler::HandleSignal(int
memcpy(&g_crash_context_.float_state, fp_ptr,
sizeof(g_crash_context_.float_state));
}
+#elif defined(__powerpc64__)
+ // On PPC64, we must copy VR state
+ ucontext_t* uc_ptr = (ucontext_t*)uc;
+ if (uc_ptr->uc_mcontext.v_regs) {
+ memcpy(&g_crash_context_.vector_state, uc_ptr->uc_mcontext.v_regs,
+ sizeof(g_crash_context_.vector_state));
+ }
#elif GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
ucontext_t* uc_ptr = (ucontext_t*)uc;
if (uc_ptr->uc_mcontext.fpregs) {
@@ -704,10 +711,18 @@ bool ExceptionHandler::WriteMinidump() {
}
#endif
-#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE && !defined(__aarch64__)
+#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE && !defined(__aarch64__) \
+ && !defined(__powerpc64__)
memcpy(&context.float_state, context.context.uc_mcontext.fpregs,
sizeof(context.float_state));
#endif
+
+#if defined(__powerpc64__)
+ // Vector registers must be copied on PPC64
+ memcpy(&context.vector_state, context.context.uc_mcontext.v_regs,
+ sizeof(context.vector_state));
+#endif
+
context.tid = sys_gettid();
// Add an exception stream to the minidump for better reporting.
@@ -728,6 +743,9 @@ bool ExceptionHandler::WriteMinidump() {
#elif defined(__mips__)
context.siginfo.si_addr =
reinterpret_cast<void*>(context.context.uc_mcontext.pc);
+#elif defined(__powerpc64__)
+ context.siginfo.si_addr =
+ reinterpret_cast<void*>(context.context.uc_mcontext.gp_regs[PT_NIP]);
#elif defined(__riscv)
context.siginfo.si_addr =
reinterpret_cast<void*>(context.context.uc_mcontext.__gregs[REG_PC]);
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
@@ -197,7 +197,11 @@ class ExceptionHandler {
siginfo_t siginfo;
pid_t tid; // the crashing thread.
ucontext_t context;
-#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
+#if defined(__powerpc64__)
+ // PPC64's FP state is a part of ucontext_t like MIPS but the vector
+ // state is not, so a struct is needed.
+ vstate_t vector_state;
+#elif GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
fpstate_t float_state;
#endif
};
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
@@ -325,7 +325,7 @@ TEST(ExceptionHandlerTest, ParallelChild
ASSERT_EQ(SIGSEGV, WTERMSIG(status));
return;
} else {
- usleep(100000);
+ usleep(200000);
}
}
@@ -581,6 +581,8 @@ const unsigned char kIllegalInstruction[
#if defined(__mips__)
// mfc2 zero,Impl - usually illegal in userspace.
0x48, 0x00, 0x00, 0x48
+#elif defined(__powerpc64__)
+ 0x01, 0x01, 0x01, 0x01 // Crashes on a tested POWER9 cpu
#else
// This crashes with SIGILL on x86/x86-64/arm.
0xff, 0xff, 0xff, 0xff
@@ -776,10 +778,10 @@ TEST(ExceptionHandlerTest, InstructionPo
// These are defined here so the parent can use them to check the
// data from the minidump afterwards.
- // Use 4k here because the OS will hand out a single page even
+ // Use the page size here because the OS will hand out a single page even
// if a smaller size is requested, and this test wants to
// test the upper bound of the memory range.
- const uint32_t kMemorySize = 4096; // bytes
+ const uint32_t kMemorySize = getpagesize(); // bytes
const int kOffset = kMemorySize - sizeof(kIllegalInstruction);
const pid_t child = fork();
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
@@ -143,7 +143,9 @@ class MicrodumpWriter {
const MicrodumpExtraInfo& microdump_extra_info,
LinuxDumper* dumper)
: ucontext_(context ? &context->context : nullptr),
-#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
+#if defined(__powerpc64__)
+ vector_state_(context ? &context->vector_state : nullptr),
+#elif GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
float_state_(context ? &context->float_state : nullptr),
#endif
dumper_(dumper),
@@ -350,6 +352,8 @@ class MicrodumpWriter {
# else
# error "Unexpected __riscv_xlen"
# endif
+#elif defined(__powerpc64__)
+ const char kArch[] = "ppc64";
#else
# error "This code has not been ported to your platform yet"
#endif
@@ -422,7 +426,9 @@ class MicrodumpWriter {
void DumpCPUState() {
RawContextCPU cpu;
my_memset(&cpu, 0, sizeof(RawContextCPU));
-#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
+#if defined(__powerpc64__)
+ UContextReader::FillCPUContext(&cpu, ucontext_, vector_state_);
+#elif GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
UContextReader::FillCPUContext(&cpu, ucontext_, float_state_);
#else
UContextReader::FillCPUContext(&cpu, ucontext_);
@@ -618,7 +624,9 @@ class MicrodumpWriter {
void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
const ucontext_t* const ucontext_;
-#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
+#if defined(__powerpc64__)
+ const google_breakpad::vstate_t* const vector_state_;
+#elif GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
const google_breakpad::fpstate_t* const float_state_;
#endif
LinuxDumper* dumper_;
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
@@ -281,10 +281,19 @@ TEST(MicrodumpWriterTest, BasicWithMappi
CrashAndGetMicrodump(mappings, MicrodumpExtraInfo(), &buf);
ASSERT_TRUE(ContainsMicrodump(buf));
+ int page_size = getpagesize();
#ifdef __LP64__
- ASSERT_NE(std::string::npos,
- buf.find("M 0000000000001000 000000000000002A 0000000000001000 "
- "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
+ // This test is only available for the following page sizes
+ ASSERT_TRUE((page_size == 4096) || (page_size == 65536));
+ if (page_size == 4096) {
+ ASSERT_NE(std::string::npos,
+ buf.find("M 0000000000001000 000000000000002A 0000000000001000 "
+ "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
+ } else {
+ ASSERT_NE(std::string::npos,
+ buf.find("M 0000000000010000 000000000000002A 0000000000010000 "
+ "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
+ }
#else
ASSERT_NE(std::string::npos,
buf.find("M 00001000 0000002A 00001000 "
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
@@ -118,6 +118,9 @@ bool LinuxCoreDumper::GetThreadInfoByInd
#elif defined(__riscv)
stack_pointer = reinterpret_cast<uint8_t*>(
info->mcontext.__gregs[MD_CONTEXT_RISCV_REG_SP]);
+#elif defined(__powerpc64__)
+ stack_pointer =
+ reinterpret_cast<uint8_t*>(info->mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP]);
#else
# error "This code hasn't been ported to your platform yet."
#endif
@@ -213,7 +216,10 @@ bool LinuxCoreDumper::EnumerateThreads()
memset(&info, 0, sizeof(ThreadInfo));
info.tgid = status->pr_pgrp;
info.ppid = status->pr_ppid;
-#if defined(__mips__)
+#if defined(__powerpc64__)
+ for (int i = 0; i < 31; i++)
+ info.mcontext.gp_regs[i] = status->pr_reg[i];
+#elif defined(__mips__)
# if defined(__ANDROID__)
for (int i = EF_R0; i <= EF_R31; i++)
info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
@@ -789,7 +789,9 @@ bool LinuxDumper::GetStackInfo(const voi
reinterpret_cast<uint8_t*>(int_stack_pointer & ~(page_size - 1));
// The number of bytes of stack which we try to capture.
- static const ptrdiff_t kStackToCapture = 32 * 1024;
+ // This now depends on page_size to avoid missing data
+ // on systems with larger page sizes.
+ static const ptrdiff_t kStackToCapture = 8 * page_size;
const MappingInfo* mapping = FindMapping(stack_pointer);
if (!mapping)
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
@@ -64,7 +64,8 @@ namespace google_breakpad {
typedef Elf32_auxv_t elf_aux_entry;
#elif defined(__x86_64) || defined(__aarch64__) || \
(defined(__mips__) && _MIPS_SIM != _ABIO32) || \
- (defined(__riscv) && __riscv_xlen == 64)
+ (defined(__riscv) && __riscv_xlen == 64) || \
+ defined(__powerpc64__)
typedef Elf64_auxv_t elf_aux_entry;
#endif
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
@@ -57,6 +57,8 @@
#define TID_PTR_REGISTER "$1"
#elif defined(__riscv)
#define TID_PTR_REGISTER "x4"
+#elif defined(__powerpc64__)
+#define TID_PTR_REGISTER "r8"
#else
#error This test has not been ported to this platform.
#endif
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
@@ -208,12 +208,12 @@ bool LinuxPtraceDumper::ReadRegisterSet(
#ifdef PTRACE_GETREGSET
struct iovec io;
info->GetGeneralPurposeRegisters(&io.iov_base, &io.iov_len);
- if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, (void*)&io) == -1) {
+ if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, (void*)&io) == -1) {
return false;
}
info->GetFloatingPointRegisters(&io.iov_base, &io.iov_len);
- if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
+ if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
// We are going to check if we can read VFP registers on ARM32.
// Currently breakpad does not support VFP registers to be a part of minidump,
// so this is only to confirm that we can actually read FP registers.
@@ -233,6 +233,15 @@ bool LinuxPtraceDumper::ReadRegisterSet(
}
#endif // defined(__arm__)
}
+
+#if defined(__powerpc64__)
+ // Grab the vector registers on PPC64 too
+ info->GetVectorRegisters(&io.iov_base, &io.iov_len);
+ if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_PPC_VMX, (void*)&io) == -1) {
+ return false;
+ }
+#endif // defined(__powerpc64__)
+
return true;
#else
return false;
@@ -397,6 +406,9 @@ bool LinuxPtraceDumper::GetThreadInfoByI
#elif defined(__riscv)
stack_pointer = reinterpret_cast<uint8_t*>(
info->mcontext.__gregs[MD_CONTEXT_RISCV_REG_SP]);
+#elif defined(__powerpc64__)
+ stack_pointer =
+ reinterpret_cast<uint8_t*>(info->mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP]);
#else
# error "This code hasn't been ported to your platform yet."
#endif
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
@@ -469,6 +469,9 @@ TEST(LinuxPtraceDumperTest, VerifyStackR
#elif defined(__riscv)
pid_t* process_tid_location =
reinterpret_cast<pid_t*>(one_thread.mcontext.__gregs[4]);
+#elif defined(__powerpc64__)
+ pid_t* process_tid_location =
+ reinterpret_cast<pid_t*>(one_thread.mcontext.gp_regs[8]);
#else
#error This test has not been ported to this platform.
#endif
@@ -568,6 +571,8 @@ TEST_F(LinuxPtraceDumperTest, SanitizeSt
uintptr_t heap_addr = thread_info.mcontext.gregs[1];
#elif defined(__riscv)
uintptr_t heap_addr = thread_info.mcontext.__gregs[4];
+#elif defined(__powerpc64__)
+ uintptr_t heap_addr = thread_info.mcontext.gp_regs[8];
#else
#error This test has not been ported to this platform.
#endif
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
@@ -145,7 +145,9 @@ class MinidumpWriter {
: fd_(minidump_fd),
path_(minidump_path),
ucontext_(context ? &context->context : nullptr),
-#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
+#if defined(__powerpc64__)
+ vector_state_(context ? &context->vector_state : nullptr),
+#elif GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
float_state_(context ? &context->float_state : nullptr),
#endif
dumper_(dumper),
@@ -477,7 +479,9 @@ class MinidumpWriter {
if (!cpu.Allocate())
return false;
my_memset(cpu.get(), 0, sizeof(RawContextCPU));
-#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
+#if defined(__powerpc64__)
+ UContextReader::FillCPUContext(cpu.get(), ucontext_, vector_state_);
+#elif GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
UContextReader::FillCPUContext(cpu.get(), ucontext_, float_state_);
#else
UContextReader::FillCPUContext(cpu.get(), ucontext_);
@@ -954,7 +958,7 @@ class MinidumpWriter {
dirent->location.rva = 0;
}
-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
+#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || defined(__powerpc64__)
bool WriteCPUInformation(MDRawSystemInfo* sys_info) {
char vendor_id[sizeof(sys_info->cpu.x86_cpu_info.vendor_id) + 1] = {0};
static const char vendor_id_name[] = "vendor_id";
@@ -974,7 +978,9 @@ class MinidumpWriter {
// processor_architecture should always be set, do this first
sys_info->processor_architecture =
-#if defined(__mips__)
+#if defined(__powerpc64__)
+ MD_CPU_ARCHITECTURE_PPC64;
+#elif defined(__mips__)
# if _MIPS_SIM == _ABIO32
MD_CPU_ARCHITECTURE_MIPS;
# elif _MIPS_SIM == _ABI64
@@ -1441,7 +1447,9 @@ class MinidumpWriter {
const char* path_; // Path to the file where the minidum should be written.
const ucontext_t* const ucontext_; // also from the signal handler
-#if GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
+#if defined(__powerpc64__)
+ const google_breakpad::vstate_t* const vector_state_;
+#elif GOOGLE_BREAKPAD_CRASH_CONTEXT_HAS_FLOAT_STATE
const google_breakpad::fpstate_t* const float_state_; // ditto
#endif
LinuxDumper* dumper_;
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
@@ -47,6 +47,8 @@ class ExceptionHandler;
#if defined(__aarch64__)
typedef struct fpsimd_context fpstate_t;
+#elif defined(__powerpc64__)
+typedef struct _libc_vrstate vstate_t;
#elif !defined(__ARM_EABI__) && !defined(__mips__)
typedef std::remove_pointer<fpregset_t>::type fpstate_t;
#endif
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
@@ -723,6 +723,9 @@ TEST(MinidumpWriterTest, InvalidStackPoi
#elif defined(__riscv)
context.context.uc_mcontext.__gregs[MD_CONTEXT_RISCV_REG_SP] =
invalid_stack_pointer;
+#elif defined(__powerpc64__)
+ context.context.uc_mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP] =
+ invalid_stack_pointer;
#else
# error "This code has not been ported to your platform yet."
#endif
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
@@ -72,8 +72,7 @@ bool MemoryMappedFile::Map(const char* p
#if defined(__x86_64__) || defined(__aarch64__) || \
(defined(__mips__) && _MIPS_SIM == _ABI64) || \
- (defined(__riscv) && __riscv_xlen == 64)
-
+ (defined(__riscv) && __riscv_xlen == 64) || defined(__powerpc64__)
struct kernel_stat st;
if (sys_fstat(fd, &st) == -1 || st.st_size < 0) {
#else
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
@@ -178,9 +178,10 @@ TEST_F(MemoryMappedFileTest, RemapAfterM
TEST_F(MemoryMappedFileTest, MapWithOffset) {
// Put more data in the test file this time. Offsets can only be
// done on page boundaries, so we need a two page file to test this.
- const int page_size = 4096;
- char data1[2 * page_size];
- size_t data1_size = sizeof(data1);
+ const int page_size = getpagesize();
+ char *data1 = static_cast<char*>(malloc(2 * page_size));
+ EXPECT_TRUE(data1 != NULL);
+ size_t data1_size = (2 * page_size);
for (size_t i = 0; i < data1_size; ++i) {
data1[i] = i & 0x7f;
}
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
@@ -64,8 +64,9 @@ TEST(PageAllocatorTest, LargeObject) {
EXPECT_EQ(0U, allocator.pages_allocated());
uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(10000));
+ uint64_t expected_pages = 1 + ((10000 - 1) / getpagesize());
ASSERT_FALSE(p == nullptr);
- EXPECT_EQ(3U, allocator.pages_allocated());
+ EXPECT_EQ(expected_pages, allocator.pages_allocated());
for (unsigned i = 1; i < 10; ++i) {
uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(i));
ASSERT_FALSE(p == nullptr);
Index: chromium-144.0.7559.59/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
+++ chromium-144.0.7559.59/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
@@ -82,6 +82,8 @@
#define ELF_ARCH EM_AARCH64
#elif defined(__riscv)
#define ELF_ARCH EM_RISCV
+#elif defined(__powerpc64__)
+ #define ELF_ARCH EM_PPC64
#endif
#if defined(__arm__)
@@ -92,6 +94,8 @@ typedef user_regs user_regs_struct;
#elif defined (__mips__) || defined(__riscv)
// This file-local typedef simplifies the source code.
typedef gregset_t user_regs_struct;
+#elif defined(__powerpc64__)
+typedef struct pt_regs user_regs_struct;
#endif
using google_breakpad::MDTypeHelper;
@@ -325,6 +329,9 @@ struct CrashedProcess {
#if defined(__aarch64__)
user_fpsimd_struct fpregs;
#endif
+#if defined(__powerpc64__)
+ mcontext_t mcontext;
+#endif
uintptr_t stack_addr;
const uint8_t* stack;
size_t stack_length;
@@ -628,6 +635,38 @@ ParseThreadRegisters(CrashedProcess::Thr
#error "Unexpected __riscv_xlen"
#endif
}
+#elif defined(__powerpc64__)
+static void
+ParseThreadRegisters(CrashedProcess::Thread* thread,
+ const MinidumpMemoryRange& range) {
+ const MDRawContextPPC64* rawregs = range.GetData<MDRawContextPPC64>(0);
+
+ for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
+ thread->mcontext.gp_regs[i] = rawregs->gpr[i];
+
+ thread->mcontext.gp_regs[PT_LNK] = rawregs->lr;
+ thread->mcontext.gp_regs[PT_NIP] = rawregs->srr0;
+ thread->mcontext.gp_regs[PT_MSR] = rawregs->srr1;
+ thread->mcontext.gp_regs[PT_CCR] = rawregs->cr;
+ thread->mcontext.gp_regs[PT_XER] = rawregs->xer;
+ thread->mcontext.gp_regs[PT_CTR] = rawregs->ctr;
+ thread->mcontext.v_regs->vrsave = rawregs->vrsave;
+
+ for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
+ thread->mcontext.fp_regs[i] = rawregs->float_save.fpregs[i];
+
+ thread->mcontext.fp_regs[NFPREG-1] = rawregs->float_save.fpscr;
+
+ for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++) {
+ thread->mcontext.v_regs->vrregs[i][0] = rawregs->vector_save.save_vr[i].high >> 32;
+ thread->mcontext.v_regs->vrregs[i][1] = rawregs->vector_save.save_vr[i].high;
+ thread->mcontext.v_regs->vrregs[i][2] = rawregs->vector_save.save_vr[i].low >> 32;
+ thread->mcontext.v_regs->vrregs[i][3] = rawregs->vector_save.save_vr[i].low;
+ }
+
+ thread->mcontext.v_regs->vscr.vscr_word = rawregs->vector_save.save_vscr.low & 0xFFFFFFFF;
+}
+
#else
#error "This code has not been ported to your platform yet"
#endif
@@ -733,6 +772,12 @@ ParseSystemInfo(const Options& options,
# else
# error "Unexpected __riscv_xlen"
# endif
+#elif defined(__powerpc64__)
+ if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_PPC64) {
+ fprintf(stderr,
+ "This version of minidump-2-core only supports PPC64.\n");
+ exit(1);
+ }
#else
#error "This code has not been ported to your platform yet"
#endif

View file

@ -1,46 +0,0 @@
From e93d9b5fdcd8e5744de629461c03a07de2252f8f Mon Sep 17 00:00:00 2001
From: Stephen Gallagher <sgallagh@redhat.com>
Date: Fri, 17 Apr 2020 12:59:44 +0200
Subject: [PATCH] Remove unused OpenSSL config
The build process will try to create these config files, even when
using the system OpenSSL and will thus fail since we strip this path
from the tarball.
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
Signed-off-by: rpm-build <rpm-build>
---
node.gyp | 17 -----------------
1 file changed, 17 deletions(-)
diff --git a/node.gyp b/node.gyp
index 1147495..da6ea50 100644
--- a/node.gyp
+++ b/node.gyp
@@ -822,23 +822,6 @@
],
},
],
- }, {
- 'variables': {
- 'opensslconfig_internal': '<(obj_dir)/deps/openssl/openssl.cnf',
- 'opensslconfig': './deps/openssl/nodejs-openssl.cnf',
- },
- 'actions': [
- {
- 'action_name': 'reset_openssl_cnf',
- 'inputs': [ '<(opensslconfig)', ],
- 'outputs': [ '<(opensslconfig_internal)', ],
- 'action': [
- '<(python)', 'tools/copyfile.py',
- '<(opensslconfig)',
- '<(opensslconfig_internal)',
- ],
- },
- ],
}],
],
}, # node_core_target_name
--
2.47.0

View file

@ -1,35 +0,0 @@
Index: chromium-144.0.7559.59/third_party/xnnpack/generate_build_gn.py
===================================================================
--- chromium-144.0.7559.59.orig/third_party/xnnpack/generate_build_gn.py
+++ chromium-144.0.7559.59/third_party/xnnpack/generate_build_gn.py
@@ -239,7 +239,10 @@ _PLATFORMS = [
bazel_platform='//:linux_aarch64'),
_Platform(gn_cpu='riscv64',
bazel_cpu='riscv64',
- bazel_platform='//:linux_riscv64')
+ bazel_platform='//:linux_riscv64'),
+ _Platform(gn_cpu='ppc64',
+ bazel_cpu='ppc64le',
+ bazel_platform='//:linux_ppc64le')
]
Index: chromium-144.0.7559.59/third_party/xnnpack/bazelroot/BUILD
===================================================================
--- chromium-144.0.7559.59.orig/third_party/xnnpack/bazelroot/BUILD
+++ chromium-144.0.7559.59/third_party/xnnpack/bazelroot/BUILD
@@ -29,6 +29,14 @@ platform(
],
)
+platform(
+ name = "linux_ppc64le",
+ constraint_values = [
+ "@platforms//os:linux",
+ "@platforms//cpu:ppc64le",
+ ],
+)
+
# A dummy clang toolchain for building them for any arch.
filegroup(name = "empty")

File diff suppressed because it is too large Load diff

View file

@ -1,20 +0,0 @@
Description: fix swiftshader build issue on ppc64el
Origin: vendor, https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/blob/chromium-131/patches/ppc64le/third_party/0001-swiftshader-fix-build.patch
Bug: https://buildd.debian.org/status/fetch.php?pkg=chromium&arch=ppc64el&ver=131.0.6778.204-1&stamp=1734633529&raw=0
Last-Update: 2024-12-20
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
Index: chromium-144.0.7559.59/third_party/swiftshader/third_party/llvm-16.0/BUILD.gn
===================================================================
--- chromium-144.0.7559.59.orig/third_party/swiftshader/third_party/llvm-16.0/BUILD.gn
+++ chromium-144.0.7559.59/third_party/swiftshader/third_party/llvm-16.0/BUILD.gn
@@ -1599,6 +1599,9 @@ swiftshader_llvm_source_set("swiftshader
"llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp",
"llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp",
"llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp",
+ "llvm/lib/MC/MCXCOFFObjectTargetWriter.cpp",
+ "llvm/lib/MC/MCAsmInfoXCOFF.cpp",
+ "llvm/lib/MC/MCInstrInfo.cpp",
]
}

View file

@ -1,12 +0,0 @@
Index: chromium-144.0.7559.59/third_party/angle/src/libANGLE/Constants.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/angle/src/libANGLE/Constants.h
+++ chromium-144.0.7559.59/third_party/angle/src/libANGLE/Constants.h
@@ -9,6 +9,7 @@
#ifndef LIBANGLE_CONSTANTS_H_
#define LIBANGLE_CONSTANTS_H_
+#include <cstddef>
#include "common/platform.h"
#include <stddef.h>

View file

@ -1,23 +0,0 @@
From cc613c2e3bac8d4d1ff153700b819f964435923a Mon Sep 17 00:00:00 2001
From: Shawn Anastasio <shawnanastasio@yahoo.com>
Date: Tue, 4 Sep 2018 18:16:07 -0500
Subject: [PATCH] third_party/libvpx: Properly generate gni on ppc64
---
third_party/libvpx/BUILD.gn | 2 ++
third_party/libvpx/generate_gni.sh | 10 ++++++++++
2 files changed, 12 insertions(+)
Index: chromium-144.0.7559.59/third_party/libvpx/BUILD.gn
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libvpx/BUILD.gn
+++ chromium-144.0.7559.59/third_party/libvpx/BUILD.gn
@@ -297,6 +297,8 @@ if (current_cpu == "x86" || (current_cpu
} else if (current_cpu == "x64") {
deps = [ ":libvpx_x86_64_headers" ]
sources = libvpx_srcs_x86_64_avx512
+ } else if (current_cpu == "ppc64") {
+ sources = libvpx_srcs_ppc64
}
}
}

View file

@ -1,22 +0,0 @@
From 63e63a70766f3059ce5f1d06a95988ecf909b298 Mon Sep 17 00:00:00 2001
From: Shawn Anastasio <shawn@anastas.io>
Date: Wed, 24 Apr 2019 21:17:23 -0500
Subject: [PATCH] third_party/pffft: Include altivec.h on ppc64 with SIMD
enabled
---
third_party/pffft/src/pffft.c | 1 +
1 file changed, 1 insertion(+)
Index: chromium-144.0.7559.59/third_party/pffft/src/pffft.c
===================================================================
--- chromium-144.0.7559.59.orig/third_party/pffft/src/pffft.c
+++ chromium-144.0.7559.59/third_party/pffft/src/pffft.c
@@ -100,6 +100,7 @@
Altivec support macros
*/
#if !defined(PFFFT_SIMD_DISABLE) && (defined(__ppc__) || defined(__ppc64__))
+#include <altivec.h>
typedef vector float v4sf;
# define SIMD_SZ 4
# define VZERO() ((vector float) vec_splat_u8(0))

File diff suppressed because it is too large Load diff

View file

@ -1,18 +0,0 @@
Index: chromium-144.0.7559.59/v8/src/base/immediate-crash.h
===================================================================
--- chromium-144.0.7559.59.orig/v8/src/base/immediate-crash.h
+++ chromium-144.0.7559.59/v8/src/base/immediate-crash.h
@@ -98,6 +98,13 @@
#define TRAP_SEQUENCE1_() asm volatile(".2byte 0x0001");
#define TRAP_SEQUENCE2_() asm volatile("")
+#elif V8_HOST_ARCH_PPC64
+
+#define TRAP_SEQUENCE1_() asm volatile("trap")
+// Intentionally empty: __builtin_unreachable() is always part of the sequence
+// (see IMMEDIATE_CRASH below)
+#define TRAP_SEQUENCE2_() asm volatile("")
+
#else
// Crash report accuracy will not be guaranteed on other architectures, but at

View file

@ -1,36 +0,0 @@
# crypto: fix missing OPENSSL_NO_ENGINE guard
# PR-URL: https://github.com/nodejs/node/pull/57012
# Reviewed-By: Richard Lau <rlau@redhat.com>
# Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
# Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
# Reviewed-By: James M Snell <jasnell@gmail.com>
diff --git a/src/crypto/crypto_context.cc b/src/crypto/crypto_context.cc
index abcdef1..2345678 100644
--- a/src/crypto/crypto_context.cc
+++ b/src/crypto/crypto_context.cc
@@ -34,7 +34,9 @@ using ncrypto::BIOPointer;
using ncrypto::ClearErrorOnReturn;
using ncrypto::CryptoErrorList;
using ncrypto::DHPointer;
+#ifndef OPENSSL_NO_ENGINE
using ncrypto::EnginePointer;
+#endif // !OPENSSL_NO_ENGINE
using ncrypto::EVPKeyPointer;
using ncrypto::MarkPopErrorOnReturn;
using ncrypto::SSLPointer;
diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
index 1234567..abcdef0 100644
--- a/src/crypto/crypto_util.cc
+++ b/src/crypto/crypto_util.cc
@@ -30,7 +30,9 @@
using ncrypto::BIOPointer;
using ncrypto::CryptoErrorList;
+#ifndef OPENSSL_NO_ENGINE
using ncrypto::EnginePointer;
+#endif // !OPENSSL_NO_ENGINE
using ncrypto::EVPKeyCtxPointer;
using v8::ArrayBuffer;
using v8::BackingStore;
using v8::BigInt;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,148 +0,0 @@
Index: chromium-144.0.7559.59/third_party/lss/linux_syscall_support.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/lss/linux_syscall_support.h
+++ chromium-144.0.7559.59/third_party/lss/linux_syscall_support.h
@@ -86,7 +86,7 @@
* Porting to other related platforms should not be difficult.
*/
#if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) || \
- defined(__mips__) || defined(__PPC__) || defined(__ARM_EABI__) || \
+ defined(__mips__) || defined(__PPC__) || defined(__powerpc64__) || defined(__ARM_EABI__) || \
defined(__aarch64__) || defined(__s390__) || defined(__e2k__) || \
(defined(__riscv) && __riscv_xlen == 64) || defined(__loongarch_lp64)) \
&& (defined(__linux) || defined(__ANDROID__))
@@ -400,7 +400,7 @@ struct kernel_stat64 {
unsigned __pad2;
unsigned long long st_blocks;
};
-#elif defined __PPC__
+#elif defined __PPC__ && !defined(__powerpc64__)
struct kernel_stat64 {
unsigned long long st_dev;
unsigned long long st_ino;
@@ -422,6 +422,28 @@ struct kernel_stat64 {
unsigned long __unused4;
unsigned long __unused5;
};
+#elif defined(__powerpc64__)
+struct kernel_stat64 {
+ unsigned long int st_dev;
+ unsigned long int st_ino;
+ unsigned int st_mode;
+ unsigned long int st_nlink;
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned long int st_rdev;
+ unsigned short int __pad2;
+ long int st_size;
+ long int st_blksize;
+ long int st_blocks;
+ long int st_atime_;
+ unsigned long int st_atime_nsec_;
+ long int st_mtime_;
+ unsigned long int st_mtime_nsec_;
+ long int st_ctime_;
+ unsigned long int st_ctime_nsec_;
+ unsigned long int __unused4;
+ unsigned long int __unused5;
+};
#elif defined(__e2k__)
struct kernel_stat64 {
unsigned long long st_dev;
@@ -538,7 +560,7 @@ struct kernel_stat {
uint64_t st_ctime_nsec_;
int64_t __unused4[3];
};
-#elif defined(__PPC__)
+#elif defined(__PPC__) && !defined(__powerpc64__)
typedef unsigned long kernel_blkcnt_t;
typedef unsigned long kernel_blksize_t;
typedef unsigned kernel_dev_t;
@@ -569,6 +591,37 @@ struct kernel_stat {
unsigned long __unused4;
unsigned long __unused5;
};
+#elif defined(__powerpc64__)
+typedef long int kernel_blkcnt_t;
+typedef long int kernel_blksize_t;
+typedef unsigned long int kernel_dev_t;
+typedef unsigned int kernel_gid_t;
+typedef unsigned long int kernel_ino_t;
+typedef unsigned int kernel_mode_t;
+typedef unsigned long int kernel_nlink_t;
+typedef long int kernel_off_t;
+typedef long int kernel_time_t;
+typedef unsigned int kernel_uid_t;
+struct kernel_stat {
+ kernel_dev_t st_dev;
+ kernel_ino_t st_ino;
+ kernel_mode_t st_mode;
+ kernel_nlink_t st_nlink;
+ kernel_uid_t st_uid;
+ kernel_gid_t st_gid;
+ kernel_dev_t st_rdev;
+ kernel_off_t st_size;
+ kernel_blksize_t st_blksize;
+ kernel_blkcnt_t st_blocks;
+ kernel_time_t st_atime_;
+ unsigned long int st_atime_nsec_;
+ kernel_time_t st_mtime_;
+ unsigned long int st_mtime_nsec_;
+ kernel_time_t st_ctime_;
+ unsigned long int st_ctime_nsec_;
+ unsigned long int __unused4;
+ unsigned long int __unused5;
+};
#elif (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI64)
typedef int kernel_blkcnt_t;
typedef int kernel_blksize_t;
@@ -1825,6 +1878,28 @@ struct kernel_statx {
#ifndef __NR_getcpu
#define __NR_getcpu 302
#endif
+
+/* Linux commit 86250b9d12caa1a3dee12a7cf638b7dd70eaadb6 (2010) adds
+ * direct socket system calls to PPC */
+#ifndef __NR_socket
+#define __NR_socket 326
+#endif
+#ifndef __NR_socketpair
+#define __NR_socketpair 333
+#endif
+#ifndef __NR_sendto
+#define __NR_sendto 335
+#endif
+#ifndef __NR_shutdown
+#define __NR_shutdown 338
+#endif
+#ifndef __NR_sendmsg
+#define __NR_sendmsg 341
+#endif
+#ifndef __NR_recvmsg
+#define __NR_recvmsg 342
+#endif
+
/* End of powerpc definitions */
#elif defined(__s390__)
#ifndef __NR_quotactl
@@ -4826,7 +4901,7 @@ struct kernel_statx {
LSS_INLINE _syscall6(void*, mmap, void*, addr, size_t, length, int, prot,
int, flags, int, fd, int64_t, offset)
#endif
- #if defined(__PPC__)
+ #if defined(__PPC__) && !defined(__powerpc64__)
#undef LSS_SC_LOADARGS_0
#define LSS_SC_LOADARGS_0(dummy...)
#undef LSS_SC_LOADARGS_1
@@ -5216,7 +5291,11 @@ struct kernel_statx {
#endif
#if !defined(__NR_pipe)
+#if defined(__powerpc64__)
+ LSS_INLINE pid_t LSS_NAME(pipe)(int *pipefd) {
+#else
LSS_INLINE int LSS_NAME(pipe)(int *pipefd) {
+#endif
return LSS_NAME(pipe2)(pipefd, 0);
}
#endif

File diff suppressed because it is too large Load diff

View file

@ -1,17 +0,0 @@
Index: chromium-144.0.7559.59/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
===================================================================
--- chromium-144.0.7559.59.orig/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
+++ chromium-144.0.7559.59/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
@@ -239,6 +239,12 @@ std::string UserAgent() {
#endif
#elif defined (ARCH_CPU_RISCV64)
static constexpr char arch[] = "riscv64";
+#elif defined(__powerpc64__)
+#if defined(ARCH_CPU_LITTLE_ENDIAN)
+ static constexpr char arch[] = "ppc64";
+#elif defined(ARCH_CPU_BIG_ENDIAN)
+ static constexpr char arch[] = "ppc64_be";
+#endif
#else
#error Port
#endif

View file

@ -1,376 +0,0 @@
Index: chromium-144.0.7559.59/third_party/libvpx/source/libvpx/vp9/encoder/ppc/vp9_quantize_vsx.c
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libvpx/source/libvpx/vp9/encoder/ppc/vp9_quantize_vsx.c
+++ chromium-144.0.7559.59/third_party/libvpx/source/libvpx/vp9/encoder/ppc/vp9_quantize_vsx.c
@@ -38,6 +38,28 @@ static INLINE int16x8_t vec_max_across(i
return vec_max(a, vec_perm(a, a, vec_perm16));
}
+static INLINE void
+vec_u64_store(vector unsigned long long vecu64, unsigned long offset, void *ptr)
+{
+#ifndef WORDS_BIGENDIAN
+ __asm__ ("xxswapd %x0, %x1"
+ : "=wa" (vecu64)
+ : "wa" (vecu64));
+#endif
+#if __GNUC__ >= 4
+ if (__builtin_constant_p (offset) && offset == 0)
+ __asm__ ("stxvd2x %x0,0,%1\n\t"
+ :
+ : "wa" (vecu64), "r" ((uintptr_t)ptr)
+ : "memory");
+ else
+#endif
+ __asm__ ("stxvd2x %x0,%1,%2\n\t"
+ :
+ : "wa" (vecu64), "r" (offset), "r" ((uintptr_t)ptr)
+ : "memory", "r0");
+}
+
void vp9_quantize_fp_vsx(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
const int16_t *round_ptr, const int16_t *quant_ptr,
tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr,
@@ -60,10 +82,10 @@ void vp9_quantize_fp_vsx(const tran_low_
qcoeff0 = vec_mulhi(vec_vaddshs(vec_abs(coeff0), round), quant);
zero_coeff0 = vec_cmpeq(qcoeff0, vec_zeros_s16);
qcoeff0 = vec_sign(qcoeff0, coeff0);
- vec_vsx_st(qcoeff0, 0, qcoeff_ptr);
+ vec_u64_store(qcoeff0, 0, qcoeff_ptr);
dqcoeff0 = vec_mladd(qcoeff0, dequant, vec_zeros_s16);
- vec_vsx_st(dqcoeff0, 0, dqcoeff_ptr);
+ vec_u64_store(dqcoeff0, 0, dqcoeff_ptr);
// Remove DC value from round and quant
round = vec_splat(round, 1);
@@ -76,10 +98,10 @@ void vp9_quantize_fp_vsx(const tran_low_
qcoeff1 = vec_mulhi(vec_vaddshs(vec_abs(coeff1), round), quant);
zero_coeff1 = vec_cmpeq(qcoeff1, vec_zeros_s16);
qcoeff1 = vec_sign(qcoeff1, coeff1);
- vec_vsx_st(qcoeff1, 16, qcoeff_ptr);
+ vec_u64_store(qcoeff1, 16, qcoeff_ptr);
dqcoeff1 = vec_mladd(qcoeff1, dequant, vec_zeros_s16);
- vec_vsx_st(dqcoeff1, 16, dqcoeff_ptr);
+ vec_u64_store(dqcoeff1, 16, dqcoeff_ptr);
eob = vec_max(vec_or(scan0, zero_coeff0), vec_or(scan1, zero_coeff1));
@@ -107,23 +129,23 @@ void vp9_quantize_fp_vsx(const tran_low_
qcoeff0 = vec_mulhi(vec_vaddshs(vec_abs(coeff0), round), quant);
zero_coeff0 = vec_cmpeq(qcoeff0, vec_zeros_s16);
qcoeff0 = vec_sign(qcoeff0, coeff0);
- vec_vsx_st(qcoeff0, off0, qcoeff_ptr);
+ vec_u64_store(qcoeff0, off0, qcoeff_ptr);
dqcoeff0 = vec_mladd(qcoeff0, dequant, vec_zeros_s16);
- vec_vsx_st(dqcoeff0, off0, dqcoeff_ptr);
+ vec_u64_store(dqcoeff0, off0, dqcoeff_ptr);
qcoeff1 = vec_mulhi(vec_vaddshs(vec_abs(coeff1), round), quant);
zero_coeff1 = vec_cmpeq(qcoeff1, vec_zeros_s16);
qcoeff1 = vec_sign(qcoeff1, coeff1);
- vec_vsx_st(qcoeff1, off1, qcoeff_ptr);
+ vec_u64_store(qcoeff1, off1, qcoeff_ptr);
dqcoeff1 = vec_mladd(qcoeff1, dequant, vec_zeros_s16);
- vec_vsx_st(dqcoeff1, off1, dqcoeff_ptr);
+ vec_u64_store(dqcoeff1, off1, dqcoeff_ptr);
qcoeff2 = vec_mulhi(vec_vaddshs(vec_abs(coeff2), round), quant);
zero_coeff2 = vec_cmpeq(qcoeff2, vec_zeros_s16);
qcoeff2 = vec_sign(qcoeff2, coeff2);
- vec_vsx_st(qcoeff2, off2, qcoeff_ptr);
+ vec_u64_store(qcoeff2, off2, qcoeff_ptr);
dqcoeff2 = vec_mladd(qcoeff2, dequant, vec_zeros_s16);
- vec_vsx_st(dqcoeff2, off2, dqcoeff_ptr);
+ vec_u64_store(dqcoeff2, off2, dqcoeff_ptr);
eob = vec_max(eob, vec_or(scan0, zero_coeff0));
eob2 = vec_max(vec_or(scan1, zero_coeff1), vec_or(scan2, zero_coeff2));
@@ -200,10 +222,10 @@ void vp9_quantize_fp_32x32_vsx(const tra
qcoeff0 = vec_and(qcoeff0, mask0);
zero_coeff0 = vec_cmpeq(qcoeff0, vec_zeros_s16);
qcoeff0 = vec_sign(qcoeff0, coeff0);
- vec_vsx_st(qcoeff0, 0, qcoeff_ptr);
+ vec_u64_store(qcoeff0, 0, qcoeff_ptr);
dqcoeff0 = dequantize_coeff_32(qcoeff0, dequant);
- vec_vsx_st(dqcoeff0, 0, dqcoeff_ptr);
+ vec_u64_store(dqcoeff0, 0, dqcoeff_ptr);
// Remove DC value from thres, round, quant and dequant
thres = vec_splat(thres, 1);
@@ -219,10 +241,10 @@ void vp9_quantize_fp_32x32_vsx(const tra
qcoeff1 = vec_and(qcoeff1, mask1);
zero_coeff1 = vec_cmpeq(qcoeff1, vec_zeros_s16);
qcoeff1 = vec_sign(qcoeff1, coeff1);
- vec_vsx_st(qcoeff1, 16, qcoeff_ptr);
+ vec_u64_store(qcoeff1, 16, qcoeff_ptr);
dqcoeff1 = dequantize_coeff_32(qcoeff1, dequant);
- vec_vsx_st(dqcoeff1, 16, dqcoeff_ptr);
+ vec_u64_store(dqcoeff1, 16, dqcoeff_ptr);
eob = vec_max(vec_or(scan0, zero_coeff0), vec_or(scan1, zero_coeff1));
@@ -260,17 +282,17 @@ void vp9_quantize_fp_32x32_vsx(const tra
qcoeff1 = vec_sign(qcoeff1, coeff1);
qcoeff2 = vec_sign(qcoeff2, coeff2);
- vec_vsx_st(qcoeff0, off0, qcoeff_ptr);
- vec_vsx_st(qcoeff1, off1, qcoeff_ptr);
- vec_vsx_st(qcoeff2, off2, qcoeff_ptr);
+ vec_u64_store(qcoeff0, off0, qcoeff_ptr);
+ vec_u64_store(qcoeff1, off1, qcoeff_ptr);
+ vec_u64_store(qcoeff2, off2, qcoeff_ptr);
dqcoeff0 = dequantize_coeff_32(qcoeff0, dequant);
dqcoeff1 = dequantize_coeff_32(qcoeff1, dequant);
dqcoeff2 = dequantize_coeff_32(qcoeff2, dequant);
- vec_vsx_st(dqcoeff0, off0, dqcoeff_ptr);
- vec_vsx_st(dqcoeff1, off1, dqcoeff_ptr);
- vec_vsx_st(dqcoeff2, off2, dqcoeff_ptr);
+ vec_u64_store(dqcoeff0, off0, dqcoeff_ptr);
+ vec_u64_store(dqcoeff1, off1, dqcoeff_ptr);
+ vec_u64_store(dqcoeff2, off2, dqcoeff_ptr);
eob = vec_max(eob, vec_or(scan0, zero_coeff0));
eob2 = vec_max(vec_or(scan1, zero_coeff1), vec_or(scan2, zero_coeff2));
Index: chromium-144.0.7559.59/third_party/libvpx/source/libvpx/vpx_dsp/ppc/fdct32x32_vsx.c
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libvpx/source/libvpx/vpx_dsp/ppc/fdct32x32_vsx.c
+++ chromium-144.0.7559.59/third_party/libvpx/source/libvpx/vpx_dsp/ppc/fdct32x32_vsx.c
@@ -15,6 +15,28 @@
#include "vpx_dsp/ppc/txfm_common_vsx.h"
#include "vpx_dsp/ppc/types_vsx.h"
+static INLINE void
+vec_u64_store(vector unsigned long long vecu64, unsigned long offset, void *ptr)
+{
+#ifndef WORDS_BIGENDIAN
+ __asm__ ("xxswapd %x0, %x1"
+ : "=wa" (vecu64)
+ : "wa" (vecu64));
+#endif
+#if __GNUC__ >= 4
+ if (__builtin_constant_p (offset) && offset == 0)
+ __asm__ ("stxvd2x %x0,0,%1\n\t"
+ :
+ : "wa" (vecu64), "r" ((uintptr_t)ptr)
+ : "memory");
+ else
+#endif
+ __asm__ ("stxvd2x %x0,%1,%2\n\t"
+ :
+ : "wa" (vecu64), "r" (offset), "r" ((uintptr_t)ptr)
+ : "memory", "r0");
+}
+
// Returns ((a +/- b) * cospi16 + (2 << 13)) >> 14.
static INLINE void single_butterfly(int16x8_t a, int16x8_t b, int16x8_t *add,
int16x8_t *sub) {
@@ -164,45 +186,45 @@ static INLINE void load(const int16_t *a
}
static INLINE void store(tran_low_t *a, const int16x8_t *b) {
- vec_vsx_st(b[0], 0, a);
- vec_vsx_st(b[8], 0, a + 8);
- vec_vsx_st(b[16], 0, a + 16);
- vec_vsx_st(b[24], 0, a + 24);
-
- vec_vsx_st(b[1], 0, a + 32);
- vec_vsx_st(b[9], 0, a + 40);
- vec_vsx_st(b[17], 0, a + 48);
- vec_vsx_st(b[25], 0, a + 56);
-
- vec_vsx_st(b[2], 0, a + 64);
- vec_vsx_st(b[10], 0, a + 72);
- vec_vsx_st(b[18], 0, a + 80);
- vec_vsx_st(b[26], 0, a + 88);
-
- vec_vsx_st(b[3], 0, a + 96);
- vec_vsx_st(b[11], 0, a + 104);
- vec_vsx_st(b[19], 0, a + 112);
- vec_vsx_st(b[27], 0, a + 120);
-
- vec_vsx_st(b[4], 0, a + 128);
- vec_vsx_st(b[12], 0, a + 136);
- vec_vsx_st(b[20], 0, a + 144);
- vec_vsx_st(b[28], 0, a + 152);
-
- vec_vsx_st(b[5], 0, a + 160);
- vec_vsx_st(b[13], 0, a + 168);
- vec_vsx_st(b[21], 0, a + 176);
- vec_vsx_st(b[29], 0, a + 184);
-
- vec_vsx_st(b[6], 0, a + 192);
- vec_vsx_st(b[14], 0, a + 200);
- vec_vsx_st(b[22], 0, a + 208);
- vec_vsx_st(b[30], 0, a + 216);
-
- vec_vsx_st(b[7], 0, a + 224);
- vec_vsx_st(b[15], 0, a + 232);
- vec_vsx_st(b[23], 0, a + 240);
- vec_vsx_st(b[31], 0, a + 248);
+ vec_u64_store(b[0], 0, a);
+ vec_u64_store(b[8], 0, a + 8);
+ vec_u64_store(b[16], 0, a + 16);
+ vec_u64_store(b[24], 0, a + 24);
+
+ vec_u64_store(b[1], 0, a + 32);
+ vec_u64_store(b[9], 0, a + 40);
+ vec_u64_store(b[17], 0, a + 48);
+ vec_u64_store(b[25], 0, a + 56);
+
+ vec_u64_store(b[2], 0, a + 64);
+ vec_u64_store(b[10], 0, a + 72);
+ vec_u64_store(b[18], 0, a + 80);
+ vec_u64_store(b[26], 0, a + 88);
+
+ vec_u64_store(b[3], 0, a + 96);
+ vec_u64_store(b[11], 0, a + 104);
+ vec_u64_store(b[19], 0, a + 112);
+ vec_u64_store(b[27], 0, a + 120);
+
+ vec_u64_store(b[4], 0, a + 128);
+ vec_u64_store(b[12], 0, a + 136);
+ vec_u64_store(b[20], 0, a + 144);
+ vec_u64_store(b[28], 0, a + 152);
+
+ vec_u64_store(b[5], 0, a + 160);
+ vec_u64_store(b[13], 0, a + 168);
+ vec_u64_store(b[21], 0, a + 176);
+ vec_u64_store(b[29], 0, a + 184);
+
+ vec_u64_store(b[6], 0, a + 192);
+ vec_u64_store(b[14], 0, a + 200);
+ vec_u64_store(b[22], 0, a + 208);
+ vec_u64_store(b[30], 0, a + 216);
+
+ vec_u64_store(b[7], 0, a + 224);
+ vec_u64_store(b[15], 0, a + 232);
+ vec_u64_store(b[23], 0, a + 240);
+ vec_u64_store(b[31], 0, a + 248);
}
// Returns 1 if negative 0 if positive
Index: chromium-144.0.7559.59/third_party/libvpx/source/libvpx/vpx_dsp/ppc/quantize_vsx.c
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libvpx/source/libvpx/vpx_dsp/ppc/quantize_vsx.c
+++ chromium-144.0.7559.59/third_party/libvpx/source/libvpx/vpx_dsp/ppc/quantize_vsx.c
@@ -13,6 +13,28 @@
#include "./vpx_dsp_rtcd.h"
#include "vpx_dsp/ppc/types_vsx.h"
+static INLINE void
+vec_u64_store(vector unsigned long long vecu64, unsigned long offset, void *ptr)
+{
+#ifndef WORDS_BIGENDIAN
+ __asm__ ("xxswapd %x0, %x1"
+ : "=wa" (vecu64)
+ : "wa" (vecu64));
+#endif
+#if __GNUC__ >= 4
+ if (__builtin_constant_p (offset) && offset == 0)
+ __asm__ ("stxvd2x %x0,0,%1\n\t"
+ :
+ : "wa" (vecu64), "r" ((uintptr_t)ptr)
+ : "memory");
+ else
+#endif
+ __asm__ ("stxvd2x %x0,%1,%2\n\t"
+ :
+ : "wa" (vecu64), "r" (offset), "r" ((uintptr_t)ptr)
+ : "memory", "r0");
+}
+
// Negate 16-bit integers in a when the corresponding signed 16-bit
// integer in b is negative.
static INLINE int16x8_t vec_sign(int16x8_t a, int16x8_t b) {
@@ -124,19 +146,19 @@ void vpx_quantize_b_vsx(const tran_low_t
qcoeff0 =
quantize_coeff(coeff0, coeff0_abs, round, quant, quant_shift, zero_mask0);
- vec_vsx_st(qcoeff0, 0, qcoeff_ptr);
+ vec_u64_store(qcoeff0, 0, qcoeff_ptr);
round = vec_splat(round, 1);
quant = vec_splat(quant, 1);
quant_shift = vec_splat(quant_shift, 1);
qcoeff1 =
quantize_coeff(coeff1, coeff1_abs, round, quant, quant_shift, zero_mask1);
- vec_vsx_st(qcoeff1, 16, qcoeff_ptr);
+ vec_u64_store(qcoeff1, 16, qcoeff_ptr);
dqcoeff0 = vec_mladd(qcoeff0, dequant, vec_zeros_s16);
- vec_vsx_st(dqcoeff0, 0, dqcoeff_ptr);
+ vec_u64_store(dqcoeff0, 0, dqcoeff_ptr);
dequant = vec_splat(dequant, 1);
dqcoeff1 = vec_mladd(qcoeff1, dequant, vec_zeros_s16);
- vec_vsx_st(dqcoeff1, 16, dqcoeff_ptr);
+ vec_u64_store(dqcoeff1, 16, dqcoeff_ptr);
eob = vec_max(nonzero_scanindex(qcoeff0, iscan_ptr, 0),
nonzero_scanindex(qcoeff1, iscan_ptr, 16));
@@ -164,17 +186,17 @@ void vpx_quantize_b_vsx(const tran_low_t
zero_mask1);
qcoeff2 = quantize_coeff(coeff2, coeff2_abs, round, quant, quant_shift,
zero_mask2);
- vec_vsx_st(qcoeff0, off0, qcoeff_ptr);
- vec_vsx_st(qcoeff1, off1, qcoeff_ptr);
- vec_vsx_st(qcoeff2, off2, qcoeff_ptr);
+ vec_u64_store(qcoeff0, off0, qcoeff_ptr);
+ vec_u64_store(qcoeff1, off1, qcoeff_ptr);
+ vec_u64_store(qcoeff2, off2, qcoeff_ptr);
dqcoeff0 = vec_mladd(qcoeff0, dequant, vec_zeros_s16);
dqcoeff1 = vec_mladd(qcoeff1, dequant, vec_zeros_s16);
dqcoeff2 = vec_mladd(qcoeff2, dequant, vec_zeros_s16);
- vec_vsx_st(dqcoeff0, off0, dqcoeff_ptr);
- vec_vsx_st(dqcoeff1, off1, dqcoeff_ptr);
- vec_vsx_st(dqcoeff2, off2, dqcoeff_ptr);
+ vec_u64_store(dqcoeff0, off0, dqcoeff_ptr);
+ vec_u64_store(dqcoeff1, off1, dqcoeff_ptr);
+ vec_u64_store(dqcoeff2, off2, dqcoeff_ptr);
eob = vec_max(eob, nonzero_scanindex(qcoeff0, iscan_ptr, off0));
eob2 = vec_max(nonzero_scanindex(qcoeff1, iscan_ptr, off1),
@@ -243,12 +265,12 @@ void vpx_quantize_b_32x32_vsx(const tran
qcoeff1 = quantize_coeff_32(coeff1, coeff1_abs, round, quant, quant_shift,
zero_mask1);
- vec_vsx_st(qcoeff0, 0, qcoeff_ptr);
- vec_vsx_st(qcoeff1, 16, qcoeff_ptr);
+ vec_u64_store(qcoeff0, 0, qcoeff_ptr);
+ vec_u64_store(qcoeff1, 16, qcoeff_ptr);
- vec_vsx_st(dequantize_coeff_32(qcoeff0, dequant), 0, dqcoeff_ptr);
+ vec_u64_store(dequantize_coeff_32(qcoeff0, dequant), 0, dqcoeff_ptr);
dequant = vec_splat(dequant, 1); // remove DC from dequant
- vec_vsx_st(dequantize_coeff_32(qcoeff1, dequant), 16, dqcoeff_ptr);
+ vec_u64_store(dequantize_coeff_32(qcoeff1, dequant), 16, dqcoeff_ptr);
eob = vec_max(nonzero_scanindex(qcoeff0, iscan_ptr, 0),
nonzero_scanindex(qcoeff1, iscan_ptr, 16));
@@ -276,13 +298,13 @@ void vpx_quantize_b_32x32_vsx(const tran
qcoeff2 = quantize_coeff_32(coeff2, coeff2_abs, round, quant, quant_shift,
zero_mask2);
- vec_vsx_st(qcoeff0, off0, qcoeff_ptr);
- vec_vsx_st(qcoeff1, off1, qcoeff_ptr);
- vec_vsx_st(qcoeff2, off2, qcoeff_ptr);
-
- vec_vsx_st(dequantize_coeff_32(qcoeff0, dequant), off0, dqcoeff_ptr);
- vec_vsx_st(dequantize_coeff_32(qcoeff1, dequant), off1, dqcoeff_ptr);
- vec_vsx_st(dequantize_coeff_32(qcoeff2, dequant), off2, dqcoeff_ptr);
+ vec_u64_store(qcoeff0, off0, qcoeff_ptr);
+ vec_u64_store(qcoeff1, off1, qcoeff_ptr);
+ vec_u64_store(qcoeff2, off2, qcoeff_ptr);
+
+ vec_u64_store(dequantize_coeff_32(qcoeff0, dequant), off0, dqcoeff_ptr);
+ vec_u64_store(dequantize_coeff_32(qcoeff1, dequant), off1, dqcoeff_ptr);
+ vec_u64_store(dequantize_coeff_32(qcoeff2, dequant), off2, dqcoeff_ptr);
eob = vec_max(eob, nonzero_scanindex(qcoeff0, iscan_ptr, off0));
eob2 = vec_max(nonzero_scanindex(qcoeff1, iscan_ptr, off1),

View file

@ -1,13 +0,0 @@
Index: chromium-144.0.7559.59/base/compiler_specific.h
===================================================================
--- chromium-144.0.7559.59.orig/base/compiler_specific.h
+++ chromium-144.0.7559.59/base/compiler_specific.h
@@ -198,7 +198,7 @@
// MUSTTAIL return Func1(d + 1); // `Func1()` will be tail-called.
// }
// ```
-#if __has_cpp_attribute(clang::musttail)
+#if __has_cpp_attribute(clang::musttail) && !defined(__powerpc64__)
#define MUSTTAIL [[clang::musttail]]
#else
#define MUSTTAIL

View file

@ -1,13 +0,0 @@
Index: chromium-144.0.7559.59/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h
===================================================================
--- chromium-144.0.7559.59.orig/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h
+++ chromium-144.0.7559.59/base/allocator/partition_allocator/src/partition_alloc/partition_alloc_base/compiler_specific.h
@@ -139,7 +139,7 @@
// PA_MUSTTAIL return Func1(d + 1); // `Func1()` will be tail-called.
// }
// ```
-#if PA_HAS_CPP_ATTRIBUTE(clang::musttail)
+#if PA_HAS_CPP_ATTRIBUTE(clang::musttail) && !defined(__powerpc64__)
#define PA_MUSTTAIL [[clang::musttail]]
#else
#define PA_MUSTTAIL

View file

@ -1,13 +0,0 @@
Index: chromium-130.0.6723.44/third_party/skia/src/core/SkRasterPipeline.h
===================================================================
--- chromium-130.0.6723.44.orig/third_party/skia/src/core/SkRasterPipeline.h
+++ chromium-130.0.6723.44/third_party/skia/src/core/SkRasterPipeline.h
@@ -27,7 +27,7 @@ struct SkImageInfo;
struct skcms_TransferFunction;
#if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && \
- !defined(SK_CPU_LOONGARCH) && !(defined(_WIN32) && defined(SK_BUILD_FOR_ANDROID_FRAMEWORK))
+ !defined(SK_CPU_LOONGARCH) && !(defined(_WIN32) && defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)) && !defined(__powerpc64__)
// [[clang::musttail]] is disabled for the Android version of Skia running on Windows as it
// causes crashes (This is probably related to http://crbug.com/1505442).
#define SK_HAS_MUSTTAIL 1

View file

@ -1,48 +0,0 @@
Index: chromium-144.0.7559.59/third_party/libvpx/generate_gni.sh
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libvpx/generate_gni.sh
+++ chromium-144.0.7559.59/third_party/libvpx/generate_gni.sh
@@ -429,7 +429,7 @@ gen_config_files linux/mipsel "--target=
gen_config_files linux/mips64el "--target=mips64-linux-gcc ${all_platforms}"
gen_config_files linux/loongarch \
"--target=loongarch64-linux-gcc ${all_platforms}"
-gen_config_files linux/ppc64 "--target=ppc64le-linux-gcc ${all_platforms}"
+gen_config_files linux/ppc64 "--target=generic-gnu $HIGHBD ${all_platforms}"
gen_config_files linux/generic "--target=generic-gnu $HIGHBD ${all_platforms}"
gen_config_files win/arm64-highbd \
"--target=arm64-win64-vs15 ${all_platforms} ${HIGHBD} ${disable_sve}"
Index: chromium-144.0.7559.59/third_party/libvpx/source/libvpx/build/make/rtcd.pl
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libvpx/source/libvpx/build/make/rtcd.pl
+++ chromium-144.0.7559.59/third_party/libvpx/source/libvpx/build/make/rtcd.pl
@@ -527,8 +527,9 @@ if ($opts{arch} eq 'x86') {
}
arm;
} elsif ($opts{arch} =~ /^ppc/ ) {
- @ALL_ARCHS = filter(qw/vsx/);
- ppc;
+ #@ALL_ARCHS = filter(qw/vsx/);
+ #ppc;
+ unoptimized;
} elsif ($opts{arch} =~ /loongarch/ ) {
@ALL_ARCHS = filter(qw/lsx lasx/);
loongarch;
Index: chromium-144.0.7559.59/third_party/libvpx/BUILD.gn
===================================================================
--- chromium-144.0.7559.59.orig/third_party/libvpx/BUILD.gn
+++ chromium-144.0.7559.59/third_party/libvpx/BUILD.gn
@@ -98,6 +98,14 @@ config("libvpx_config") {
"-Wno-sign-compare",
]
}
+
+ if (current_cpu == "ppc64") {
+ cflags += [
+ "-mcpu=power8",
+ "-maltivec",
+ "-mvsx",
+ ]
+ }
}
# This config is applied to targets that depend on libvpx.

View file

@ -1,23 +0,0 @@
Index: chromium-144.0.7559.59/third_party/webrtc/rtc_base/system/arch.h
===================================================================
--- chromium-144.0.7559.59.orig/third_party/webrtc/rtc_base/system/arch.h
+++ chromium-144.0.7559.59/third_party/webrtc/rtc_base/system/arch.h
@@ -46,6 +46,18 @@
#endif
#if defined(__MIPSEL__)
#define WEBRTC_ARCH_LITTLE_ENDIAN
+#elif defined(__PPC__)
+#define WEBRTC_ARCH_PPC_FAMILY
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+#define WEBRTC_ARCH_LITTLE_ENDIAN
+#else
+#define WEBRTC_ARCH_BIG_ENDIAN
+#endif
+#if defined(__LP64__)
+#define WEBRTC_ARCH_64_BITS
+#else
+#define WEBRTC_ARCH_32_BITS
+#endif
#else
#define WEBRTC_ARCH_BIG_ENDIAN
#endif

View file

@ -1,13 +0,0 @@
Index: chromium-144.0.7559.59/base/system/sys_info.cc
===================================================================
--- chromium-144.0.7559.59.orig/base/system/sys_info.cc
+++ chromium-144.0.7559.59/base/system/sys_info.cc
@@ -263,6 +263,8 @@ std::string SysInfo::ProcessCPUArchitect
return "ARM";
#elif defined(ARCH_CPU_ARM64)
return "ARM_64";
+#elif defined(ARCH_CPU_PPC64)
+ return "PPC_64";
#elif defined(ARCH_CPU_RISCV64)
return "RISCV_64";
#else

View file

@ -1,37 +0,0 @@
Index: chromium-144.0.7559.59/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
===================================================================
--- chromium-144.0.7559.59.orig/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
+++ chromium-144.0.7559.59/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc
@@ -383,6 +383,8 @@ bool ChromeRuntimeAPIDelegate::GetPlatfo
info->arch = extensions::api::runtime::PlatformArch::kMips64;
} else if (arch == "riscv64") {
info->arch = extensions::api::runtime::PlatformArch::kRiscv64;
+ } else if (arch == "ppc64") {
+ info->arch = extensions::api::runtime::PlatformArch::kPpc64;
} else {
NOTREACHED();
}
Index: chromium-144.0.7559.59/extensions/common/api/runtime.json
===================================================================
--- chromium-144.0.7559.59.orig/extensions/common/api/runtime.json
+++ chromium-144.0.7559.59/extensions/common/api/runtime.json
@@ -98,7 +98,8 @@
{"name": "x86-64", "description": "Specifies the processer architecture as x86-64."},
{"name": "mips", "description": "Specifies the processer architecture as mips."},
{"name": "mips64", "description": "Specifies the processer architecture as mips64."},
- {"name": "riscv64", "description": "Specifies the processer architecture as riscv64."}
+ {"name": "riscv64", "description": "Specifies the processer architecture as riscv64."},
+ {"name": "ppc64", "description": "Specifies the processer architecture as ppc64."}
],
"description": "The machine's processor architecture."
},
@@ -111,7 +112,8 @@
{"name": "x86-32", "description": "Specifies the native client architecture as x86-32."},
{"name": "x86-64", "description": "Specifies the native client architecture as x86-64."},
{"name": "mips", "description": "Specifies the native client architecture as mips."},
- {"name": "mips64", "description": "Specifies the native client architecture as mips64."}
+ {"name": "mips64", "description": "Specifies the native client architecture as mips64."},
+ {"name": "ppc64", "description": "Specifies the native client architecture as ppc64."}
]
},
{

View file

@ -1,14 +0,0 @@
Index: chromium-144.0.7559.59/base/process/launch.h
===================================================================
--- chromium-144.0.7559.59.orig/base/process/launch.h
+++ chromium-144.0.7559.59/base/process/launch.h
@@ -58,6 +58,9 @@ enum TerminationStatus : int;
#if defined(ARCH_CPU_ARM64) || defined(ARCH_CPU_LOONGARCH64)
#define PTHREAD_STACK_MIN_CONST \
(__builtin_constant_p(PTHREAD_STACK_MIN) ? PTHREAD_STACK_MIN : 131072)
+#elif defined(ARCH_CPU_PPC64)
+#define PTHREAD_STACK_MIN_CONST \
+ (__builtin_constant_p(PTHREAD_STACK_MIN) ? PTHREAD_STACK_MIN : 131072)
#else
#define PTHREAD_STACK_MIN_CONST \
(__builtin_constant_p(PTHREAD_STACK_MIN) ? PTHREAD_STACK_MIN : 16384)

View file

@ -0,0 +1,14 @@
[Unit]
Description="Chrome Remote Desktop host daemon"
[Service]
User=%i
Environment=HOME=%h
ExecStart=@@CRD_PATH@@/chrome-remote-desktop --start --foreground
ExecStop=@@CRD_PATH@@/chrome-remote-desktop --stop
ExecReload=@@CRD_PATH@@/chrome-remote-desktop --reload
Restart=always
TimeoutStopSec=10
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,12 @@
diff -up chromium-101.0.4951.41/content/common/user_agent.cc.fedora-user-agent chromium-101.0.4951.41/content/common/user_agent.cc
--- chromium-101.0.4951.41/content/common/user_agent.cc.fedora-user-agent 2022-04-27 20:03:36.913767022 +0000
+++ chromium-101.0.4951.41/content/common/user_agent.cc 2022-04-27 20:04:30.591942420 +0000
@@ -34,7 +34,7 @@ std::string GetUserAgentPlatform() {
#elif BUILDFLAG(IS_MAC)
return "Macintosh; ";
#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
- return "X11; "; // strange, but that's what Firefox uses
+ return "X11; Fedora; "; // strange, but that's what Firefox uses
#elif BUILDFLAG(IS_ANDROID)
return "Linux; ";
#elif BUILDFLAG(IS_FUCHSIA)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,134 @@
diff -up chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py
--- chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py.116 2022-07-05 13:31:29.434673638 +0000
+++ chromium-103.0.5060.53/third_party/catapult/third_party/six/six.py 2022-07-05 21:52:01.884578748 +0000
@@ -29,7 +29,7 @@ import sys
import types
__author__ = "Benjamin Peterson <benjamin@python.org>"
-__version__ = "1.15.0"
+__version__ = "1.16.0"
# Useful for very coarse version differentiation.
@@ -71,6 +71,11 @@ else:
MAXSIZE = int((1 << 63) - 1)
del X
+if PY34:
+ from importlib.util import spec_from_loader
+else:
+ spec_from_loader = None
+
def _add_doc(func, doc):
"""Add documentation to a function."""
@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
return self
return None
+ def find_spec(self, fullname, path, target=None):
+ if fullname in self.known_modules:
+ return spec_from_loader(fullname, self)
+ return None
+
def __get_module(self, fullname):
try:
return self.known_modules[fullname]
@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
return None
get_source = get_code # same as get_code
+ def create_module(self, spec):
+ return self.load_module(spec.name)
+
+ def exec_module(self, module):
+ pass
+
_importer = _SixMetaPathImporter(__name__)
diff -up chromium-103.0.5060.53/third_party/six/src/six.py.116 chromium-103.0.5060.53/third_party/six/src/six.py
--- chromium-103.0.5060.53/third_party/six/src/six.py.116 2022-07-05 13:32:28.916687658 +0000
+++ chromium-103.0.5060.53/third_party/six/src/six.py 2022-07-05 21:59:42.561240407 +0000
@@ -29,7 +29,7 @@ import sys
import types
__author__ = "Benjamin Peterson <benjamin@python.org>"
-__version__ = "1.14.0"
+__version__ = "1.16.0"
# Useful for very coarse version differentiation.
@@ -71,6 +71,11 @@ else:
MAXSIZE = int((1 << 63) - 1)
del X
+if PY34:
+ from importlib.util import spec_from_loader
+else:
+ spec_from_loader = None
+
def _add_doc(func, doc):
"""Add documentation to a function."""
@@ -186,6 +191,11 @@ class _SixMetaPathImporter(object):
return self
return None
+ def find_spec(self, fullname, path, target=None):
+ if fullname in self.known_modules:
+ return spec_from_loader(fullname, self)
+ return None
+
def __get_module(self, fullname):
try:
return self.known_modules[fullname]
@@ -223,6 +233,12 @@ class _SixMetaPathImporter(object):
return None
get_source = get_code # same as get_code
+ def create_module(self, spec):
+ return self.load_module(spec.name)
+
+ def exec_module(self, module):
+ pass
+
_importer = _SixMetaPathImporter(__name__)
@@ -890,12 +906,11 @@ def ensure_binary(s, encoding='utf-8', e
- `str` -> encoded to `bytes`
- `bytes` -> `bytes`
"""
+ if isinstance(s, binary_type):
+ return s
if isinstance(s, text_type):
return s.encode(encoding, errors)
- elif isinstance(s, binary_type):
- return s
- else:
- raise TypeError("not expecting type '%s'" % type(s))
+ raise TypeError("not expecting type '%s'" % type(s))
def ensure_str(s, encoding='utf-8', errors='strict'):
@@ -909,12 +924,15 @@ def ensure_str(s, encoding='utf-8', erro
- `str` -> `str`
- `bytes` -> decoded to `str`
"""
- if not isinstance(s, (text_type, binary_type)):
- raise TypeError("not expecting type '%s'" % type(s))
+ # Optimization: Fast return for the common case.
+ if type(s) is str:
+ return s
if PY2 and isinstance(s, text_type):
- s = s.encode(encoding, errors)
+ return s.encode(encoding, errors)
elif PY3 and isinstance(s, binary_type):
- s = s.decode(encoding, errors)
+ return s.decode(encoding, errors)
+ elif not isinstance(s, (text_type, binary_type)):
+ raise TypeError("not expecting type '%s'" % type(s))
return s

View file

@ -1,16 +1,14 @@
Fix FTBFS on EL9 due to old ffmpeg-5.x
diff -up chromium-142.0.7444.59/media/filters/legacy_audio_file_reader.cc.me chromium-142.0.7444.59/media/filters/legacy_audio_file_reader.cc
--- chromium-142.0.7444.59/media/filters/legacy_audio_file_reader.cc.me 2025-11-02 08:20:16.949092776 +0100
+++ chromium-142.0.7444.59/media/filters/legacy_audio_file_reader.cc 2025-11-02 08:22:01.331132435 +0100
@@ -273,10 +273,10 @@ bool LegacyAudioFileReader::OnNewFrame(
diff -up chromium-107.0.5304.121/media/filters/audio_file_reader.cc.me chromium-107.0.5304.121/media/filters/audio_file_reader.cc
--- chromium-107.0.5304.121/media/filters/audio_file_reader.cc.me 2022-12-17 08:27:12.204753071 +0100
+++ chromium-107.0.5304.121/media/filters/audio_file_reader.cc 2022-12-17 08:28:40.908211808 +0100
@@ -243,10 +243,10 @@ bool AudioFileReader::OnNewFrame(
// silence from being output. In the case where we are also discarding some
// portion of the packet (as indicated by a negative pts), we further want to
// adjust the duration downward by however much exists before zero.
- if (audio_codec_ == AudioCodec::kAAC && frame->duration) {
+ if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) {
const base::TimeDelta pkt_duration = ConvertFromTimeBase(
UNSAFE_TODO(glue_->format_context()->streams[stream_index_])->time_base,
glue_->format_context()->streams[stream_index_]->time_base,
- frame->duration + std::min(static_cast<int64_t>(0), frame->pts));
+ frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
const base::TimeDelta frame_duration =

View file

@ -0,0 +1,11 @@
diff -up chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c.me chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c
--- chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c.me 2022-12-27 16:14:22.507496575 +0100
+++ chromium-108.0.5359.124/third_party/wayland/src/src/scanner.c 2022-12-27 16:35:17.617573610 +0100
@@ -26,6 +26,7 @@
*/
#include "wayland-version.h"
+#include "config.h" // HAVE_STRNDUP
#include <stdbool.h>
#include <stdio.h>

View file

@ -0,0 +1,141 @@
diff -up chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc.me chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc
--- chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc.me 2023-02-08 20:34:02.700010846 +0100
+++ chromium-110.0.5481.77/sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.cc 2023-02-08 20:35:30.455580670 +0100
@@ -4,7 +4,9 @@
#include "sandbox/policy/linux/bpf_hardware_video_decoding_policy_linux.h"
-#include <linux/kcmp.h>
+#ifndef KCMP_FILE
+#define KCMP_FILE 0
+#endif
#include "media/gpu/buildflags.h"
#include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h"
diff -up chromium-99.0.4844.51/mojo/core/channel_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/mojo/core/channel_linux.cc
--- chromium-99.0.4844.51/mojo/core/channel_linux.cc.epel7-header-workarounds 2022-02-28 19:05:54.000000000 -0500
+++ chromium-99.0.4844.51/mojo/core/channel_linux.cc 2022-03-05 14:50:49.876812909 -0500
@@ -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-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
--- chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.epel7-header-workarounds 2022-03-05 14:50:49.877812915 -0500
+++ chromium-99.0.4844.51/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc 2022-03-05 15:15:02.536867009 -0500
@@ -53,6 +53,25 @@
#endif // BUILDFLAG(IS_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-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc
--- chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-28 19:05:55.000000000 -0500
+++ chromium-99.0.4844.51/sandbox/policy/linux/bpf_cros_amd_gpu_policy_linux.cc 2022-03-05 14:50:49.877812915 -0500
@@ -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-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc
--- chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc.epel7-header-workarounds 2022-02-28 19:05:55.000000000 -0500
+++ chromium-99.0.4844.51/sandbox/policy/linux/bpf_gpu_policy_linux.cc 2022-03-05 14:50:49.877812915 -0500
@@ -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-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc
--- chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc.epel7-header-workarounds 2022-02-28 19:06:49.000000000 -0500
+++ chromium-99.0.4844.51/ui/events/ozone/evdev/event_converter_evdev_impl.cc 2022-03-05 14:50:49.877812915 -0500
@@ -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 {

View file

@ -0,0 +1,71 @@
From 041cb248e818823caaaabc67db92b16499d0416d Mon Sep 17 00:00:00 2001
From: Vasiliy Telezhnikov <vasilyt@chromium.org>
Date: Thu, 02 Feb 2023 15:42:28 +0000
Subject: [PATCH] CHECK that passthrough command decoder is used on launched platforms
This CL adds enforces that validating command decoder is not used on
platforms where passthrough is fully launched. We still allow to use it
by tests on linux
Bug: 1406585
Change-Id: Id6bc1d748fdf9c953dde76c8d4b5f59ddef60857
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4212134
Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
Commit-Queue: Vasiliy Telezhnikov <vasilyt@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1100440}
---
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index eb710696..b22dffb 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -3447,7 +3447,13 @@
outputter, group);
}
+// Allow linux to run fuzzers.
+#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX)
return new GLES2DecoderImpl(client, command_buffer_service, outputter, group);
+#else
+ LOG(FATAL) << "Validating command decoder is not supported.";
+ return nullptr;
+#endif
}
GLES2DecoderImpl::GLES2DecoderImpl(
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
index 40977d9b..50171e20 100644
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -510,8 +510,9 @@
auto impl = gl::GetGLImplementationParts();
bool gl_disabled = impl == gl::kGLImplementationDisabled;
- bool is_swangle = impl == gl::ANGLEImplementation::kSwiftShader;
+#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER)
+ bool is_swangle = impl == gl::ANGLEImplementation::kSwiftShader;
// Compute passthrough decoder status before ComputeGpuFeatureInfo below.
// Do this after GL is initialized so extensions can be queried.
// Using SwANGLE forces the passthrough command decoder.
@@ -533,6 +534,20 @@
}
gpu_preferences_.use_passthrough_cmd_decoder =
gpu_info_.passthrough_cmd_decoder;
+#else
+ // If gl is disabled passthrough/validating command decoder doesn't matter. If
+ // it's not ensure that passthrough command decoder is supported as it's our
+ // only option.
+ if (!gl_disabled) {
+ LOG_IF(FATAL, !gles2::PassthroughCommandDecoderSupported())
+ << "Passthrough is not supported, GL is "
+ << gl::GetGLImplementationGLName(gl::GetGLImplementationParts())
+ << ", ANGLE is "
+ << gl::GetGLImplementationANGLEName(gl::GetGLImplementationParts());
+ gpu_info_.passthrough_cmd_decoder = true;
+ gpu_preferences_.use_passthrough_cmd_decoder = true;
+ }
+#endif
// We need to collect GL strings (VENDOR, RENDERER) for blocklisting purposes.
if (!gl_disabled) {

View file

@ -0,0 +1,21 @@
author Yaowei Zhou <yaowei.zhou@intel.com> Thu Feb 02 06:18:34 2023
committer Yaowei Zhou <yaowei.zhou@intel.com> Thu Feb 02 06:18:34 2023
tree 62a79c7f155fc32140d3aa4c4a6b01b8d7eddfcc
parent 98e427b87ff8447180a60f20ee3792dcbd649481 [diff]
Enable VA-API flag on ozone wayland
Bug: POC
Change-Id: I09f696bfe3be82930161ce005152d1397b93f636
diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
index b3190c6b..4a2c3bb 100644
--- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc
+++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
@@ -309,6 +309,8 @@
properties->supports_global_screen_coordinates =
features::IsWaylandScreenCoordinatesEnabled();
+ properties->supports_vaapi_x11 = true;
+
initialised = true;
}

View file

@ -0,0 +1,630 @@
commit 7f0858c08dcef70ca26ce8527bbedfcc5c5218d3
Author: Colin Blundell <blundell@chromium.org>
Date: Thu Feb 23 14:19:33 2023 +0000
[Ozone] Invert layering of GLImageNativePixmap & NativePixmapEGLBinding
NativePixmapEGLBinding is currently a thin layer on top of
GLImageNativePixmap. This CL inverts the layering so that
GLImageNativePixmap instead sits on top of NativePixmapEGLBinding
(via the public Ozone ImportNativePixmap() method, for which all
implementations return NativePixmapEGLBinding). Note that this entails
moving GLImageNativePixmap into //gpu, as //ui/gl cannot depend on
//ozone/public.
This inversion means that
(a) the SharedImage Ozone backing/representations no longer use GLImage
(b) when we no longer need GLImageNativePixmap we can simply directly
eliminate it.
Followup CLs will fold NativePixmapEGLBindingHelper into
NativePixmapEGLBinding and make GLImageNativePixmap creation private
with friending to ensure that no more usage of the deprecated class
creeps in.
Bug: 1412692
Change-Id: I5f01e9b1f616dd99b61cd203662d0d02d3da7b3e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4262390
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Reviewed-by: ccameron chromium <ccameron@chromium.org>
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1108909}
diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn
index d08be597e3e5d..5ad724dd57bbb 100644
--- a/gpu/command_buffer/service/BUILD.gn
+++ b/gpu/command_buffer/service/BUILD.gn
@@ -397,6 +397,8 @@ target(link_target_type, "gles2_sources") {
if (use_ozone) {
sources += [
+ "shared_image/gl_image_native_pixmap.cc",
+ "shared_image/gl_image_native_pixmap.h",
"shared_image/gl_ozone_image_representation.cc",
"shared_image/gl_ozone_image_representation.h",
"shared_image/ozone_image_backing.cc",
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index e3f5b3c5721cf..a297347c19670 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -120,10 +120,10 @@
#endif
#if BUILDFLAG(IS_OZONE)
+#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
#include "ui/gfx/buffer_format_util.h"
#include "ui/gfx/buffer_usage_util.h"
#include "ui/gfx/native_pixmap.h"
-#include "ui/gl/gl_image_native_pixmap.h"
#include "ui/ozone/public/ozone_platform.h"
#include "ui/ozone/public/surface_factory_ozone.h"
#endif
@@ -499,7 +499,7 @@ class BackTexture {
#if BUILDFLAG(IS_OZONE)
// The image that backs the texture, if its backed by a native
// GpuMemoryBuffer.
- scoped_refptr<gl::GLImageNativePixmap> image_;
+ scoped_refptr<GLImageNativePixmap> image_;
#endif
};
@@ -2522,7 +2522,7 @@ class GLES2DecoderImpl : public GLES2Decoder,
// Note: Creation of anonymous images is possible only on Ozone.
#if BUILDFLAG(IS_OZONE)
bool SupportsCreateAnonymousImage();
- scoped_refptr<gl::GLImageNativePixmap> CreateAnonymousImage(
+ scoped_refptr<GLImageNativePixmap> CreateAnonymousImage(
const gfx::Size& size,
gfx::BufferFormat format,
bool* is_cleared,
@@ -3242,7 +3242,7 @@ bool BackTexture::AllocateNativeGpuMemoryBuffer(const gfx::Size& size,
// duplicate BGRX_8888.
buffer_format = gfx::BufferFormat::BGRX_8888;
}
- scoped_refptr<gl::GLImageNativePixmap> image = decoder_->CreateAnonymousImage(
+ scoped_refptr<GLImageNativePixmap> image = decoder_->CreateAnonymousImage(
size, buffer_format, &is_cleared, Target(), id());
if (!image)
return false;
@@ -19592,7 +19592,7 @@ bool GLES2DecoderImpl::SupportsCreateAnonymousImage() {
.supports_native_pixmaps;
}
-scoped_refptr<gl::GLImageNativePixmap> GLES2DecoderImpl::CreateAnonymousImage(
+scoped_refptr<GLImageNativePixmap> GLES2DecoderImpl::CreateAnonymousImage(
const gfx::Size& size,
gfx::BufferFormat format,
bool* is_cleared,
@@ -19612,8 +19612,8 @@ scoped_refptr<gl::GLImageNativePixmap> GLES2DecoderImpl::CreateAnonymousImage(
<< gfx::BufferUsageToString(usage);
return nullptr;
}
- auto image = gl::GLImageNativePixmap::Create(size, format, std::move(pixmap),
- target, texture_id);
+ auto image = GLImageNativePixmap::Create(size, format, std::move(pixmap),
+ target, texture_id);
if (!image) {
LOG(ERROR) << "Failed to create GLImage " << size.ToString() << ", "
<< gfx::BufferFormatToString(format) << ", usage "
diff --git a/ui/gl/gl_image_native_pixmap.cc b/gpu/command_buffer/service/shared_image/gl_image_native_pixmap.cc
similarity index 73%
rename from ui/gl/gl_image_native_pixmap.cc
rename to gpu/command_buffer/service/shared_image/gl_image_native_pixmap.cc
index 6cbe7be2899de..d9101fbda893b 100644
--- a/ui/gl/gl_image_native_pixmap.cc
+++ b/gpu/command_buffer/service/shared_image/gl_image_native_pixmap.cc
@@ -2,9 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ui/gl/gl_image_native_pixmap.h"
+#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
-namespace gl {
+#include "ui/ozone/public/native_pixmap_gl_binding.h"
+#include "ui/ozone/public/ozone_platform.h"
+#include "ui/ozone/public/surface_factory_ozone.h"
+
+namespace gpu {
scoped_refptr<GLImageNativePixmap> GLImageNativePixmap::Create(
const gfx::Size& size,
@@ -47,18 +51,18 @@ bool GLImageNativePixmap::InitializeFromNativePixmap(
const gfx::ColorSpace& color_space,
GLenum target,
GLuint texture_id) {
- binding_helper_ = NativePixmapEGLBindingHelper::CreateForPlane(
- size_, format, plane, std::move(pixmap), color_space, target, texture_id);
+ pixmap_gl_binding_ =
+ ui::OzonePlatform::GetInstance()
+ ->GetSurfaceFactoryOzone()
+ ->GetCurrentGLOzone()
+ ->ImportNativePixmap(std::move(pixmap), format, plane, size_,
+ color_space, target, texture_id);
- return !!binding_helper_;
+ return !!pixmap_gl_binding_;
}
gfx::Size GLImageNativePixmap::GetSize() {
return size_;
}
-unsigned GLImageNativePixmap::GetInternalFormat() {
- return binding_helper_->GetInternalFormat();
-}
-
-} // namespace gl
+} // namespace gpu
diff --git a/ui/gl/gl_image_native_pixmap.h b/gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h
similarity index 72%
rename from ui/gl/gl_image_native_pixmap.h
rename to gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h
index 5ff5e91b3ec18..4087360b04b45 100644
--- a/ui/gl/gl_image_native_pixmap.h
+++ b/gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h
@@ -2,21 +2,24 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef UI_GL_GL_IMAGE_NATIVE_PIXMAP_H_
-#define UI_GL_GL_IMAGE_NATIVE_PIXMAP_H_
+#ifndef GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
+#define GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
#include <stdint.h>
+#include "gpu/gpu_gles2_export.h"
#include "ui/gfx/color_space.h"
#include "ui/gfx/native_pixmap.h"
#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_export.h"
#include "ui/gl/gl_image.h"
-#include "ui/gl/native_pixmap_egl_binding_helper.h"
-namespace gl {
+namespace ui {
+class NativePixmapGLBinding;
+}
-class GL_EXPORT GLImageNativePixmap : public GLImage {
+namespace gpu {
+
+class GPU_GLES2_EXPORT GLImageNativePixmap : public gl::GLImage {
public:
// Create an EGLImage from a given NativePixmap and bind |texture_id| to
// |target| following by binding the image to |target|.
@@ -41,22 +44,15 @@ class GL_EXPORT GLImageNativePixmap : public GLImage {
GLenum target,
GLuint texture_id);
- // Get the GL internal format of the image.
- // It is aligned with glTexImage{2|3}D's parameter |internalformat|.
- unsigned GetInternalFormat();
-
// Overridden from GLImage:
gfx::Size GetSize() override;
- protected:
- ~GLImageNativePixmap() override;
-
private:
explicit GLImageNativePixmap(const gfx::Size& size);
+ ~GLImageNativePixmap() override;
- // Create an EGLImage from a given NativePixmap and bind |texture_id| to
- // |target| followed by binding the image to |target|. This EGLImage can be
- // converted to a GL texture.
+ // Create a NativePixmapGLBinding from a given NativePixmap. Returns true iff
+ // the binding was successfully created.
bool InitializeFromNativePixmap(gfx::BufferFormat format,
gfx::BufferPlane plane,
scoped_refptr<gfx::NativePixmap> pixmap,
@@ -64,10 +60,10 @@ class GL_EXPORT GLImageNativePixmap : public GLImage {
GLenum target,
GLuint texture_id);
- std::unique_ptr<NativePixmapEGLBindingHelper> binding_helper_;
+ std::unique_ptr<ui::NativePixmapGLBinding> pixmap_gl_binding_;
const gfx::Size size_;
};
-} // namespace gl
+} // namespace gpu
-#endif // UI_GL_GL_IMAGE_NATIVE_PIXMAP_H_
+#endif // GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
diff --git a/gpu/command_buffer/service/shared_image/gl_ozone_image_representation.h b/gpu/command_buffer/service/shared_image/gl_ozone_image_representation.h
index 31723894088e1..ade337bde9966 100644
--- a/gpu/command_buffer/service/shared_image/gl_ozone_image_representation.h
+++ b/gpu/command_buffer/service/shared_image/gl_ozone_image_representation.h
@@ -14,7 +14,6 @@
#include "gpu/command_buffer/service/shared_image/shared_image_representation.h"
#include "gpu/command_buffer/service/texture_manager.h"
#include "ui/gfx/native_pixmap.h"
-#include "ui/gl/gl_image_native_pixmap.h"
#include "ui/ozone/public/native_pixmap_gl_binding.h"
namespace gpu {
diff --git a/gpu/command_buffer/service/shared_image/ozone_image_backing.cc b/gpu/command_buffer/service/shared_image/ozone_image_backing.cc
index 8d4a7d9306eb1..7a652ae425c0e 100644
--- a/gpu/command_buffer/service/shared_image/ozone_image_backing.cc
+++ b/gpu/command_buffer/service/shared_image/ozone_image_backing.cc
@@ -36,7 +36,6 @@
#include "ui/gfx/native_pixmap.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/gl/buildflags.h"
-#include "ui/gl/gl_image_native_pixmap.h"
#if BUILDFLAG(ENABLE_VULKAN)
#include "gpu/command_buffer/service/shared_image/skia_vk_ozone_image_representation.h"
diff --git a/media/gpu/v4l2/BUILD.gn b/media/gpu/v4l2/BUILD.gn
index 12e6b66cf7b89..ff7b5a1a50a38 100644
--- a/media/gpu/v4l2/BUILD.gn
+++ b/media/gpu/v4l2/BUILD.gn
@@ -98,6 +98,7 @@ source_set("v4l2") {
":libv4l2_stubs",
":v4l2_status",
"//base",
+ "//gpu/command_buffer/service:gles2",
"//gpu/ipc/common",
"//gpu/ipc/service",
"//media",
diff --git a/media/gpu/v4l2/generic_v4l2_device.cc b/media/gpu/v4l2/generic_v4l2_device.cc
index bdbb256ed578c..337ec0e7b372b 100644
--- a/media/gpu/v4l2/generic_v4l2_device.cc
+++ b/media/gpu/v4l2/generic_v4l2_device.cc
@@ -23,6 +23,7 @@
#include "base/strings/stringprintf.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
+#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
#include "media/base/video_types.h"
#include "media/gpu/buildflags.h"
#include "media/gpu/chromeos/fourcc.h"
@@ -32,7 +33,6 @@
#include "ui/gfx/native_pixmap_handle.h"
#include "ui/gl/egl_util.h"
#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_image_native_pixmap.h"
#include "ui/ozone/public/ozone_platform.h"
#include "ui/ozone/public/surface_factory_ozone.h"
@@ -281,7 +281,7 @@ EGLImageKHR GenericV4L2Device::CreateEGLImage(
return egl_image;
}
-scoped_refptr<gl::GLImageNativePixmap> GenericV4L2Device::CreateGLImage(
+scoped_refptr<gpu::GLImageNativePixmap> GenericV4L2Device::CreateGLImage(
const gfx::Size& size,
const Fourcc fourcc,
gfx::NativePixmapHandle handle,
@@ -317,7 +317,7 @@ scoped_refptr<gl::GLImageNativePixmap> GenericV4L2Device::CreateGLImage(
DCHECK(pixmap);
// TODO(b/220336463): plumb the right color space.
- auto image = gl::GLImageNativePixmap::Create(
+ auto image = gpu::GLImageNativePixmap::Create(
size, buffer_format, std::move(pixmap), target, texture_id);
DCHECK(image);
return image;
diff --git a/media/gpu/v4l2/generic_v4l2_device.h b/media/gpu/v4l2/generic_v4l2_device.h
index bb9ce391c15bd..fd84aee27097e 100644
--- a/media/gpu/v4l2/generic_v4l2_device.h
+++ b/media/gpu/v4l2/generic_v4l2_device.h
@@ -55,7 +55,7 @@ class GenericV4L2Device : public V4L2Device {
const Fourcc fourcc,
gfx::NativePixmapHandle handle) const override;
- scoped_refptr<gl::GLImageNativePixmap> CreateGLImage(
+ scoped_refptr<gpu::GLImageNativePixmap> CreateGLImage(
const gfx::Size& size,
const Fourcc fourcc,
gfx::NativePixmapHandle handle,
diff --git a/media/gpu/v4l2/v4l2_device.h b/media/gpu/v4l2/v4l2_device.h
index bdc39bf65ae38..ee74cbcd39957 100644
--- a/media/gpu/v4l2/v4l2_device.h
+++ b/media/gpu/v4l2/v4l2_device.h
@@ -28,6 +28,7 @@
#include "base/files/scoped_file.h"
#include "base/memory/ref_counted.h"
#include "base/sequence_checker.h"
+#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
#include "media/base/video_codecs.h"
#include "media/base/video_decoder_config.h"
#include "media/base/video_frame.h"
@@ -42,7 +43,6 @@
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/native_pixmap_handle.h"
#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_image_native_pixmap.h"
// TODO(mojahsu): remove this once V4L2 headers are updated.
#ifndef V4L2_PIX_FMT_JPEG_RAW
@@ -777,7 +777,7 @@ class MEDIA_GPU_EXPORT V4L2Device
// Create a GLImageNativePixmap from provided |handle|, taking full ownership
// of it.
- virtual scoped_refptr<gl::GLImageNativePixmap> CreateGLImage(
+ virtual scoped_refptr<gpu::GLImageNativePixmap> CreateGLImage(
const gfx::Size& size,
const Fourcc fourcc,
gfx::NativePixmapHandle handle,
diff --git a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
index a51acedc105b7..78cc605e986e6 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
@@ -30,6 +30,7 @@
#include "base/time/time.h"
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/trace_event.h"
+#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
#include "media/base/bind_to_current_loop.h"
#include "media/base/media_switches.h"
#include "media/base/scopedfd_helper.h"
@@ -49,7 +50,6 @@
#include "ui/gl/gl_bindings.h"
#include "ui/gl/gl_context.h"
#include "ui/gl/gl_display.h"
-#include "ui/gl/gl_image_native_pixmap.h"
#include "ui/gl/gl_surface_egl.h"
#include "ui/gl/scoped_binders.h"
@@ -1444,7 +1444,7 @@ void V4L2SliceVideoDecodeAccelerator::CreateGLImageFor(
return;
}
- scoped_refptr<gl::GLImageNativePixmap> gl_image =
+ scoped_refptr<gpu::GLImageNativePixmap> gl_image =
gl_device->CreateGLImage(visible_size, fourcc, std::move(handle),
gl_device->GetTextureTarget(), texture_id);
if (!gl_image) {
diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
index 1ecf8854d02e7..7687384553806 100644
--- a/media/gpu/vaapi/BUILD.gn
+++ b/media/gpu/vaapi/BUILD.gn
@@ -96,6 +96,7 @@ source_set("vaapi") {
":vaapi_status",
"//base",
"//build:chromeos_buildflags",
+ "//gpu/command_buffer/service:gles2",
"//gpu/config",
"//gpu/ipc/common",
"//gpu/ipc/service",
diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
index 06617ffec8e5a..626dda6312213 100644
--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
@@ -4,6 +4,7 @@
#include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
+#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
#include "media/base/format_utils.h"
#include "media/gpu/buffer_validation.h"
#include "media/gpu/chromeos/platform_video_frame_utils.h"
@@ -15,7 +16,6 @@
#include "ui/gfx/linux/native_pixmap_dmabuf.h"
#include "ui/gfx/native_pixmap.h"
#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_image_native_pixmap.h"
#include "ui/gl/scoped_binders.h"
#include "ui/ozone/public/ozone_platform.h"
#include "ui/ozone/public/surface_factory_ozone.h"
@@ -87,7 +87,7 @@ VaapiStatus VaapiPictureNativePixmapOzone::Initialize(
const gfx::BufferFormat format = pixmap->GetBufferFormat();
// TODO(b/220336463): plumb the right color space.
- auto image = gl::GLImageNativePixmap::Create(
+ auto image = gpu::GLImageNativePixmap::Create(
visible_size_, format, std::move(pixmap),
base::strict_cast<GLenum>(texture_target_),
base::strict_cast<GLuint>(texture_id_));
diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h b/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h
index 101728f36c1e1..eaced9a8ccadf 100644
--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h
+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h
@@ -17,7 +17,7 @@ namespace gfx {
class NativePixmap;
} // namespace gfx
-namespace gl {
+namespace gpu {
class GLImageNativePixmap;
}
@@ -55,7 +55,7 @@ class VaapiPictureNativePixmapOzone : public VaapiPictureNativePixmap {
VaapiStatus Initialize(scoped_refptr<gfx::NativePixmap> pixmap);
// GLImage bound to the GL textures used by the VDA client.
- scoped_refptr<gl::GLImageNativePixmap> gl_image_;
+ scoped_refptr<gpu::GLImageNativePixmap> gl_image_;
};
} // namespace media
diff --git a/ui/gfx/linux/native_pixmap_dmabuf.h b/ui/gfx/linux/native_pixmap_dmabuf.h
index 7f134110417ea..f12d4f5eac89d 100644
--- a/ui/gfx/linux/native_pixmap_dmabuf.h
+++ b/ui/gfx/linux/native_pixmap_dmabuf.h
@@ -17,7 +17,7 @@
namespace gfx {
// This class converts a gfx::NativePixmapHandle to a gfx::NativePixmap.
-// It is useful because gl::GLImageNativePixmap::Initialize only takes
+// It is useful because gpu::GLImageNativePixmap::Initialize only takes
// a gfx::NativePixmap as input.
class GFX_EXPORT NativePixmapDmaBuf : public gfx::NativePixmap {
public:
diff --git a/ui/gl/BUILD.gn b/ui/gl/BUILD.gn
index cc23c0a8b4c64..2a07859c4dad8 100644
--- a/ui/gl/BUILD.gn
+++ b/ui/gl/BUILD.gn
@@ -226,8 +226,6 @@ component("gl") {
if (is_linux || is_chromeos || use_ozone) {
sources += [
- "gl_image_native_pixmap.cc",
- "gl_image_native_pixmap.h",
"native_pixmap_egl_binding_helper.cc",
"native_pixmap_egl_binding_helper.h",
]
diff --git a/ui/ozone/common/native_pixmap_egl_binding.cc b/ui/ozone/common/native_pixmap_egl_binding.cc
index 8dce01a41281e..2e18e73eb6cbb 100644
--- a/ui/ozone/common/native_pixmap_egl_binding.cc
+++ b/ui/ozone/common/native_pixmap_egl_binding.cc
@@ -8,7 +8,7 @@
#include "base/memory/scoped_refptr.h"
#include "base/notreached.h"
#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_image_native_pixmap.h"
+#include "ui/gl/native_pixmap_egl_binding_helper.h"
namespace ui {
@@ -50,9 +50,9 @@ unsigned BufferFormatToGLDataType(gfx::BufferFormat format) {
} // namespace
NativePixmapEGLBinding::NativePixmapEGLBinding(
- scoped_refptr<gl::GLImageNativePixmap> gl_image,
+ std::unique_ptr<gl::NativePixmapEGLBindingHelper> binding_helper,
gfx::BufferFormat format)
- : gl_image_(std::move(gl_image)), format_(format) {}
+ : binding_helper_(std::move(binding_helper)), format_(format) {}
NativePixmapEGLBinding::~NativePixmapEGLBinding() = default;
// static
@@ -64,22 +64,22 @@ std::unique_ptr<NativePixmapGLBinding> NativePixmapEGLBinding::Create(
const gfx::ColorSpace& color_space,
GLenum target,
GLuint texture_id) {
- auto gl_image = gl::GLImageNativePixmap::CreateForPlane(
+ auto binding_helper = gl::NativePixmapEGLBindingHelper::CreateForPlane(
plane_size, plane_format, plane, std::move(pixmap), color_space, target,
texture_id);
- if (!gl_image) {
- LOG(ERROR) << "Unable to initialize GL image from pixmap";
+ if (!binding_helper) {
+ LOG(ERROR) << "Unable to initialize binding from pixmap";
return nullptr;
}
- auto binding = std::make_unique<NativePixmapEGLBinding>(std::move(gl_image),
- plane_format);
+ auto binding = std::make_unique<NativePixmapEGLBinding>(
+ std::move(binding_helper), plane_format);
return binding;
}
GLuint NativePixmapEGLBinding::GetInternalFormat() {
- return gl_image_->GetInternalFormat();
+ return binding_helper_->GetInternalFormat();
}
GLenum NativePixmapEGLBinding::GetDataType() {
diff --git a/ui/ozone/common/native_pixmap_egl_binding.h b/ui/ozone/common/native_pixmap_egl_binding.h
index 44d68be3527a4..c0382b1068426 100644
--- a/ui/ozone/common/native_pixmap_egl_binding.h
+++ b/ui/ozone/common/native_pixmap_egl_binding.h
@@ -15,16 +15,17 @@ class ColorSpace;
}
namespace gl {
-class GLImageNativePixmap;
+class NativePixmapEGLBindingHelper;
}
namespace ui {
-// A binding maintained between GLImageNativePixmap and GL Textures in Ozone.
+// A binding maintained between NativePixmap and GL Textures in Ozone.
class NativePixmapEGLBinding : public NativePixmapGLBinding {
public:
- NativePixmapEGLBinding(scoped_refptr<gl::GLImageNativePixmap> gl_image,
- gfx::BufferFormat format);
+ NativePixmapEGLBinding(
+ std::unique_ptr<gl::NativePixmapEGLBindingHelper> binding_helper,
+ gfx::BufferFormat format);
~NativePixmapEGLBinding() override;
static std::unique_ptr<NativePixmapGLBinding> Create(
@@ -41,10 +42,7 @@ class NativePixmapEGLBinding : public NativePixmapGLBinding {
GLenum GetDataType() override;
private:
- // TODO(hitawala): Merge BindTexImage, Initialize from GLImage and its
- // subclass NativePixmap to NativePixmapEGLBinding once we stop using them
- // elsewhere eg. VDA decoders in media.
- scoped_refptr<gl::GLImageNativePixmap> gl_image_;
+ std::unique_ptr<gl::NativePixmapEGLBindingHelper> binding_helper_;
gfx::BufferFormat format_;
};
diff --git a/ui/ozone/gl/BUILD.gn b/ui/ozone/gl/BUILD.gn
index 4fc90f0471362..6064eb6f83a8c 100644
--- a/ui/ozone/gl/BUILD.gn
+++ b/ui/ozone/gl/BUILD.gn
@@ -9,6 +9,14 @@ test("ozone_gl_unittests") {
deps = [
"//base/test:test_support",
+
+ # NOTE: The above tests of gpu::GLImageNativePixmap cannot easily be made
+ # to run as part of //gpu's gl_tests or gpu_unittests: they crash when run
+ # with the former due to differences in GL configuration, and they are
+ # skipped when run with the latter due to differences in Ozone
+ # configuration. Simply leave them here with this dependency for the short
+ # time remaining until GLImageNativePixmap is eliminated altogether.
+ "//gpu/command_buffer/service:gles2",
"//testing/gtest",
"//ui/gfx",
"//ui/gl:run_all_unittests",
diff --git a/ui/ozone/gl/DEPS b/ui/ozone/gl/DEPS
new file mode 100644
index 0000000000000..e6142e85d2154
--- /dev/null
+++ b/ui/ozone/gl/DEPS
@@ -0,0 +1,6 @@
+specific_include_rules = {
+ # NOTE: See comment in ./BUILD.gn with respect to this dependency.
+ "gl_image_ozone_native_pixmap_unittest\.cc": [
+ "+gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h",
+ ],
+}
diff --git a/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc b/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
index 9a538903c8ff0..1527df91a3238 100644
--- a/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
+++ b/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
@@ -5,10 +5,10 @@
#include <stdint.h>
#include <memory>
+#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/buffer_types.h"
#include "ui/gfx/client_native_pixmap.h"
-#include "ui/gl/gl_image_native_pixmap.h"
#include "ui/gl/test/gl_image_test_template.h"
#include "ui/ozone/public/client_native_pixmap_factory_ozone.h"
#include "ui/ozone/public/ozone_platform.h"
@@ -83,7 +83,7 @@ class GLImageNativePixmapTestDelegate : public GLImageTestDelegateBase {
glGenTextures(1, &texture_id_);
}
- auto image = gl::GLImageNativePixmap::Create(
+ auto image = gpu::GLImageNativePixmap::Create(
size, format, std::move(pixmap), GetTextureTarget(), texture_id_);
EXPECT_TRUE(image);
return image;
@@ -100,8 +100,9 @@ class GLImageNativePixmapTestDelegate : public GLImageTestDelegateBase {
format == gfx::BufferFormat::YUV_420_BIPLANAR) {
return 1;
}
- if (format == gfx::BufferFormat::P010)
+ if (format == gfx::BufferFormat::P010) {
return 3;
+ }
return 0;
}

View file

@ -0,0 +1,625 @@
diff -up chromium-112.0.5615.49/media/gpu/args.gni.wayland-vaapi chromium-112.0.5615.49/media/gpu/args.gni
--- chromium-112.0.5615.49/media/gpu/args.gni.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/args.gni 2023-04-14 21:29:41.776328044 +0200
@@ -6,10 +6,14 @@ import("//build/config/chromeos/ui_mode.
import("//build/config/ozone.gni")
declare_args() {
- # Indicates if X11 VA-API-based hardware acceleration is to be used.
- # See also the comment near the |use_vaapi| arg.
- use_vaapi_x11 = is_linux && ozone_platform_x11 &&
- (target_cpu == "x86" || target_cpu == "x64") && !is_castos
+ # Build Chrome support for using VA-API over X11. Note that setting this to true is
+ # not a guarantee that Chrome will use (or even try to use) VA-API over X11. In
+ # particular, it is possible to build Chrome with support for VA-API over X11 but
+ # pick Wayland as the Ozone backend at runtime. In this case, Chrome will try to
+ # use VA-API over DRM.
+ support_vaapi_over_x11 =
+ is_linux && ozone_platform_x11 &&
+ (target_cpu == "x86" || target_cpu == "x64") && !is_castos
}
declare_args() {
@@ -29,8 +33,9 @@ declare_args() {
# is typically the case on x86-based ChromeOS devices.
# VA-API should also be compiled by default on x11-using linux devices
# using x86/x64.
- use_vaapi = use_vaapi_x11 || (is_chromeos_lacros &&
- (target_cpu == "x86" || target_cpu == "x64"))
+ use_vaapi =
+ support_vaapi_over_x11 ||
+ (is_chromeos_lacros && (target_cpu == "x86" || target_cpu == "x64"))
# Indicates if ChromeOS protected media support exists. This is used
# to enable the CDM daemon in Chrome OS as well as support for
diff -up chromium-112.0.5615.49/media/gpu/BUILD.gn.wayland-vaapi chromium-112.0.5615.49/media/gpu/BUILD.gn
--- chromium-112.0.5615.49/media/gpu/BUILD.gn.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/BUILD.gn 2023-04-14 21:29:41.776328044 +0200
@@ -20,7 +20,7 @@ buildflag_header("buildflags") {
"USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
"USE_V4L2_CODEC=$use_v4l2_codec",
"USE_LIBV4L2=$use_v4lplugin",
- "USE_VAAPI_X11=$use_vaapi_x11",
+ "SUPPORT_VAAPI_OVER_X11=$support_vaapi_over_x11",
]
}
diff -up chromium-112.0.5615.49/media/gpu/vaapi/BUILD.gn.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/BUILD.gn
--- chromium-112.0.5615.49/media/gpu/vaapi/BUILD.gn.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/BUILD.gn 2023-04-14 21:29:41.776328044 +0200
@@ -17,7 +17,7 @@ assert(use_vaapi)
generate_stubs("libva_stubs") {
extra_header = "va_stub_header.fragment"
sigs = [ "va.sigs" ]
- if (use_vaapi_x11) {
+ if (support_vaapi_over_x11) {
sigs += [ "va_x11.sigs" ]
}
if (is_chromeos_ash) {
@@ -139,7 +139,7 @@ source_set("vaapi") {
]
}
- if (use_vaapi_x11) {
+ if (support_vaapi_over_x11) {
deps += [ "//ui/gfx/x" ]
sources += [
"vaapi_picture_native_pixmap_angle.cc",
@@ -213,7 +213,7 @@ source_set("common") {
deps += [ "//ui/ozone" ]
}
- if (use_vaapi_x11) {
+ if (support_vaapi_over_x11) {
deps += [ "//ui/gfx/x" ]
}
diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.cc
--- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.cc.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.cc 2023-04-15 07:14:05.573796794 +0200
@@ -13,9 +13,9 @@
#if BUILDFLAG(IS_OZONE)
#include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
#endif // BUILDFLAG(IS_OZONE)
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
#if defined(USE_EGL)
#include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
#endif
@@ -41,19 +41,28 @@ std::unique_ptr<VaapiPicture> CreateVaap
} // namespace
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+VaapiPictureFactory::VaapiPictureFactory(
+ absl::optional<bool> may_use_vaapi_over_x11)
+ : may_use_vaapi_over_x11_(may_use_vaapi_over_x11) {
+#else
VaapiPictureFactory::VaapiPictureFactory() {
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
vaapi_impl_pairs_.insert(
std::make_pair(gl::kGLImplementationEGLGLES2,
VaapiPictureFactory::kVaapiImplementationDrm));
-#if BUILDFLAG(USE_VAAPI_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationAngle));
-#elif BUILDFLAG(IS_OZONE)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ CHECK(may_use_vaapi_over_x11_.has_value());
+ if (may_use_vaapi_over_x11_.value()) {
+ vaapi_impl_pairs_.insert(
+ std::make_pair(gl::kGLImplementationEGLANGLE,
+ VaapiPictureFactory::kVaapiImplementationAngle));
+ }
+#else
vaapi_impl_pairs_.insert(
std::make_pair(gl::kGLImplementationEGLANGLE,
VaapiPictureFactory::kVaapiImplementationDrm));
-#endif
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
DeterminePictureCreationAndDownloadingMechanism();
}
@@ -93,19 +102,19 @@ VaapiPictureFactory::GetVaapiImplementat
}
uint32_t VaapiPictureFactory::GetGLTextureTarget() {
-#if BUILDFLAG(USE_VAAPI_X11)
- return GL_TEXTURE_2D;
-#else
+#if BUILDFLAG(IS_CHROMEOS)
return GL_TEXTURE_EXTERNAL_OES;
-#endif
+#else
+ return GL_TEXTURE_2D;
+#endif // BUILDFLAG(IS_CHROMEOS)
}
gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
-#if BUILDFLAG(USE_VAAPI_X11)
- return gfx::BufferFormat::RGBX_8888;
-#else
+#if BUILDFLAG(IS_CHROMEOS)
return gfx::BufferFormat::YUV_420_BIPLANAR;
-#endif
+#else
+ return gfx::BufferFormat::RGBX_8888;
+#endif // BUILDFLAG(IS_CHROMEOS)
}
void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
@@ -113,19 +122,23 @@ void VaapiPictureFactory::DeterminePictu
#if BUILDFLAG(IS_OZONE)
// We can be called without GL initialized, which is valid if we use Ozone.
case kVaapiImplementationNone:
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ DCHECK(may_use_vaapi_over_x11_.value_or(false));
+#endif
create_picture_cb_ = base::BindRepeating(
&CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
needs_vpp_for_downloading_ = true;
break;
#endif // BUILDFLAG(IS_OZONE)
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
case kVaapiImplementationAngle:
+ DCHECK(may_use_vaapi_over_x11_.value_or(false));
create_picture_cb_ = base::BindRepeating(
&CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
// Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
needs_vpp_for_downloading_ = false;
break;
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
case kVaapiImplementationDrm:
#if BUILDFLAG(IS_OZONE)
create_picture_cb_ = base::BindRepeating(
diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.h.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.h
--- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.h.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.h 2023-04-14 21:29:41.777328062 +0200
@@ -35,7 +35,11 @@ class MEDIA_GPU_EXPORT VaapiPictureFacto
kVaapiImplementationAngle,
};
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ explicit VaapiPictureFactory(absl::optional<bool> may_use_vaapi_over_x11);
+#else
VaapiPictureFactory();
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
VaapiPictureFactory(const VaapiPictureFactory&) = delete;
VaapiPictureFactory& operator=(const VaapiPictureFactory&) = delete;
@@ -84,6 +88,11 @@ class MEDIA_GPU_EXPORT VaapiPictureFacto
CreatePictureCB create_picture_cb_;
bool needs_vpp_for_downloading_ = false;
+
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ // See comment in `VaapiWrapper::MayUseVaapiOverX11()`.
+ absl::optional<bool> may_use_vaapi_over_x11_;
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
};
} // namespace media
diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
--- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc 2023-04-14 21:29:41.777328062 +0200
@@ -113,7 +113,7 @@ VaapiStatus VaapiPictureNativePixmapOzon
ui::OzonePlatform* platform = ui::OzonePlatform::GetInstance();
ui::SurfaceFactoryOzone* factory = platform->GetSurfaceFactoryOzone();
gfx::BufferUsage buffer_usage = gfx::BufferUsage::SCANOUT_VDA_WRITE;
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
// The 'VaapiVideoDecodeAccelerator' requires the VPP to download the decoded
// frame from the internal surface to the allocated native pixmap.
// 'SCANOUT_VDA_WRITE' is used for 'YUV_420_BIPLANAR' on ChromeOS; For Linux,
diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
--- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.wayland-vaapi 2023-04-14 21:29:41.775328024 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2023-04-14 21:29:41.777328062 +0200
@@ -185,7 +185,12 @@ bool VaapiVideoDecodeAccelerator::Initia
Client* client) {
DCHECK(task_runner_->BelongsToCurrentThread());
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ vaapi_picture_factory_ =
+ std::make_unique<VaapiPictureFactory>(VaapiWrapper::MayUseVaapiOverX11());
+#else
vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
if (config.is_encrypted()) {
NOTREACHED() << "Encrypted streams are not supported for this VDA";
@@ -1211,7 +1216,7 @@ VaapiVideoDecodeAccelerator::GetSupporte
VaapiVideoDecodeAccelerator::BufferAllocationMode
VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
// The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
// here.
DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
--- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc 2023-04-15 07:38:19.058957112 +0200
@@ -41,6 +41,11 @@ struct TestParams {
bool decode_using_client_picture_buffers;
};
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+// TODO: Add it in TestParams to cover Ozone/Wayland.
+bool kMayUseVaapiOverX11 = true;
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
constexpr int32_t kBitstreamId = 123;
constexpr size_t kInputSize = 256;
@@ -134,7 +139,13 @@ class MockVaapiPicture : public VaapiPic
class MockVaapiPictureFactory : public VaapiPictureFactory {
public:
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ explicit MockVaapiPictureFactory(absl::optional<bool> may_use_vaapi_over_x11)
+ : VaapiPictureFactory(may_use_vaapi_over_x11) {}
+#else
MockVaapiPictureFactory() = default;
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
~MockVaapiPictureFactory() override = default;
MOCK_METHOD3(MockCreateVaapiPicture,
@@ -167,7 +178,12 @@ class VaapiVideoDecodeAcceleratorTest :
const scoped_refptr<gl::GLImage>& image) { return true; })),
decoder_thread_("VaapiVideoDecodeAcceleratorTestThread"),
mock_decoder_(new ::testing::StrictMock<MockAcceleratedVideoDecoder>),
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ mock_vaapi_picture_factory_(
+ new MockVaapiPictureFactory(kMayUseVaapiOverX11)),
+#else
mock_vaapi_picture_factory_(new MockVaapiPictureFactory()),
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
mock_vaapi_wrapper_(new MockVaapiWrapper(VaapiWrapper::kDecode)),
mock_vpp_vaapi_wrapper_(new MockVaapiWrapper(VaapiWrapper::kDecode)),
weak_ptr_factory_(this) {
@@ -422,11 +438,13 @@ TEST_P(VaapiVideoDecodeAcceleratorTest,
mock_vaapi_picture_factory_->GetVaapiImplementation(
gl::kGLImplementationEGLGLES2));
-#if BUILDFLAG(USE_VAAPI_X11)
- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationAngle,
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLANGLE));
-#elif BUILDFLAG(IS_OZONE)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ if (kMayUseVaapiOverX11) {
+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationAngle,
+ mock_vaapi_picture_factory_->GetVaapiImplementation(
+ gl::kGLImplementationEGLANGLE));
+ }
+#else
EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationDrm,
mock_vaapi_picture_factory_->GetVaapiImplementation(
gl::kGLImplementationEGLANGLE));
diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.cc
--- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.cc.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.cc 2023-04-14 21:29:41.777328062 +0200
@@ -62,7 +62,7 @@
#include "ui/gl/gl_bindings.h"
#include "ui/gl/gl_implementation.h"
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
typedef XID Drawable;
extern "C" {
@@ -70,7 +70,7 @@ extern "C" {
}
#include "ui/gfx/x/connection.h" // nogncheck
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
#if BUILDFLAG(IS_OZONE)
#include "ui/ozone/public/ozone_platform.h"
@@ -84,14 +84,14 @@ using media_gpu_vaapi::kModuleVa_prot;
using media_gpu_vaapi::kModuleVa;
using media_gpu_vaapi::kModuleVa_drm;
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
using media_gpu_vaapi::kModuleVa_x11;
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
using media_gpu_vaapi::InitializeStubs;
using media_gpu_vaapi::IsVaInitialized;
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
using media_gpu_vaapi::IsVa_x11Initialized;
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
using media_gpu_vaapi::IsVa_drmInitialized;
using media_gpu_vaapi::StubPathMap;
@@ -680,6 +680,12 @@ class VADisplayState {
void SetDrmFd(base::PlatformFile fd) { drm_fd_.reset(HANDLE_EINTR(dup(fd))); }
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ absl::optional<bool> MayUseVaapiOverX11() const {
+ return may_use_vaapi_over_x11_;
+ }
+#endif
+
private:
friend class base::NoDestructor<VADisplayState>;
@@ -702,6 +708,13 @@ class VADisplayState {
// Drm fd used to obtain access to the driver interface by VA.
base::ScopedFD drm_fd_;
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ // Whether we'll be possibly using VA-API over Ozone/X11. This should only be
+ // set (if at all) during the pre-sandbox initialization. If absl::nullopt,
+ // all calls to Initialize() will return false immediately.
+ absl::optional<bool> may_use_vaapi_over_x11_;
+#endif
+
// The VADisplay handle. Valid between Initialize() and Deinitialize().
VADisplay va_display_;
@@ -723,6 +736,15 @@ VADisplayState* VADisplayState::Get() {
// static
void VADisplayState::PreSandboxInitialization() {
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ if (ui::OzonePlatform::IsInitialized()) {
+ VADisplayState::Get()->may_use_vaapi_over_x11_ =
+ ui::OzonePlatform::GetInstance()
+ ->GetPlatformProperties()
+ .supports_vaapi_x11;
+ }
+#endif
+
constexpr char kRenderNodeFilePattern[] = "/dev/dri/renderD%d";
// This loop ends on either the first card that does not exist or the first
// render node that is not vgem.
@@ -755,20 +777,18 @@ VADisplayState::VADisplayState()
bool VADisplayState::Initialize() {
base::AutoLock auto_lock(va_lock_);
-#if BUILDFLAG(IS_OZONE) && BUILDFLAG(IS_LINUX)
- // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
- // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
- // for more details. This will also require revisiting everything that's
- // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
- // user chooses the Wayland backend for Ozone at runtime, then many things (if
- // not all) that we do for X11 won't apply.
- if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ if (!may_use_vaapi_over_x11_.has_value())
return false;
#endif
bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
-#if BUILDFLAG(USE_VAAPI_X11)
- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ // Initialize VA-API X11 display backend for Linux Ozone/X11.
+ // See comment in OzonePlatform::PlatformProperties::supports_vaapi_x11 for
+ // more details.
+ if (may_use_vaapi_over_x11_.value())
+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
#endif
if (!libraries_initialized)
return false;
@@ -783,7 +803,7 @@ bool VADisplayState::Initialize() {
return success;
}
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
switch (gl::GetGLImplementation()) {
@@ -809,13 +829,19 @@ absl::optional<VADisplay> GetVADisplaySt
}
}
-#else
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
switch (gl::GetGLImplementation()) {
case gl::kGLImplementationEGLGLES2:
+#if BUILDFLAG(IS_CHROMEOS)
+ // GetVADisplayState() should not get called on Linux with Ozone/X11
+ // (GetVADisplayStateX11() should get called instead), and we haven't tried
+ // VA-API decoding on Linux with Ozone/Wayland and anything other than
+ // native EGL/GLES2.
case gl::kGLImplementationEGLANGLE:
case gl::kGLImplementationNone:
+#endif
return vaGetDisplayDRM(drm_fd.get());
default:
LOG(WARNING) << "VAAPI video acceleration not available for "
@@ -825,18 +851,23 @@ absl::optional<VADisplay> GetVADisplaySt
}
}
-#endif // BUILDFLAG(USE_VAAPI_X11)
-
bool VADisplayState::InitializeVaDisplay_Locked() {
- absl::optional<VADisplay> display =
-#if BUILDFLAG(USE_VAAPI_X11)
- GetVADisplayStateX11(drm_fd_);
-#else
- GetVADisplayState(drm_fd_);
-#endif
+ absl::optional<VADisplay> display;
- if (!display)
- return false;
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ DCHECK(may_use_vaapi_over_x11_.has_value());
+ if (may_use_vaapi_over_x11_.value()) {
+ display = GetVADisplayStateX11(drm_fd_);
+ if (!display)
+ return false;
+ }
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ if (!display) {
+ display = GetVADisplayState(drm_fd_);
+ if (!display)
+ return false;
+ }
va_display_ = *display;
if (!vaDisplayIsValid(va_display_)) {
@@ -1671,6 +1702,13 @@ scoped_refptr<VaapiWrapper> VaapiWrapper
enforce_sequence_affinity);
}
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+// static
+absl::optional<bool> VaapiWrapper::MayUseVaapiOverX11() {
+ return VADisplayState::Get()->MayUseVaapiOverX11();
+}
+#endif
+
// static
std::vector<SVCScalabilityMode> VaapiWrapper::GetSupportedScalabilityModes(
VideoCodecProfile media_profile,
@@ -2684,12 +2722,13 @@ bool VaapiWrapper::MapAndCopyAndExecute(
return Execute_Locked(va_surface_id, va_buffer_ids);
}
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
x11::Pixmap x_pixmap,
gfx::Size dest_size) {
CHECK(!enforce_sequence_affinity_ ||
sequence_checker_.CalledOnValidSequence());
+ CHECK(MayUseVaapiOverX11().value_or(false));
base::AutoLockMaybe auto_lock(va_lock_.get());
VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
@@ -2703,7 +2742,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(
VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
return true;
}
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
VASurfaceID va_surface_id,
@@ -3105,7 +3144,7 @@ void VaapiWrapper::PreSandboxInitializat
paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
#endif
#if BUILDFLAG(IS_CHROMEOS_ASH)
diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.h.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.h
--- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.h.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.h 2023-04-14 21:29:41.777328062 +0200
@@ -36,9 +36,9 @@
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/gfx/geometry/size.h"
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
#include "ui/gfx/x/xproto.h" // nogncheck
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
namespace gfx {
enum class BufferFormat;
@@ -186,6 +186,16 @@ class MEDIA_GPU_EXPORT VaapiWrapper
VaapiWrapper(const VaapiWrapper&) = delete;
VaapiWrapper& operator=(const VaapiWrapper&) = delete;
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ // Returns true if VaapiWrapper instances may use VA-API over X11 and false
+ // otherwise (VA-API over DRM will be used). If this returns absl::nullopt,
+ // it's because it was not possible to determine how VA-API may be used. This
+ // should only be called after PreSandboxInitialization() (which is assumed to
+ // be called only once during the GPU process startup) and is safe to call
+ // from any thread. Additionally, this should always return the same value.
+ static absl::optional<bool> MayUseVaapiOverX11();
+#endif
+
// Returns the supported SVC scalability modes for specified profile.
static std::vector<SVCScalabilityMode> GetSupportedScalabilityModes(
VideoCodecProfile media_profile,
@@ -439,13 +449,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
VASurfaceID va_surface_id,
const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers);
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
// Put data from |va_surface_id| into |x_pixmap| of size
// |dest_size|, converting/scaling to it.
[[nodiscard]] bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
x11::Pixmap x_pixmap,
gfx::Size dest_size);
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
// Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
// memory with the given |format| and |size|. If |format| is not equal to the
diff -up chromium-112.0.5615.49/media/gpu/vaapi/va_stub_header.fragment.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/va_stub_header.fragment
--- chromium-112.0.5615.49/media/gpu/vaapi/va_stub_header.fragment.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200
+++ chromium-112.0.5615.49/media/gpu/vaapi/va_stub_header.fragment 2023-04-14 21:29:41.777328062 +0200
@@ -7,8 +7,8 @@ extern "C" {
#include <va/va_drm.h>
#include <va/va.h>
-#if BUILDFLAG(USE_VAAPI_X11)
+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
#include <va/va_x11.h>
-#endif // BUILDFLAG(USE_VAAPI_X11)
+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
}
diff -up chromium-112.0.5615.49/ui/ozone/platform/x11/ozone_platform_x11.cc.wayland-vaapi chromium-112.0.5615.49/ui/ozone/platform/x11/ozone_platform_x11.cc
--- chromium-112.0.5615.49/ui/ozone/platform/x11/ozone_platform_x11.cc.wayland-vaapi 2023-03-30 02:34:19.000000000 +0200
+++ chromium-112.0.5615.49/ui/ozone/platform/x11/ozone_platform_x11.cc 2023-04-14 21:29:41.778328082 +0200
@@ -197,7 +197,7 @@ class OzonePlatformX11 : public OzonePla
properties->app_modal_dialogs_use_event_blocker = true;
properties->fetch_buffer_formats_for_gmb_on_gpu = true;
#if BUILDFLAG(IS_LINUX)
- properties->supports_vaapi = true;
+ properties->supports_vaapi_x11 = true;
#endif
initialised = true;
diff -up chromium-112.0.5615.49/ui/ozone/public/ozone_platform.h.wayland-vaapi chromium-112.0.5615.49/ui/ozone/public/ozone_platform.h
--- chromium-112.0.5615.49/ui/ozone/public/ozone_platform.h.wayland-vaapi 2023-03-30 02:34:19.000000000 +0200
+++ chromium-112.0.5615.49/ui/ozone/public/ozone_platform.h 2023-04-14 21:29:41.778328082 +0200
@@ -145,12 +145,13 @@ class COMPONENT_EXPORT(OZONE) OzonePlatf
bool fetch_buffer_formats_for_gmb_on_gpu = false;
#if BUILDFLAG(IS_LINUX)
- // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
- // Linux. At the moment, VA-API Linux implementation supports only X11
- // backend. This implementation must be refactored to support Ozone
- // properly. As a temporary solution, VA-API on Linux checks if vaapi is
- // supported (which implicitly means that it is Ozone/X11).
- bool supports_vaapi = false;
+ // VA-API supports different display backends.
+ // See https://github.com/intel/libva/blob/master/va/va_backend.h
+ //
+ // VA/DRM and VA/X11 are used by Chromium at the moment. All Ozone platforms
+ // support VA/DRM by default. `supports_vaapi_x11` indicates if VA/X11
+ // supported; it is true only on Ozone/X11 platform.
+ bool supports_vaapi_x11 = false;
#endif
// Indicates that the platform allows client applications to manipulate

View file

@ -0,0 +1,22 @@
diff -up chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc.me chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc
--- chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc.me 2023-05-13 12:09:44.423727385 +0200
+++ chromium-114.0.5735.26/sandbox/policy/linux/bpf_network_policy_linux.cc 2023-05-13 17:52:19.934347246 +0200
@@ -11,7 +11,6 @@
#include <linux/net.h>
#include <linux/netlink.h>
#include <linux/sockios.h>
-#include <linux/wireless.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <sys/inotify.h>
@@ -48,6 +47,10 @@ using sandbox::syscall_broker::BrokerPro
#define F2FS_IOC_GET_FEATURES _IOR(0xf5, 12, uint32_t)
#endif
+#if !defined(SIOCGIWNAME)
+#define SIOCGIWNAME 0x8B01
+#endif
+
namespace sandbox::policy {
namespace {

View file

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

View file

@ -0,0 +1,57 @@
diff -up chromium-115.0.5790.98/sql/recover_module/cursor.h.me chromium-115.0.5790.98/sql/recover_module/cursor.h
--- chromium-115.0.5790.98/sql/recover_module/cursor.h.me 2023-07-21 20:13:43.587451992 +0200
+++ chromium-115.0.5790.98/sql/recover_module/cursor.h 2023-07-21 20:16:24.989457148 +0200
@@ -61,6 +61,10 @@ class VirtualCursor {
// The VirtualCursor instance that embeds a given SQLite virtual table cursor.
//
// |sqlite_cursor| must have been returned by VirtualTable::SqliteCursor().
+#ifdef __GNUC__
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Winvalid-offsetof"
+#endif
static inline VirtualCursor* FromSqliteCursor(
sqlite3_vtab_cursor* sqlite_cursor) {
VirtualCursor* result = reinterpret_cast<VirtualCursor*>(
@@ -69,6 +73,9 @@ class VirtualCursor {
CHECK_EQ(sqlite_cursor, &result->sqlite_cursor_);
return result;
}
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
// Seeks the cursor to the first readable row. Returns a SQLite status code.
int First();
diff -up chromium-115.0.5790.98/third_party/angle/src/libANGLE/BlobCache.cpp.me chromium-115.0.5790.98/third_party/angle/src/libANGLE/BlobCache.cpp
--- chromium-115.0.5790.98/third_party/angle/src/libANGLE/BlobCache.cpp.me 2023-07-21 20:10:05.119385885 +0200
+++ chromium-115.0.5790.98/third_party/angle/src/libANGLE/BlobCache.cpp 2023-07-21 20:10:14.386558331 +0200
@@ -14,7 +14,6 @@
#include "libANGLE/histogram_macros.h"
#include "platform/PlatformMethods.h"
-#define USE_SYSTEM_ZLIB
#include "compression_utils_portable.h"
namespace egl
diff -up chromium-115.0.5790.98/third_party/angle/src/libANGLE/MemoryProgramCache.cpp.me chromium-115.0.5790.98/third_party/angle/src/libANGLE/MemoryProgramCache.cpp
--- chromium-115.0.5790.98/third_party/angle/src/libANGLE/MemoryProgramCache.cpp.me 2023-07-21 20:10:36.864976619 +0200
+++ chromium-115.0.5790.98/third_party/angle/src/libANGLE/MemoryProgramCache.cpp 2023-07-21 20:11:07.629549228 +0200
@@ -8,7 +8,6 @@
// layer to warm up the cache from disk.
// Include zlib first, otherwise FAR gets defined elsewhere.
-#define USE_SYSTEM_ZLIB
#include "compression_utils_portable.h"
#include "libANGLE/MemoryProgramCache.h"
diff -up chromium-115.0.5790.98/third_party/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp.me chromium-115.0.5790.98/third_party/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp
--- chromium-115.0.5790.98/third_party/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp.me 2023-07-21 20:09:44.206996746 +0200
+++ chromium-115.0.5790.98/third_party/angle/src/libANGLE/renderer/vulkan/vk_internal_shaders_autogen.cpp 2023-07-21 20:09:51.834138674 +0200
@@ -10,7 +10,6 @@
#include "libANGLE/renderer/vulkan/vk_internal_shaders_autogen.h"
-#define USE_SYSTEM_ZLIB
#include "compression_utils_portable.h"
namespace rx

View file

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

View file

@ -0,0 +1,65 @@
diff -up chromium-116.0.5845.96/cc/paint/paint_op_writer.h.me chromium-116.0.5845.96/cc/paint/paint_op_writer.h
--- chromium-116.0.5845.96/cc/paint/paint_op_writer.h.me 2023-08-16 19:09:48.998173285 +0200
+++ chromium-116.0.5845.96/cc/paint/paint_op_writer.h 2023-08-16 21:13:44.442431527 +0200
@@ -104,7 +104,16 @@ class CC_PAINT_EXPORT PaintOpWriter {
private:
template <typename T>
- static constexpr size_t SerializedSizeSimple();
+ static constexpr size_t SerializedSizeSimple() {
+ static_assert(!std::is_pointer_v<T>);
+ return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
+ }
+ // size_t is always serialized as uint64_t to make the serialized result
+ // portable between 32bit and 64bit processes.
+ template <>
+ constexpr size_t SerializedSizeSimple<size_t>() {
+ return base::bits::AlignUp(sizeof(uint64_t), kDefaultAlignment);
+ }
public:
// SerializedSize() returns the maximum serialized size of the given type or
@@ -115,7 +124,10 @@ class CC_PAINT_EXPORT PaintOpWriter {
// deserialization, and make it possible to allow dynamic sizing for some
// data types (see the specialized/overloaded functions).
template <typename T>
- static constexpr size_t SerializedSize();
+ static constexpr size_t SerializedSize() {
+ static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
+ return SerializedSizeSimple<T>();
+ }
template <typename T>
static constexpr size_t SerializedSize(const T& data);
static size_t SerializedSize(const PaintImage& image);
@@ -360,19 +372,6 @@ class CC_PAINT_EXPORT PaintOpWriter {
const bool enable_security_constraints_;
};
-template <typename T>
-constexpr size_t PaintOpWriter::SerializedSizeSimple() {
- static_assert(!std::is_pointer_v<T>);
- return base::bits::AlignUp(sizeof(T), kDefaultAlignment);
-}
-
-// size_t is always serialized as two uint32_ts to make the serialized result
-// portable between 32bit and 64bit processes.
-template <>
-constexpr size_t PaintOpWriter::SerializedSizeSimple<size_t>() {
- return base::bits::AlignUp(2 * sizeof(uint32_t), kDefaultAlignment);
-}
-
template <>
constexpr size_t PaintOpWriter::SerializedSize<SkGainmapInfo>() {
return SerializedSizeSimple<SkColor4f>() + // fGainmapRatioMin
@@ -386,11 +385,6 @@ constexpr size_t PaintOpWriter::Serializ
}
template <typename T>
-constexpr size_t PaintOpWriter::SerializedSize() {
- static_assert(std::is_arithmetic_v<T> || std::is_enum_v<T>);
- return SerializedSizeSimple<T>();
-}
-template <typename T>
constexpr size_t PaintOpWriter::SerializedSize(const T& data) {
return SerializedSizeSimple<T>();
}

View file

@ -0,0 +1,47 @@
diff -up chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c.me chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c
--- chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c.me 2022-12-24 11:08:03.212333476 +0100
+++ chromium-108.0.5359.124/third_party/wayland/src/src/wayland-shm.c 2022-12-24 11:08:18.316606155 +0100
@@ -44,7 +44,7 @@
#include <signal.h>
#include <pthread.h>
#include <errno.h>
-#include <fcntl.h>
+#include <linux/fcntl.h>
#include "wayland-os.h"
#include "wayland-util.h"
diff -up chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc
--- chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc.el7-memfd-include 2022-06-15 10:52:49.553817031 -0400
+++ chromium-102.0.5005.115/v8/src/base/platform/platform-posix.cc 2022-06-15 10:56:15.775173013 -0400
@@ -56,6 +56,7 @@
#if V8_OS_LINUX
#include <sys/prctl.h> // for prctl
+#include <linux/memfd.h> // for MFD_CLOEXEC
#endif
#if defined(V8_OS_FUCHSIA)
diff -up iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c.me iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c
--- iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c.me 2022-12-08 21:59:43.502200984 +0100
+++ iridium-browser-2022.12.108.1/third_party/wayland/src/cursor/os-compatibility.c 2022-12-08 22:13:53.375653343 +0100
@@ -29,7 +29,8 @@
#include <sys/types.h>
#include <unistd.h>
-#include <fcntl.h>
+#include <linux/fcntl.h> // for F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
+#include <linux/memfd.h> // for MFD_CLOEXEC
#include <errno.h>
#include <signal.h>
#include <string.h>
diff -up chromium-116.0.5845.96/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.me chromium-116.0.5845.96/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc
--- chromium-116.0.5845.96/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc.me 2023-08-17 06:32:32.484538849 +0200
+++ chromium-116.0.5845.96/ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.cc 2023-08-17 07:02:01.965168328 +0200
@@ -5,6 +5,7 @@
#include "ui/ozone/platform/wayland/host/zwp_text_input_wrapper_v1.h"
#include <sys/mman.h>
+#include <linux/memfd.h>
#include <string>
#include <utility>

View file

@ -0,0 +1,38 @@
diff -up chromium-116.0.5845.50/net/filter/brotli_source_stream.cc.system-brotli chromium-116.0.5845.50/net/filter/brotli_source_stream.cc
--- chromium-116.0.5845.50/net/filter/brotli_source_stream.cc.system-brotli 2023-07-30 13:06:06.284705823 +0200
+++ chromium-116.0.5845.50/net/filter/brotli_source_stream.cc 2023-07-30 13:08:43.398218141 +0200
@@ -12,8 +12,8 @@
#include "base/memory/raw_ptr.h"
#include "base/metrics/histogram_macros.h"
#include "net/base/io_buffer.h"
-#include "third_party/brotli/include/brotli/decode.h"
-#include "third_party/brotli/include/brotli/shared_dictionary.h"
+#include <brotli/decode.h>
+#include <brotli/shared_dictionary.h>
namespace net {
diff -up chromium-116.0.5845.50/net/ssl/cert_compression.cc.system-brotli chromium-116.0.5845.50/net/ssl/cert_compression.cc
--- chromium-116.0.5845.50/net/ssl/cert_compression.cc.system-brotli 2023-07-26 17:43:01.000000000 +0200
+++ chromium-116.0.5845.50/net/ssl/cert_compression.cc 2023-07-30 13:06:06.284705823 +0200
@@ -9,7 +9,7 @@
#include "third_party/boringssl/src/include/openssl/ssl.h"
#if !defined(NET_DISABLE_BROTLI)
-#include "third_party/brotli/include/brotli/decode.h"
+#include <brotli/decode.h>
#endif
namespace net {
diff -up chromium-116.0.5845.50/ui/base/resource/resource_bundle.cc.system-brotli chromium-116.0.5845.50/ui/base/resource/resource_bundle.cc
--- chromium-116.0.5845.50/ui/base/resource/resource_bundle.cc.system-brotli 2023-07-26 17:43:23.000000000 +0200
+++ chromium-116.0.5845.50/ui/base/resource/resource_bundle.cc 2023-07-30 13:06:06.284705823 +0200
@@ -32,7 +32,7 @@
#include "net/filter/gzip_header.h"
#include "skia/ext/image_operations.h"
#include "third_party/abseil-cpp/absl/types/variant.h"
-#include "third_party/brotli/include/brotli/decode.h"
+#include <brotli/decode.h>
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkColor.h"
#include "third_party/zlib/google/compression_utils.h"

View file

@ -0,0 +1,13 @@
diff -up chromium-117.0.5938.62/content/browser/interest_group/header_direct_from_seller_signals.cc.me chromium-117.0.5938.62/content/browser/interest_group/header_direct_from_seller_signals.cc
--- chromium-117.0.5938.62/content/browser/interest_group/header_direct_from_seller_signals.cc.me 2023-09-16 09:43:41.717545215 +0200
+++ chromium-117.0.5938.62/content/browser/interest_group/header_direct_from_seller_signals.cc 2023-09-16 09:48:07.319539585 +0200
@@ -187,7 +187,8 @@ void OnJsonDecoded(std::unique_ptr<const
} // namespace
-HeaderDirectFromSellerSignals::HeaderDirectFromSellerSignals() = default;
+HeaderDirectFromSellerSignals::HeaderDirectFromSellerSignals() :
+ seller_signals_(absl::nullopt), auction_signals_(absl::nullopt) { }
HeaderDirectFromSellerSignals::~HeaderDirectFromSellerSignals() = default;

View file

@ -0,0 +1,12 @@
diff -up chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn.me chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn
--- chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn.me 2023-09-10 16:54:00.804385139 +0200
+++ chromium-117.0.5938.48/third_party/blink/renderer/core/BUILD.gn 2023-09-10 16:54:13.540625077 +0200
@@ -1694,8 +1694,6 @@ action_foreach("element_locator_test_pro
python_path_root = "${root_out_dir}/pyproto"
python_path_proto = "${python_path_root}/third_party/blink/renderer/core/lcp_critical_path_predictor"
- mnemonic = "ELOC_PROTO"
-
source_dir = "lcp_critical_path_predictor/test_proto"
sources = rebase_path([ "lcp_image_id.asciipb" ], "", source_dir)

View file

@ -0,0 +1,21 @@
diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.cc.me chromium-117.0.5938.62/net/dns/host_resolver_cache.cc
diff -up chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me chromium-117.0.5938.62/net/dns/host_resolver_cache.h
--- chromium-117.0.5938.62/net/dns/host_resolver_cache.h.me 2023-09-14 15:21:24.632965004 +0200
+++ chromium-117.0.5938.62/net/dns/host_resolver_cache.h 2023-09-15 09:15:48.511300845 +0200
@@ -143,12 +143,14 @@ class NET_EXPORT HostResolverCache final
}
bool operator()(const Key& lhs, const KeyRef& rhs) const {
+ const std::string rhs_domain_name{rhs.domain_name};
return std::tie(lhs.domain_name, lhs.network_anonymization_key) <
- std::tie(rhs.domain_name, *rhs.network_anonymization_key);
+ std::tie(rhs_domain_name, *rhs.network_anonymization_key);
}
bool operator()(const KeyRef& lhs, const Key& rhs) const {
- return std::tie(lhs.domain_name, *lhs.network_anonymization_key) <
+ const std::string lhs_domain_name{lhs.domain_name};
+ return std::tie(lhs_domain_name, *lhs.network_anonymization_key) <
std::tie(rhs.domain_name, rhs.network_anonymization_key);
}
};

164
chromium-117-typename.patch Normal file
View file

@ -0,0 +1,164 @@
diff -up chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc
--- chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc.me 2023-06-17 14:50:56.342591702 +0200
+++ chromium-115.0.5790.24/chrome/browser/download/bubble/download_bubble_update_service.cc 2023-06-17 14:57:48.024377375 +0200
@@ -91,7 +91,7 @@ ItemSortKey GetSortKey(const Item& item)
// Helper to get an iterator to the last element in the cache. The cache
// must not be empty.
template <typename Item>
-SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
+typename SortedItems<Item>::const_iterator GetLastIter(const SortedItems<Item>& cache) {
CHECK(!cache.empty());
auto it = cache.end();
return std::prev(it);
@@ -967,9 +967,9 @@ bool DownloadBubbleUpdateService::CacheM
}
template <typename Id, typename Item>
-SortedItems<Item>::iterator
+typename SortedItems<Item>::iterator
DownloadBubbleUpdateService::CacheManager::RemoveItemFromCacheByIter(
- SortedItems<Item>::iterator iter,
+ typename SortedItems<Item>::iterator iter,
SortedItems<Item>& cache,
IterMap<Id, Item>& iter_map) {
CHECK(iter != cache.end());
diff -up chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h
--- chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h.me 2023-06-18 21:52:53.515625237 +0200
+++ chromium-115.0.5790.32/components/optimization_guide/core/tflite_model_executor.h 2023-06-18 21:53:06.881881293 +0200
@@ -189,7 +189,7 @@ class TFLiteModelExecutor : public Model
void SendForBatchExecution(
BatchExecutionCallback callback_on_complete,
base::TimeTicks start_time,
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
override {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff -up chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc
--- chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc.me 2023-06-19 10:03:32.319218678 +0200
+++ chromium-115.0.5790.32/third_party/blink/renderer/core/html/parser/html_document_parser_fastpath.cc 2023-06-19 10:04:12.023942232 +0200
@@ -169,7 +169,7 @@ class HTMLFastPathParser {
using Span = base::span<const Char>;
using USpan = base::span<const UChar>;
// 32 matches that used by HTMLToken::Attribute.
- typedef std::conditional<std::is_same_v<Char, UChar>,
+ typedef typename std::conditional<std::is_same_v<Char, UChar>,
UCharLiteralBuffer<32>,
LCharLiteralBuffer<32>>::type LiteralBufferType;
typedef UCharLiteralBuffer<32> UCharLiteralBufferType;
diff -up chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h.me chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h
--- chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h.me 2023-08-02 16:18:30.380108125 +0200
+++ chromium-116.0.5845.50/content/public/browser/web_ui_browser_interface_broker_registry.h 2023-08-02 16:20:59.660024578 +0200
@@ -127,10 +127,10 @@ class CONTENT_EXPORT WebUIBrowserInterfa
//
// TODO(crbug.com/1407936): Point to WebUIJsBridge documentation.
template <typename ControllerType>
- JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() {
+ typename JsBridgeTraits<ControllerType>::BinderInitializer& ForWebUIWithJsBridge() {
using Traits = JsBridgeTraits<ControllerType>;
- using Interface = Traits::Interface;
- using JsBridgeBinderInitializer = Traits::BinderInitializer;
+ using Interface = typename Traits::Interface;
+ using JsBridgeBinderInitializer = typename Traits::BinderInitializer;
// WebUIController::GetType() requires an instantiated WebUIController
// (because it's a virtual method and can't be static). Here we only have
diff -up chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h
--- chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h.me 2023-08-02 20:41:23.984729462 +0200
+++ chromium-116.0.5845.50/third_party/blink/renderer/core/paint/object_paint_properties_sparse.h 2023-08-02 20:41:53.737583093 +0200
@@ -270,8 +270,8 @@ class CORE_EXPORT ObjectPaintPropertiesS
NodeList& nodes,
NodeId node_id,
const ParentType& parent,
- NodeType::State&& state,
- const NodeType::AnimationState& animation_state =
+ typename NodeType::State&& state,
+ const typename NodeType::AnimationState& animation_state =
NodeType::AnimationState()) {
// First, check if we need to add a new node.
if (!nodes.HasField(node_id)) {
diff -up chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h.me chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h
--- chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h.me 2023-09-15 10:22:51.889698402 +0200
+++ chromium-117.0.5938.62/components/optimization_guide/core/tflite_model_executor.h 2023-09-15 10:28:26.702716224 +0200
@@ -234,7 +234,7 @@ class TFLiteModelExecutor : public Model
// Starts the synchronous execution of the model. Returns model outputs.
// Model needs to be loaded. Synchronous calls do not load or unload model.
std::vector<absl::optional<OutputType>> SendForBatchExecutionSync(
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs)
override {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -389,7 +389,7 @@ class TFLiteModelExecutor : public Model
// executes it on the model execution thread.
void LoadModelFileAndBatchExecute(
BatchExecutionCallback callback_on_complete,
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs) {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -406,7 +406,7 @@ class TFLiteModelExecutor : public Model
// Batch executes the loaded model for inputs.
void BatchExecuteLoadedModel(
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
std::vector<absl::optional<OutputType>>* outputs) {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -466,7 +466,7 @@ class TFLiteModelExecutor : public Model
// Unloads the model if needed.
void BatchExecuteLoadedModelAndRunCallback(
BatchExecutionCallback callback_on_complete,
- ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
+ typename ModelExecutor<OutputType, InputType>::ConstRefInputVector inputs,
ExecutionStatus execution_status) {
DCHECK(execution_task_runner_->RunsTasksInCurrentSequence());
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc.me chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc
--- chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc.me 2023-09-15 17:20:22.550657586 +0200
+++ chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.cc 2023-09-15 17:24:11.396716734 +0200
@@ -399,7 +399,7 @@ class RetryingFetcherImpl final : public
RetryingFetcherImpl(const RetryingFetcherImpl&) = delete;
RetryingFetcherImpl& operator=(const RetryingFetcherImpl&) = delete;
- void Start(ProtoFetcher<Response>::Callback callback) override {
+ void Start(typename ProtoFetcher<Response>::Callback callback) override {
callback_ = std::move(callback);
Retry();
}
@@ -435,7 +435,7 @@ class RetryingFetcherImpl final : public
}
// Client callback.
- ProtoFetcher<Response>::Callback callback_;
+ typename ProtoFetcher<Response>::Callback callback_;
// Retry controls.
base::OneShotTimer timer_;
@@ -578,7 +578,7 @@ ParallelFetchManager<Request, Response>:
template <typename Request, typename Response>
void ParallelFetchManager<Request, Response>::Fetch(
const Request& request,
- Fetcher::Callback callback) {
+ typename Fetcher::Callback callback) {
CHECK(callback) << "Use base::DoNothing() instead of empty callback.";
KeyType key = requests_in_flight_.Add(MakeFetcher(request));
requests_in_flight_.Lookup(key)->Start(
diff -up chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h.me chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h
--- chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h.me 2023-09-15 17:20:56.540460391 +0200
+++ chromium-117.0.5938.62/components/supervised_user/core/browser/proto_fetcher.h 2023-09-15 17:22:18.246237817 +0200
@@ -165,10 +165,10 @@ class ParallelFetchManager {
// Starts the fetch. Underlying fetcher is stored internally, and will be
// cleaned up after finish or when this manager is destroyed.
- void Fetch(const Request& request, Fetcher::Callback callback);
+ void Fetch(const Request& request, typename Fetcher::Callback callback);
private:
- using KeyType = base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
+ using KeyType = typename base::IDMap<std::unique_ptr<Fetcher>>::KeyType;
// Remove fetcher under key from requests_in_flight_.
void Remove(KeyType key);

View file

@ -0,0 +1,15 @@
diff -up chromium-118.0.5993.32/base/allocator/partition_allocator/partition_alloc_config.h.me chromium-118.0.5993.32/base/allocator/partition_allocator/partition_alloc_config.h
--- chromium-118.0.5993.32/base/allocator/partition_allocator/partition_alloc_config.h.me 2023-10-03 20:25:01.282782425 +0200
+++ chromium-118.0.5993.32/base/allocator/partition_allocator/partition_alloc_config.h 2023-10-03 20:25:27.151236664 +0200
@@ -152,10 +152,7 @@ static_assert(sizeof(void*) != 8, "");
(!BUILDFLAG(PUT_REF_COUNT_IN_PREVIOUS_SLOT) && \
defined(ARCH_CPU_LITTLE_ENDIAN))
-#define PA_CONFIG_HAS_MEMORY_TAGGING() \
- (defined(ARCH_CPU_ARM64) && defined(__clang__) && \
- !defined(ADDRESS_SANITIZER) && \
- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID)))
+#define PA_CONFIG_HAS_MEMORY_TAGGING() 0
#if PA_CONFIG(HAS_MEMORY_TAGGING)
static_assert(sizeof(void*) == 8);

View file

@ -0,0 +1,24 @@
diff -up chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.cc.me chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.cc
--- chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.cc.me 2023-10-07 12:24:51.194618144 +0200
+++ chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.cc 2023-10-07 12:26:30.727448581 +0200
@@ -1219,7 +1219,7 @@ void V4L2CaptureDelegate::SetErrorState(
client_->OnError(error, from_here, reason);
}
-#if BUILDFLAG(IS_LINUX)
+#if 0 //BUILDFLAG(IS_LINUX)
gfx::ColorSpace V4L2CaptureDelegate::BuildColorSpaceFromv4l2() {
v4l2_colorspace v4l2_primary = (v4l2_colorspace)video_fmt_.fmt.pix.colorspace;
v4l2_quantization v4l2_range =
diff -up chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.h.me chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.h
--- chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.h.me 2023-10-07 12:29:35.588406023 +0200
+++ chromium-118.0.5993.54/media/capture/video/linux/v4l2_capture_delegate.h 2023-10-07 12:28:42.057036014 +0200
@@ -133,7 +133,7 @@ class CAPTURE_EXPORT V4L2CaptureDelegate
const base::Location& from_here,
const std::string& reason);
-#if BUILDFLAG(IS_LINUX)
+#if 0 //BUILDFLAG(IS_LINUX)
// Systems which describe a "color space" usually map that to one or more of
// {primary, matrix, transfer, range}. BuildColorSpaceFromv4l2() will use the
// matched value as first priority. Otherwise, if there is no best matching

View file

@ -0,0 +1,138 @@
diff -up chromium-115.0.5790.102/base/write_build_date_header.py.me chromium-115.0.5790.102/base/write_build_date_header.py
--- chromium-115.0.5790.102/base/write_build_date_header.py.me 2023-07-22 14:23:42.620679397 +0200
+++ chromium-115.0.5790.102/base/write_build_date_header.py 2023-07-22 15:24:46.833310310 +0200
@@ -17,7 +17,7 @@ def main():
args = argument_parser.parse_args()
date_val = int(args.timestamp)
- date = datetime.datetime.utcfromtimestamp(date_val)
+ date = datetime.datetime.fromtimestamp(date_val, datetime.timezone.utc)
output = ('// Generated by //base/write_build_date_header.py\n'
'#ifndef BASE_GENERATED_BUILD_DATE_TIMESTAMP \n'
f'#define BASE_GENERATED_BUILD_DATE_TIMESTAMP {date_val}'
diff -up chromium-115.0.5790.102/build/write_buildflag_header.py.me chromium-115.0.5790.102/build/write_buildflag_header.py
--- chromium-115.0.5790.102/build/write_buildflag_header.py.me 2023-07-22 14:16:14.196975451 +0200
+++ chromium-115.0.5790.102/build/write_buildflag_header.py 2023-07-22 14:20:24.977239994 +0200
@@ -44,7 +44,7 @@ def GetOptions():
header_guard = cmdline_options.output.upper()
if header_guard[0].isdigit():
header_guard = '_' + header_guard
- header_guard = re.sub('[^\w]', '_', header_guard)
+ header_guard = re.sub(r'[^\w]', '_', header_guard)
header_guard += '_'
# The actual output file is inside the gen dir.
diff -up chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py
--- chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py.me 2023-07-22 14:47:34.230764210 +0200
+++ chromium-115.0.5790.102/components/resources/protobufs/binary_proto_generator.py 2023-07-22 15:11:50.360983383 +0200
@@ -9,7 +9,8 @@
"""
from __future__ import print_function
import abc
-import imp
+import types
+import importlib
import optparse
import os
import re
@@ -40,6 +41,12 @@ class GoogleProtobufModuleImporter:
return filepath
return None
+ def load_source(name: str, path: str) -> types.ModuleType:
+ spec = importlib.util.spec_from_file_location(name, path)
+ module = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(module)
+ return module
+
def _module_exists(self, fullname):
return self._fullname_to_filepath(fullname) is not None
@@ -68,7 +75,7 @@ class GoogleProtobufModuleImporter:
raise ImportError(fullname)
filepath = self._fullname_to_filepath(fullname)
- return imp.load_source(fullname, filepath)
+ return load_source(fullname, filepath)
class BinaryProtoGenerator:
diff -up chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py
--- chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py.me 2023-07-22 15:17:19.114258801 +0200
+++ chromium-115.0.5790.102/mojo/public/tools/bindings/concatenate_and_replace_closure_exports.py 2023-07-22 15:17:43.368200491 +0200
@@ -32,7 +32,7 @@ def FilterLine(filename, line, output):
return
if line.startswith("goog.provide"):
- match = re.match("goog.provide\('([^']+)'\);", line)
+ match = re.match(r"goog.provide\('([^']+)'\);", line)
if not match:
print("Invalid goog.provide line in %s:\n%s" % (filename, line))
sys.exit(1)
diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py
--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py.me 2023-07-22 15:12:41.850895179 +0200
+++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/html_generation_controller.py 2023-07-22 15:12:55.844871207 +0200
@@ -18,7 +18,7 @@ class HTMLGenerationController(object):
def GetHTMLForInlineStylesheet(self, contents):
if self.current_module is None:
- if re.search('url\(.+\)', contents):
+ if re.search(r'url\(.+\)', contents):
raise Exception(
'Default HTMLGenerationController cannot handle inline style urls')
return contents
diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py
--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py.me 2023-07-22 15:14:06.923717910 +0200
+++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/js_utils.py 2023-07-22 15:18:03.704150614 +0200
@@ -4,4 +4,4 @@
def EscapeJSIfNeeded(js):
- return js.replace('</script>', '<\/script>')
+ return js.replace(r'</script>', r'<\/script>')
diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py
--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py.me 2023-07-22 15:14:30.105662532 +0200
+++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/parse_html_deps.py 2023-07-22 15:14:57.977595950 +0200
@@ -293,6 +293,6 @@ class HTMLModuleParser():
html = ''
else:
if html.find('< /script>') != -1:
- raise Exception('Escape script tags with <\/script>')
+ raise Exception(r'Escape script tags with <\/script>')
return HTMLModuleParserResults(html)
diff -up chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py
--- chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py.me 2023-07-22 15:13:12.316842990 +0200
+++ chromium-115.0.5790.102/third_party/catapult/common/py_vulcanize/py_vulcanize/style_sheet.py 2023-07-22 15:13:49.684759091 +0200
@@ -60,7 +60,7 @@ class ParsedStyleSheet(object):
return 'url(data:image/%s;base64,%s)' % (ext[1:], data.decode('utf-8'))
# I'm assuming we only have url()'s associated with images
- return re.sub('url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
+ return re.sub(r'url\((?P<quote>"|\'|)(?P<url>[^"\'()]*)(?P=quote)\)',
InlineUrl, self.contents)
def AppendDirectlyDependentFilenamesTo(self, dependent_filenames):
@@ -72,7 +72,7 @@ class ParsedStyleSheet(object):
raise Exception('@imports are not supported')
matches = re.findall(
- 'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
+ r'url\((?:["|\']?)([^"\'()]*)(?:["|\']?)\)',
self.contents)
def resolve_url(url):
diff -up chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py
--- chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py.me 2023-07-22 15:11:56.826972306 +0200
+++ chromium-115.0.5790.102/third_party/dawn/generator/generator_lib.py 2023-07-22 15:12:37.550902545 +0200
@@ -119,8 +119,8 @@ class _PreprocessingLoader(jinja2.BaseLo
source = self.preprocess(f.read())
return source, path, lambda: mtime == os.path.getmtime(path)
- blockstart = re.compile('{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
- blockend = re.compile('{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
+ blockstart = re.compile(r'{%-?\s*(if|elif|else|for|block|macro)[^}]*%}')
+ blockend = re.compile(r'{%-?\s*(end(if|for|block|macro)|elif|else)[^}]*%}')
def preprocess(self, source):
lines = source.split('\n')

View file

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

12
chromium-119-assert.patch Normal file
View file

@ -0,0 +1,12 @@
diff -up chromium-119.0.6045.59/v8/src/base/small-vector.h.than chromium-119.0.6045.59/v8/src/base/small-vector.h
--- chromium-119.0.6045.59/v8/src/base/small-vector.h.than 2023-11-01 16:13:12.645301345 +0100
+++ chromium-119.0.6045.59/v8/src/base/small-vector.h 2023-11-01 16:13:29.660610182 +0100
@@ -22,7 +22,7 @@ template <typename T, size_t kSize, type
class SmallVector {
// Currently only support trivially copyable and trivially destructible data
// types, as it uses memcpy to copy elements and never calls destructors.
- ASSERT_TRIVIALLY_COPYABLE(T);
+ //ASSERT_TRIVIALLY_COPYABLE(T);
static_assert(std::is_trivially_destructible<T>::value);
public:

View file

@ -0,0 +1,12 @@
diff -up chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h
--- chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h.me 2023-10-31 21:05:05.548565241 +0100
+++ chromium-119.0.6045.59/components/miracle_parameter/common/public/miracle_parameter.h 2023-10-31 21:20:53.945532094 +0100
@@ -93,7 +93,7 @@ class MiracleParameter {
template <>
class MiracleParameter<std::string> : public MiracleParameterBase<std::string> {
public:
- constexpr MiracleParameter(const base::Feature* feature,
+ MiracleParameter(const base::Feature* feature,
const char* param_name,
std::string default_value)
: MiracleParameterBase(feature, param_name, std::move(default_value)) {}

View file

@ -0,0 +1,19 @@
diff -up chromium-119.0.6045.105/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop chromium-119.0.6045.105/chrome/browser/media/router/media_router_feature.cc
--- chromium-119.0.6045.105/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop 2023-11-06 12:57:04.096696491 +0100
+++ chromium-119.0.6045.105/chrome/browser/media/router/media_router_feature.cc 2023-11-06 13:00:30.480926343 +0100
@@ -68,15 +68,9 @@ BASE_FEATURE(kCastMirroringPlayoutDelay,
base::FEATURE_DISABLED_BY_DEFAULT);
const base::FeatureParam<int> kCastMirroringPlayoutDelayMs{
&kCastMirroringPlayoutDelay, "cast_mirroring_playout_delay_ms", -1};
-#if BUILDFLAG(IS_CHROMEOS)
BASE_FEATURE(kGlobalMediaControlsCastStartStop,
"GlobalMediaControlsCastStartStop",
base::FEATURE_DISABLED_BY_DEFAULT);
-#else
-BASE_FEATURE(kGlobalMediaControlsCastStartStop,
- "GlobalMediaControlsCastStartStop",
- base::FEATURE_ENABLED_BY_DEFAULT);
-#endif // BUILDFLAG(IS_CHROMEOS)
#endif // !BUILDFLAG(IS_ANDROID)
namespace {

View file

@ -0,0 +1,50 @@
commit fc09363b2278893790d131c72a4ed96ec9837624
Author: Elly <ellyjones@chromium.org>
Date: Thu Sep 21 22:09:59 2023 +0000
a11y: don't redefine ATSPI version macros
As of ATSPI 2.49.90, the library itself defines these, and if we
redefine them on the compiler command line, we get a build warning.
See: https://gitlab.gnome.org/GNOME/at-spi2-core/-/issues/129
Bug: None
Change-Id: I5cc655bd32c90d7af52c9dca60724f334c4a2a65
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4883576
Auto-Submit: Elly FJ <ellyjones@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1199870}
diff --git a/build/config/linux/atspi2/BUILD.gn b/build/config/linux/atspi2/BUILD.gn
index 51b6d33aab3c2..d1629205c82a3 100644
--- a/build/config/linux/atspi2/BUILD.gn
+++ b/build/config/linux/atspi2/BUILD.gn
@@ -17,13 +17,19 @@ if (use_atk) {
"--version-as-components",
],
"value")
- atspi_major_version = atspi_version[0]
- atspi_minor_version = atspi_version[1]
- atspi_micro_version = atspi_version[2]
- defines = [
- "ATSPI_MAJOR_VERSION=$atspi_major_version",
- "ATSPI_MINOR_VERSION=$atspi_minor_version",
- "ATSPI_MICRO_VERSION=$atspi_micro_version",
- ]
+ major = atspi_version[0]
+ minor = atspi_version[1]
+ micro = atspi_version[2]
+
+ # ATSPI 2.49.90 now defines these for us and it's an error for us to
+ # redefine them on the compiler command line.
+ # See ATSPI 927344a34cd5bf81fc64da4968241735ecb4f03b
+ if (minor < 49 || (minor == 49 && micro < 90)) {
+ defines = [
+ "ATSPI_MAJOR_VERSION=$major",
+ "ATSPI_MINOR_VERSION=$minor",
+ "ATSPI_MICRO_VERSION=$micro",
+ ]
+ }
}
}

View file

@ -0,0 +1,189 @@
commit 87fca7f1759e800bd72b5ab6511eea17d6400a76
Author: Pilar Molina Lopez <pmolinalopez@chromium.org>
Date: Tue Oct 24 19:57:55 2023 +0000
video: hide UseChromeOSDirectVideoDecoder flag on VA-API devices
We are seeing crashes causes by this CHECK statement:
https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/gpu_utils.cc;l=151;drc=0e777ba9b6c34611705d5b145c92bcd09539011c
It's triggered when the user manually disables the UseChromeOSDirectVideoDecoder
flag on VA-API devices (Intel and AMD). This flag is supported only on
non-Intel and non-AMD devices. This CL adds this information to the flag
description and hides the flag in case VA-API is used.
Bug: 1469285
Test: manual test on volteer
Change-Id: I153b9ccb3815498c91ce5eee966834060749e247
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4960919
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Commit-Queue: Pilar Molina Lopez <pmolinalopez@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1214411}
diff -up chromium-119.0.6045.105/chrome/browser/about_flags.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/chrome/browser/about_flags.cc
--- chromium-119.0.6045.105/chrome/browser/about_flags.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:09.000000000 +0100
+++ chromium-119.0.6045.105/chrome/browser/about_flags.cc 2023-11-06 17:12:08.057984291 +0100
@@ -7771,11 +7771,13 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+#if !BUILDFLAG(USE_VAAPI)
{"chromeos-direct-video-decoder",
flag_descriptions::kChromeOSDirectVideoDecoderName,
flag_descriptions::kChromeOSDirectVideoDecoderDescription,
kOsCrOS | kOsLacros,
FEATURE_VALUE_TYPE(media::kUseChromeOSDirectVideoDecoder)},
+#endif // !BUILDFLAG(USE_VAAPI)
{"enable-vbr-encode-acceleration",
flag_descriptions::kChromeOSHWVBREncodingName,
diff -up chromium-119.0.6045.105/chrome/browser/DEPS.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/chrome/browser/DEPS
--- chromium-119.0.6045.105/chrome/browser/DEPS.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:09.000000000 +0100
+++ chromium-119.0.6045.105/chrome/browser/DEPS 2023-11-06 17:12:08.055984248 +0100
@@ -415,6 +415,7 @@ include_rules = [
"+media/base", # For media switches
"+media/capabilities", # For InMemoryVideoDecodeStatsDB
"+media/cdm",
+ "+media/gpu/buildflags.h",
"+media/remoting/device_capability_checker.h",
"+media/capture",
"+media/midi", # For midi switches
diff -up chromium-119.0.6045.105/chrome/browser/flag_descriptions.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/chrome/browser/flag_descriptions.cc
--- chromium-119.0.6045.105/chrome/browser/flag_descriptions.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:12.000000000 +0100
+++ chromium-119.0.6045.105/chrome/browser/flag_descriptions.cc 2023-11-06 17:12:08.059984335 +0100
@@ -7,6 +7,7 @@
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/supervised_user/core/common/buildflags.h"
+#include "media/gpu/buildflags.h"
#include "pdf/buildflags.h"
// Keep in identical order as the header file, see the comment at the top
@@ -7424,6 +7425,7 @@ const char kVaapiVP9kSVCEncoderDescripti
#endif // defined(ARCH_CPU_X86_FAMILY) && BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
+#if !BUILDFLAG(USE_VAAPI)
const char kChromeOSDirectVideoDecoderName[] = "ChromeOS Direct Video Decoder";
const char kChromeOSDirectVideoDecoderDescription[] =
"Enables the hardware-accelerated ChromeOS direct media::VideoDecoder "
@@ -7431,7 +7433,8 @@ const char kChromeOSDirectVideoDecoderDe
"--platform-disallows-chromeos-direct-video-decoder command line switch "
"which is added for platforms where said direct VideoDecoder does not work "
"or is not well tested (see the disable_cros_video_decoder USE flag in "
- "ChromeOS)";
+ "ChromeOS). This flag is supported only on non-Intel and non-AMD devices.";
+#endif // !BUILDFLAG(USE_VAAPI)
const char kChromeOSHWVBREncodingName[] =
"ChromeOS Hardware Variable Bitrate Encoding";
const char kChromeOSHWVBREncodingDescription[] =
diff -up chromium-119.0.6045.105/content/public/browser/gpu_utils.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/content/public/browser/gpu_utils.cc
--- chromium-119.0.6045.105/content/public/browser/gpu_utils.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:26.000000000 +0100
+++ chromium-119.0.6045.105/content/public/browser/gpu_utils.cc 2023-11-06 17:12:08.059984335 +0100
@@ -133,20 +133,26 @@ const gpu::GpuPreferences GetGpuPreferen
#if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
// The direct VideoDecoder is disallowed on some particular SoC/platforms.
const bool should_use_direct_video_decoder =
+#if BUILDFLAG(USE_VAAPI)
+ true;
+#else
!command_line->HasSwitch(
switches::kPlatformDisallowsChromeOSDirectVideoDecoder) &&
base::FeatureList::IsEnabled(media::kUseChromeOSDirectVideoDecoder);
+#endif // BUILDFLAG(USE_VAAPI)
+
+ gpu_preferences.enable_chromeos_direct_video_decoder =
+#if BUILDFLAG(USE_VAAPI)
+ should_use_direct_video_decoder;
+#else
+ // For testing purposes, the following flag allows using the "other" video
+ // decoder implementation.
+ base::FeatureList::IsEnabled(
+ media::kUseAlternateVideoDecoderImplementation)
+ ? !should_use_direct_video_decoder
+ : should_use_direct_video_decoder;
+#endif // BUILDFLAG(USE_VAAPI)
- // For testing purposes, the following flag allows using the "other" video
- // decoder implementation.
- if (base::FeatureList::IsEnabled(
- media::kUseAlternateVideoDecoderImplementation)) {
- gpu_preferences.enable_chromeos_direct_video_decoder =
- !should_use_direct_video_decoder;
- } else {
- gpu_preferences.enable_chromeos_direct_video_decoder =
- should_use_direct_video_decoder;
- }
#if BUILDFLAG(USE_VAAPI)
CHECK(gpu_preferences.enable_chromeos_direct_video_decoder);
#endif // BUILDFLAG(USE_VAAPI)
diff -up chromium-119.0.6045.105/media/base/media_switches.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/media/base/media_switches.cc
--- chromium-119.0.6045.105/media/base/media_switches.cc.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:31.000000000 +0100
+++ chromium-119.0.6045.105/media/base/media_switches.cc 2023-11-06 17:12:08.060984356 +0100
@@ -1202,6 +1202,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding,
"ChromeOSHWVBREncoding",
base::FEATURE_DISABLED_BY_DEFAULT);
+#if !BUILDFLAG(USE_VAAPI)
// Enable the hardware-accelerated direct video decoder instead of the one
// needing the VdaVideoDecoder adapter. This flag is used mainly as a
// chrome:flag for developers debugging issues as well as to be able to
@@ -1210,6 +1211,7 @@ BASE_FEATURE(kChromeOSHWVBREncoding,
BASE_FEATURE(kUseChromeOSDirectVideoDecoder,
"UseChromeOSDirectVideoDecoder",
base::FEATURE_ENABLED_BY_DEFAULT);
+#endif // !BUILDFLAG(USE_VAAPI)
// Limit the number of concurrent hardware decoder instances on ChromeOS.
BASE_FEATURE(kLimitConcurrentDecoderInstances,
@@ -1238,7 +1240,7 @@ BASE_FEATURE(kPreferSoftwareMT21,
"PreferSoftwareMT21",
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // defined(ARCH_CPU_ARM_FAMILY)
-#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
// ChromeOS has one of two VideoDecoder implementations active based on
// SoC/board specific configurations that are sent via command line flags. This
// switch allows using the non default implementation for testing.
@@ -1246,7 +1248,7 @@ BASE_FEATURE(kPreferSoftwareMT21,
BASE_FEATURE(kUseAlternateVideoDecoderImplementation,
"UseAlternateVideoDecoderImplementation",
base::FEATURE_DISABLED_BY_DEFAULT);
-#endif // BUILDFLAG(IS_CHROMEOS)
+#endif // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
#endif // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
#if BUILDFLAG(IS_WIN)
diff -up chromium-119.0.6045.105/media/base/media_switches.h.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices chromium-119.0.6045.105/media/base/media_switches.h
--- chromium-119.0.6045.105/media/base/media_switches.h.hide-UseChromeOSDirectVideoDecoder-flag-on-VA-API-devices 2023-11-01 19:10:31.000000000 +0100
+++ chromium-119.0.6045.105/media/base/media_switches.h 2023-11-06 17:12:08.060984356 +0100
@@ -14,6 +14,7 @@
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "media/base/media_export.h"
+#include "media/gpu/buildflags.h"
#include "media/media_buildflags.h"
namespace base {
@@ -382,16 +383,18 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kBuilt
#if BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWAV1Decoder);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kChromeOSHWVBREncoding);
+#if !BUILDFLAG(USE_VAAPI)
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseChromeOSDirectVideoDecoder);
+#endif // !BUILDFLAG(USE_VAAPI)
MEDIA_EXPORT BASE_DECLARE_FEATURE(kLimitConcurrentDecoderInstances);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUSeSequencedTaskRunnerForVEA);
#if defined(ARCH_CPU_ARM_FAMILY)
MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferGLImageProcessor);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kPreferSoftwareMT21);
#endif // defined(ARCH_CPU_ARM_FAMILY)
-#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseAlternateVideoDecoderImplementation);
-#endif // BUILDFLAG(IS_CHROMEOS)
+#endif // BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(USE_VAAPI)
#endif // BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
#if BUILDFLAG(IS_WIN)

View file

@ -0,0 +1,470 @@
diff -up chromium-119.0.6045.105/base/check_op.h.missing-header-files chromium-119.0.6045.105/base/check_op.h
--- chromium-119.0.6045.105/base/check_op.h.missing-header-files 2023-11-01 19:10:05.000000000 +0100
+++ chromium-119.0.6045.105/base/check_op.h 2023-11-06 14:34:01.808868982 +0100
@@ -5,6 +5,7 @@
#ifndef BASE_CHECK_OP_H_
#define BASE_CHECK_OP_H_
+#include <cstdint>
#include <cstddef>
#include <string>
#include <string_view>
diff -up chromium-119.0.6045.105/base/containers/flat_map.h.missing-header-files chromium-119.0.6045.105/base/containers/flat_map.h
--- chromium-119.0.6045.105/base/containers/flat_map.h.missing-header-files 2023-11-01 19:10:05.000000000 +0100
+++ chromium-119.0.6045.105/base/containers/flat_map.h 2023-11-06 14:34:01.813869089 +0100
@@ -5,6 +5,7 @@
#ifndef BASE_CONTAINERS_FLAT_MAP_H_
#define BASE_CONTAINERS_FLAT_MAP_H_
+#include <cstdint>
#include <functional>
#include <tuple>
#include <type_traits>
diff -up chromium-119.0.6045.105/base/debug/profiler.h.missing-header-files chromium-119.0.6045.105/base/debug/profiler.h
--- chromium-119.0.6045.105/base/debug/profiler.h.missing-header-files 2023-11-01 19:10:05.000000000 +0100
+++ chromium-119.0.6045.105/base/debug/profiler.h 2023-11-06 14:34:01.809869004 +0100
@@ -8,6 +8,7 @@
#include <stddef.h>
#include <stdint.h>
+#include <cstdint>
#include <string>
#include "base/base_export.h"
diff -up chromium-119.0.6045.105/base/memory/ref_counted.h.missing-header-files chromium-119.0.6045.105/base/memory/ref_counted.h
--- chromium-119.0.6045.105/base/memory/ref_counted.h.missing-header-files 2023-11-01 19:10:05.000000000 +0100
+++ chromium-119.0.6045.105/base/memory/ref_counted.h 2023-11-06 14:34:01.808868982 +0100
@@ -6,6 +6,7 @@
#define BASE_MEMORY_REF_COUNTED_H_
#include <stddef.h>
+#include <limits>
#include <limits>
#include <utility>
diff -up chromium-119.0.6045.105/chrome/browser/privacy_budget/encountered_surface_tracker.h.missing-header-files chromium-119.0.6045.105/chrome/browser/privacy_budget/encountered_surface_tracker.h
--- chromium-119.0.6045.105/chrome/browser/privacy_budget/encountered_surface_tracker.h.missing-header-files 2023-11-01 19:10:13.000000000 +0100
+++ chromium-119.0.6045.105/chrome/browser/privacy_budget/encountered_surface_tracker.h 2023-11-06 14:34:01.814869110 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <map>
#include "base/containers/flat_set.h"
diff -up chromium-119.0.6045.105/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files chromium-119.0.6045.105/chrome/browser/webauthn/authenticator_request_dialog_model.h
--- chromium-119.0.6045.105/chrome/browser/webauthn/authenticator_request_dialog_model.h.missing-header-files 2023-11-01 19:10:16.000000000 +0100
+++ chromium-119.0.6045.105/chrome/browser/webauthn/authenticator_request_dialog_model.h 2023-11-06 14:34:01.817869174 +0100
@@ -8,6 +8,7 @@
#include <memory>
#include <string>
#include <vector>
+#include <variant>
#include "base/containers/span.h"
#include "base/functional/callback_forward.h"
diff -up chromium-119.0.6045.105/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files chromium-119.0.6045.105/chrome/test/chromedriver/chrome/web_view_impl.cc
--- chromium-119.0.6045.105/chrome/test/chromedriver/chrome/web_view_impl.cc.missing-header-files 2023-11-01 19:10:16.000000000 +0100
+++ chromium-119.0.6045.105/chrome/test/chromedriver/chrome/web_view_impl.cc 2023-11-06 14:34:01.818869196 +0100
@@ -11,6 +11,7 @@
#include <queue>
#include <utility>
#include <vector>
+#include <cstring>
#include "base/check.h"
#include "base/files/file_path.h"
diff -up chromium-119.0.6045.105/components/autofill/core/browser/autofill_ablation_study.h.missing-header-files chromium-119.0.6045.105/components/autofill/core/browser/autofill_ablation_study.h
--- chromium-119.0.6045.105/components/autofill/core/browser/autofill_ablation_study.h.missing-header-files 2023-11-01 19:10:19.000000000 +0100
+++ chromium-119.0.6045.105/components/autofill/core/browser/autofill_ablation_study.h 2023-11-06 14:34:01.815869132 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <string>
class GURL;
diff -up chromium-119.0.6045.105/components/crash/core/app/crash_reporter_client.h.missing-header-files chromium-119.0.6045.105/components/crash/core/app/crash_reporter_client.h
--- chromium-119.0.6045.105/components/crash/core/app/crash_reporter_client.h.missing-header-files 2023-11-01 19:10:20.000000000 +0100
+++ chromium-119.0.6045.105/components/crash/core/app/crash_reporter_client.h 2023-11-06 14:34:01.813869089 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <string>
#include "build/build_config.h"
diff -up chromium-119.0.6045.105/components/feature_engagement/internal/event_storage_validator.h.missing-header-files chromium-119.0.6045.105/components/feature_engagement/internal/event_storage_validator.h
--- chromium-119.0.6045.105/components/feature_engagement/internal/event_storage_validator.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
+++ chromium-119.0.6045.105/components/feature_engagement/internal/event_storage_validator.h 2023-11-06 14:34:01.814869110 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <string>
namespace feature_engagement {
diff -up chromium-119.0.6045.105/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files chromium-119.0.6045.105/components/feature_engagement/internal/never_event_storage_validator.h
--- chromium-119.0.6045.105/components/feature_engagement/internal/never_event_storage_validator.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
+++ chromium-119.0.6045.105/components/feature_engagement/internal/never_event_storage_validator.h 2023-11-06 14:34:01.814869110 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
#define COMPONENTS_FEATURE_ENGAGEMENT_INTERNAL_NEVER_EVENT_STORAGE_VALIDATOR_H_
+#include <cstdint>
#include <string>
#include "components/feature_engagement/internal/event_storage_validator.h"
diff -up chromium-119.0.6045.105/components/omnibox/browser/on_device_head_model.h.missing-header-files chromium-119.0.6045.105/components/omnibox/browser/on_device_head_model.h
--- chromium-119.0.6045.105/components/omnibox/browser/on_device_head_model.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
+++ chromium-119.0.6045.105/components/omnibox/browser/on_device_head_model.h 2023-11-06 14:34:01.815869132 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <string>
#include <utility>
#include <vector>
diff -up chromium-119.0.6045.105/components/password_manager/core/browser/generation/password_generator.h.missing-header-files chromium-119.0.6045.105/components/password_manager/core/browser/generation/password_generator.h
--- chromium-119.0.6045.105/components/password_manager/core/browser/generation/password_generator.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
+++ chromium-119.0.6045.105/components/password_manager/core/browser/generation/password_generator.h 2023-11-06 14:34:01.814869110 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <string>
diff -up chromium-119.0.6045.105/components/payments/content/utility/fingerprint_parser.h.missing-header-files chromium-119.0.6045.105/components/payments/content/utility/fingerprint_parser.h
--- chromium-119.0.6045.105/components/payments/content/utility/fingerprint_parser.h.missing-header-files 2023-11-01 19:10:21.000000000 +0100
+++ chromium-119.0.6045.105/components/payments/content/utility/fingerprint_parser.h 2023-11-06 14:34:01.815869132 +0100
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
#define COMPONENTS_PAYMENTS_CONTENT_UTILITY_FINGERPRINT_PARSER_H_
+#include <cstdint>
#include <stddef.h>
#include <stdint.h>
diff -up chromium-119.0.6045.105/gin/time_clamper.h.missing-header-files chromium-119.0.6045.105/gin/time_clamper.h
--- chromium-119.0.6045.105/gin/time_clamper.h.missing-header-files 2023-11-01 19:10:28.000000000 +0100
+++ chromium-119.0.6045.105/gin/time_clamper.h 2023-11-06 14:34:01.818869196 +0100
@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper {
const int64_t micros = now_micros % 1000;
// abs() is necessary for devices with times before unix-epoch (most likely
// configured incorrectly).
- if (abs(micros) + kResolutionMicros < 1000) {
+ if (std::abs(micros) + kResolutionMicros < 1000) {
return now_micros / 1000;
}
return ClampTimeResolution(now_micros) / 1000;
diff -up chromium-119.0.6045.105/gpu/config/gpu_feature_info.h.missing-header-files chromium-119.0.6045.105/gpu/config/gpu_feature_info.h
--- chromium-119.0.6045.105/gpu/config/gpu_feature_info.h.missing-header-files 2023-11-01 19:10:28.000000000 +0100
+++ chromium-119.0.6045.105/gpu/config/gpu_feature_info.h 2023-11-06 14:34:01.809869004 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <string>
#include <vector>
diff -up chromium-119.0.6045.105/net/base/net_export.h.missing-header-files chromium-119.0.6045.105/net/base/net_export.h
--- chromium-119.0.6045.105/net/base/net_export.h.missing-header-files 2023-11-01 19:10:32.000000000 +0100
+++ chromium-119.0.6045.105/net/base/net_export.h 2023-11-06 14:34:01.809869004 +0100
@@ -5,6 +5,8 @@
#ifndef NET_BASE_NET_EXPORT_H_
#define NET_BASE_NET_EXPORT_H_
+#include <cstdint>
+
// Defines NET_EXPORT so that functionality implemented by the net module can
// be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to
// access features not intended to be used directly by real consumers.
diff -up chromium-119.0.6045.105/pdf/document_attachment_info.h.missing-header-files chromium-119.0.6045.105/pdf/document_attachment_info.h
--- chromium-119.0.6045.105/pdf/document_attachment_info.h.missing-header-files 2023-11-01 19:10:34.000000000 +0100
+++ chromium-119.0.6045.105/pdf/document_attachment_info.h 2023-11-06 14:34:01.815869132 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <string>
diff -up chromium-119.0.6045.105/sandbox/linux/syscall_broker/broker_file_permission.h.missing-header-files chromium-119.0.6045.105/sandbox/linux/syscall_broker/broker_file_permission.h
--- chromium-119.0.6045.105/sandbox/linux/syscall_broker/broker_file_permission.h.missing-header-files 2023-11-01 19:10:34.000000000 +0100
+++ chromium-119.0.6045.105/sandbox/linux/syscall_broker/broker_file_permission.h 2023-11-06 14:34:01.809869004 +0100
@@ -5,6 +5,7 @@
#ifndef SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
#define SANDBOX_LINUX_SYSCALL_BROKER_BROKER_FILE_PERMISSION_H_
+#include <cstdint>
#include <bitset>
#include <cstdint>
#include <string>
diff -up chromium-119.0.6045.105/services/device/public/cpp/generic_sensor/sensor_reading.h.missing-header-files chromium-119.0.6045.105/services/device/public/cpp/generic_sensor/sensor_reading.h
--- chromium-119.0.6045.105/services/device/public/cpp/generic_sensor/sensor_reading.h.missing-header-files 2023-11-01 19:10:35.000000000 +0100
+++ chromium-119.0.6045.105/services/device/public/cpp/generic_sensor/sensor_reading.h 2023-11-06 14:34:01.820869238 +0100
@@ -8,6 +8,9 @@
#include <stddef.h>
#include <stdint.h>
+#include <cstddef>
+#include <cstdint>
+
#include <type_traits>
namespace device {
diff -up chromium-119.0.6045.105/skia/ext/skcolorspace_trfn.cc.missing-header-files chromium-119.0.6045.105/skia/ext/skcolorspace_trfn.cc
--- chromium-119.0.6045.105/skia/ext/skcolorspace_trfn.cc.missing-header-files 2023-11-01 19:10:35.000000000 +0100
+++ chromium-119.0.6045.105/skia/ext/skcolorspace_trfn.cc 2023-11-06 14:34:01.818869196 +0100
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "skia/ext/skcolorspace_trfn.h"
+#include <cmath>
#include <cmath>
diff -up chromium-119.0.6045.105/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files chromium-119.0.6045.105/third_party/abseil-cpp/absl/strings/string_view.h
--- chromium-119.0.6045.105/third_party/abseil-cpp/absl/strings/string_view.h.missing-header-files 2023-11-01 19:10:36.000000000 +0100
+++ chromium-119.0.6045.105/third_party/abseil-cpp/absl/strings/string_view.h 2023-11-06 14:34:01.809869004 +0100
@@ -27,6 +27,7 @@
#ifndef ABSL_STRINGS_STRING_VIEW_H_
#define ABSL_STRINGS_STRING_VIEW_H_
+#include <cstdint>
#include <algorithm>
#include <cassert>
#include <cstddef>
diff -up chromium-119.0.6045.105/third_party/angle/include/GLSLANG/ShaderVars.h.missing-header-files chromium-119.0.6045.105/third_party/angle/include/GLSLANG/ShaderVars.h
--- chromium-119.0.6045.105/third_party/angle/include/GLSLANG/ShaderVars.h.missing-header-files 2023-11-01 19:11:59.000000000 +0100
+++ chromium-119.0.6045.105/third_party/angle/include/GLSLANG/ShaderVars.h 2023-11-06 14:34:01.810869025 +0100
@@ -10,6 +10,7 @@
#ifndef GLSLANG_SHADERVARS_H_
#define GLSLANG_SHADERVARS_H_
+#include <cstdint>
#include <algorithm>
#include <array>
#include <cstdint>
diff -up chromium-119.0.6045.105/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.missing-header-files chromium-119.0.6045.105/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h
--- chromium-119.0.6045.105/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h.missing-header-files 2023-11-01 19:10:37.000000000 +0100
+++ chromium-119.0.6045.105/third_party/blink/public/common/bluetooth/web_bluetooth_device_id.h 2023-11-06 14:34:01.810869025 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <array>
#include <cstdint>
#include <functional>
diff -up chromium-119.0.6045.105/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files chromium-119.0.6045.105/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h
--- chromium-119.0.6045.105/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h.missing-header-files 2023-11-01 19:13:50.000000000 +0100
+++ chromium-119.0.6045.105/third_party/dawn/src/tint/lang/spirv/reader/ast_parser/namer.h 2023-11-06 14:34:01.810869025 +0100
@@ -15,6 +15,7 @@
#ifndef SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
#define SRC_TINT_LANG_SPIRV_READER_AST_PARSER_NAMER_H_
+#include <cstdint>
#include <string>
#include <unordered_map>
#include <vector>
diff -up chromium-119.0.6045.105/third_party/ipcz/src/ipcz/router_link.h.missing-header-files chromium-119.0.6045.105/third_party/ipcz/src/ipcz/router_link.h
--- chromium-119.0.6045.105/third_party/ipcz/src/ipcz/router_link.h.missing-header-files 2023-11-01 19:11:20.000000000 +0100
+++ chromium-119.0.6045.105/third_party/ipcz/src/ipcz/router_link.h 2023-11-06 14:34:01.819869217 +0100
@@ -5,6 +5,7 @@
#ifndef IPCZ_SRC_IPCZ_ROUTER_LINK_H_
#define IPCZ_SRC_IPCZ_ROUTER_LINK_H_
+#include <memory>
#include <cstddef>
#include <functional>
#include <memory>
diff -up chromium-119.0.6045.105/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files chromium-119.0.6045.105/third_party/material_color_utilities/src/cpp/palettes/tones.cc
--- chromium-119.0.6045.105/third_party/material_color_utilities/src/cpp/palettes/tones.cc.missing-header-files 2023-11-01 19:11:53.000000000 +0100
+++ chromium-119.0.6045.105/third_party/material_color_utilities/src/cpp/palettes/tones.cc 2023-11-06 14:34:01.819869217 +0100
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+#include <cmath>
#include "cpp/palettes/tones.h"
#include "cpp/cam/cam.h"
diff -up chromium-119.0.6045.105/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.missing-header-files chromium-119.0.6045.105/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h
--- chromium-119.0.6045.105/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h.missing-header-files 2023-11-01 19:11:59.000000000 +0100
+++ chromium-119.0.6045.105/third_party/openscreen/src/discovery/dnssd/public/dns_sd_txt_record.h 2023-11-06 14:34:01.810869025 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <functional>
#include <map>
#include <set>
diff -up chromium-119.0.6045.105/third_party/pdfium/constants/annotation_flags.h.missing-header-files chromium-119.0.6045.105/third_party/pdfium/constants/annotation_flags.h
--- chromium-119.0.6045.105/third_party/pdfium/constants/annotation_flags.h.missing-header-files 2023-11-01 19:14:48.000000000 +0100
+++ chromium-119.0.6045.105/third_party/pdfium/constants/annotation_flags.h 2023-11-06 14:34:01.815869132 +0100
@@ -7,6 +7,8 @@
#include <stdint.h>
+#include <cstdint>
+
namespace pdfium {
namespace annotation_flags {
diff -up chromium-119.0.6045.105/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files chromium-119.0.6045.105/third_party/ruy/src/ruy/profiler/instrumentation.h
--- chromium-119.0.6045.105/third_party/ruy/src/ruy/profiler/instrumentation.h.missing-header-files 2023-11-01 19:12:02.000000000 +0100
+++ chromium-119.0.6045.105/third_party/ruy/src/ruy/profiler/instrumentation.h 2023-11-06 14:34:01.813869089 +0100
@@ -17,6 +17,7 @@ limitations under the License.
#define RUY_RUY_PROFILER_INSTRUMENTATION_H_
#ifdef RUY_PROFILER
+#include <string>
#include <cstdio>
#include <mutex>
#include <vector>
diff -up chromium-119.0.6045.105/third_party/swiftshader/src/System/LRUCache.hpp.missing-header-files chromium-119.0.6045.105/third_party/swiftshader/src/System/LRUCache.hpp
--- chromium-119.0.6045.105/third_party/swiftshader/src/System/LRUCache.hpp.missing-header-files 2023-11-01 19:12:15.000000000 +0100
+++ chromium-119.0.6045.105/third_party/swiftshader/src/System/LRUCache.hpp 2023-11-06 14:34:01.810869025 +0100
@@ -17,6 +17,7 @@
#include "System/Debug.hpp"
+#include <cstdint>
#include <cstddef>
#include <cstdint>
#include <functional>
diff -up chromium-119.0.6045.105/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files chromium-119.0.6045.105/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc
--- chromium-119.0.6045.105/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc.missing-header-files 2023-11-01 19:12:42.000000000 +0100
+++ chromium-119.0.6045.105/third_party/swiftshader/third_party/llvm-10.0/llvm/lib/Support/Unix/Signals.inc 2023-11-06 14:34:01.814869110 +0100
@@ -45,6 +45,7 @@
#include "llvm/Support/SaveAndRestore.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
+#include <cstdint>
#include <string>
#include <sysexits.h>
#ifdef HAVE_BACKTRACE
diff -up chromium-119.0.6045.105/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files chromium-119.0.6045.105/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h
--- chromium-119.0.6045.105/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h.missing-header-files 2023-11-01 19:13:20.000000000 +0100
+++ chromium-119.0.6045.105/third_party/tflite/src/tensorflow/lite/kernels/internal/spectrogram.h 2023-11-06 14:34:01.813869089 +0100
@@ -31,6 +31,7 @@ limitations under the License.
#ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
#define TENSORFLOW_LITE_KERNELS_INTERNAL_SPECTROGRAM_H_
+#include <cstdint>
#include <complex>
#include <deque>
#include <vector>
diff -up chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h
--- chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.missing-header-files 2023-11-01 19:12:45.000000000 +0100
+++ chromium-119.0.6045.105/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2023-11-06 14:34:01.817869174 +0100
@@ -2884,6 +2884,7 @@ static void vma_aligned_free(void* VMA_N
// Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.
#if VMA_STATS_STRING_ENABLED
+#include <stdio.h>
static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num)
{
snprintf(outStr, strLen, "%u", static_cast<unsigned int>(num));
diff -up chromium-119.0.6045.105/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.missing-header-files chromium-119.0.6045.105/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h
--- chromium-119.0.6045.105/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h.missing-header-files 2023-11-01 19:12:13.000000000 +0100
+++ chromium-119.0.6045.105/third_party/vulkan_memory_allocator/include/vk_mem_alloc.h 2023-11-06 14:34:01.812869068 +0100
@@ -2388,6 +2388,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeV
#ifdef VMA_IMPLEMENTATION
#undef VMA_IMPLEMENTATION
+#include <cstdio>
#include <cstdint>
#include <cstdlib>
#include <cstring>
diff -up chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc
--- chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc.missing-header-files 2023-11-01 19:14:05.000000000 +0100
+++ chromium-119.0.6045.105/third_party/webrtc/audio/utility/channel_mixer.cc 2023-11-06 14:34:01.819869217 +0100
@@ -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-119.0.6045.105/third_party/webrtc/common_video/h264/sps_parser.h.missing-header-files chromium-119.0.6045.105/third_party/webrtc/common_video/h264/sps_parser.h
--- chromium-119.0.6045.105/third_party/webrtc/common_video/h264/sps_parser.h.missing-header-files 2023-11-01 19:14:06.000000000 +0100
+++ chromium-119.0.6045.105/third_party/webrtc/common_video/h264/sps_parser.h 2023-11-06 14:34:01.819869217 +0100
@@ -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-119.0.6045.105/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files chromium-119.0.6045.105/third_party/webrtc/modules/include/module_common_types_public.h
--- chromium-119.0.6045.105/third_party/webrtc/modules/include/module_common_types_public.h.missing-header-files 2023-11-01 19:14:11.000000000 +0100
+++ chromium-119.0.6045.105/third_party/webrtc/modules/include/module_common_types_public.h 2023-11-06 14:34:01.819869217 +0100
@@ -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-119.0.6045.105/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-header-files chromium-119.0.6045.105/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc
--- chromium-119.0.6045.105/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc.missing-header-files 2023-11-01 19:14:12.000000000 +0100
+++ chromium-119.0.6045.105/third_party/webrtc/modules/video_coding/utility/ivf_file_reader.cc 2023-11-06 14:34:01.819869217 +0100
@@ -10,6 +10,7 @@
#include "modules/video_coding/utility/ivf_file_reader.h"
+#include <cstring>
#include <string>
#include <vector>
diff -up chromium-119.0.6045.105/ui/base/prediction/kalman_filter.h.missing-header-files chromium-119.0.6045.105/ui/base/prediction/kalman_filter.h
--- chromium-119.0.6045.105/ui/base/prediction/kalman_filter.h.missing-header-files 2023-11-01 19:11:28.000000000 +0100
+++ chromium-119.0.6045.105/ui/base/prediction/kalman_filter.h 2023-11-06 14:34:01.814869110 +0100
@@ -7,6 +7,8 @@
#include <stdint.h>
+#include <cstdint>
+
#include "base/component_export.h"
#include "ui/gfx/geometry/matrix3_f.h"
diff -up chromium-119.0.6045.105/ui/gfx/geometry/linear_gradient.h.missing-header-files chromium-119.0.6045.105/ui/gfx/geometry/linear_gradient.h
--- chromium-119.0.6045.105/ui/gfx/geometry/linear_gradient.h.missing-header-files 2023-11-01 19:11:28.000000000 +0100
+++ chromium-119.0.6045.105/ui/gfx/geometry/linear_gradient.h 2023-11-06 14:34:01.812869068 +0100
@@ -7,6 +7,7 @@
#include <stdint.h>
+#include <cstdint>
#include <array>
#include <cstddef>
#include <cstdint>
diff -up chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h.missing-header-files chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h
--- chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h.missing-header-files 2023-11-01 19:11:28.000000000 +0100
+++ chromium-119.0.6045.105/ui/gfx/linux/drm_util_linux.h 2023-11-06 14:34:01.819869217 +0100
@@ -9,6 +9,8 @@
#include "ui/gfx/buffer_types.h"
+#include <cstdint>
+
namespace ui {
int GetFourCCFormatFromBufferFormat(gfx::BufferFormat format);

View file

@ -0,0 +1,703 @@
diff -up chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor chromium-119.0.6045.59/base/trace_event/trace_log.cc
--- chromium-119.0.6045.59/base/trace_event/trace_log.cc.no_matching_constructor 2023-10-26 18:16:51.000000000 +0200
+++ chromium-119.0.6045.59/base/trace_event/trace_log.cc 2023-10-30 16:51:02.270151487 +0100
@@ -2191,8 +2191,8 @@ void TraceLog::SetTraceBufferForTesting(
#if BUILDFLAG(USE_PERFETTO_CLIENT_LIBRARY)
void TraceLog::OnSetup(const perfetto::DataSourceBase::SetupArgs& args) {
AutoLock lock(track_event_lock_);
- track_event_sessions_.emplace_back(args.internal_instance_index, *args.config,
- args.backend_type);
+ track_event_sessions_.emplace_back() = {args.internal_instance_index, *args.config,
+ args.backend_type};
}
void TraceLog::OnStart(const perfetto::DataSourceBase::StartArgs&) {
diff -up chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc
--- chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc.no_matching_constructor 2023-10-26 18:16:57.000000000 +0200
+++ chromium-119.0.6045.59/chrome/browser/content_settings/one_time_permission_provider.cc 2023-10-30 16:51:02.269151462 +0100
@@ -226,8 +226,8 @@ void OneTimePermissionProvider::OnSuspen
while (rule_iterator && rule_iterator->HasNext()) {
auto rule = rule_iterator->Next();
- patterns_to_delete.emplace_back(setting_type, rule->primary_pattern,
- rule->secondary_pattern);
+ patterns_to_delete.emplace_back() = {setting_type, rule->primary_pattern,
+ rule->secondary_pattern};
permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
setting_type,
permissions::OneTimePermissionEvent::EXPIRED_ON_SUSPEND);
@@ -329,8 +329,8 @@ void OneTimePermissionProvider::DeleteEn
auto rule = rule_iterator->Next();
if (rule->primary_pattern.Matches(origin_gurl) &&
rule->secondary_pattern.Matches(origin_gurl)) {
- patterns_to_delete.emplace_back(
- content_setting_type, rule->primary_pattern, rule->secondary_pattern);
+ patterns_to_delete.emplace_back() = {
+ content_setting_type, rule->primary_pattern, rule->secondary_pattern};
permissions::PermissionUmaUtil::RecordOneTimePermissionEvent(
content_setting_type, trigger_event);
}
diff -up chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc
--- chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc.no_matching_constructor 2023-10-26 18:16:57.000000000 +0200
+++ chromium-119.0.6045.59/chrome/browser/enterprise/profile_management/profile_management_navigation_throttle.cc 2023-10-30 16:51:02.267151412 +0100
@@ -67,8 +67,8 @@ base::flat_map<std::string, SAMLProfileA
// TODO(crbug.com/1445072): Add actual domains with attribute names.
profile_attributes->insert(std::make_pair(
"supported.test",
- SAMLProfileAttributes("placeholderName", "placeholderDomain",
- "placeholderToken")));
+ SAMLProfileAttributes{"placeholderName", "placeholderDomain",
+ "placeholderToken"}));
// Extract domains and attributes from the command line switch.
const base::CommandLine& command_line =
diff -up chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
--- chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc.no_matching_constructor 2023-10-26 18:17:00.000000000 +0200
+++ chromium-119.0.6045.59/chrome/browser/ui/omnibox/chrome_omnibox_client.cc 2023-10-30 16:51:02.262151288 +0100
@@ -474,10 +474,10 @@ void ChromeOmniboxClient::OnAutocomplete
alternative_nav_match);
// Store the details necessary to open the omnibox match via browser commands.
- location_bar_->set_navigation_params(LocationBar::NavigationParams(
+ location_bar_->set_navigation_params(LocationBar::NavigationParams{
destination_url, disposition, transition, match_selection_timestamp,
destination_url_entered_without_scheme,
- destination_url_entered_with_http_scheme));
+ destination_url_entered_with_http_scheme});
if (browser_) {
auto navigation = chrome::OpenCurrentURL(browser_);
diff -up chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc
--- chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc.no_matching_constructor 2023-10-26 18:17:01.000000000 +0200
+++ chromium-119.0.6045.59/chrome/test/chromedriver/capabilities.cc 2023-10-30 16:51:02.268151437 +0100
@@ -346,7 +346,7 @@ Status ParseMobileEmulation(const base::
"'version' field of type string");
}
- brands.emplace_back(*brand, *version);
+ brands.emplace_back() = {*brand, *version};
}
client_hints.brands = std::move(brands);
@@ -384,7 +384,7 @@ Status ParseMobileEmulation(const base::
"a 'version' field of type string");
}
- full_version_list.emplace_back(*brand, *version);
+ full_version_list.emplace_back() = {*brand, *version};
}
client_hints.full_version_list = std::move(full_version_list);
diff -up chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc
--- chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc.no_matching_constructor 2023-10-30 16:51:02.273151562 +0100
+++ chromium-119.0.6045.59/components/autofill/core/browser/contact_info_sync_util.cc 2023-10-30 17:41:12.685887538 +0100
@@ -195,9 +195,9 @@ class ContactInfoProfileSetter {
CHECK(observations.empty());
for (const sync_pb::ContactInfoSpecifics::Observation& proto_observation :
metadata.observations()) {
- observations.emplace_back(proto_observation.type(),
+ observations.emplace_back() = {static_cast<unsigned char>(proto_observation.type()),
ProfileTokenQuality::FormSignatureHash(
- proto_observation.form_hash()));
+ proto_observation.form_hash())};
}
}
}
diff -up chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc
--- chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc.no_matching_constructor 2023-10-26 18:17:12.000000000 +0200
+++ chromium-119.0.6045.59/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.cc 2023-10-30 16:51:02.260151238 +0100
@@ -1530,7 +1530,7 @@ void SkiaOutputSurfaceImplOnGpu::CopyOut
// Issue readbacks from the surfaces:
for (size_t i = 0; i < CopyOutputResult::kNV12MaxPlanes; ++i) {
- SkISize size(plane_surfaces[i]->width(), plane_surfaces[i]->height());
+ SkISize size{plane_surfaces[i]->width(), plane_surfaces[i]->height()};
SkImageInfo dst_info = SkImageInfo::Make(
size, (i == 0) ? kAlpha_8_SkColorType : kR8G8_unorm_SkColorType,
kUnpremul_SkAlphaType);
diff -up chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/download/save_package.cc
--- chromium-119.0.6045.59/content/browser/download/save_package.cc.no_matching_constructor 2023-10-26 18:17:12.000000000 +0200
+++ chromium-119.0.6045.59/content/browser/download/save_package.cc 2023-10-30 16:51:02.271151512 +0100
@@ -769,8 +769,8 @@ void SavePackage::Finish() {
if (download_) {
std::vector<download::DownloadSaveItemData::ItemInfo> files;
for (auto& item : saved_success_items_) {
- files.emplace_back(item.second->full_path(), item.second->url(),
- item.second->referrer().url);
+ files.emplace_back() = {item.second->full_path(), item.second->url(),
+ item.second->referrer().url};
}
download::DownloadSaveItemData::AttachItemData(download_, std::move(files));
}
diff -up chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc
--- chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc.no_matching_constructor 2023-10-26 18:17:12.000000000 +0200
+++ chromium-119.0.6045.59/content/browser/renderer_host/render_frame_host_impl.cc 2023-10-30 17:38:09.351389984 +0100
@@ -8567,7 +8567,7 @@ void RenderFrameHostImpl::SendFencedFram
for (const blink::FencedFrame::ReportingDestination& destination :
destinations) {
SendFencedFrameReportingBeaconInternal(
- DestinationEnumEvent(event_type, event_data), destination,
+ DestinationEnumEvent{event_type, event_data}, destination,
/*from_renderer=*/true, attribution_reporting_runtime_features,
GetFrameTreeNodeId());
}
@@ -8603,7 +8603,7 @@ void RenderFrameHostImpl::SendFencedFram
}
SendFencedFrameReportingBeaconInternal(
- DestinationURLEvent(destination_url),
+ DestinationURLEvent{destination_url},
blink::FencedFrame::ReportingDestination::kBuyer,
/*from_renderer=*/true, attribution_reporting_runtime_features,
GetFrameTreeNodeId());
@@ -8703,8 +8703,8 @@ void RenderFrameHostImpl::MaybeSendFence
data = info->data;
}
initiator_rfh->SendFencedFrameReportingBeaconInternal(
- DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
- data),
+ DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
+ data},
destination,
/*from_renderer=*/false, attribution_reporting_features,
GetFrameTreeNodeId(), navigation_request.GetNavigationId());
@@ -8717,8 +8717,8 @@ void RenderFrameHostImpl::MaybeSendFence
for (blink::FencedFrame::ReportingDestination destination :
info->destinations) {
initiator_rfh->SendFencedFrameReportingBeaconInternal(
- DestinationEnumEvent(blink::kFencedFrameTopNavigationBeaconType,
- info->data),
+ DestinationEnumEvent{blink::kFencedFrameTopNavigationBeaconType,
+ info->data},
destination,
/*from_renderer=*/false, info->attribution_reporting_runtime_features,
GetFrameTreeNodeId(), navigation_request.GetNavigationId());
diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h
--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h.no_matching_constructor 2023-10-26 18:17:24.000000000 +0200
+++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/font_palette.h 2023-10-30 16:51:02.262151288 +0100
@@ -96,7 +96,7 @@ class PLATFORM_EXPORT FontPalette : publ
Color::ColorSpace color_interpolation_space,
absl::optional<Color::HueInterpolationMethod> hue_interpolation_method) {
return base::AdoptRef(new FontPalette(
- start, end, NonNormalizedPercentages(start_percentage, end_percentage),
+ start, end, NonNormalizedPercentages{start_percentage, end_percentage},
normalized_percentage, alpha_multiplier, color_interpolation_space,
hue_interpolation_method));
}
@@ -170,7 +170,7 @@ class PLATFORM_EXPORT FontPalette : publ
double normalized_percentage) {
double end_percentage = normalized_percentage * 100.0;
double start_percentage = 100.0 - end_percentage;
- return NonNormalizedPercentages(start_percentage, end_percentage);
+ return NonNormalizedPercentages{start_percentage, end_percentage};
}
double GetAlphaMultiplier() const {
diff -up chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc
--- chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc.no_matching_constructor 2023-10-26 18:17:24.000000000 +0200
+++ chromium-119.0.6045.59/third_party/blink/renderer/platform/fonts/palette_interpolation.cc 2023-10-30 16:51:02.261151263 +0100
@@ -31,7 +31,7 @@ Vector<FontPalette::FontPaletteOverride>
color_interpolation_space, hue_interpolation_method, start_color,
end_color, percentage, alpha_multiplier);
- FontPalette::FontPaletteOverride result_color_record(i, result_color);
+ FontPalette::FontPaletteOverride result_color_record{static_cast<int>(i), result_color};
result_color_records.push_back(result_color_record);
}
return result_color_records;
diff -up chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor chromium-119.0.6045.59/ui/gtk/gtk_ui.cc
--- chromium-119.0.6045.59/ui/gtk/gtk_ui.cc.no_matching_constructor 2023-10-26 18:18:14.000000000 +0200
+++ chromium-119.0.6045.59/ui/gtk/gtk_ui.cc 2023-10-30 16:51:02.272151537 +0100
@@ -993,11 +993,11 @@ ui::DisplayConfig GtkUi::GetDisplayConfi
GdkRectangle geometry;
gdk_monitor_get_geometry(monitor, &geometry);
int monitor_scale = std::max(1, gdk_monitor_get_scale_factor(monitor));
- config.display_geometries.emplace_back(
+ config.display_geometries.emplace_back() = {
gfx::Rect(monitor_scale * geometry.x, monitor_scale * geometry.y,
monitor_scale * geometry.width,
monitor_scale * geometry.height),
- monitor_scale * font_scale);
+ static_cast<float>(monitor_scale * font_scale)};
}
return config;
}
diff -up chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc
--- chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc.me 2023-10-31 18:14:49.275728099 +0100
+++ chromium-119.0.6045.59/base/metrics/persistent_histogram_allocator.cc 2023-10-31 18:19:54.599223239 +0100
@@ -221,13 +221,13 @@ PersistentSparseHistogramDataManager::Lo
// The sample-record could be for any sparse histogram. Add the reference
// to the appropriate collection for later use.
if (found_id == match_id) {
- found_records.emplace_back(ref, value);
+ found_records.emplace_back() = {ref, value};
found = true;
} else {
std::vector<ReferenceAndSample>* samples =
GetSampleMapRecordsWhileLocked(found_id);
CHECK(samples);
- samples->emplace_back(ref, value);
+ samples->emplace_back() = {ref, value};
}
}
diff -up chromium-119.0.6045.59/net/dns/host_resolver_cache.cc.me chromium-119.0.6045.59/net/dns/host_resolver_cache.cc
--- chromium-119.0.6045.59/net/dns/host_resolver_cache.cc.me 2023-10-31 20:48:19.153868338 +0100
+++ chromium-119.0.6045.59/net/dns/host_resolver_cache.cc 2023-10-31 20:51:37.634526549 +0100
@@ -368,7 +368,7 @@ void HostResolverCache::Set(
std::string domain_name = result->domain_name();
entries_.emplace(
- Key(std::move(domain_name), network_anonymization_key),
+ Key{std::move(domain_name), network_anonymization_key},
Entry(std::move(result), source, secure, staleness_generation));
if (entries_.size() > max_entries_) {
diff -up chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc
--- chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc.me 2023-10-31 22:32:58.995997897 +0100
+++ chromium-119.0.6045.59/components/autofill/core/browser/webdata/autofill_table.cc 2023-10-31 22:33:28.290520601 +0100
@@ -1733,10 +1733,10 @@ std::unique_ptr<AutofillProfile> Autofil
}
base::span<const uint8_t> observations_data = s.ColumnBlob(3);
- field_type_values.emplace_back(
+ field_type_values.emplace_back() = {
type, s.ColumnString16(1), s.ColumnInt(2),
std::vector<uint8_t>(observations_data.begin(),
- observations_data.end()));
+ observations_data.end())};
if (type == ADDRESS_HOME_COUNTRY) {
country_code = base::UTF16ToUTF8(s.ColumnString16(1));
diff -up chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc
--- chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc.than 2023-10-31 22:41:22.850233005 +0100
+++ chromium-119.0.6045.59/components/password_manager/core/browser/password_manager.cc 2023-10-31 22:42:37.276931933 +0100
@@ -625,7 +625,7 @@ void PasswordManager::OnUserModifiedNonP
// |driver| might be empty on iOS or in tests.
int driver_id = driver ? driver->GetId() : 0;
possible_usernames_.Put(
- PossibleUsernameFieldIdentifier(driver_id, renderer_id),
+ PossibleUsernameFieldIdentifier{driver_id, renderer_id},
PossibleUsernameData(GetSignonRealm(driver->GetLastCommittedURL()),
renderer_id, value, base::Time::Now(), driver_id,
autocomplete_attribute_has_username, is_likely_otp));
diff -up chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc
--- chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc.than 2023-10-31 23:31:08.438267908 +0100
+++ chromium-119.0.6045.59/content/browser/interest_group/interest_group_storage.cc 2023-10-31 23:32:08.979358711 +0100
@@ -2854,10 +2854,10 @@ DoGetKAnonymityData(sql::Database& db,
std::vector<StorageInterestGroup::KAnonymityData> k_anon_data;
while (interest_group_kanon_query.Step()) {
- k_anon_data.emplace_back(
+ k_anon_data.emplace_back() = {
/*key=*/interest_group_kanon_query.ColumnString(0),
/*is_k_anonymous=*/interest_group_kanon_query.ColumnBool(1),
- /*last_updated=*/interest_group_kanon_query.ColumnTime(2));
+ /*last_updated=*/interest_group_kanon_query.ColumnTime(2)};
}
if (!interest_group_kanon_query.Succeeded()) {
return absl::nullopt;
diff -up chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc
--- chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc.than 2023-11-01 11:19:42.745395797 +0100
+++ chromium-119.0.6045.59/content/browser/webid/federated_auth_request_impl.cc 2023-11-01 11:22:16.670920679 +0100
@@ -1881,7 +1881,7 @@ void FederatedAuthRequestImpl::ShowError
base::BindOnce(&FederatedAuthRequestImpl::CompleteRequestWithError,
weak_ptr_factory_.GetWeakPtr()));
absl::optional<TokenError> token_error =
- error ? absl::make_optional<TokenError>(error->code, error->url)
+ error ? absl::make_optional<TokenError>({error->code, error->url})
: absl::nullopt;
// TODO(crbug.com/1485710): Refactor IdentityCredentialTokenError
--- chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h.no_matching_constructor 2023-10-26 18:18:14.000000000 +0200
+++ chromium-119.0.6045.59/ui/base/wayland/color_manager_util.h 2023-11-01 17:29:54.269820415 +0100
@@ -52,53 +52,53 @@
zcr_color_manager_v1_chromaticity_names,
PrimaryVersion>(
{{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_525_LINE,
- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
- kDefaultSinceVersion)},
+ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT601_625_LINE,
- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT470BG,
- kDefaultSinceVersion)},
+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT470BG,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE170M,
- PrimaryVersion(gfx::ColorSpace::PrimaryID::SMPTE170M,
- kDefaultSinceVersion)},
+ PrimaryVersion{gfx::ColorSpace::PrimaryID::SMPTE170M,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT709,
- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT2020,
- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion)},
+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT2020, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SRGB,
- PrimaryVersion(gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion)},
+ PrimaryVersion{gfx::ColorSpace::PrimaryID::BT709, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_DISPLAYP3,
- PrimaryVersion(gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion)},
+ PrimaryVersion{gfx::ColorSpace::PrimaryID::P3, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_ADOBERGB,
- PrimaryVersion(gfx::ColorSpace::PrimaryID::ADOBE_RGB,
- kDefaultSinceVersion)},
+ PrimaryVersion{gfx::ColorSpace::PrimaryID::ADOBE_RGB,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN,
- PrimaryVersion(
+ PrimaryVersion{
gfx::ColorSpace::PrimaryID::WIDE_GAMUT_COLOR_SPIN,
- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_WIDE_GAMUT_COLOR_SPIN_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M,
- PrimaryVersion(
+ PrimaryVersion{
gfx::ColorSpace::PrimaryID::BT470M,
- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_BT470M_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M,
- PrimaryVersion(
+ PrimaryVersion{
gfx::ColorSpace::PrimaryID::SMPTE240M,
- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTE240M_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50,
- PrimaryVersion(
+ PrimaryVersion{
gfx::ColorSpace::PrimaryID::XYZ_D50,
- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_XYZ_D50_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1,
- PrimaryVersion(
+ PrimaryVersion{
gfx::ColorSpace::PrimaryID::SMPTEST428_1,
- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST428_1_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2,
- PrimaryVersion(
+ PrimaryVersion{
gfx::ColorSpace::PrimaryID::SMPTEST431_2,
- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_SMPTEST431_2_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM,
- PrimaryVersion(
+ PrimaryVersion{
gfx::ColorSpace::PrimaryID::FILM,
- ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION)}});
+ ZCR_COLOR_MANAGER_V1_CHROMATICITY_NAMES_FILM_SINCE_VERSION}}});
// A map from the zcr_color_manager_v1 eotf_names enum values
// representing well-known EOTFs, to their equivalent TransferIDs.
@@ -107,68 +107,68 @@
zcr_color_manager_v1_eotf_names,
TransferVersion>({
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
- TransferVersion(gfx::ColorSpace::TransferID::LINEAR,
- kDefaultSinceVersion)},
+ TransferVersion{gfx::ColorSpace::TransferID::LINEAR,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
- TransferVersion(gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion)},
+ TransferVersion{gfx::ColorSpace::TransferID::SRGB, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
- TransferVersion(gfx::ColorSpace::TransferID::SRGB_HDR,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::SRGB_HDR,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
- TransferVersion(gfx::ColorSpace::TransferID::BT709,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::BT709,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
- TransferVersion(gfx::ColorSpace::TransferID::GAMMA24,
- kDefaultSinceVersion)},
+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA24,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
// This is ever so slightly inaccurate. The number ought to be
// 2.19921875f, not 2.2
- TransferVersion(gfx::ColorSpace::TransferID::GAMMA22,
- kDefaultSinceVersion)},
+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA22,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
- TransferVersion(gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion)},
+ TransferVersion{gfx::ColorSpace::TransferID::PQ, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
- TransferVersion(gfx::ColorSpace::TransferID::HLG,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::HLG,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M,
- TransferVersion(gfx::ColorSpace::TransferID::SMPTE170M,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::SMPTE170M,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE170M_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M,
- TransferVersion(gfx::ColorSpace::TransferID::SMPTE240M,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::SMPTE240M,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTE240M_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1,
- TransferVersion(
+ TransferVersion{
gfx::ColorSpace::TransferID::SMPTEST428_1,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SMPTEST428_1_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG,
- TransferVersion(gfx::ColorSpace::TransferID::LOG,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::LOG,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT,
- TransferVersion(gfx::ColorSpace::TransferID::LOG_SQRT,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::LOG_SQRT,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LOG_SQRT_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4,
- TransferVersion(
+ TransferVersion{
gfx::ColorSpace::TransferID::IEC61966_2_4,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_IEC61966_2_4_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG,
- TransferVersion(gfx::ColorSpace::TransferID::BT1361_ECG,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::BT1361_ECG,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT1361_ECG_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10,
- TransferVersion(gfx::ColorSpace::TransferID::BT2020_10,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::BT2020_10,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_10_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12,
- TransferVersion(gfx::ColorSpace::TransferID::BT2020_12,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::BT2020_12,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2020_12_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS,
- TransferVersion(
+ TransferVersion{
gfx::ColorSpace::TransferID::SCRGB_LINEAR_80_NITS,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SCRGB_LINEAR_80_NITS_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18,
- TransferVersion(gfx::ColorSpace::TransferID::GAMMA18,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA18,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA18_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28,
- TransferVersion(gfx::ColorSpace::TransferID::GAMMA28,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION)},
+ TransferVersion{gfx::ColorSpace::TransferID::GAMMA28,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_GAMMA28_SINCE_VERSION}},
});
// A map from the SDR zcr_color_manager_v1 eotf_names enum values
@@ -177,18 +177,18 @@
constexpr auto kTransferMap =
base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>({
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
+ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB,
- TransferFnVersion(SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion)},
+ TransferFnVersion{SkNamedTransferFnExt::kSRGB, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709,
- TransferFnVersion(
+ TransferFnVersion{
SkNamedTransferFnExt::kRec709,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT709_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_BT2087,
- TransferFnVersion(gamma24, kDefaultSinceVersion)},
+ TransferFnVersion{gamma24, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_ADOBERGB,
- TransferFnVersion(SkNamedTransferFnExt::kA98RGB,
- kDefaultSinceVersion)},
+ TransferFnVersion{SkNamedTransferFnExt::kA98RGB,
+ kDefaultSinceVersion}},
});
// A map from the HDR zcr_color_manager_v1 eotf_names enum values
@@ -197,70 +197,70 @@
constexpr auto kHDRTransferMap =
base::MakeFixedFlatMap<zcr_color_manager_v1_eotf_names, TransferFnVersion>(
{{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_LINEAR,
- TransferFnVersion(SkNamedTransferFn::kLinear, kDefaultSinceVersion)},
+ TransferFnVersion{SkNamedTransferFn::kLinear, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR,
- TransferFnVersion(
+ TransferFnVersion{
SkNamedTransferFnExt::kSRGB,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_SRGB_HDR_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_PQ,
- TransferFnVersion(SkNamedTransferFn::kPQ, kDefaultSinceVersion)},
+ TransferFnVersion{SkNamedTransferFn::kPQ, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG,
- TransferFnVersion(SkNamedTransferFn::kHLG,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION)},
+ TransferFnVersion{SkNamedTransferFn::kHLG,
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_HLG_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10,
- TransferFnVersion(
+ TransferFnVersion{
SkNamedTransferFnExt::kSRGBExtended1023Over510,
- ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION)}});
+ ZCR_COLOR_MANAGER_V1_EOTF_NAMES_EXTENDEDSRGB10_SINCE_VERSION}}});
// A map from zcr_color_manager_v1 matrix_names enum values to
// gfx::ColorSpace::MatrixIDs.
constexpr auto kMatrixMap =
base::MakeFixedFlatMap<zcr_color_manager_v1_matrix_names, MatrixVersion>(
{{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_RGB,
- MatrixVersion(gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::RGB, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT709,
- MatrixVersion(gfx::ColorSpace::MatrixID::BT709,
- kDefaultSinceVersion)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::BT709,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG,
- MatrixVersion(
+ MatrixVersion{
gfx::ColorSpace::MatrixID::BT470BG,
- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION)},
+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT470BG_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_NCL,
- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_NCL,
- kDefaultSinceVersion)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_NCL,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_BT2020_CL,
- MatrixVersion(gfx::ColorSpace::MatrixID::BT2020_CL,
- kDefaultSinceVersion)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::BT2020_CL,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_FCC,
- MatrixVersion(gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::FCC, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG,
- MatrixVersion(gfx::ColorSpace::MatrixID::YCOCG,
- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::YCOCG,
+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YCOCG_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX,
- MatrixVersion(gfx::ColorSpace::MatrixID::YDZDX,
- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::YDZDX,
+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_YDZDX_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR,
- MatrixVersion(gfx::ColorSpace::MatrixID::GBR,
- ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::GBR,
+ ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_GBR_SINCE_VERSION}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE170M,
- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE170M,
- kDefaultSinceVersion)},
+ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE170M,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_MATRIX_NAMES_SMPTE240M,
- MatrixVersion(gfx::ColorSpace::MatrixID::SMPTE240M,
- kDefaultSinceVersion)}});
+ MatrixVersion{gfx::ColorSpace::MatrixID::SMPTE240M,
+ kDefaultSinceVersion}}});
// A map from zcr_color_manager_v1 range_names enum values to
// gfx::ColorSpace::RangeIDs.
constexpr auto kRangeMap =
base::MakeFixedFlatMap<zcr_color_manager_v1_range_names, RangeVersion>(
{{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_LIMITED,
- RangeVersion(gfx::ColorSpace::RangeID::LIMITED,
- kDefaultSinceVersion)},
+ RangeVersion{gfx::ColorSpace::RangeID::LIMITED,
+ kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_FULL,
- RangeVersion(gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion)},
+ RangeVersion{gfx::ColorSpace::RangeID::FULL, kDefaultSinceVersion}},
{ZCR_COLOR_MANAGER_V1_RANGE_NAMES_DERIVED,
- RangeVersion(gfx::ColorSpace::RangeID::DERIVED,
- kDefaultSinceVersion)}});
+ RangeVersion{gfx::ColorSpace::RangeID::DERIVED,
+ kDefaultSinceVersion}}});
zcr_color_manager_v1_chromaticity_names ToColorManagerChromaticity(
gfx::ColorSpace::PrimaryID primaryID,
@@ -283,4 +283,4 @@
} // namespace ui::wayland
-#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
\ Kein Zeilenumbruch am Dateiende.
+#endif // UI_BASE_WAYLAND_COLOR_MANAGER_UTIL_H_
diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc
--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc.me 2023-11-01 20:46:15.997861278 +0100
+++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_previously_granted_view.cc 2023-11-01 20:49:33.603371680 +0100
@@ -58,13 +58,13 @@ EmbeddedPermissionPromptPreviouslyGrante
std::vector<EmbeddedPermissionPromptPreviouslyGrantedView::ButtonConfiguration>
EmbeddedPermissionPromptPreviouslyGrantedView::GetButtonsConfiguration() {
std::vector<ButtonConfiguration> buttons;
- buttons.emplace_back(
+ buttons.emplace_back() = {
l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_CONTINUE_ALLOWING),
- ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal);
+ ButtonType::kContinueAllowing, ui::ButtonStyle::kTonal};
- buttons.emplace_back(
+ buttons.emplace_back() = {
l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_STOP_ALLOWING),
- ButtonType::kStopAllowing, ui::ButtonStyle::kTonal);
+ ButtonType::kStopAllowing, ui::ButtonStyle::kTonal};
return buttons;
}
diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc
--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc.than 2023-11-01 20:52:29.005464494 +0100
+++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_ask_view.cc 2023-11-01 21:14:12.741859604 +0100
@@ -56,12 +56,12 @@ std::vector<EmbeddedPermissionPromptAskV
EmbeddedPermissionPromptAskView::GetButtonsConfiguration() {
std::vector<ButtonConfiguration> buttons;
if (base::FeatureList::IsEnabled(permissions::features::kOneTimePermission)) {
- buttons.emplace_back(
+ buttons.emplace_back() = {
l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME),
- ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal);
+ ButtonType::kAllowThisTime, ui::ButtonStyle::kTonal};
}
- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
- ButtonType::kAllow, ui::ButtonStyle::kTonal);
+ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW),
+ ButtonType::kAllow, ui::ButtonStyle::kTonal};
return buttons;
}
diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h
--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h.me 2023-11-01 21:22:02.222646903 +0100
+++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_base_view.h 2023-11-01 21:19:58.769619393 +0100
@@ -72,6 +72,7 @@ class EmbeddedPermissionPromptBaseView :
struct RequestLineConfiguration {
const raw_ptr<const gfx::VectorIcon> icon;
std::u16string message;
+ RequestLineConfiguration(auto i, auto m) : icon(i), message(m) { }
};
struct ButtonConfiguration {
diff -up chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc
--- chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc.than 2023-11-01 21:25:31.118626473 +0100
+++ chromium-119.0.6045.59/chrome/browser/ui/views/permissions/embedded_permission_prompt_policy_view.cc 2023-11-01 21:30:06.383340274 +0100
@@ -48,8 +48,8 @@ EmbeddedPermissionPromptPolicyView::GetR
std::vector<EmbeddedPermissionPromptPolicyView::ButtonConfiguration>
EmbeddedPermissionPromptPolicyView::GetButtonsConfiguration() {
std::vector<ButtonConfiguration> buttons;
- buttons.emplace_back(l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
- ButtonType::kPolicyOK, ui::ButtonStyle::kTonal);
+ buttons.emplace_back() = {l10n_util::GetStringUTF16(IDS_EMBEDDED_PROMPT_OK_LABEL),
+ ButtonType::kPolicyOK, ui::ButtonStyle::kTonal};
return buttons;
}

63
chromium-119-norar.patch Normal file
View file

@ -0,0 +1,63 @@
diff -up chromium-119.0.6045.105/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar chromium-119.0.6045.105/chrome/browser/safe_browsing/download_protection/file_analyzer.cc
--- chromium-119.0.6045.105/chrome/browser/safe_browsing/download_protection/file_analyzer.cc.nounrar 2023-11-01 19:10:13.000000000 +0100
+++ chromium-119.0.6045.105/chrome/browser/safe_browsing/download_protection/file_analyzer.cc 2023-11-06 17:16:55.630255973 +0100
@@ -77,8 +77,6 @@ void FileAnalyzer::Start(const base::Fil
if (inspection_type == DownloadFileType::ZIP) {
StartExtractZipFeatures();
- } else if (inspection_type == DownloadFileType::RAR) {
- StartExtractRarFeatures();
#if BUILDFLAG(IS_MAC)
} else if (inspection_type == DownloadFileType::DMG) {
StartExtractDmgFeatures();
diff -up chromium-119.0.6045.105/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-119.0.6045.105/chrome/common/safe_browsing/BUILD.gn
--- chromium-119.0.6045.105/chrome/common/safe_browsing/BUILD.gn.nounrar 2023-11-01 19:10:16.000000000 +0100
+++ chromium-119.0.6045.105/chrome/common/safe_browsing/BUILD.gn 2023-11-06 17:16:55.630255973 +0100
@@ -143,7 +143,6 @@ source_set("safe_browsing") {
"//components/safe_browsing/content/common:file_type_policies",
"//components/safe_browsing/core/common",
"//third_party/lzma_sdk/google:seven_zip_reader",
- "//third_party/unrar:unrar",
]
public_deps = [
diff -up chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.cc
--- chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2023-11-06 18:07:30.549291823 +0100
+++ chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.cc 2023-11-06 18:08:00.510076945 +0100
@@ -74,6 +74,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
const absl::optional<std::string>& password,
mojo::PendingRemote<chrome::mojom::TemporaryFileGetter> temp_file_getter,
AnalyzeRarFileCallback callback) {
+#if 0
DCHECK(rar_file.IsValid());
temp_file_getter_.Bind(std::move(temp_file_getter));
callback_ = std::move(callback);
@@ -90,6 +91,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile
/*password=*/password,
std::move(analysis_finished_callback),
std::move(temp_file_getter_callback), &results_);
+#else
+ NOTREACHED();
+#endif
}
void SafeArchiveAnalyzer::AnalyzeSevenZipFile(
diff -up chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.h.nounrar chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.h
--- chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.h.nounrar 2023-11-01 19:10:16.000000000 +0100
+++ chromium-119.0.6045.105/chrome/services/file_util/safe_archive_analyzer.h 2023-11-06 17:16:55.630255973 +0100
@@ -7,7 +7,6 @@
#include "chrome/common/safe_browsing/archive_analyzer_results.h"
#include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h"
-#include "chrome/utility/safe_browsing/rar_analyzer.h"
#include "chrome/utility/safe_browsing/seven_zip_analyzer.h"
#include "chrome/utility/safe_browsing/zip_analyzer.h"
#include "mojo/public/cpp/bindings/remote.h"
@@ -66,7 +65,6 @@ class SafeArchiveAnalyzer : public chrom
void Timeout();
safe_browsing::ZipAnalyzer zip_analyzer_;
- safe_browsing::RarAnalyzer rar_analyzer_;
safe_browsing::SevenZipAnalyzer seven_zip_analyzer_;
#if BUILDFLAG(IS_MAC)
safe_browsing::dmg::DMGAnalyzer dmg_analyzer_;

View file

@ -0,0 +1,21 @@
diff -up chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h
--- chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h.me 2023-10-27 20:07:16.421230815 +0200
+++ chromium-119.0.6045.59/third_party/blink/renderer/core/paint/fragment_data_iterator.h 2023-10-27 20:07:36.883600085 +0200
@@ -52,7 +52,7 @@ class FragmentDataIterator
public:
explicit FragmentDataIterator(const LayoutObject& object)
: FragmentDataIteratorBase(&object.FirstFragment()) {}
- explicit FragmentDataIterator(nullptr_t)
+ explicit FragmentDataIterator(std::nullptr_t)
: FragmentDataIteratorBase(nullptr) {}
};
@@ -63,7 +63,7 @@ class MutableFragmentDataIterator
explicit MutableFragmentDataIterator(const LayoutObject& object)
: FragmentDataIteratorBase(
&object.GetMutableForPainting().FirstFragment()) {}
- explicit MutableFragmentDataIterator(nullptr_t)
+ explicit MutableFragmentDataIterator(std::nullptr_t)
: FragmentDataIteratorBase(nullptr) {}
};

View file

@ -0,0 +1,164 @@
commit bdcc23e0a5e7e220660d3f54c97262f9a4c31606
Author: Nick Diego Yamane <nickdiego@igalia.com>
Date: Thu Nov 2 17:26:25 2023 +0000
gbm: nvidia: use separate bo to verify modifiers
Buggy Nvidia drivers fail to return FDs for planes of a BO which had
already an imported BO destroyed before. This is a workaround for that
issue, which consists of creating/destroying a separate 1x1 BO for
validating the modifiers before actually creating the final requested
BO, which for now is limited to IS_LINUX builds.
The Nvidia driver bug is being tracked under internal bug 4315529. There
seems to be other issues when running under Wayland with Nvidia, which
will be tracked and addressed in separate patches.
R=dcastagna, msisov@igalia.com
with ozone/wayland backend and verify GPU acceleration is not broken.
Test: In a single Nvidia GPU setup, with proprietary driver, run Chrome
Bug: 1273758, 1478684, 1463851
Change-Id: I9f322bcf40b460bcd4ead02f05dd2e9a8d271cea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4989782
Reviewed-by: Maksim Sisov <msisov@igalia.com>
Commit-Queue: Nick Yamane <nickdiego@igalia.com>
Cr-Commit-Position: refs/heads/main@{#1218924}
diff --git a/ui/gfx/linux/gbm_wrapper.cc b/ui/gfx/linux/gbm_wrapper.cc
index bf90b76605f68..14918c19c0ab0 100644
--- a/ui/gfx/linux/gbm_wrapper.cc
+++ b/ui/gfx/linux/gbm_wrapper.cc
@@ -11,6 +11,7 @@
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/raw_ptr_exclusion.h"
+#include "base/numerics/safe_conversions.h"
#include "base/posix/eintr_wrapper.h"
#include "skia/ext/legacy_display_globals.h"
#include "third_party/skia/include/core/SkSurface.h"
@@ -71,6 +72,7 @@ base::ScopedFD GetPlaneFdForBo(gbm_bo* bo, size_t plane) {
int ret;
// Use DRM_RDWR to allow the fd to be mappable in another process.
ret = drmPrimeHandleToFD(dev_fd, plane_handle, DRM_CLOEXEC | DRM_RDWR, &fd);
+ PLOG_IF(ERROR, ret != 0) << "Failed to get fd for plane.";
// Older DRM implementations blocked DRM_RDWR, but gave a read/write mapping
// anyways
@@ -301,58 +303,82 @@ class Device final : public ui::GbmDevice {
std::unique_ptr<ui::GbmBuffer> CreateBufferWithModifiers(
uint32_t format,
- const gfx::Size& size,
+ const gfx::Size& requested_size,
uint32_t flags,
const std::vector<uint64_t>& modifiers) override {
- if (modifiers.empty())
- return CreateBuffer(format, size, flags);
-
- std::vector<uint64_t> filtered_modifiers =
- GetFilteredModifiers(format, flags, modifiers);
- struct gbm_bo* bo = nullptr;
- while (filtered_modifiers.size() > 0) {
- bo = gbm_bo_create_with_modifiers(device_, size.width(), size.height(),
- format, filtered_modifiers.data(),
- filtered_modifiers.size());
- if (!bo) {
+ if (modifiers.empty()) {
+ return CreateBuffer(format, requested_size, flags);
+ }
+
+ // Buggy drivers prevent us from getting plane FDs from a BO which had its
+ // previously imported BO destroyed. E.g: Nvidia. Thus, on Linux Desktop, we
+ // do the create/import modifiers validation loop below using a separate set
+ // of 1x1 BOs which are destroyed before creating the final BO creation used
+ // to instantiate the returned GbmBuffer.
+ gfx::Size size =
+#if BUILDFLAG(IS_LINUX)
+ gfx::Size(1, 1);
+#else
+ requested_size;
+#endif
+ auto filtered_modifiers = GetFilteredModifiers(format, flags, modifiers);
+ struct gbm_bo* created_bo = nullptr;
+ bool valid_modifiers = false;
+
+ while (!valid_modifiers && !filtered_modifiers.empty()) {
+ created_bo = gbm_bo_create_with_modifiers(
+ device_, size.width(), size.height(), format,
+ filtered_modifiers.data(), filtered_modifiers.size());
+ if (!created_bo) {
return nullptr;
}
- struct gbm_import_fd_modifier_data fd_data;
- fd_data.width = size.width();
- fd_data.height = size.height();
- fd_data.format = format;
- fd_data.num_fds = gbm_bo_get_plane_count(bo);
- fd_data.modifier = gbm_bo_get_modifier(bo);
-
- // Store fds in the vector of base::ScopedFDs. Will be released
- // automatically.
+ const int planes_count = gbm_bo_get_plane_count(created_bo);
+ struct gbm_import_fd_modifier_data fd_data = {
+ .width = base::checked_cast<uint32_t>(size.width()),
+ .height = base::checked_cast<uint32_t>(size.height()),
+ .format = format,
+ .num_fds = base::checked_cast<uint32_t>(planes_count),
+ .modifier = gbm_bo_get_modifier(created_bo)};
+ // Store fds in a base::ScopedFDs vector. Will be released automatically.
std::vector<base::ScopedFD> fds;
for (size_t i = 0; i < static_cast<size_t>(fd_data.num_fds); ++i) {
- fds.emplace_back(GetPlaneFdForBo(bo, i));
+ fds.emplace_back(GetPlaneFdForBo(created_bo, i));
fd_data.fds[i] = fds.back().get();
- fd_data.strides[i] = gbm_bo_get_stride_for_plane(bo, i);
- fd_data.offsets[i] = gbm_bo_get_offset(bo, i);
+ fd_data.strides[i] = gbm_bo_get_stride_for_plane(created_bo, i);
+ fd_data.offsets[i] = gbm_bo_get_offset(created_bo, i);
}
- struct gbm_bo* bo_import =
+ struct gbm_bo* imported_bo =
gbm_bo_import(device_, GBM_BO_IMPORT_FD_MODIFIER, &fd_data, flags);
- if (bo_import) {
- gbm_bo_destroy(bo_import);
- break;
+
+ if (imported_bo) {
+ valid_modifiers = true;
+ gbm_bo_destroy(imported_bo);
} else {
- gbm_bo_destroy(bo);
- bo = nullptr;
AddModifierToBlocklist(format, flags, fd_data.modifier);
filtered_modifiers =
GetFilteredModifiers(format, flags, filtered_modifiers);
}
+
+ if (!valid_modifiers || size != requested_size) {
+ gbm_bo_destroy(created_bo);
+ created_bo = nullptr;
+ }
}
- if (!bo) {
- return nullptr;
+
+ // If modifiers were successfully verified though `created_bo` is null here,
+ // it it means that the buffer created for verification could not be reused,
+ // ie: different size, so create it now with the `requested_size`.
+ if (valid_modifiers && !created_bo) {
+ created_bo = gbm_bo_create_with_modifiers(
+ device_, requested_size.width(), requested_size.height(), format,
+ filtered_modifiers.data(), filtered_modifiers.size());
+ PLOG_IF(ERROR, !created_bo) << "Failed to create BO with modifiers.";
}
- return CreateBufferForBO(bo, format, size, flags);
+ return created_bo ? CreateBufferForBO(created_bo, format, size, flags)
+ : nullptr;
}
std::unique_ptr<ui::GbmBuffer> CreateBufferFromHandle(

View file

@ -0,0 +1,121 @@
diff -up chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc
--- chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc.me 2023-05-21 10:05:00.357860329 +0200
+++ chromium-114.0.5735.35/media/gpu/vaapi/vaapi_video_encode_accelerator.cc 2023-05-21 10:18:09.665432735 +0200
@@ -41,7 +41,6 @@
#include "media/gpu/gpu_video_encode_accelerator_helpers.h"
#include "media/gpu/h264_dpb.h"
#include "media/gpu/macros.h"
-#include "media/gpu/vaapi/av1_vaapi_video_encoder_delegate.h"
#include "media/gpu/vaapi/h264_vaapi_video_encoder_delegate.h"
#include "media/gpu/vaapi/va_surface.h"
#include "media/gpu/vaapi/vaapi_common.h"
@@ -200,7 +199,7 @@ bool VaapiVideoEncodeAccelerator::Initia
const VideoCodec codec = VideoCodecProfileToVideoCodec(config.output_profile);
if (codec != VideoCodec::kH264 && codec != VideoCodec::kVP8 &&
- codec != VideoCodec::kVP9 && codec != VideoCodec::kAV1) {
+ codec != VideoCodec::kVP9) {
MEDIA_LOG(ERROR, media_log.get())
<< "Unsupported profile: " << GetProfileName(config.output_profile);
return false;
@@ -293,7 +292,6 @@ void VaapiVideoEncodeAccelerator::Initia
break;
case VideoCodec::kVP8:
case VideoCodec::kVP9:
- case VideoCodec::kAV1:
mode = VaapiWrapper::kEncodeConstantQuantizationParameter;
break;
default:
@@ -356,12 +354,6 @@ void VaapiVideoEncodeAccelerator::Initia
vaapi_wrapper_, error_cb);
}
break;
- case VideoCodec::kAV1:
- if (!IsConfiguredForTesting()) {
- encoder_ = std::make_unique<AV1VaapiVideoEncoderDelegate>(
- vaapi_wrapper_, error_cb);
- }
- break;
default:
NOTREACHED() << "Unsupported codec type " << GetCodecName(output_codec_);
return;
@@ -835,10 +827,6 @@ VaapiVideoEncodeAccelerator::CreateEncod
case VideoCodec::kVP9:
picture = new VaapiVP9Picture(std::move(reconstructed_surface));
break;
- case VideoCodec::kAV1:
- picture = new VaapiAV1Picture(/*display_va_surface=*/nullptr,
- std::move(reconstructed_surface));
- break;
default:
return nullptr;
}
diff -up chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/BUILD.gn
--- chromium-114.0.5735.35/media/gpu/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
+++ chromium-114.0.5735.35/media/gpu/BUILD.gn 2023-05-20 13:14:10.755183630 +0200
@@ -373,10 +373,7 @@ source_set("common") {
"vp9_svc_layers.h",
]
configs += [ "//third_party/libvpx:libvpx_config" ]
- deps += [
- "//third_party/libaom:libaomrc",
- "//third_party/libvpx:libvpxrc",
- ]
+ deps += [ "//third_party/libvpx:libvpxrc" ]
}
if (use_libgav1_parser) {
sources += [
diff -up chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn
--- chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn.revert-av1enc 2023-05-18 00:37:57.000000000 +0200
+++ chromium-114.0.5735.35/media/gpu/vaapi/BUILD.gn 2023-05-20 13:14:10.756183626 +0200
@@ -38,8 +38,6 @@ source_set("vaapi") {
sources = [
"av1_vaapi_video_decoder_delegate.cc",
"av1_vaapi_video_decoder_delegate.h",
- "av1_vaapi_video_encoder_delegate.cc",
- "av1_vaapi_video_encoder_delegate.h",
"h264_vaapi_video_decoder_delegate.cc",
"h264_vaapi_video_decoder_delegate.h",
"h264_vaapi_video_encoder_delegate.cc",
@@ -107,7 +105,6 @@ source_set("vaapi") {
"//media/gpu/chromeos:common",
"//media/parsers",
"//mojo/public/cpp/bindings",
- "//third_party/libaom:libaomrc",
"//third_party/libvpx:libvpxrc",
"//third_party/libyuv",
"//ui/gfx",
diff -up chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc.me chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc
--- chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc.me 2023-11-02 15:08:30.921325747 +0100
+++ chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.cc 2023-11-02 15:09:46.123692602 +0100
@@ -3124,6 +3124,7 @@ bool VaapiWrapper::GetSupportedPackedHea
return true;
}
+#if 0 //disable AV1 due to old libva on epel9
bool VaapiWrapper::GetMinAV1SegmentSize(VideoCodecProfile profile,
uint32_t& min_seg_size) {
CHECK(!enforce_sequence_affinity_ ||
@@ -3141,6 +3142,7 @@ bool VaapiWrapper::GetMinAV1SegmentSize(
return true;
}
+#endif
bool VaapiWrapper::BlitSurface(const VASurface& va_surface_src,
const VASurface& va_surface_dest,
diff -up chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h.me chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h
--- chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h.me 2023-11-02 15:09:58.973928395 +0100
+++ chromium-119.0.6045.105/media/gpu/vaapi/vaapi_wrapper.h 2023-11-02 15:10:45.990791114 +0100
@@ -553,9 +553,11 @@ class MEDIA_GPU_EXPORT VaapiWrapper
bool& packed_pps,
bool& packed_slice);
+#if 0 //disable AV1 due to old libva on epel9
// Gets the minimum segment block size supported for AV1 encoding.
[[nodiscard]] bool GetMinAV1SegmentSize(VideoCodecProfile profile,
uint32_t& min_seg_size);
+#endif
// Blits a VASurface |va_surface_src| into another VASurface
// |va_surface_dest| applying pixel format conversion, cropping

View file

@ -0,0 +1,39 @@
diff -up chromium-119.0.6045.105/build/linux/unbundle/libusb.gn.gnsystem chromium-119.0.6045.105/build/linux/unbundle/libusb.gn
--- chromium-119.0.6045.105/build/linux/unbundle/libusb.gn.gnsystem 2023-11-06 12:22:08.550625387 +0100
+++ chromium-119.0.6045.105/build/linux/unbundle/libusb.gn 2023-11-06 12:22:08.550625387 +0100
@@ -0,0 +1,24 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/config/linux/pkg_config.gni")
+import("//build/shim_headers.gni")
+
+pkg_config("system_libusb") {
+ packages = [ "libusb-1.0" ]
+}
+
+shim_headers("libusb_shim") {
+ root_path = "src/libusb"
+ headers = [
+ "libusb.h",
+ ]
+}
+
+source_set("libusb") {
+ deps = [
+ ":libusb_shim",
+ ]
+ public_configs = [ ":system_libusb" ]
+}
diff -up chromium-119.0.6045.105/build/linux/unbundle/replace_gn_files.py.gnsystem chromium-119.0.6045.105/build/linux/unbundle/replace_gn_files.py
--- chromium-119.0.6045.105/build/linux/unbundle/replace_gn_files.py.gnsystem 2023-11-06 12:22:08.550625387 +0100
+++ chromium-119.0.6045.105/build/linux/unbundle/replace_gn_files.py 2023-11-06 12:28:28.295776501 +0100
@@ -54,6 +54,7 @@ REPLACEMENTS = {
'libevent': 'third_party/libevent/BUILD.gn',
'libjpeg': 'third_party/libjpeg.gni',
'libpng': 'third_party/libpng/BUILD.gn',
+ 'libusb': 'third_party/libusb/BUILD.gn',
'libvpx': 'third_party/libvpx/BUILD.gn',
'libwebp': 'third_party/libwebp/BUILD.gn',
'libxml': 'third_party/libxml/BUILD.gn',

View file

@ -0,0 +1,65 @@
diff -up chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
--- chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip 2023-11-06 12:42:34.928657960 +0100
+++ chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc 2023-11-06 12:51:12.547834851 +0100
@@ -28,9 +28,8 @@ limitations under the License.
#include "tensorflow_lite_support/cc/port/status_macros.h"
#include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h"
#include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
-#include "third_party/zlib/contrib/minizip/ioapi.h"
-#include "third_party/zlib/contrib/minizip/unzip.h"
-
+#include <minizip/ioapi.h>
+#include <minizip/unzip.h>
namespace tflite {
namespace metadata {
diff -up chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
--- chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip 2023-11-01 19:11:24.000000000 +0100
+++ chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc 2023-11-06 12:42:34.928657960 +0100
@@ -26,8 +26,8 @@ limitations under the License.
#include "tensorflow_lite_support/cc/port/statusor.h"
#include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h"
#include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
-#include "third_party/zlib/contrib/minizip/ioapi.h"
-#include "third_party/zlib/contrib/minizip/unzip.h"
+#include <minizip/ioapi.h>
+#include <minizip/zip.h>
namespace tflite {
namespace metadata {
diff -up chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
--- chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip 2023-11-01 19:11:24.000000000 +0100
+++ chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc 2023-11-06 12:42:34.929657982 +0100
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdio>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "third_party/zlib/contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {
diff -up chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
--- chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip 2023-11-01 19:11:24.000000000 +0100
+++ chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc 2023-11-06 12:42:34.929657982 +0100
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdio>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "third_party/zlib/contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {
diff -up chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
--- chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip 2023-11-01 19:11:24.000000000 +0100
+++ chromium-119.0.6045.105/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h 2023-11-06 12:42:34.929657982 +0100
@@ -19,7 +19,7 @@ limitations under the License.
#include <cstdlib>
#include "absl/strings/string_view.h" // from @com_google_absl
-#include "third_party/zlib/contrib/minizip/ioapi.h"
+#include <minizip/ioapi.h>
namespace tflite {
namespace metadata {

View file

@ -1,24 +0,0 @@
diff -up chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor.h.me chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor.h
--- chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor.h.me 2024-02-06 08:22:36.013021582 +0100
+++ chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor.h 2024-02-06 08:23:08.281607499 +0100
@@ -77,7 +77,7 @@ class XSLTProcessor final : public Scrip
void reset();
- static void ParseErrorFunc(void* user_data, const xmlError*);
+ static void ParseErrorFunc(void* user_data, xmlError*);
static void GenericErrorFunc(void* user_data, const char* msg, ...);
// Only for libXSLT callbacks
diff -up chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.me chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc
--- chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc.me 2024-02-06 08:14:32.368066214 +0100
+++ chromium-121.0.6167.139/third_party/blink/renderer/core/xml/xslt_processor_libxslt.cc 2024-02-06 08:23:08.282607518 +0100
@@ -66,7 +66,7 @@ void XSLTProcessor::GenericErrorFunc(voi
// It would be nice to do something with this error message.
}
-void XSLTProcessor::ParseErrorFunc(void* user_data, const xmlError* error) {
+void XSLTProcessor::ParseErrorFunc(void* user_data, xmlError* error) {
FrameConsole* console = static_cast<FrameConsole*>(user_data);
if (!console)
return;

View file

@ -1,17 +0,0 @@
diff -up chromium-122.0.6261.57/build/config/compiler/BUILD.gn.me chromium-122.0.6261.57/build/config/compiler/BUILD.gn
--- chromium-122.0.6261.57/build/config/compiler/BUILD.gn.me 2024-02-23 12:32:11.248584653 +0100
+++ chromium-122.0.6261.57/build/config/compiler/BUILD.gn 2024-02-23 12:45:26.672302958 +0100
@@ -399,6 +399,13 @@ config("compiler") {
}
}
+ if (is_clang) {
+ cflags += [ "-ftrivial-auto-var-init=zero" ]
+ if (!is_ubsan && !is_ubsan_security) {
+ cflags += [ "-fwrapv" ]
+ }
+ }
+
# Linker warnings.
if (fatal_linker_warnings && !is_apple && current_os != "aix" &&
current_os != "zos") {

View file

@ -1,12 +0,0 @@
diff -up chromium-123.0.6312.46/build/config/compiler/BUILD.gn.fstack-protector-strong chromium-123.0.6312.46/build/config/compiler/BUILD.gn
--- chromium-123.0.6312.46/build/config/compiler/BUILD.gn.fstack-protector-strong 2024-03-15 11:46:34.542248116 +0100
+++ chromium-123.0.6312.46/build/config/compiler/BUILD.gn 2024-03-15 11:59:02.970849847 +0100
@@ -382,7 +382,7 @@ config("compiler") {
} else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) {
if (current_os != "aix") {
# Not available on aix.
- cflags += [ "-fstack-protector" ]
+ cflags += [ "-fstack-protector-strong" ]
}
}
}

View file

@ -1,13 +0,0 @@
diff -up chromium-123.0.6312.58/chrome/browser/component_updater/screen_ai_component_installer.cc.me chromium-123.0.6312.58/chrome/browser/component_updater/screen_ai_component_installer.cc
--- chromium-123.0.6312.58/chrome/browser/component_updater/screen_ai_component_installer.cc.me 2024-03-24 10:58:43.033885904 +0100
+++ chromium-123.0.6312.58/chrome/browser/component_updater/screen_ai_component_installer.cc 2024-03-24 11:00:38.861979740 +0100
@@ -143,8 +143,7 @@ void ScreenAIComponentInstallerPolicy::D
void ManageScreenAIComponentRegistration(ComponentUpdateService* cus,
PrefService* local_state) {
if (screen_ai::ScreenAIInstallState::ShouldInstall(local_state)) {
- RegisterScreenAIComponent(cus);
- return;
+ // don't register the screenn ai service
}
// Clean up.

View file

@ -1,13 +0,0 @@
diff -up chromium-124.0.6367.60/base/allocator/partition_allocator/partition_alloc.gni.me chromium-124.0.6367.60/base/allocator/partition_allocator/partition_alloc.gni
--- chromium-124.0.6367.60/base/allocator/partition_allocator/partition_alloc.gni.me 2024-04-18 15:12:34.007397489 +0200
+++ chromium-124.0.6367.60/base/allocator/partition_allocator/partition_alloc.gni 2024-04-18 15:13:06.166051954 +0200
@@ -32,8 +32,7 @@ if (is_nacl) {
# Increases the size of the empty slot span ring.
use_large_empty_slot_span_ring = is_mac
-has_memory_tagging =
- current_cpu == "arm64" && is_clang && !is_asan && (is_linux || is_android)
+has_memory_tagging = false
declare_args() {
# Causes all the allocations to be routed via allocator_shim.cc. Usually,

View file

@ -1,11 +0,0 @@
diff -up chromium-124.0.6367.155/ui/qt/BUILD.gn.me chromium-124.0.6367.155/ui/qt/BUILD.gn
--- chromium-124.0.6367.155/ui/qt/BUILD.gn.me 2024-05-08 18:15:34.178627040 +0200
+++ chromium-124.0.6367.155/ui/qt/BUILD.gn 2024-05-08 18:29:31.162513709 +0200
@@ -61,6 +61,7 @@ template("qt_shim") {
packages = [
"Qt" + invoker.qt_version + "Core",
"Qt" + invoker.qt_version + "Widgets",
+ "Qt" + invoker.qt_version + "Gui",
]
}

View file

@ -1,13 +0,0 @@
diff -up chromium-127.0.6533.72/sandbox/linux/syscall_broker/broker_process.cc.me chromium-127.0.6533.72/sandbox/linux/syscall_broker/broker_process.cc
--- chromium-127.0.6533.72/sandbox/linux/syscall_broker/broker_process.cc.me 2024-07-30 18:09:59.483141522 +0200
+++ chromium-127.0.6533.72/sandbox/linux/syscall_broker/broker_process.cc 2024-07-30 19:42:47.122708543 +0200
@@ -163,9 +163,6 @@ bool BrokerProcess::IsSyscallBrokerable(
case __NR_stat:
case __NR_lstat:
#endif
-#if defined(__NR_fstatat)
- case __NR_fstatat:
-#endif
#if defined(__NR_fstatat64)
case __NR_fstatat64:
#endif

View file

@ -1,15 +0,0 @@
diff -up chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h
--- chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h.me 2024-07-25 23:58:19.751616508 +0200
+++ chromium-127.0.6533.72/base/allocator/partition_allocator/src/partition_alloc/aarch64_support.h 2024-07-26 00:01:46.391800969 +0200
@@ -10,9 +10,11 @@
#include "partition_alloc/build_config.h"
#include "partition_alloc/partition_alloc_buildflags.h"
+#if 0
#if PA_BUILDFLAG(IS_ANDROID) || PA_BUILDFLAG(IS_LINUX)
#define HAS_HW_CAPS
#endif
+#endif
#if PA_BUILDFLAG(PA_ARCH_CPU_ARM64) && defined(HAS_HW_CAPS)
#include <asm/hwcap.h>

View file

@ -1,21 +0,0 @@
diff -up chromium-130.0.6723.44/components/media_router/common/providers/cast/channel/enum_table.h.me chromium-130.0.6723.44/components/media_router/common/providers/cast/channel/enum_table.h
--- chromium-130.0.6723.44/components/media_router/common/providers/cast/channel/enum_table.h.me 2024-10-15 09:58:39.571798463 +0200
+++ chromium-130.0.6723.44/components/media_router/common/providers/cast/channel/enum_table.h 2024-10-15 09:59:46.209147226 +0200
@@ -12,7 +12,6 @@
#include <cstdint>
#include <cstring>
-#include <new>
#include <optional>
#include <ostream>
#include <string_view>
@@ -368,7 +367,8 @@ class EnumTable {
private:
#ifdef ARCH_CPU_64_BITS
- alignas(std::hardware_destructive_interference_size)
+ // Align the data on a cache line boundary.
+ alignas(64)
#endif
std::initializer_list<Entry> data_;
bool is_sorted_;

View file

@ -1,19 +0,0 @@
From b9075d0e1f687f9a5cf80a7778bde99cece9fdf7 Mon Sep 17 00:00:00 2001
From: Than Ngo <than@redhat.com>
Date: Sat, 23 Nov 2024 12:33:22 +0100
Subject: [PATCH] Enable qt-ui
diff -up chromium-131.0.6778.85/ui/qt/qt_shim.cc.me chromium-131.0.6778.85/ui/qt/qt_shim.cc
--- chromium-131.0.6778.85/ui/qt/qt_shim.cc.me 2024-11-23 10:04:16.789121846 +0100
+++ chromium-131.0.6778.85/ui/qt/qt_shim.cc 2024-11-23 11:40:02.905064702 +0100
@@ -265,7 +265,7 @@ FontRenderParams QtShim::GetFontRenderPa
FontDescription QtShim::GetFontDescription() const {
QFont font = app_.font();
return {
- .family = String(font.family().toStdString().c_str()),
+ .family = String(font.family().toUtf8().constData()),
.size_pixels = font.pixelSize(),
.size_points = font.pointSize(),
.is_italic = IsStyleItalic(font.style()),

View file

@ -1,32 +0,0 @@
commit 1ab1a14ad97394d384d8dc6de51bb229625e66d6
Author: Benoît Lizé <lizeb@chromium.org>
Date: Mon Sep 16 12:01:14 2024 +0200
[cppgc] Decommit pooled pages by default
This reduces committed memory by a large amount, which matters on
Windows. See the field trial results, which measure committed memory:
https://screenshot.googleplex.com/kEBAScqJSEXuRoy
Bug: chromium:326303884
Change-Id: I619257871bcdb7ed50a71f41af341d0df634428a
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5864909
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Auto-Submit: Benoit Lize <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#96107}
diff --git a/v8/src/flags/flag-definitions.h b/v8/src/flags/flag-definitions.h
index 69946faf5ed..85c4b68612e 100644
--- a/v8/src/flags/flag-definitions.h
+++ b/v8/src/flags/flag-definitions.h
@@ -821,7 +821,7 @@ DEFINE_BOOL(trace_block_coverage, false,
"trace collected block coverage information")
DEFINE_BOOL(trace_protector_invalidation, false,
"trace protector cell invalidations")
-DEFINE_BOOL(decommit_pooled_pages, false,
+DEFINE_BOOL(decommit_pooled_pages, true,
"decommit, rather than discard pooled pages")
#ifdef V8_MINORMS_STRING_SHORTCUTTING

View file

@ -1,11 +0,0 @@
diff -up chromium-132.0.6834.57/build/config/gcc/BUILD.gn.me chromium-132.0.6834.57/build/config/gcc/BUILD.gn
--- chromium-132.0.6834.57/build/config/gcc/BUILD.gn.me 2025-01-01 18:59:29.670002052 +0100
+++ chromium-132.0.6834.57/build/config/gcc/BUILD.gn 2025-01-01 20:51:11.798696436 +0100
@@ -32,7 +32,6 @@ declare_args() {
# See http://gcc.gnu.org/wiki/Visibility
config("symbol_visibility_hidden") {
cflags = [ "-fvisibility=hidden" ]
- rustflags = [ "-Zdefault-visibility=hidden" ]
# Visibility attribute is not supported on AIX.
if (current_os != "aix") {

View file

@ -1,12 +0,0 @@
diff -up chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc.me chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc
--- chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc.me 2025-02-05 13:28:17.782881439 +0100
+++ chromium-133.0.6943.53/media/filters/ffmpeg_glue.cc 2025-02-05 13:33:15.256928027 +0100
@@ -111,7 +111,7 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol
// We don't allow H.264 parsing during demuxing since we have our own parser
// and the ffmpeg one increases memory usage unnecessarily.
- format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
+ // format_context_->flags |= AVFMT_FLAG_NOH264PARSE;
// Ensures format parsing errors will bail out. From an audit on 11/2017, all
// instances were real failures. Solves bugs like http://crbug.com/710791.

View file

@ -1,34 +0,0 @@
diff -up chromium-133.0.6943.98/media/ffmpeg/ffmpeg_common.cc.than chromium-133.0.6943.98/media/ffmpeg/ffmpeg_common.cc
--- chromium-133.0.6943.98/media/ffmpeg/ffmpeg_common.cc.than 2025-02-13 11:59:31.035724118 +0100
+++ chromium-133.0.6943.98/media/ffmpeg/ffmpeg_common.cc 2025-02-14 10:39:07.825746076 +0100
@@ -76,6 +76,8 @@ const char* GetAllowedVideoDecoders() {
void ApplyCodecContextSecuritySettings(AVCodecContext* codec_context) {
// Future versions of ffmpeg may copy the allow list from the format
// context.
+ // Workaround for codec whitelist with system ffmpeg
+#if 0
if (!codec_context->codec_whitelist) {
// Note: FFmpeg will try to free this string, so we must duplicate it.
codec_context->codec_whitelist =
@@ -83,6 +85,7 @@ void ApplyCodecContextSecuritySettings(A
? GetAllowedAudioDecoders()
: GetAllowedVideoDecoders());
}
+#endif
// Note: This is security sensitive. FFmpeg may not always continue safely
// in the presence of errors. See https://crbug.com/379418979
diff -up chromium-133.0.6943.98/media/filters/ffmpeg_glue.cc.than chromium-133.0.6943.98/media/filters/ffmpeg_glue.cc
--- chromium-133.0.6943.98/media/filters/ffmpeg_glue.cc.than 2025-02-14 10:14:13.360398193 +0100
+++ chromium-133.0.6943.98/media/filters/ffmpeg_glue.cc 2025-02-14 10:36:46.762332912 +0100
@@ -131,8 +131,10 @@ FFmpegGlue::FFmpegGlue(FFmpegURLProtocol
// memory usage.
//
// Note: FFmpeg will try to free these strings, so we must duplicate them.
+#if 0
format_context_->codec_whitelist = av_strdup(GetAllowedAudioDecoders());
format_context_->format_whitelist = av_strdup(GetAllowedDemuxers());
+#endif
}
bool FFmpegGlue::OpenContext(bool is_local_file) {

File diff suppressed because it is too large Load diff

View file

@ -1,13 +0,0 @@
diff -up chromium-134.0.6998.23/base/containers/to_value_list.h.me chromium-134.0.6998.23/base/containers/to_value_list.h
--- chromium-134.0.6998.23/base/containers/to_value_list.h.me 2025-02-23 22:39:33.369668072 +0100
+++ chromium-134.0.6998.23/base/containers/to_value_list.h 2025-02-23 22:42:42.653990901 +0100
@@ -36,8 +36,7 @@ Value::List ToValueList(Range&& range, P
auto container = Value::List::with_capacity(std::ranges::size(range));
std::ranges::for_each(
std::forward<Range>(range),
- [&]<typename T>(T&& value) { container.Append(std::forward<T>(value)); },
- std::move(proj));
+ [&](auto&& value) { container.Append(std::invoke(proj, std::forward<decltype(*std::ranges::begin(range))>(value))); });
return container;
}

View file

@ -1,20 +0,0 @@
diff -up chromium-136.0.7103.33/third_party/node/node.gni.than chromium-136.0.7103.33/third_party/node/node.gni
--- chromium-136.0.7103.33/third_party/node/node.gni.than 2025-04-21 17:53:06.742517984 +0200
+++ chromium-136.0.7103.33/third_party/node/node.gni 2025-04-21 17:54:05.452645652 +0200
@@ -35,16 +35,5 @@ template("node") {
inputs += [ "//third_party/node/mac/node-darwin-x64/bin/node" ]
}
}
-
- # Automatically add a dependency to ":check_version" to ensure NodeJS is
- # always running the expected version, except when the ':check_version'
- # target itself is running in which case it shouldn't depend on itself.
- if (get_label_info(":" + target_name, "label_no_toolchain") !=
- "//third_party/node:check_version") {
- if (!defined(deps)) {
- deps = []
- }
- deps += [ "//third_party/node:check_version" ]
- }
}
}

View file

@ -1,12 +0,0 @@
diff -up chromium-136.0.7103.48/third_party/rust/chromium_crates_io/vendor/skrifa-0.29.2/src/glyph_name.rs.than chromium-136.0.7103.48/third_party/rust/chromium_crates_io/vendor/skrifa-0.29.2/src/glyph_name.rs
--- chromium-136.0.7103.48/third_party/rust/chromium_crates_io/vendor/skrifa-0.29.2/src/glyph_name.rs.than 2025-04-29 08:36:33.385071420 +0200
+++ chromium-136.0.7103.48/third_party/rust/chromium_crates_io/vendor/skrifa-0.29.2/src/glyph_name.rs 2025-04-29 08:42:21.465525421 +0200
@@ -94,7 +94,7 @@ impl<'a> GlyphNames<'a> {
_ => None,
};
// If name is empty string, synthesize it
- if name.as_ref().is_none_or(|s| s.is_empty()) {
+ if name.is_none() || name.as_ref().map_or(false, |s| s.is_empty()) {
return Some(GlyphName::synthesize(glyph_id));
}
Some(name.unwrap_or_else(|| GlyphName::synthesize(glyph_id)))

View file

@ -1,17 +0,0 @@
diff -up chromium-136.0.7103.48/build/config/compiler/BUILD.gn.than chromium-136.0.7103.48/build/config/compiler/BUILD.gn
--- chromium-136.0.7103.48/build/config/compiler/BUILD.gn.than 2025-04-28 15:44:08.883499599 +0200
+++ chromium-136.0.7103.48/build/config/compiler/BUILD.gn 2025-04-28 15:44:47.624639772 +0200
@@ -622,12 +622,6 @@ config("compiler") {
cflags += [ "-ffp-contract=off" ]
}
- # Enable ELF CREL (see crbug.com/357878242) for all platforms that use ELF
- # (excluding toolchains that use an older version of LLVM).
- if (is_linux && !llvm_android_mainline &&
- default_toolchain != "//build/toolchain/cros:target") {
- cflags += [ "-Wa,--crel,--allow-experimental-crel" ]
- }
}
# C11/C++11 compiler flags setup.
diff -up chromium-136.0.7103.48/tools/licenses/licenses.py.than chromium-136.0.7103.48/tools/licenses/licenses.py

View file

@ -1,23 +0,0 @@
diff -up chromium-138.0.7204.15/third_party/node/node.gni.me chromium-138.0.7204.15/third_party/node/node.gni
--- chromium-138.0.7204.15/third_party/node/node.gni.me 2025-06-03 23:20:09.000000000 +0200
+++ chromium-138.0.7204.15/third_party/node/node.gni 2025-06-09 09:59:21.788545159 +0200
@@ -44,7 +44,6 @@ template("node") {
if (!defined(deps)) {
deps = []
}
- deps += [ "//third_party/node:check_version" ]
}
}
}
diff -up chromium-138.0.7204.15/third_party/node/BUILD.gn.me chromium-138.0.7204.15/third_party/node/BUILD.gn
diff -up chromium-138.0.7204.15/third_party/protobuf/proto_library.gni.me chromium-138.0.7204.15/third_party/protobuf/proto_library.gni
--- chromium-138.0.7204.15/third_party/protobuf/proto_library.gni.me 2025-06-09 11:33:08.279645775 +0200
+++ chromium-138.0.7204.15/third_party/protobuf/proto_library.gni 2025-06-09 12:10:07.040045476 +0200
@@ -562,7 +562,6 @@ template("proto_library") {
_protoc_gen_ts_path,
"//tools/protoc_wrapper/protoc-gen-ts_proto.py",
] + _protoc_gen_ts_runtime_deps
- deps += [ "//third_party/node:check_version" ]
}
if (_generate_with_plugin) {

View file

@ -1,158 +0,0 @@
https://chromium-review.googlesource.com/c/chromium/src/+/6506529
Revert CL rolls ffmpeg for M138 as it breaks the build due to old ffmpeg version on EL9
diff -up chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc.me chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc
--- chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc.me 2025-06-23 23:34:26.000000000 +0200
+++ chromium-138.0.7204.49/media/ffmpeg/ffmpeg_common.cc 2025-06-25 15:13:17.958054182 +0200
@@ -263,22 +263,22 @@ AVCodecID VideoCodecToCodecID(VideoCodec
static VideoCodecProfile ProfileIDToVideoCodecProfile(int profile) {
// Clear out the CONSTRAINED & INTRA flags which are strict subsets of the
// corresponding profiles with which they're used.
- profile &= ~AV_PROFILE_H264_CONSTRAINED;
- profile &= ~AV_PROFILE_H264_INTRA;
+ profile &= ~FF_PROFILE_H264_CONSTRAINED;
+ profile &= ~FF_PROFILE_H264_INTRA;
switch (profile) {
- case AV_PROFILE_H264_BASELINE:
+ case FF_PROFILE_H264_BASELINE:
return H264PROFILE_BASELINE;
- case AV_PROFILE_H264_MAIN:
+ case FF_PROFILE_H264_MAIN:
return H264PROFILE_MAIN;
- case AV_PROFILE_H264_EXTENDED:
+ case FF_PROFILE_H264_EXTENDED:
return H264PROFILE_EXTENDED;
- case AV_PROFILE_H264_HIGH:
+ case FF_PROFILE_H264_HIGH:
return H264PROFILE_HIGH;
- case AV_PROFILE_H264_HIGH_10:
+ case FF_PROFILE_H264_HIGH_10:
return H264PROFILE_HIGH10PROFILE;
- case AV_PROFILE_H264_HIGH_422:
+ case FF_PROFILE_H264_HIGH_422:
return H264PROFILE_HIGH422PROFILE;
- case AV_PROFILE_H264_HIGH_444_PREDICTIVE:
+ case FF_PROFILE_H264_HIGH_444_PREDICTIVE:
return H264PROFILE_HIGH444PREDICTIVEPROFILE;
default:
DVLOG(1) << "Unknown profile id: " << profile;
@@ -289,23 +289,23 @@ static VideoCodecProfile ProfileIDToVide
static int VideoCodecProfileToProfileID(VideoCodecProfile profile) {
switch (profile) {
case H264PROFILE_BASELINE:
- return AV_PROFILE_H264_BASELINE;
+ return FF_PROFILE_H264_BASELINE;
case H264PROFILE_MAIN:
- return AV_PROFILE_H264_MAIN;
+ return FF_PROFILE_H264_MAIN;
case H264PROFILE_EXTENDED:
- return AV_PROFILE_H264_EXTENDED;
+ return FF_PROFILE_H264_EXTENDED;
case H264PROFILE_HIGH:
- return AV_PROFILE_H264_HIGH;
+ return FF_PROFILE_H264_HIGH;
case H264PROFILE_HIGH10PROFILE:
- return AV_PROFILE_H264_HIGH_10;
+ return FF_PROFILE_H264_HIGH_10;
case H264PROFILE_HIGH422PROFILE:
- return AV_PROFILE_H264_HIGH_422;
+ return FF_PROFILE_H264_HIGH_422;
case H264PROFILE_HIGH444PREDICTIVEPROFILE:
- return AV_PROFILE_H264_HIGH_444_PREDICTIVE;
+ return FF_PROFILE_H264_HIGH_444_PREDICTIVE;
default:
DVLOG(1) << "Unknown VideoCodecProfile: " << profile;
}
- return AV_PROFILE_UNKNOWN;
+ return FF_PROFILE_UNKNOWN;
}
SampleFormat AVSampleFormatToSampleFormat(AVSampleFormat sample_format,
@@ -441,7 +441,7 @@ bool AVCodecContextToAudioDecoderConfig(
// TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
// ever starts supporting xHE-AAC.
// FFmpeg provides the (defined_profile - 1) for AVCodecContext::profile
- if (codec_context->profile == AV_PROFILE_UNKNOWN ||
+ if (codec_context->profile == FF_PROFILE_UNKNOWN ||
codec_context->profile == mp4::AAC::kXHeAAcType - 1) {
// Errors aren't fatal here, so just drop any MediaLog messages.
NullMediaLog media_log;
@@ -659,16 +659,16 @@ bool AVStreamToVideoDecoderConfig(const
break;
case VideoCodec::kVP9:
switch (codec_context->profile) {
- case AV_PROFILE_VP9_0:
+ case FF_PROFILE_VP9_0:
profile = VP9PROFILE_PROFILE0;
break;
- case AV_PROFILE_VP9_1:
+ case FF_PROFILE_VP9_1:
profile = VP9PROFILE_PROFILE1;
break;
- case AV_PROFILE_VP9_2:
+ case FF_PROFILE_VP9_2:
profile = VP9PROFILE_PROFILE2;
break;
- case AV_PROFILE_VP9_3:
+ case FF_PROFILE_VP9_3:
profile = VP9PROFILE_PROFILE3;
break;
default:
diff -up chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter.cc.me chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter.cc
--- chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter.cc.me 2025-06-23 23:34:26.000000000 +0200
+++ chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter.cc 2025-06-25 15:13:17.958541707 +0200
@@ -68,17 +68,17 @@ bool GenerateAdtsHeader(int codec,
hdr[1] |= 1;
switch (audio_profile) {
- case AV_PROFILE_AAC_MAIN:
+ case FF_PROFILE_AAC_MAIN:
break;
- case AV_PROFILE_AAC_HE:
- case AV_PROFILE_AAC_HE_V2:
- case AV_PROFILE_AAC_LOW:
+ case FF_PROFILE_AAC_HE:
+ case FF_PROFILE_AAC_HE_V2:
+ case FF_PROFILE_AAC_LOW:
hdr[2] |= (1 << 6);
break;
- case AV_PROFILE_AAC_SSR:
+ case FF_PROFILE_AAC_SSR:
hdr[2] |= (2 << 6);
break;
- case AV_PROFILE_AAC_LTP:
+ case FF_PROFILE_AAC_LTP:
hdr[2] |= (3 << 6);
break;
default:
diff -up chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
--- chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc.me 2025-06-23 23:34:26.000000000 +0200
+++ chromium-138.0.7204.49/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc 2025-06-25 15:13:17.958839001 +0200
@@ -41,7 +41,7 @@ class FFmpegAACBitstreamConverterTest :
// Set up reasonable aac parameters
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
test_parameters_.codec_id = AV_CODEC_ID_AAC;
- test_parameters_.profile = AV_PROFILE_AAC_MAIN;
+ test_parameters_.profile = FF_PROFILE_AAC_MAIN;
test_parameters_.ch_layout.nb_channels = 2;
test_parameters_.extradata = extradata_header_;
test_parameters_.extradata_size = sizeof(extradata_header_);
@@ -131,7 +131,7 @@ TEST_F(FFmpegAACBitstreamConverterTest,
EXPECT_EQ(profile, kAacMainProfile);
- test_parameters_.profile = AV_PROFILE_AAC_HE;
+ test_parameters_.profile = FF_PROFILE_AAC_HE;
FFmpegAACBitstreamConverter converter_he(&test_parameters_);
test_packet = ScopedAVPacket::Allocate();
@@ -143,7 +143,7 @@ TEST_F(FFmpegAACBitstreamConverterTest,
EXPECT_EQ(profile, kAacLowComplexityProfile);
- test_parameters_.profile = AV_PROFILE_AAC_ELD;
+ test_parameters_.profile = FF_PROFILE_AAC_ELD;
FFmpegAACBitstreamConverter converter_eld(&test_parameters_);
test_packet = ScopedAVPacket::Allocate();

View file

@ -1,13 +0,0 @@
diff -up chromium-139.0.7258.127/build/rust/cargo_crate.gni.than chromium-139.0.7258.127/build/rust/cargo_crate.gni
--- chromium-139.0.7258.127/build/rust/cargo_crate.gni.than 2025-08-14 09:44:51.783560032 +0200
+++ chromium-139.0.7258.127/build/rust/cargo_crate.gni 2025-08-14 09:48:37.407051268 +0200
@@ -310,6 +310,9 @@ template("cargo_crate") {
rustflags +=
[ "-Awarnings" ] # Suppress other warnings in 3rd-party crates.
+ rustflags +=
+ [ "--cap-lints=warn" ] # Suppress other warnings, causes FTBFS in Fedora build rhbz#2387446
+
if (!defined(build_native_rust_unit_tests)) {
build_native_rust_unit_tests = _crate_type != "proc-macro"
}

View file

@ -1,16 +0,0 @@
Fix ftbfs
v8/include/cppgc/visitor.h:440:19: error: invalid application of 'sizeof' to an incomplete type 'blink::CSSStyleSheet'
440 | static_assert(sizeof(T), "Pointee type must be fully defined.");
diff -up chromium-141.0.7390.37/third_party/blink/renderer/bindings/scripts/bind_gen/observable_array.py.ftbfs-csss_style_sheet chromium-141.0.7390.37/third_party/blink/renderer/bindings/scripts/bind_gen/observable_array.py
--- chromium-141.0.7390.37/third_party/blink/renderer/bindings/scripts/bind_gen/observable_array.py.ftbfs-csss_style_sheet 2025-09-23 22:21:14.000000000 +0200
+++ chromium-141.0.7390.37/third_party/blink/renderer/bindings/scripts/bind_gen/observable_array.py 2025-10-01 17:55:51.303926035 +0200
@@ -433,6 +433,7 @@ def generate_observable_array(observable
header_node.accumulator.add_include_headers([
component_export_header(api_component, for_testing),
"third_party/blink/renderer/bindings/core/v8/idl_types.h",
+ "third_party/blink/renderer/core/css/css_style_sheet.h",
"third_party/blink/renderer/platform/bindings/observable_array.h",
])
source_node.accumulator.add_include_headers([

View file

@ -1,29 +0,0 @@
Fix FTBFS
/usr/include/bits/siginfo-consts.h:219:3: error: expected identifier
219 | SYS_SECCOMP = 1, /* Seccomp triggered. */
| ^
../../sandbox/linux/system_headers/linux_seccomp.h:220:39: note: expanded from macro 'SYS_SECCOMP'
220 | #define SYS_SECCOMP 1
| ^
../../sandbox/linux/seccomp-bpf/trap.cc:159:46: error: use of undeclared identifier 'SYS_SECCOMP'
159 | if (nr != LINUX_SIGSYS || info->si_code != SYS_SECCOMP || !ctx ||
| ^~~~~~~~~~~
/usr/include/bits/siginfo-consts.h:220:23: note: expanded from macro 'SYS_SECCOMP'
220 | # define SYS_SECCOMP SYS_SECCOMP
diff -up chromium-141.0.7390.122/sandbox/linux/system_headers/linux_seccomp.h.me chromium-141.0.7390.122/sandbox/linux/system_headers/linux_seccomp.h
--- chromium-141.0.7390.122/sandbox/linux/system_headers/linux_seccomp.h.me 2025-10-28 10:05:44.970248151 +0100
+++ chromium-141.0.7390.122/sandbox/linux/system_headers/linux_seccomp.h 2025-10-28 10:05:52.291345772 +0100
@@ -214,8 +214,11 @@ struct seccomp_notif_addfd {
#define SECCOMP_RET_INVALID 0x00010000U // Illegal return value
#endif
+// check glibc version < 2.42
+#if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 42)
#ifndef SYS_SECCOMP
#define SYS_SECCOMP 1
#endif
+#endif
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SECCOMP_H_

View file

@ -1,28 +0,0 @@
Fix FTBFS
../../build/modules/linux-x64/module.modulemap:11:12: error: header '../../linux/debian_bullseye_amd64-sysroot/usr/include/alloca.h' not found
11 | header "../../linux/debian_bullseye_amd64-sysroot/usr/include/alloca.h"
| ^
1 error generated
diff -up chromium-141.0.7390.37/build/config/BUILDCONFIG.gn.me chromium-141.0.7390.37/build/config/BUILDCONFIG.gn
--- chromium-141.0.7390.37/build/config/BUILDCONFIG.gn.me 2025-10-01 17:39:47.242174153 +0200
+++ chromium-141.0.7390.37/build/config/BUILDCONFIG.gn 2025-10-01 17:49:54.736578295 +0200
@@ -557,6 +557,8 @@ foreach(_target_type,
]) {
template(_target_type) {
target(_target_type, target_name) {
+ use_libcxx_modules = false
+
forward_variables_from(invoker, "*", TESTONLY_AND_VISIBILITY)
forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
if (!defined(inputs)) {
@@ -660,6 +662,8 @@ foreach(_target_type,
# TODO(crbug.com/326584510): Reclient doesn't respect this variable, see
# rbe_bug_326584510_missing_inputs in //build/config/clang/clang.gni
_uses_cflags = false
+ use_libcxx_modules = false
+
if (defined(sources)) {
foreach(f, sources) {
if (string_replace(f + ".END", ".cc.END", "") != f + ".END" ||

View file

@ -1,13 +0,0 @@
diff -up chromium-142.0.7444.52/build/config/compiler/BUILD.gn.clang++-unsupported-argument chromium-142.0.7444.52/build/config/compiler/BUILD.gn
--- chromium-142.0.7444.52/build/config/compiler/BUILD.gn.clang++-unsupported-argument 2025-10-28 19:41:59.131433882 +0100
+++ chromium-142.0.7444.52/build/config/compiler/BUILD.gn 2025-10-28 19:42:51.792779638 +0100
@@ -2160,9 +2160,6 @@ config("default_warnings") {
# TODO(crbug.com/40284799): Fix and re-enable.
"-Wno-thread-safety-reference-return",
- # TODO(crbug.com/376641662): Fix and re-enable.
- "-Wno-nontrivial-memcall",
-
# TODO(crbug.com/432275627): Fix and re-enable.
"-Wno-uninitialized-const-pointer",
]

View file

@ -1,24 +0,0 @@
Workaround for FTBFS
error: cannot find attribute `sanitize` in this scope
--> ../../third_party/crabbyavif/src/src/capi/io.rs:210:41
|
210 | #[cfg_attr(feature = "disable_cfi", sanitize(cfi = "off"))]
diff -up chromium-142.0.7444.52/third_party/crabbyavif/BUILD.gn.me chromium-142.0.7444.52/third_party/crabbyavif/BUILD.gn
--- chromium-142.0.7444.52/third_party/crabbyavif/BUILD.gn.me 2025-10-27 10:40:59.373768499 +0100
+++ chromium-142.0.7444.52/third_party/crabbyavif/BUILD.gn 2025-10-27 10:45:12.142749942 +0100
@@ -197,12 +197,11 @@ rust_static_library("crabbyavif") {
"dav1d",
"libyuv",
"capi",
- "disable_cfi",
]
# Required for disable_cfi feature.
configs -= [ "//build/config/compiler:disallow_unstable_features" ]
- rustflags = [ "-Zallow-features=sanitize" ]
+ rustflags = [ "-Zallow-features=no_sanitize" ]
public_deps = [ ":header_files" ]
deps = [

View file

@ -1,136 +0,0 @@
diff -up chromium-142.0.7444.59/media/ffmpeg/ffmpeg_common.cc.el9-ffmpeg-5.1.x chromium-142.0.7444.59/media/ffmpeg/ffmpeg_common.cc
--- chromium-142.0.7444.59/media/ffmpeg/ffmpeg_common.cc.el9-ffmpeg-5.1.x 2025-11-01 22:14:10.116779876 +0100
+++ chromium-142.0.7444.59/media/ffmpeg/ffmpeg_common.cc 2025-11-01 22:14:10.134140132 +0100
@@ -800,8 +803,13 @@ bool AVStreamToVideoDecoderConfig(const
}
VideoTransformation video_transformation = VideoTransformation();
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ for (int i = 0; i < stream->nb_side_data; i++) {
+ const auto& side_data = stream->side_data[i];
+#else
for (const auto& side_data :
AVCodecParametersCodedSideToSpan(stream->codecpar)) {
+#endif
switch (side_data.type) {
case AV_PKT_DATA_DISPLAYMATRIX: {
CHECK_EQ(side_data.size, sizeof(int32_t) * 3 * 3);
diff -up chromium-142.0.7444.59/media/ffmpeg/ffmpeg_common.h.el9-ffmpeg-5.1.x chromium-142.0.7444.59/media/ffmpeg/ffmpeg_common.h
--- chromium-142.0.7444.59/media/ffmpeg/ffmpeg_common.h.el9-ffmpeg-5.1.x 2025-10-24 18:42:30.000000000 +0200
+++ chromium-142.0.7444.59/media/ffmpeg/ffmpeg_common.h 2025-11-02 08:06:48.997329630 +0100
@@ -111,9 +111,13 @@ inline base::span<AVPacketSideData> AVCo
// https://ffmpeg.org/doxygen/trunk/structAVCodecParameters.html#a29643cfd94231e2d148a5d17b08d115b
// ffmpeg documentation: `nb_coded_side_data` is the amount of entries in
// `coded_side_data`.
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(60, 31, 102)
return UNSAFE_BUFFERS(
base::span(codecpar->coded_side_data,
base::checked_cast<size_t>(codecpar->nb_coded_side_data)));
+#else
+ return base::span<AVPacketSideData>();
+#endif
}
// Converts an int64_t timestamp in |time_base| units to a base::TimeDelta.
diff -up chromium-142.0.7444.59/media/filters/audio_video_metadata_extractor.cc.el9-ffmpeg-5.1.x chromium-142.0.7444.59/media/filters/audio_video_metadata_extractor.cc
--- chromium-142.0.7444.59/media/filters/audio_video_metadata_extractor.cc.el9-ffmpeg-5.1.x 2025-10-24 18:42:30.000000000 +0200
+++ chromium-142.0.7444.59/media/filters/audio_video_metadata_extractor.cc 2025-11-01 22:14:10.124748634 +0100
@@ -109,17 +109,33 @@ bool AudioVideoMetadataExtractor::Extrac
container_info.type = format_context->iformat->name;
ExtractDictionary(format_context->metadata, &container_info.tags);
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ for (unsigned int i = 0; i < format_context->nb_streams; ++i) {
+ stream_infos_.push_back(StreamInfo());
+#else
base::span<AVStream*> format_context_span =
AVFormatContextToSpan(format_context);
std::ranges::for_each(format_context_span, [&](AVStream* stream) {
stream_infos_.emplace_back();
+#endif
StreamInfo& info = stream_infos_.back();
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ AVStream* stream = format_context->streams[i];
+ if (!stream)
+ continue;
+#else
if (!stream) {
return;
}
+#endif
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ for (int j = 0; j < stream->nb_side_data; j++) {
+ const AVPacketSideData& sd = stream->side_data[j];
+#else
for (const auto& sd : AVCodecParametersCodedSideToSpan(stream->codecpar)) {
+#endif
if (sd.type == AV_PKT_DATA_DISPLAYMATRIX) {
CHECK_EQ(sd.size, sizeof(int32_t) * 3 * 3);
rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
@@ -135,7 +151,11 @@ bool AudioVideoMetadataExtractor::Extrac
ExtractDictionary(stream->metadata, &info.tags);
if (!stream->codecpar) {
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ continue;
+#else
return;
+#endif
}
info.type = avcodec_get_name(stream->codecpar->codec_id);
@@ -158,7 +178,11 @@ bool AudioVideoMetadataExtractor::Extrac
reinterpret_cast<const char*>(stream->attached_pic.data),
stream->attached_pic.size);
}
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ }
+#else
});
+#endif
extracted_ = true;
return true;
diff -up chromium-142.0.7444.59/media/filters/media_file_checker.cc.el9-ffmpeg-5.1.x chromium-142.0.7444.59/media/filters/media_file_checker.cc
--- chromium-142.0.7444.59/media/filters/media_file_checker.cc.el9-ffmpeg-5.1.x 2025-10-24 18:42:30.000000000 +0200
+++ chromium-142.0.7444.59/media/filters/media_file_checker.cc 2025-11-01 22:14:10.125099595 +0100
@@ -64,6 +64,10 @@ bool MediaFileChecker::Start(base::TimeD
// Remember the codec context for any decodable audio or video streams.
bool found_streams = false;
std::vector<Decoder> stream_contexts(format_context->nb_streams);
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ for (size_t i = 0; i < format_context->nb_streams; ++i) {
+ AVCodecParameters* cp = format_context->streams[i]->codecpar;
+#else
base::span<AVStream*> format_context_span =
AVFormatContextToSpan(format_context);
std::ranges::transform(
@@ -85,9 +89,26 @@ bool MediaFileChecker::Start(base::TimeD
}
}
+#endif
+#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(60, 31, 102)
+ if (cp->codec_type == AVMEDIA_TYPE_AUDIO ||
+ cp->codec_type == AVMEDIA_TYPE_VIDEO) {
+ auto context = AVStreamToAVCodecContext(format_context->streams[i]);
+ if (!context)
+ continue;
+ const AVCodec* codec = avcodec_find_decoder(cp->codec_id);
+ if (codec && avcodec_open2(context.get(), codec, nullptr) >= 0) {
+ auto loop = std::make_unique<FFmpegDecodingLoop>(context.get());
+ stream_contexts[i] = {std::move(context), std::move(loop)};
+ found_streams = true;
+ }
+ }
+ }
+#else
return Decoder{};
});
+#endif
if (!found_streams)
return false;

View file

@ -1,32 +0,0 @@
commit 069d424e41f42c6f4a4551334eafc7cfaed6e880
Author: Nathan Pratta Teodosio <nathan.teodosio@canonical.com>
Date: Mon Oct 13 02:29:29 2025 -0700
Add missing include for FormFieldData type completeness.
Bug: 450752866
Change-Id: I25b2d6cd627063e006014289de68d2ecc70a2db7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7030724
Reviewed-by: Christoph Schwering <schwering@google.com>
Reviewed-by: Jihad Hanna <jihadghanna@google.com>
Commit-Queue: Jihad Hanna <jihadghanna@google.com>
Reviewed-by: Matthias Körber <koerber@google.com>
Cr-Commit-Position: refs/heads/main@{#1528799}
diff --git a/components/autofill/core/browser/form_parsing/autofill_scanner.h b/components/autofill/core/browser/form_parsing/autofill_scanner.h
index 844526a5f77..eab073266e8 100644
--- a/components/autofill/core/browser/form_parsing/autofill_scanner.h
+++ b/components/autofill/core/browser/form_parsing/autofill_scanner.h
@@ -10,11 +10,10 @@
#include "base/compiler_specific.h"
#include "base/containers/span.h"
#include "base/memory/raw_span.h"
+#include "components/autofill/core/common/form_field_data.h"
namespace autofill {
-class FormFieldData;
-
// A helper class for parsing a stream of |FormFieldData|'s with lookahead.
class AutofillScanner {
private:

Some files were not shown because too many files have changed in this diff Show more