$ git diff --patch-with-stat --summary c75d552e5f4d2a828c4fdd658b4257270afacb72..05838274a6d69e4ec49df1b2bfffb326b9630538
.abf.yml | 2 +-
....0.3538.67-disable-fontconfig-cache-magic.patch | 13 --
chromium-78.0.3904.70-unbundle-zlib.patch | 12 --
chromium-81-compile.patch | 98 +++++++++++++
chromium-81-disable-fontconfig-cache-magic.patch | 13 ++
chromium-81-dont-pretend-vaapi-is-broken.patch | 26 ++++
chromium-81-enable-gpu-features.patch | 34 +++++
...ra-media.patch => chromium-81-extra-media.patch | 162 +++++++++------------
....3683.75-norar.patch => chromium-81-norar-patch | 34 ++---
chromium-81-norar.patch | 79 ++++++++++
chromium-81-unbundle-zlib.patch | 12 ++
chromium-browser-stable.spec | 54 ++++---
chromium-drirc-disable-10bpc-color-configs.conf | 21 +++
chromium-skia-harmony.patch | 14 ++
...-Linux-frame-button-cache-when-activation.patch | 62 ++++++++
vaapi-build-fix.patch | 51 +++++++
vdpau-support.patch | 78 ++++++++++
17 files changed, 609 insertions(+), 156 deletions(-)
delete mode 100644 chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
delete mode 100644 chromium-78.0.3904.70-unbundle-zlib.patch
create mode 100644 chromium-81-compile.patch
create mode 100644 chromium-81-disable-fontconfig-cache-magic.patch
create mode 100644 chromium-81-dont-pretend-vaapi-is-broken.patch
create mode 100644 chromium-81-enable-gpu-features.patch
rename chromium-69-extra-media.patch => chromium-81-extra-media.patch (57%)
rename chromium-73.0.3683.75-norar.patch => chromium-81-norar-patch (51%)
create mode 100644 chromium-81-norar.patch
create mode 100644 chromium-81-unbundle-zlib.patch
create mode 100644 chromium-drirc-disable-10bpc-color-configs.conf
create mode 100644 chromium-skia-harmony.patch
create mode 100644 rebuild-Linux-frame-button-cache-when-activation.patch
create mode 100644 vaapi-build-fix.patch
create mode 100644 vdpau-support.patch
diff --git a/.abf.yml b/.abf.yml
index 9abdfd6..2b336ca 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
sources:
- chromium-80.0.3987.163.tar.xz: 10d06118d2d6cd2a244e2737d939536f3d3ea287
+ chromium-81.0.4044.113.tar.xz: ba5dff3a2a7a335261de56526e7089b216087d91
diff --git a/chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch b/chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
deleted file mode 100644
index 0c60643..0000000
--- a/chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up chromium-70.0.3538.67/base/test/BUILD.gn.nofc chromium-70.0.3538.67/base/test/BUILD.gn
---- chromium-70.0.3538.67/base/test/BUILD.gn.nofc 2018-10-29 11:29:01.356812567 -0400
-+++ chromium-70.0.3538.67/base/test/BUILD.gn 2018-10-29 11:29:12.631584916 -0400
-@@ -209,9 +209,6 @@ static_library("test_support") {
- data_deps = [
- "//third_party/test_fonts",
- ]
-- if (current_toolchain == host_toolchain) {
-- data_deps += [ ":do_generate_fontconfig_caches" ]
-- }
- }
-
- if (is_ios) {
diff --git a/chromium-78.0.3904.70-unbundle-zlib.patch b/chromium-78.0.3904.70-unbundle-zlib.patch
deleted file mode 100644
index 155990e..0000000
--- a/chromium-78.0.3904.70-unbundle-zlib.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn
---- chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn.unbundle-zlib 2019-10-23 09:25:44.419884187 -0400
-+++ chromium-78.0.3904.70/third_party/perfetto/gn/BUILD.gn 2019-10-23 09:29:53.553442745 -0400
-@@ -276,7 +276,7 @@ if (enable_perfetto_trace_processor || e
- "//buildtools:zlib",
- ]
- } else {
-- public_configs = [ "//third_party/zlib:zlib_config" ]
-+ public_configs = [ "//third_party/zlib:system_zlib" ]
- public_deps = [
- "//third_party/zlib",
- ]
diff --git a/chromium-81-compile.patch b/chromium-81-compile.patch
new file mode 100644
index 0000000..a18af11
--- /dev/null
+++ b/chromium-81-compile.patch
@@ -0,0 +1,98 @@
+diff -up chromium-81.0.4044.92/third_party/perfetto/include/perfetto/base/task_runner.h.omv~ chromium-81.0.4044.92/third_party/perfetto/include/perfetto/base/task_runner.h
+--- chromium-81.0.4044.92/third_party/perfetto/include/perfetto/base/task_runner.h.omv~ 2020-04-14 00:02:56.866537124 +0200
++++ chromium-81.0.4044.92/third_party/perfetto/include/perfetto/base/task_runner.h 2020-04-14 00:03:05.965638851 +0200
+@@ -18,6 +18,7 @@
+ #define INCLUDE_PERFETTO_BASE_TASK_RUNNER_H_
+
+ #include <functional>
++#include <cstdint>
+
+ #include "perfetto/base/export.h"
+
+diff -up chromium-81.0.4044.92/third_party/perfetto/include/perfetto/ext/base/unix_task_runner.h.omv~ chromium-81.0.4044.92/third_party/perfetto/include/perfetto/ext/base/unix_task_runner.h
+--- chromium-81.0.4044.92/third_party/perfetto/include/perfetto/ext/base/unix_task_runner.h.omv~ 2020-04-14 00:02:08.613997692 +0200
++++ chromium-81.0.4044.92/third_party/perfetto/include/perfetto/ext/base/unix_task_runner.h 2020-04-14 00:02:25.772189504 +0200
+@@ -65,11 +65,11 @@ class UnixTaskRunner : public TaskRunner
+ bool IsIdleForTesting();
+
+ // TaskRunner implementation:
+- void PostTask(std::function<void()>) override;
+- void PostDelayedTask(std::function<void()>, uint32_t delay_ms) override;
+- void AddFileDescriptorWatch(int fd, std::function<void()>) override;
+- void RemoveFileDescriptorWatch(int fd) override;
+- bool RunsTasksOnCurrentThread() const override;
++ virtual void PostTask(std::function<void()>) override;
++ virtual void PostDelayedTask(std::function<void()>, uint32_t delay_ms) override;
++ virtual void AddFileDescriptorWatch(int fd, std::function<void()>) override;
++ virtual void RemoveFileDescriptorWatch(int fd) override;
++ virtual bool RunsTasksOnCurrentThread() const override;
+
+ // Returns true if the task runner is quitting, or has quit and hasn't been
+ // restarted since. Exposed primarily for ThreadTaskRunner, not necessary for
+diff -up chromium-81.0.4044.92/third_party/webrtc/call/rtx_receive_stream.h.omv~ chromium-81.0.4044.92/third_party/webrtc/call/rtx_receive_stream.h
+--- chromium-81.0.4044.92/third_party/webrtc/call/rtx_receive_stream.h.omv~ 2020-04-14 00:09:00.436602655 +0200
++++ chromium-81.0.4044.92/third_party/webrtc/call/rtx_receive_stream.h 2020-04-14 00:09:10.749718000 +0200
+@@ -12,6 +12,7 @@
+ #define CALL_RTX_RECEIVE_STREAM_H_
+
+ #include <map>
++#include <cstdint>
+
+ #include "call/rtp_packet_sink_interface.h"
+
+diff -up chromium-81.0.4044.92/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.omv~ chromium-81.0.4044.92/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h
+--- chromium-81.0.4044.92/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h.omv~ 2020-04-14 00:11:46.822463657 +0200
++++ chromium-81.0.4044.92/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h 2020-04-14 00:11:49.385492326 +0200
+@@ -31,7 +31,7 @@ class ClockdriftDetector {
+ private:
+ std::array<int, 3> delay_history_;
+ Level level_;
+- size_t stability_counter_;
++ std::size_t stability_counter_;
+ };
+ } // namespace webrtc
+
+diff -up chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h.omv~ chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h
+--- chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h.omv~ 2020-04-14 00:16:49.078844757 +0200
++++ chromium-81.0.4044.92/ui/gfx/linux/drm_util_linux.h 2020-04-14 00:17:20.350194586 +0200
+@@ -6,6 +6,7 @@
+ #define UI_GFX_LINUX_DRM_UTIL_LINUX_H_
+
+ #include "ui/gfx/buffer_types.h"
++#include <cstdint>
+
+ namespace ui {
+
+diff -up chromium-81.0.4044.92/chrome/browser/search/background/ntp_backgrounds.h.omv~ chromium-81.0.4044.92/chrome/browser/search/background/ntp_backgrounds.h
+--- chromium-81.0.4044.92/chrome/browser/search/background/ntp_backgrounds.h.omv~ 2020-04-14 02:09:59.003729508 +0200
++++ chromium-81.0.4044.92/chrome/browser/search/background/ntp_backgrounds.h 2020-04-14 02:10:02.814777912 +0200
+@@ -9,7 +9,7 @@
+
+ class GURL;
+
+-const size_t kNtpBackgroundsCount = 5;
++const std::size_t kNtpBackgroundsCount = 5;
+ std::array<GURL, kNtpBackgroundsCount> GetNtpBackgrounds();
+
+ #endif // CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+diff -up chromium-81.0.4044.92/media/cdm/supported_cdm_versions.h.omv~ chromium-81.0.4044.92/media/cdm/supported_cdm_versions.h
+--- chromium-81.0.4044.92/media/cdm/supported_cdm_versions.h.omv~ 2020-04-14 00:59:10.960991072 +0200
++++ chromium-81.0.4044.92/media/cdm/supported_cdm_versions.h 2020-04-14 01:03:55.446562578 +0200
+@@ -52,7 +52,7 @@ constexpr bool IsSupportedCdmModuleVersi
+ // Returns whether the CDM interface of |version| is supported in the
+ // implementation.
+ constexpr bool IsSupportedCdmInterfaceVersion(int version) {
+- for (size_t i = 0; i < kSupportedCdmInterfaceVersions.size(); ++i) {
++ for (std::size_t i = 0; i < kSupportedCdmInterfaceVersions.size(); ++i) {
+ if (kSupportedCdmInterfaceVersions[i].version == version)
+ return true;
+ }
+@@ -70,7 +70,7 @@ constexpr bool IsSupportedCdmHostVersion
+
+ // Returns whether the CDM interface of |version| is enabled by default.
+ constexpr bool IsCdmInterfaceVersionEnabledByDefault(int version) {
+- for (size_t i = 0; i < kSupportedCdmInterfaceVersions.size(); ++i) {
++ for (std::size_t i = 0; i < kSupportedCdmInterfaceVersions.size(); ++i) {
+ if (kSupportedCdmInterfaceVersions[i].version == version)
+ return kSupportedCdmInterfaceVersions[i].enabled;
+ }
diff --git a/chromium-81-disable-fontconfig-cache-magic.patch b/chromium-81-disable-fontconfig-cache-magic.patch
new file mode 100644
index 0000000..ab7781c
--- /dev/null
+++ b/chromium-81-disable-fontconfig-cache-magic.patch
@@ -0,0 +1,13 @@
+diff -up chromium-81.0.4044.92/base/test/BUILD.gn.10~ chromium-81.0.4044.92/base/test/BUILD.gn
+--- chromium-81.0.4044.92/base/test/BUILD.gn.10~ 2020-04-12 15:29:43.843343651 +0200
++++ chromium-81.0.4044.92/base/test/BUILD.gn 2020-04-12 15:30:40.965979196 +0200
+@@ -245,9 +245,6 @@ static_library("test_support") {
+ if (is_linux) {
+ public_deps += [ ":fontconfig_util_linux" ]
+ data_deps = [ "//third_party/test_fonts" ]
+- if (current_toolchain == host_toolchain) {
+- data_deps += [ ":do_generate_fontconfig_caches" ]
+- }
+ }
+
+ if (is_ios) {
diff --git a/chromium-81-dont-pretend-vaapi-is-broken.patch b/chromium-81-dont-pretend-vaapi-is-broken.patch
new file mode 100644
index 0000000..58172c6
--- /dev/null
+++ b/chromium-81-dont-pretend-vaapi-is-broken.patch
@@ -0,0 +1,26 @@
+diff -up chromium-81.0.4044.92/gpu/config/software_rendering_list.json.omv~ chromium-81.0.4044.92/gpu/config/software_rendering_list.json
+--- chromium-81.0.4044.92/gpu/config/software_rendering_list.json.omv~ 2020-04-14 21:39:20.199909945 +0200
++++ chromium-81.0.4044.92/gpu/config/software_rendering_list.json 2020-04-14 21:39:41.903603086 +0200
+@@ -336,22 +336,6 @@
+ ]
+ },
+ {
+- "id": 48,
+- "description": "Accelerated video decode is unavailable on Linux",
+- "cr_bugs": [137247, 1032907],
+- "os": {
+- "type": "linux"
+- },
+- "exceptions": [
+- {
+- "machine_model_name": ["Chromecast"]
+- }
+- ],
+- "features": [
+- "accelerated_video_decode"
+- ]
+- },
+- {
+ "id": 50,
+ "description": "Disable VMware software renderer on older Mesa",
+ "cr_bugs": [145531, 332596, 571899, 629434],
diff --git a/chromium-81-enable-gpu-features.patch b/chromium-81-enable-gpu-features.patch
new file mode 100644
index 0000000..8324444
--- /dev/null
+++ b/chromium-81-enable-gpu-features.patch
@@ -0,0 +1,34 @@
+diff -up chromium-81.0.4044.92/gpu/config/gpu_finch_features.cc.omv~ chromium-81.0.4044.92/gpu/config/gpu_finch_features.cc
+--- chromium-81.0.4044.92/gpu/config/gpu_finch_features.cc.omv~ 2020-04-14 21:45:54.420225847 +0200
++++ chromium-81.0.4044.92/gpu/config/gpu_finch_features.cc 2020-04-14 21:51:07.452169158 +0200
+@@ -25,9 +25,10 @@ const base::Feature kDisableSurfaceContr
+ // Enable GPU Rasterization by default. This can still be overridden by
+ // --force-gpu-rasterization or --disable-gpu-rasterization.
+ #if defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_CHROMEOS) || \
+- defined(OS_ANDROID) || defined(OS_FUCHSIA)
++ defined(OS_ANDROID) || defined(OS_FUCHSIA) || defined(OS_LINUX)
+ // DefaultEnableGpuRasterization has launched on Mac, Windows, ChromeOS, and
+-// Android.
++// Android. And of course it works on Linux too, just because Google hates Linux
++// doesn't mean we have to.
+ const base::Feature kDefaultEnableGpuRasterization{
+ "DefaultEnableGpuRasterization", base::FEATURE_ENABLED_BY_DEFAULT};
+ #else
+@@ -37,7 +38,7 @@ const base::Feature kDefaultEnableGpuRas
+
+ // Enable out of process rasterization by default. This can still be overridden
+ // by --enable-oop-rasterization or --disable-oop-rasterization.
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_MACOSX) || defined(OS_LINUX)
+ const base::Feature kDefaultEnableOopRasterization{
+ "DefaultEnableOopRasterization", base::FEATURE_ENABLED_BY_DEFAULT};
+ #else
+@@ -58,7 +59,7 @@ const base::Feature kGpuProcessHighPrior
+ #endif
+
+ // Use ThreadPriority::DISPLAY for GPU main, viz compositor and IO threads.
+-#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_WIN)
++#if defined(OS_ANDROID) || defined(OS_CHROMEOS) || defined(OS_WIN) || defined(OS_LINUX)
+ const base::Feature kGpuUseDisplayThreadPriority{
+ "GpuUseDisplayThreadPriority", base::FEATURE_ENABLED_BY_DEFAULT};
+ #else
diff --git a/chromium-69-extra-media.patch b/chromium-81-extra-media.patch
similarity index 57%
rename from chromium-69-extra-media.patch
rename to chromium-81-extra-media.patch
index 1864fa1..8ee195a 100644
--- a/chromium-69-extra-media.patch
+++ b/chromium-81-extra-media.patch
@@ -1,6 +1,6 @@
-diff -up chromium-79.0.3945.88/media/base/audio_codecs.cc.36~ chromium-79.0.3945.88/media/base/audio_codecs.cc
---- chromium-79.0.3945.88/media/base/audio_codecs.cc.36~ 2019-12-16 22:50:49.000000000 +0100
-+++ chromium-79.0.3945.88/media/base/audio_codecs.cc 2019-12-23 22:57:12.137412713 +0100
+diff -up chromium-81.0.4044.92/media/base/audio_codecs.cc.29~ chromium-81.0.4044.92/media/base/audio_codecs.cc
+--- chromium-81.0.4044.92/media/base/audio_codecs.cc.29~ 2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/base/audio_codecs.cc 2020-04-13 14:26:16.191198335 +0200
@@ -46,6 +46,10 @@ std::string GetCodecName(AudioCodec code
return "ac3";
case kCodecMpegHAudio:
@@ -10,9 +10,9 @@ diff -up chromium-79.0.3945.88/media/base/audio_codecs.cc.36~ chromium-79.0.3945
+ case kCodecDTS:
+ return "dts";
}
- NOTREACHED();
- return "";
-@@ -74,6 +78,10 @@ AudioCodec StringToAudioCodec(const std:
+ }
+
+@@ -81,6 +85,10 @@ AudioCodec StringToAudioCodec(const std:
return kCodecVorbis;
if (base::StartsWith(codec_id, "mp4a.40.", base::CompareCase::SENSITIVE))
return kCodecAAC;
@@ -23,9 +23,9 @@ diff -up chromium-79.0.3945.88/media/base/audio_codecs.cc.36~ chromium-79.0.3945
return kUnknownAudioCodec;
}
-diff -up chromium-79.0.3945.88/media/base/audio_codecs.h.36~ chromium-79.0.3945.88/media/base/audio_codecs.h
---- chromium-79.0.3945.88/media/base/audio_codecs.h.36~ 2019-12-16 22:50:49.000000000 +0100
-+++ chromium-79.0.3945.88/media/base/audio_codecs.h 2019-12-23 22:57:12.137412713 +0100
+diff -up chromium-81.0.4044.92/media/base/audio_codecs.h.29~ chromium-81.0.4044.92/media/base/audio_codecs.h
+--- chromium-81.0.4044.92/media/base/audio_codecs.h.29~ 2020-04-12 15:37:58.182850697 +0200
++++ chromium-81.0.4044.92/media/base/audio_codecs.h 2020-04-13 14:25:37.209757394 +0200
@@ -33,13 +33,15 @@ enum AudioCodec {
kCodecALAC = 15,
kCodecAC3 = 16,
@@ -42,11 +42,11 @@ diff -up chromium-79.0.3945.88/media/base/audio_codecs.h.36~ chromium-79.0.3945.
+ kAudioCodecMax = kCodecDTS,
};
- std::string MEDIA_EXPORT GetCodecName(AudioCodec codec);
-diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.0.3945.88/media/base/mime_util_internal.cc
---- chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ 2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/base/mime_util_internal.cc 2019-12-23 22:57:12.137412713 +0100
-@@ -88,6 +88,10 @@ const StringToCodecMap& GetStringToCodec
+ enum class AudioCodecProfile {
+diff -up chromium-81.0.4044.92/media/base/mime_util_internal.cc.29~ chromium-81.0.4044.92/media/base/mime_util_internal.cc
+--- chromium-81.0.4044.92/media/base/mime_util_internal.cc.29~ 2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/base/mime_util_internal.cc 2020-04-12 15:37:58.182850697 +0200
+@@ -89,6 +89,10 @@ const StringToCodecMap& GetStringToCodec
{"vp8", MimeUtil::VP8},
{"vp8.0", MimeUtil::VP8},
{"theora", MimeUtil::THEORA},
@@ -57,7 +57,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
});
return *kStringToCodecMap;
-@@ -183,6 +187,10 @@ AudioCodec MimeUtilToAudioCodec(MimeUtil
+@@ -181,6 +185,10 @@ AudioCodec MimeUtilToAudioCodec(MimeUtil
return kCodecOpus;
case MimeUtil::FLAC:
return kCodecFLAC;
@@ -68,7 +68,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
default:
break;
}
-@@ -205,6 +213,9 @@ VideoCodec MimeUtilToVideoCodec(MimeUtil
+@@ -203,6 +211,9 @@ VideoCodec MimeUtilToVideoCodec(MimeUtil
return kCodecTheora;
case MimeUtil::DOLBY_VISION:
return kCodecDolbyVision;
@@ -78,7 +78,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
default:
break;
}
-@@ -295,6 +306,33 @@ void MimeUtil::AddSupportedMediaFormats(
+@@ -293,6 +304,33 @@ void MimeUtil::AddSupportedMediaFormats(
CodecSet ogg_codecs(ogg_audio_codecs);
ogg_codecs.insert(ogg_video_codecs.begin(), ogg_video_codecs.end());
@@ -112,7 +112,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
const CodecSet webm_audio_codecs{OPUS, VORBIS};
CodecSet webm_video_codecs{VP8, VP9};
#if BUILDFLAG(ENABLE_AV1_DECODER)
-@@ -304,9 +342,9 @@ void MimeUtil::AddSupportedMediaFormats(
+@@ -302,9 +340,9 @@ void MimeUtil::AddSupportedMediaFormats(
CodecSet webm_codecs(webm_audio_codecs);
webm_codecs.insert(webm_video_codecs.begin(), webm_video_codecs.end());
@@ -124,7 +124,7 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
// Only VP9 with valid codec string vp09.xx.xx.xx.xx.xx.xx.xx is supported.
// See ParseVp9CodecID for details.
-@@ -366,6 +404,10 @@ void MimeUtil::AddSupportedMediaFormats(
+@@ -364,6 +402,10 @@ void MimeUtil::AddSupportedMediaFormats(
DCHECK(!mp4_video_codecs.empty());
AddContainerWithCodecs("video/mp4", mp4_codecs);
@@ -135,10 +135,10 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.cc.36~ chromium-79.
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
AddContainerWithCodecs("audio/aac", implicit_codec); // AAC / ADTS.
// These strings are supported for backwards compatibility only and thus only
-diff -up chromium-79.0.3945.88/media/base/mime_util_internal.h.36~ chromium-79.0.3945.88/media/base/mime_util_internal.h
---- chromium-79.0.3945.88/media/base/mime_util_internal.h.36~ 2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/base/mime_util_internal.h 2019-12-23 22:57:12.137412713 +0100
-@@ -46,7 +46,11 @@ class MEDIA_EXPORT MimeUtil {
+diff -up chromium-81.0.4044.92/media/base/mime_util_internal.h.29~ chromium-81.0.4044.92/media/base/mime_util_internal.h
+--- chromium-81.0.4044.92/media/base/mime_util_internal.h.29~ 2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/base/mime_util_internal.h 2020-04-12 15:37:58.182850697 +0200
+@@ -47,7 +47,11 @@ class MEDIA_EXPORT MimeUtil {
DOLBY_VISION,
AV1,
MPEG_H_AUDIO,
@@ -151,9 +151,9 @@ diff -up chromium-79.0.3945.88/media/base/mime_util_internal.h.36~ chromium-79.0
};
// Platform configuration structure. Controls which codecs are supported at
-diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3945.88/media/base/supported_types.cc
---- chromium-79.0.3945.88/media/base/supported_types.cc.36~ 2019-12-23 22:57:12.138412713 +0100
-+++ chromium-79.0.3945.88/media/base/supported_types.cc 2019-12-23 23:03:49.386393440 +0100
+diff -up chromium-81.0.4044.92/media/base/supported_types.cc.29~ chromium-81.0.4044.92/media/base/supported_types.cc
+--- chromium-81.0.4044.92/media/base/supported_types.cc.29~ 2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/base/supported_types.cc 2020-04-13 14:27:13.657848219 +0200
@@ -163,6 +163,7 @@ bool IsAudioCodecProprietary(AudioCodec
case kCodecAAC:
case kCodecAC3:
@@ -170,15 +170,15 @@ diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3
case kCodecMP3:
case kCodecOpus:
case kCodecVorbis:
-@@ -193,6 +195,7 @@ bool IsDefaultSupportedAudioType(const A
- switch (type.codec) {
- case kCodecAAC:
+@@ -205,6 +207,7 @@ bool IsDefaultSupportedAudioType(const A
+ #endif
+
case kCodecFLAC:
+ case kCodecMP2:
case kCodecMP3:
case kCodecOpus:
case kCodecPCM:
-@@ -201,6 +204,10 @@ bool IsDefaultSupportedAudioType(const A
+@@ -213,6 +216,10 @@ bool IsDefaultSupportedAudioType(const A
case kCodecPCM_S24BE:
case kCodecPCM_ALAW:
case kCodecVorbis:
@@ -189,7 +189,7 @@ diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3
return true;
case kCodecAMR_NB:
-@@ -212,9 +219,6 @@ bool IsDefaultSupportedAudioType(const A
+@@ -224,9 +231,6 @@ bool IsDefaultSupportedAudioType(const A
return false;
#endif
@@ -199,7 +199,7 @@ diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3
case kCodecMpegHAudio:
case kUnknownAudioCodec:
return false;
-@@ -270,12 +274,12 @@ bool IsDefaultSupportedVideoType(const V
+@@ -282,12 +286,12 @@ bool IsDefaultSupportedVideoType(const V
case kCodecH264:
case kCodecVP8:
case kCodecTheora:
@@ -215,13 +215,13 @@ diff -up chromium-79.0.3945.88/media/base/supported_types.cc.36~ chromium-79.0.3
case kCodecDolbyVision:
return false;
-diff -up chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc.36~ chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc
---- chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc.36~ 2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc 2019-12-23 22:59:51.658404973 +0100
-@@ -116,6 +116,10 @@ AudioCodec CodecIDToAudioCodec(AVCodecID
- return kCodecOpus;
- case AV_CODEC_ID_ALAC:
- return kCodecALAC;
+diff -up chromium-81.0.4044.92/media/ffmpeg/ffmpeg_common.cc.29~ chromium-81.0.4044.92/media/ffmpeg/ffmpeg_common.cc
+--- chromium-81.0.4044.92/media/ffmpeg/ffmpeg_common.cc.29~ 2020-04-12 15:37:58.182850697 +0200
++++ chromium-81.0.4044.92/media/ffmpeg/ffmpeg_common.cc 2020-04-13 14:31:35.807811237 +0200
+@@ -124,6 +124,10 @@ AudioCodec CodecIDToAudioCodec(AVCodecID
+ case AV_CODEC_ID_MPEGH_3D_AUDIO:
+ return kCodecMpegHAudio;
+ #endif
+ case AV_CODEC_ID_MP2:
+ return kCodecMP2;
+ case AV_CODEC_ID_DTS:
@@ -229,10 +229,10 @@ diff -up chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc.36~ chromium-79.0.3
default:
DVLOG(1) << "Unknown audio CodecID: " << codec_id;
}
-@@ -167,6 +171,14 @@ AVCodecID AudioCodecToCodecID(AudioCodec
- return AV_CODEC_ID_PCM_MULAW;
- case kCodecOpus:
- return AV_CODEC_ID_OPUS;
+@@ -179,6 +183,14 @@ AVCodecID AudioCodecToCodecID(AudioCodec
+ case kCodecMpegHAudio:
+ return AV_CODEC_ID_MPEGH_3D_AUDIO;
+ #endif
+ case kCodecAC3:
+ return AV_CODEC_ID_AC3;
+ case kCodecEAC3:
@@ -244,47 +244,25 @@ diff -up chromium-79.0.3945.88/media/ffmpeg/ffmpeg_common.cc.36~ chromium-79.0.3
default:
DVLOG(1) << "Unknown AudioCodec: " << audio_codec;
}
-@@ -336,23 +348,6 @@ bool AVCodecContextToAudioDecoderConfig(
+@@ -347,6 +359,7 @@ bool AVCodecContextToAudioDecoderConfig(
codec_context->channels);
int sample_rate = codec_context->sample_rate;
-- switch (codec) {
-- // For AC3/EAC3 we enable only demuxing, but not decoding, so FFmpeg does
-- // not fill |sample_fmt|.
-- case kCodecAC3:
-- case kCodecEAC3:
--#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
-- // The spec for AC3/EAC3 audio is ETSI TS 102 366. According to sections
-- // F.3.1 and F.5.1 in that spec the sample_format for AC3/EAC3 must be 16.
-- sample_format = kSampleFormatS16;
--#else
-- NOTREACHED();
--#endif
-- break;
--
-- default:
-- break;
-- }
++#if 0
+ switch (codec) {
+ // For AC3/EAC3 we enable only demuxing, but not decoding, so FFmpeg does
+ // not fill |sample_fmt|.
+@@ -370,6 +383,7 @@ bool AVCodecContextToAudioDecoderConfig(
+ default:
+ break;
+ }
++#endif
base::TimeDelta seek_preroll;
if (codec_context->seek_preroll > 0) {
-@@ -382,13 +377,6 @@ bool AVCodecContextToAudioDecoderConfig(
- if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
- config->SetChannelsForDiscrete(codec_context->channels);
-
--#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
-- // These are bitstream formats unknown to ffmpeg, so they don't have
-- // a known sample format size.
-- if (codec == kCodecAC3 || codec == kCodecEAC3)
-- return true;
--#endif
--
- // Verify that AudioConfig.bits_per_channel was calculated correctly for
- // codecs that have |sample_fmt| set by FFmpeg.
- DCHECK_EQ(av_get_bytes_per_sample(codec_context->sample_fmt) * 8,
-diff -up chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc.36~ chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc
---- chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc.36~ 2019-12-16 22:50:49.000000000 +0100
-+++ chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc 2019-12-23 22:57:12.138412713 +0100
+diff -up chromium-81.0.4044.92/media/filters/ffmpeg_video_decoder.cc.29~ chromium-81.0.4044.92/media/filters/ffmpeg_video_decoder.cc
+--- chromium-81.0.4044.92/media/filters/ffmpeg_video_decoder.cc.29~ 2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/filters/ffmpeg_video_decoder.cc 2020-04-12 15:37:58.182850697 +0200
@@ -38,7 +38,6 @@ static int GetFFmpegVideoDecoderThreadCo
case kUnknownVideoCodec:
case kCodecVC1:
@@ -301,9 +279,9 @@ diff -up chromium-79.0.3945.88/media/filters/ffmpeg_video_decoder.cc.36~ chromiu
// Normalize to three threads for 1080p content, then scale linearly
// with number of pixels.
// Examples:
-diff -up chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto.36~ chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto
---- chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto.36~ 2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto 2019-12-23 22:57:12.138412713 +0100
+diff -up chromium-81.0.4044.92/media/remoting/media_remoting_rpc.proto.29~ chromium-81.0.4044.92/media/remoting/media_remoting_rpc.proto
+--- chromium-81.0.4044.92/media/remoting/media_remoting_rpc.proto.29~ 2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/remoting/media_remoting_rpc.proto 2020-04-12 15:37:58.182850697 +0200
@@ -67,6 +67,8 @@ message AudioDecoderConfig {
kCodecALAC = 15;
kCodecAC3 = 16;
@@ -313,10 +291,10 @@ diff -up chromium-79.0.3945.88/media/remoting/media_remoting_rpc.proto.36~ chrom
}
// Proto version of media::SampleFormat.
-diff -up chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc.36~ chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc
---- chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc.36~ 2019-12-16 22:51:27.000000000 +0100
-+++ chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc 2019-12-23 22:57:12.138412713 +0100
-@@ -58,6 +58,8 @@ base::Optional<AudioCodec> ToMediaAudioC
+diff -up chromium-81.0.4044.92/media/remoting/proto_enum_utils.cc.29~ chromium-81.0.4044.92/media/remoting/proto_enum_utils.cc
+--- chromium-81.0.4044.92/media/remoting/proto_enum_utils.cc.29~ 2020-04-03 06:10:46.000000000 +0200
++++ chromium-81.0.4044.92/media/remoting/proto_enum_utils.cc 2020-04-12 15:37:58.182850697 +0200
+@@ -60,6 +60,8 @@ base::Optional<AudioCodec> ToMediaAudioC
CASE_RETURN_OTHER(kCodecALAC);
CASE_RETURN_OTHER(kCodecAC3);
CASE_RETURN_OTHER(kCodecMpegHAudio);
@@ -325,7 +303,7 @@ diff -up chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc.36~ chromium-7
}
return base::nullopt; // Not a 'default' to ensure compile-time checks.
}
-@@ -85,6 +87,8 @@ base::Optional<pb::AudioDecoderConfig::C
+@@ -87,6 +89,8 @@ base::Optional<pb::AudioDecoderConfig::C
CASE_RETURN_OTHER(kCodecALAC);
CASE_RETURN_OTHER(kCodecAC3);
CASE_RETURN_OTHER(kCodecMpegHAudio);
@@ -334,10 +312,10 @@ diff -up chromium-79.0.3945.88/media/remoting/proto_enum_utils.cc.36~ chromium-7
}
return base::nullopt; // Not a 'default' to ensure compile-time checks.
}
-diff -up chromium-79.0.3945.88/net/base/mime_util.cc.36~ chromium-79.0.3945.88/net/base/mime_util.cc
---- chromium-79.0.3945.88/net/base/mime_util.cc.36~ 2019-12-16 22:50:50.000000000 +0100
-+++ chromium-79.0.3945.88/net/base/mime_util.cc 2019-12-23 22:57:12.138412713 +0100
-@@ -162,6 +162,9 @@ static const MimeInfo kPrimaryMappings[]
+diff -up chromium-81.0.4044.92/net/base/mime_util.cc.29~ chromium-81.0.4044.92/net/base/mime_util.cc
+--- chromium-81.0.4044.92/net/base/mime_util.cc.29~ 2020-04-03 06:10:47.000000000 +0200
++++ chromium-81.0.4044.92/net/base/mime_util.cc 2020-04-12 15:37:58.183850708 +0200
+@@ -165,6 +165,9 @@ static const MimeInfo kPrimaryMappings[]
{"image/png", "png"},
{"image/apng", "png"},
{"image/webp", "webp"},
@@ -347,7 +325,7 @@ diff -up chromium-79.0.3945.88/net/base/mime_util.cc.36~ chromium-79.0.3945.88/n
{"multipart/related", "mht,mhtml"},
{"text/css", "css"},
{"text/html", "html,htm,shtml,shtm"},
-@@ -568,6 +571,7 @@ static const char* const kStandardAudioT
+@@ -570,6 +573,7 @@ static const char* const kStandardAudioT
"audio/vorbis",
"audio/wav",
"audio/webm",
@@ -355,7 +333,7 @@ diff -up chromium-79.0.3945.88/net/base/mime_util.cc.36~ chromium-79.0.3945.88/n
"audio/x-m4a",
"audio/x-ms-wma",
"audio/vnd.rn-realaudio",
-@@ -585,8 +589,10 @@ static const char* const kStandardVideoT
+@@ -587,8 +591,10 @@ static const char* const kStandardVideoT
"video/webm",
"video/x-dv",
"video/x-m4v",
diff --git a/chromium-73.0.3683.75-norar.patch b/chromium-81-norar-patch
similarity index 51%
rename from chromium-73.0.3683.75-norar.patch
rename to chromium-81-norar-patch
index d61fd9c..446c3cd 100644
--- a/chromium-73.0.3683.75-norar.patch
+++ b/chromium-81-norar-patch
@@ -1,8 +1,8 @@
-diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn
---- chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar 2019-03-13 08:59:45.988801102 -0400
-+++ chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn 2019-03-13 09:00:20.244977448 -0400
-@@ -64,41 +64,6 @@ if (safe_browsing_mode == 1) {
- ]
+diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.8~ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn
+--- chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.8~ 2020-04-10 16:05:45.111240059 +0200
++++ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn 2020-04-12 15:27:04.499572447 +0200
+@@ -72,39 +72,6 @@ if (safe_browsing_mode == 1) {
+ public_deps = [ "//components/safe_browsing/core:csd_proto" ]
}
- source_set("rar_analyzer") {
@@ -17,7 +17,7 @@ diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chro
- ":file_type_policies",
- "//base",
- "//base:i18n",
-- "//components/safe_browsing:features",
+- "//components/safe_browsing/core:features",
- "//third_party/unrar:unrar",
- ]
-
@@ -35,25 +35,23 @@ diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/BUILD.gn.nounrar chro
- "UNRAR_NO_EXCEPTIONS",
- ]
-
-- public_deps = [
-- "//components/safe_browsing:csd_proto",
-- ]
+- public_deps = [ "//components/safe_browsing/core:csd_proto" ]
- }
-
source_set("disk_image_type_sniffer_mac") {
sources = [
"disk_image_type_sniffer_mac.cc",
-@@ -167,7 +132,6 @@ source_set("safe_browsing") {
+@@ -171,7 +138,6 @@ source_set("safe_browsing") {
":archive_analyzer_results",
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
- "//components/safe_browsing:features",
+ "//components/safe_browsing/core:features",
]
-diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS
---- chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar 2019-03-11 18:00:54.000000000 -0400
-+++ chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS 2019-03-13 08:59:26.513282690 -0400
+diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.8~ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS
+--- chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.8~ 2020-04-03 06:10:40.000000000 +0200
++++ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS 2020-04-10 16:05:45.111240059 +0200
@@ -1,6 +1,5 @@
include_rules = [
"+components/safe_browsing",
@@ -61,10 +59,10 @@ diff -up chromium-73.0.3683.75/chrome/common/safe_browsing/DEPS.nounrar chromium
- "+third_party/unrar",
"+third_party/zlib",
]
-diff -up chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc
---- chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2019-03-13 08:59:26.518282566 -0400
-+++ chromium-73.0.3683.75/chrome/services/file_util/safe_archive_analyzer.cc 2019-03-13 09:01:03.885935483 -0400
-@@ -48,10 +48,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
+diff -up chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.8~ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc
+--- chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.8~ 2020-04-03 06:10:40.000000000 +0200
++++ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc 2020-04-10 16:05:45.111240059 +0200
+@@ -46,10 +46,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
base::File temporary_file,
AnalyzeRarFileCallback callback) {
diff --git a/chromium-81-norar.patch b/chromium-81-norar.patch
new file mode 100644
index 0000000..446c3cd
--- /dev/null
+++ b/chromium-81-norar.patch
@@ -0,0 +1,79 @@
+diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.8~ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn
+--- chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn.8~ 2020-04-10 16:05:45.111240059 +0200
++++ chromium-81.0.4044.92/chrome/common/safe_browsing/BUILD.gn 2020-04-12 15:27:04.499572447 +0200
+@@ -72,39 +72,6 @@ if (safe_browsing_mode == 1) {
+ public_deps = [ "//components/safe_browsing/core:csd_proto" ]
+ }
+
+- source_set("rar_analyzer") {
+- sources = [
+- "rar_analyzer.cc",
+- "rar_analyzer.h",
+- ]
+-
+- deps = [
+- ":archive_analyzer_results",
+- ":download_type_util",
+- ":file_type_policies",
+- "//base",
+- "//base:i18n",
+- "//components/safe_browsing/core:features",
+- "//third_party/unrar:unrar",
+- ]
+-
+- defines = [
+- "_FILE_OFFSET_BITS=64",
+- "LARGEFILE_SOURCE",
+- "RAR_SMP",
+- "SILENT",
+-
+- # The following is set to disable certain macro definitions in the unrar
+- # source code.
+- "CHROMIUM_UNRAR",
+-
+- # Disables exceptions in unrar, replaces them with process termination.
+- "UNRAR_NO_EXCEPTIONS",
+- ]
+-
+- public_deps = [ "//components/safe_browsing/core:csd_proto" ]
+- }
+-
+ source_set("disk_image_type_sniffer_mac") {
+ sources = [
+ "disk_image_type_sniffer_mac.cc",
+@@ -171,7 +138,6 @@ source_set("safe_browsing") {
+ ":archive_analyzer_results",
+ ":binary_feature_extractor",
+ ":download_type_util",
+- ":rar_analyzer",
+ "//components/safe_browsing/core:features",
+ ]
+
+diff -up chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.8~ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS
+--- chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS.8~ 2020-04-03 06:10:40.000000000 +0200
++++ chromium-81.0.4044.92/chrome/common/safe_browsing/DEPS 2020-04-10 16:05:45.111240059 +0200
+@@ -1,6 +1,5 @@
+ include_rules = [
+ "+components/safe_browsing",
+ "+third_party/protobuf",
+- "+third_party/unrar",
+ "+third_party/zlib",
+ ]
+diff -up chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.8~ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc
+--- chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc.8~ 2020-04-03 06:10:40.000000000 +0200
++++ chromium-81.0.4044.92/chrome/services/file_util/safe_archive_analyzer.cc 2020-04-10 16:05:45.111240059 +0200
+@@ -46,10 +46,14 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile
+ void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file,
+ base::File temporary_file,
+ AnalyzeRarFileCallback callback) {
++#if 0
+ DCHECK(rar_file.IsValid());
+
+ safe_browsing::ArchiveAnalyzerResults results;
+ safe_browsing::rar_analyzer::AnalyzeRarFile(
+ std::move(rar_file), std::move(temporary_file), &results);
+ std::move(callback).Run(results);
++#else
++ NOTREACHED();
++#endif
+ }
diff --git a/chromium-81-unbundle-zlib.patch b/chromium-81-unbundle-zlib.patch
new file mode 100644
index 0000000..4c9131c
--- /dev/null
+++ b/chromium-81-unbundle-zlib.patch
@@ -0,0 +1,12 @@
+diff -up chromium-81.0.4044.92/third_party/perfetto/gn/BUILD.gn.17~ chromium-81.0.4044.92/third_party/perfetto/gn/BUILD.gn
+--- chromium-81.0.4044.92/third_party/perfetto/gn/BUILD.gn.17~ 2020-04-12 15:32:26.125149888 +0200
++++ chromium-81.0.4044.92/third_party/perfetto/gn/BUILD.gn 2020-04-12 15:33:39.545967688 +0200
+@@ -294,7 +294,7 @@ if (enable_perfetto_zlib) {
+ public_configs = [ "//buildtools:zlib_config" ]
+ public_deps = [ "//buildtools:zlib" ]
+ } else {
+- public_configs = [ "//third_party/zlib:zlib_config" ]
++ public_configs = [ "//third_party/zlib:system_zlib" ]
+ public_deps = [ "//third_party/zlib" ]
+ }
+ }
diff --git a/chromium-browser-stable.spec b/chromium-browser-stable.spec
index 8563738..ddcb9cd 100644
--- a/chromium-browser-stable.spec
+++ b/chromium-browser-stable.spec
@@ -50,7 +50,7 @@
Name: chromium-browser-%{channel}
# Working version numbers can be found at
# http://omahaproxy.appspot.com/
-Version: 80.0.3987.163
+Version: 81.0.4044.113
Release: 1%{?extrarelsuffix}
Summary: A fast webkit-based web browser
Group: Networking/WWW
@@ -60,6 +60,10 @@ Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chr
Source1: chromium-wrapper
Source2: chromium-browser%{namesuffix}.desktop
Source3: master_preferences
+# https://bugs.freedesktop.org/show_bug.cgi?id=106490
+# Workaround from Arch Linux
+# https://aur.archlinux.org/cgit/aur.git/tree/chromium-drirc-disable-10bpc-color-configs.conf?h=chromium-vaapi
+Source4: chromium-drirc-disable-10bpc-color-configs.conf
Source100: %{name}.rpmlintrc
### Chromium Fedora Patches ###
@@ -78,13 +82,13 @@ Patch4: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.
Patch5: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-60.0.3112.78-jpeg-nomangle.patch
# Do not mangle zlib
Patch6: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-77.0.3865.75-no-zlib-mangle.patch
-# Do not use unrar code, it is non-free
-Patch7: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-73.0.3683.75-norar.patch
+# Do not use unrar code, it is non-free (originally from Fedora, ported to 81 code base)
+Patch7: chromium-81-norar.patch
# Use Gentoo's Widevine hack
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r3.patch
Patch8: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-71.0.3578.98-widevine-r3.patch
-# Disable fontconfig cache magic that breaks remoting
-Patch9: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-70.0.3538.67-disable-fontconfig-cache-magic.patch
+# Disable fontconfig cache magic that breaks remoting (originally from Fedora, ported to 81 code base)
+Patch9: chromium-81-disable-fontconfig-cache-magic.patch
# drop rsp clobber, which breaks gcc9 (thanks to Jeff Law)
Patch10: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-78.0.3904.70-gcc9-drop-rsp-clobber.patch
# Try to load widevine from other places
@@ -100,7 +104,7 @@ Patch51: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-76.0.
# Needs to be submitted.. (ugly hack, needs to be added properly to GN files)
Patch52: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-78.0.3904.70-vtable-symbol-undefined.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-unbundle-zlib.patch
-Patch53: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-78.0.3904.70-unbundle-zlib.patch
+Patch53: chromium-81-unbundle-zlib.patch
# Needs to be submitted..
Patch54: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-77.0.3865.75-gcc-include-memory.patch
# https://chromium.googlesource.com/chromium/src/+/6b633c4b14850df376d5cec571699018772f358e
@@ -119,13 +123,6 @@ Patch63: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-79.0.
# el7 only patch
#Patch102: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-79.0.3945.56-el7-noexcept.patch
-# Enable VAAPI support on Linux
-# NOTE: This patch will never land upstream
-Patch202: https://src.fedoraproject.org/rpms/chromium/raw/master/f/enable-vaapi.patch
-Patch203: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-75.0.3770.80-vaapi-i686-fpermissive.patch
-# Fix compatibility with VA-API library (libva) version 1
-#Patch204: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-75.0.3770.80-vaapi-libva1-compatibility.patch
-
# Apply these patches to work around EPEL8 issues
#Patch300: https://src.fedoraproject.org/rpms/chromium/raw/master/f/chromium-76.0.3809.132-rhel8-force-disable-use_gnome_keyring.patch
@@ -138,8 +135,15 @@ Patch600: arm_use_right_compiler.patch
# Arch Linux, fix for compile error with system ICU
Patch602: https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/chromium/chromium-system-icu.patch
+# Enable VAAPI support on Linux
+# From https://aur.archlinux.org/packages/chromium-vaapi/
+Patch650: vaapi-build-fix.patch
+Patch651: vdpau-support.patch
+Patch652: rebuild-Linux-frame-button-cache-when-activation.patch
+Patch653: chromium-skia-harmony.patch
+
# mga
-Patch700: chromium-69-extra-media.patch
+Patch700: chromium-81-extra-media.patch
Patch701: chromium-69-wmvflvmpg.patch
Patch702: chromium-40-sorenson-spark.patch
@@ -147,11 +151,14 @@ Patch702: chromium-40-sorenson-spark.patch
Patch1001: chromium-64-system-curl.patch
Patch1002: chromium-69-no-static-libstdc++.patch
Patch1003: chromium-80-libstdc++10.patch
-Patch1004: chromium-80-clang10-libstdc++10.patch
+#Patch1004: chromium-80-clang10-libstdc++10.patch
+Patch1005: chromium-81-compile.patch
+Patch1006: chromium-81-dont-pretend-vaapi-is-broken.patch
+Patch1007: chromium-81-enable-gpu-features.patch
# stop so many build warnings
-Patch1006: chromium-71.0.3578.94-quieten.patch
-Patch1007: chromium-trace.patch
+Patch1008: chromium-71.0.3578.94-quieten.patch
+Patch1009: chromium-trace.patch
Provides: %{crname}
Obsoletes: chromium-browser-unstable < 26.0.1410.51
@@ -338,6 +345,7 @@ python2 build/linux/unbundle/remove_bundled_libraries.py \
'third_party/angle/src/third_party/compiler' \
'third_party/angle/src/third_party/libXNVCtrl' \
'third_party/angle/src/third_party/trace_event' \
+ 'third_party/angle/src/third_party/volk' \
'third_party/angle/third_party/glslang' \
'third_party/angle/third_party/spirv-headers' \
'third_party/angle/third_party/spirv-tools' \
@@ -384,6 +392,8 @@ python2 build/linux/unbundle/remove_bundled_libraries.py \
'third_party/devtools-frontend' \
'third_party/devtools-frontend/src/third_party/typescript' \
'third_party/devtools-frontend/src/third_party/axe-core' \
+ 'third_party/devtools-frontend/src/front_end/third_party/wasmparser' \
+ 'third_party/devtools-frontend/src/front_end/third_party/fabricjs' \
'third_party/dom_distiller_js' \
'third_party/emoji-segmenter' \
'third_party/expat' \
@@ -479,7 +489,6 @@ python2 build/linux/unbundle/remove_bundled_libraries.py \
%endif
'third_party/rnnoise' \
'third_party/s2cellid' \
- 'third_party/sfntly' \
'third_party/simplejson' \
'third_party/sinonjs' \
'third_party/skia' \
@@ -524,13 +533,13 @@ python2 build/linux/unbundle/remove_bundled_libraries.py \
'third_party/zlib' \
'third_party/zlib/google' \
'tools/grit/third_party/six' \
- 'tools/gn/base/third_party/icu' \
'url/third_party/mozilla' \
'v8/src/third_party/siphash' \
'v8/src/third_party/utf8-decoder' \
'v8/src/third_party/valgrind' \
'v8/third_party/v8' \
'v8/third_party/inspector_protocol' \
+ 'tools/gn/src/base/third_party/icu' \
--do-remove
@@ -622,7 +631,7 @@ CHROMIUM_CORE_GN_DEFINES+=" custom_toolchain=\"//build/toolchain/linux/unbundle:
CHROMIUM_CORE_GN_DEFINES+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
CHROMIUM_CORE_GN_DEFINES+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:default\""
-CHROMIUM_BROWSER_GN_DEFINES="use_pulseaudio=true"
+CHROMIUM_BROWSER_GN_DEFINES="use_pulseaudio=true link_pulseaudio=true"
CHROMIUM_BROWSER_GN_DEFINES+=" enable_nacl=false"
CHROMIUM_BROWSER_GN_DEFINES+=" is_component_ffmpeg=true"
CHROMIUM_BROWSER_GN_DEFINES+=" enable_hangout_services_extension=true"
@@ -741,6 +750,10 @@ ln -s %{_libdir}/libEGL.so.1.0.0 %{buildroot}%{_libdir}/%{name}/swiftshader/libE
find %{buildroot} -name "*.nexe" -exec strip {} \;
+# drirc workaround for VAAPI
+mkdir -p %{buildroot}%{_datadir}/drirc.d/
+cp %{S:4} %{buildroot}%{_datadir}/drirc.d/10-%{name}.conf
+
%if "%{channel}" == "stable"
%files -n chromium-browser
%endif
@@ -748,6 +761,7 @@ find %{buildroot} -name "*.nexe" -exec strip {} \;
%files
%doc LICENSE AUTHORS
%config %{_sysconfdir}/chromium
+%{_datadir}/drirc.d/10-%{name}.conf
%{_bindir}/%{name}
%{_libdir}/%{name}/*.bin
%{_libdir}/%{name}/chromium-wrapper
diff --git a/chromium-drirc-disable-10bpc-color-configs.conf b/chromium-drirc-disable-10bpc-color-configs.conf
new file mode 100644
index 0000000..c079ba1
--- /dev/null
+++ b/chromium-drirc-disable-10bpc-color-configs.conf
@@ -0,0 +1,21 @@
+<!--
+
+Disable 10 bpc color configs; fixes VAAPI playback.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=106490
+
+-->
+
+<driconf>
+ <device>
+ <application name="Chromium" executable="chromium">
+ <option name="allow_rgb10_configs" value="false" />
+ </application>
+ <application name="Chromium" executable="chromium-browser-stable">
+ <option name="allow_rgb10_configs" value="false" />
+ </application>
+ <application name="Chromium" executable="chrome">
+ <option name="allow_rgb10_configs" value="false" />
+ </application>
+ </device>
+</driconf>
diff --git a/chromium-skia-harmony.patch b/chromium-skia-harmony.patch
new file mode 100644
index 0000000..ecd491e
--- /dev/null
+++ b/chromium-skia-harmony.patch
@@ -0,0 +1,14 @@
+--- cr/third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2019-07-19 11:08:34.770972665 +0000
++++ cr/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2019-07-19 11:08:44.274442065 +0000
+@@ -128,9 +128,9 @@ public:
+ : fGetVarDesignCoordinates(nullptr)
+ , fGetVarAxisFlags(nullptr)
+ , fLibrary(nullptr)
+- , fIsLCDSupported(false)
++ , fIsLCDSupported(true)
+ , fLightHintingIsYOnly(false)
+- , fLCDExtra(0)
++ , fLCDExtra(2)
+ {
+ if (FT_New_Library(&gFTMemory, &fLibrary)) {
+ return;
diff --git a/rebuild-Linux-frame-button-cache-when-activation.patch b/rebuild-Linux-frame-button-cache-when-activation.patch
new file mode 100644
index 0000000..526e7cc
--- /dev/null
+++ b/rebuild-Linux-frame-button-cache-when-activation.patch
@@ -0,0 +1,62 @@
+From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Fri, 7 Feb 2020 22:44:54 +0000
+Subject: [PATCH] Rebuild Linux frame button cache when activation state
+ changes
+
+This fixes an issue where the frame buttons would always render in an
+inactive state on Linux (see repro steps in bug 1049258).
+
+Bug: 1049258
+R=sky
+CC=pkasting
+
+Change-Id: Ic5af33199003e1d1cdf6cedf506e32388ea11fa9
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2044538
+Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
+Commit-Queue: Scott Violet <sky@chromium.org>
+Reviewed-by: Scott Violet <sky@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#739585}
+---
+ .../ui/views/frame/desktop_linux_browser_frame_view.cc | 6 +++---
+ .../desktop_aura/desktop_window_tree_host_platform.cc | 3 +++
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
+index 954e776057f..4f579955675 100644
+--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
++++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc
+@@ -22,13 +22,13 @@ DesktopLinuxBrowserFrameView::DesktopLinuxBrowserFrameView(
+ : OpaqueBrowserFrameView(frame, browser_view, layout),
+ nav_button_provider_(std::move(nav_button_provider)) {}
+
+-DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() {}
++DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() = default;
+
+ void DesktopLinuxBrowserFrameView::Layout() {
+ // Calling MaybeUpdateCachedFrameButtonImages() from Layout() is sufficient to
+ // catch all cases that could update the appearance, since
+- // DesktopWindowTreeHostPlatform::OnWindowStateChanged() does a layout any
+- // time any properties change.
++ // DesktopWindowTreeHostPlatform::On{Window,Activation}StateChanged() does a
++ // layout any time the maximized and activation state changes, respectively.
+ MaybeUpdateCachedFrameButtonImages();
+ OpaqueBrowserFrameView::Layout();
+ }
+diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+index 9c695d8e5b1..9662f19aa90 100644
+--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+@@ -677,9 +677,12 @@ void DesktopWindowTreeHostPlatform::OnCloseRequest() {
+ }
+
+ void DesktopWindowTreeHostPlatform::OnActivationChanged(bool active) {
++ if (is_active_ == active)
++ return;
+ is_active_ = active;
+ aura::WindowTreeHostPlatform::OnActivationChanged(active);
+ desktop_native_widget_aura_->HandleActivationChanged(active);
++ Relayout();
+ }
+
+ base::Optional<gfx::Size>
diff --git a/vaapi-build-fix.patch b/vaapi-build-fix.patch
new file mode 100644
index 0000000..2b7851a
--- /dev/null
+++ b/vaapi-build-fix.patch
@@ -0,0 +1,51 @@
+From 5b2ff215473e0526b5b24aeff4ad90d369b21c75 Mon Sep 17 00:00:00 2001
+From: Julien Isorce <julien.isorce@chromium.org>
+Date: Wed, 05 Feb 2020 17:59:59 +0000
+Subject: [PATCH] Fix vaapi with GLX
+
+The signature of ui's gl::GLImageGLX has changed a little bit
+since "mplement GpuMemoryBuffers for EGL and GLX":
+ https://chromium-review.googlesource.com/c/chromium/src/+/1984712
+
+Bug: 1031269
+Test: build with use_vaapi=true and run with --use-gl=desktop, see
+Change-Id: I80b07294b9abdfa8233aaf79f7d9ec4c58117090
+https: //chromium.googlesource.com/chromium/src.git/+/refs/heads/master/docs/gpu/vaapi.md#vaapi-on-linux
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036494
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Miguel Casas <mcasas@chromium.org>
+Commit-Queue: Julien Isorce <julien.isorce@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#738595}
+---
+
+diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
+index 227c31b..b42620d 100644
+--- a/media/gpu/vaapi/vaapi_picture_tfp.cc
++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
+@@ -57,7 +57,7 @@
+ if (make_context_current_cb_ && !make_context_current_cb_.Run())
+ return false;
+
+- glx_image_ = new gl::GLImageGLX(size_, GL_RGB);
++ glx_image_ = new gl::GLImageGLX(size_, gfx::BufferFormat::BGRX_8888);
+ if (!glx_image_->Initialize(x_pixmap_)) {
+ // x_pixmap_ will be freed in the destructor.
+ DLOG(ERROR) << "Failed creating a GLX Pixmap for TFP";
+--- a/media/mojo/services/gpu_mojo_media_client.cc 2020-04-02 21:11:34.000000000 -0700
++++ b/media/mojo/services/gpu_mojo_media_client.cc 2020-04-09 00:44:58.871366432 -0700
+@@ -158,6 +158,7 @@
+ *d3d11_supported_configs_;
+
+ #elif BUILDFLAG(USE_CHROMEOS_MEDIA_ACCELERATION)
++#if defined(OS_CHROMEOS)
+ if (base::FeatureList::IsEnabled(kChromeosVideoDecoder)) {
+ if (!cros_supported_configs_) {
+ cros_supported_configs_ =
+@@ -167,6 +168,7 @@
+ *cros_supported_configs_;
+ return supported_config_map;
+ }
++#endif //defined(OS_CHROMEOS)
+ #endif
+
+ auto& default_configs =
diff --git a/vdpau-support.patch b/vdpau-support.patch
new file mode 100644
index 0000000..d0d849a
--- /dev/null
+++ b/vdpau-support.patch
@@ -0,0 +1,78 @@
+diff -up chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.28~ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+--- chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.28~ 2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2020-04-14 16:27:40.623165963 +0200
+@@ -712,6 +712,7 @@ void VaapiVideoDecodeAccelerator::Assign
+ // |vpp_vaapi_wrapper_| for VaapiPicture to DownloadFromSurface() the VA's
+ // internal decoded frame.
+ if (buffer_allocation_mode_ != BufferAllocationMode::kNone &&
++ buffer_allocation_mode_ != BufferAllocationMode::kWrapVdpau &&
+ !vpp_vaapi_wrapper_) {
+ vpp_vaapi_wrapper_ = VaapiWrapper::Create(
+ VaapiWrapper::kVideoProcess, VAProfileNone,
+@@ -743,7 +744,8 @@ void VaapiVideoDecodeAccelerator::Assign
+ : gfx::Size();
+
+ std::unique_ptr<VaapiPicture> picture = vaapi_picture_factory_->Create(
+- (buffer_allocation_mode_ == BufferAllocationMode::kNone)
++ ((buffer_allocation_mode_ == BufferAllocationMode::kNone) ||
++ (buffer_allocation_mode_ == BufferAllocationMode::kWrapVdpau))
+ ? vaapi_wrapper_
+ : vpp_vaapi_wrapper_,
+ make_context_current_cb_, bind_image_cb_, buffer, size_to_bind);
+@@ -1199,6 +1201,12 @@ VaapiVideoDecodeAccelerator::GetSupporte
+
+ VaapiVideoDecodeAccelerator::BufferAllocationMode
+ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
++ // NVIDIA blobs use VDPAU
++ if (VaapiWrapper::GetImplementationType() == VAImplementation::kNVIDIAVDPAU) {
++ LOG(INFO) << "VA-API driver on VDPAU backend";
++ return BufferAllocationMode::kWrapVdpau;
++ }
++
+ // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
+ // |output_mode_| as well.
+ if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
+@@ -1211,7 +1219,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe
+ // depends on the bitstream and sometimes it's not enough to cover the amount
+ // of frames needed by the client pipeline (see b/133733739).
+ // TODO(crbug.com/911754): Enable for VP9 Profile 2.
+- if (IsGeminiLakeOrLater() &&
++ if (false && IsGeminiLakeOrLater() &&
+ (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
+ // Add one to the reference frames for the one being currently egressed, and
+ // an extra allocation for both |client_| and |decoder_|, see
+diff -up chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.h.28~ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.h
+--- chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.h.28~ 2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_video_decode_accelerator.h 2020-04-14 16:24:00.916251409 +0200
+@@ -208,6 +208,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeA
+ // Using |client_|s provided PictureBuffers and as many internally
+ // allocated.
+ kNormal,
++ kWrapVdpau,
+ };
+
+ // Decides the concrete buffer allocation mode, depending on the hardware
+diff -up chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.cc.28~ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.cc
+--- chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.cc.28~ 2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.cc 2020-04-14 16:24:00.916251409 +0200
+@@ -133,6 +133,9 @@ media::VAImplementation VendorStringToIm
+ } else if (base::StartsWith(va_vendor_string, "Intel iHD driver",
+ base::CompareCase::SENSITIVE)) {
+ return media::VAImplementation::kIntelIHD;
++ } else if (base::StartsWith(va_vendor_string, "Splitted-Desktop Systems VDPAU",
++ base::CompareCase::SENSITIVE)) {
++ return media::VAImplementation::kNVIDIAVDPAU;
+ }
+ return media::VAImplementation::kOther;
+ }
+diff -up chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.h.28~ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.h
+--- chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.h.28~ 2020-04-03 06:11:34.000000000 +0200
++++ chromium-81.0.4044.92/media/gpu/vaapi/vaapi_wrapper.h 2020-04-14 16:24:00.916251409 +0200
+@@ -80,6 +80,7 @@ enum class VAImplementation {
+ kIntelIHD,
+ kOther,
+ kInvalid,
++ kNVIDIAVDPAU,
+ };
+
+ // This class handles VA-API calls and ensures proper locking of VA-API calls