summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--www-client/chromium/chromium-86.0.4240.111-r1.ebuild (renamed from www-client/chromium/chromium-86.0.4240.111.ebuild)5
-rw-r--r--www-client/chromium/chromium-87.0.4280.20-r1.ebuild (renamed from www-client/chromium/chromium-87.0.4280.20.ebuild)8
-rw-r--r--www-client/chromium/files/chromium-87-xproto-crash.patch38
3 files changed, 48 insertions, 3 deletions
diff --git a/www-client/chromium/chromium-86.0.4240.111.ebuild b/www-client/chromium/chromium-86.0.4240.111-r1.ebuild
index df085819384b..3afc7420f133 100644
--- a/www-client/chromium/chromium-86.0.4240.111.ebuild
+++ b/www-client/chromium/chromium-86.0.4240.111-r1.ebuild
@@ -235,7 +235,10 @@ src_prepare() {
# Calling this here supports resumption via FEATURES=keepwork
python_setup
- eapply "${WORKDIR}/patches"
+ local PATCHES=(
+ "${WORKDIR}/patches"
+ "${FILESDIR}/chromium-87-xproto-crash.patch"
+ )
default
diff --git a/www-client/chromium/chromium-87.0.4280.20.ebuild b/www-client/chromium/chromium-87.0.4280.20-r1.ebuild
index 15eece70ebee..bf67a111684f 100644
--- a/www-client/chromium/chromium-87.0.4280.20.ebuild
+++ b/www-client/chromium/chromium-87.0.4280.20-r1.ebuild
@@ -231,9 +231,13 @@ src_prepare() {
# Calling this here supports resumption via FEATURES=keepwork
python_setup
- eapply "${WORKDIR}/patches"
+ local PATCHES=(
+ "${WORKDIR}/patches"
+ "${FILESDIR}/chromium-87-xproto-crash.patch"
+ )
+
if use vaapi; then
- eapply "${FILESDIR}/chromium-86-fix-vaapi-on-intel.patch"
+ PATCHES+=( "${FILESDIR}/chromium-86-fix-vaapi-on-intel.patch" )
fi
default
diff --git a/www-client/chromium/files/chromium-87-xproto-crash.patch b/www-client/chromium/files/chromium-87-xproto-crash.patch
new file mode 100644
index 000000000000..d0dc391e8f10
--- /dev/null
+++ b/www-client/chromium/files/chromium-87-xproto-crash.patch
@@ -0,0 +1,38 @@
+From 6e50c5a3abfa22eb17e26086bffbee288d07483e Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Thu, 22 Oct 2020 01:05:44 +0000
+Subject: [PATCH] [XProto] Fix crash in media::UserInputMonitorLinuxCore::DispatchXEvent
+
+The X server may send unsolicited events (from clients calling
+XSendEvent() or from new keyboard mappings). So we must check that
+the event is the correct type before dispatching it.
+
+R=dalecurtis
+
+Change-Id: Ic3e19f7da1415c358991609c9b016bd60ead2038
+Bug: 1140927
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2490674
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#819650}
+---
+
+diff --git a/media/base/user_input_monitor_linux.cc b/media/base/user_input_monitor_linux.cc
+index 59e655f..13c373f 100644
+--- a/media/base/user_input_monitor_linux.cc
++++ b/media/base/user_input_monitor_linux.cc
+@@ -115,9 +115,10 @@
+ DCHECK(io_task_runner_->BelongsToCurrentThread());
+
+ auto* raw = event->As<x11::Input::RawDeviceEvent>();
+- DCHECK(raw);
+- DCHECK(raw->opcode == x11::Input::RawDeviceEvent::RawKeyPress ||
+- raw->opcode == x11::Input::RawDeviceEvent::RawKeyRelease);
++ if (!raw || (raw->opcode != x11::Input::RawDeviceEvent::RawKeyPress &&
++ raw->opcode != x11::Input::RawDeviceEvent::RawKeyRelease)) {
++ return;
++ }
+
+ ui::EventType type = raw->opcode == x11::Input::RawDeviceEvent::RawKeyPress
+ ? ui::ET_KEY_PRESSED