summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstkdng2021-10-21 17:59:12 -0500
committerjstkdng2021-10-21 17:59:12 -0500
commite72d66603e87437e2d813d37c0f393e6f223a85a (patch)
tree50cddfa36b3736e807b410998fa98b591c77d481
parent139de4454b824dfb4ae7685d1c2801f43bd92d8c (diff)
downloadaur-e72d66603e87437e2d813d37c0f393e6f223a85a.tar.gz
upgpkg: ungoogled-chromium 95.0.4638.54-1
upstream release
-rw-r--r--.SRCINFO18
-rw-r--r--PKGBUILD22
-rw-r--r--chromium-95-harfbuzz-3.patch31
-rw-r--r--maldoca-depend-on-zlib-instead-of-headers-only.patch31
-rw-r--r--ozone-x11-fix-VA-API.patch671
5 files changed, 761 insertions, 12 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 27f4a1ddb812..1a175a0225a8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = ungoogled-chromium
pkgdesc = A lightweight approach to removing Google web service dependency
- pkgver = 94.0.4606.81
+ pkgver = 95.0.4638.54
pkgrel = 1
url = https://github.com/Eloston/ungoogled-chromium
arch = x86_64
@@ -50,9 +50,12 @@ pkgbase = ungoogled-chromium
optdepends = kwallet: support for storing passwords in KWallet on Plasma
provides = chromium
conflicts = chromium
- source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-94.0.4606.81.tar.xz
+ source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-95.0.4638.54.tar.xz
source = https://github.com/foutrelis/chromium-launcher/archive/v8/chromium-launcher-8.tar.gz
- source = https://github.com/stha09/chromium-patches/releases/download/chromium-94-patchset-3/chromium-94-patchset-3.tar.xz
+ source = https://github.com/stha09/chromium-patches/releases/download/chromium-95-patchset-4/chromium-95-patchset-4.tar.xz
+ source = maldoca-depend-on-zlib-instead-of-headers-only.patch
+ source = ozone-x11-fix-VA-API.patch
+ source = chromium-95-harfbuzz-3.patch
source = replace-blacklist-with-ignorelist.patch
source = add-a-TODO-about-a-missing-pnacl-flag.patch
source = use-ffile-compilation-dir.patch
@@ -62,12 +65,15 @@ pkgbase = ungoogled-chromium
source = chromium-94-ffmpeg-roll.patch
source = unexpire-accelerated-video-decode-flag.patch
source = use-oauth2-client-switches-as-default.patch
- source = ungoogled-chromium-94.0.4606.81-1.tar.gz::https://github.com/Eloston/ungoogled-chromium/archive/94.0.4606.81-1.tar.gz
+ source = ungoogled-chromium-95.0.4638.54-1.tar.gz::https://github.com/Eloston/ungoogled-chromium/archive/95.0.4638.54-1.tar.gz
source = chromium-drirc-disable-10bpc-color-configs.conf
source = wayland-egl.patch
- sha256sums = 7071aa2b2caf48094c2ae816395948b4daec940606f4982ad5bbf68e5d2de598
+ sha256sums = 3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd
sha256sums = 213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a
- sha256sums = 22692bddaf2761c6ddf9ff0bc4722972bca4d4c5b2fd3e5dbdac7eb60d914320
+ sha256sums = bc6373f2470a9e6d947a4deaee0612f730112f69552b933c54bb6e60b82dd6f1
+ sha256sums = 074b32078b9e53fd9b33709ce5785c120eb0346b015a93921897caed4f95f7b6
+ sha256sums = 3af6dfe5c4e6ed1be52a292c30bc0c447cc8498bb108f7973adb438239961474
+ sha256sums = d9002f1e33390c3e770637773c81be6731584b18f68f086e955bcc3f66f4510d
sha256sums = d3344ba39b8c6ed202334ba7f441c70d81ddf8cdb15af1aa8c16e9a3a75fbb35
sha256sums = d53da216538f2e741a6e048ed103964a91a98e9a3c10c27fdfa34d4692fdc455
sha256sums = 921010cd8fab5f30be76c68b68c9b39fac9e21f4c4133bb709879592bbdf606e
diff --git a/PKGBUILD b/PKGBUILD
index 298bea4a8ce5..72f1d407538d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,10 +9,10 @@
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=ungoogled-chromium
-pkgver=94.0.4606.81
+pkgver=95.0.4638.54
pkgrel=1
_launcher_ver=8
-_gcc_patchset=3
+_gcc_patchset=4
pkgdesc="A lightweight approach to removing Google web service dependency"
arch=('x86_64')
url="https://github.com/Eloston/ungoogled-chromium"
@@ -29,6 +29,9 @@ optdepends=('pipewire: WebRTC desktop sharing under Wayland'
source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz
https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz
https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz
+ maldoca-depend-on-zlib-instead-of-headers-only.patch
+ ozone-x11-fix-VA-API.patch
+ chromium-95-harfbuzz-3.patch
replace-blacklist-with-ignorelist.patch
add-a-TODO-about-a-missing-pnacl-flag.patch
use-ffile-compilation-dir.patch
@@ -38,9 +41,12 @@ source=(https://commondatastorage.googleapis.com/chromium-browser-official/chrom
chromium-94-ffmpeg-roll.patch
unexpire-accelerated-video-decode-flag.patch
use-oauth2-client-switches-as-default.patch)
-sha256sums=('7071aa2b2caf48094c2ae816395948b4daec940606f4982ad5bbf68e5d2de598'
+sha256sums=('3eef88d745e6ddaeaf507358f1510482d6f399cf335061bb1226a5f7120061fd'
'213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a'
- '22692bddaf2761c6ddf9ff0bc4722972bca4d4c5b2fd3e5dbdac7eb60d914320'
+ 'bc6373f2470a9e6d947a4deaee0612f730112f69552b933c54bb6e60b82dd6f1'
+ '074b32078b9e53fd9b33709ce5785c120eb0346b015a93921897caed4f95f7b6'
+ '3af6dfe5c4e6ed1be52a292c30bc0c447cc8498bb108f7973adb438239961474'
+ 'd9002f1e33390c3e770637773c81be6731584b18f68f086e955bcc3f66f4510d'
'd3344ba39b8c6ed202334ba7f441c70d81ddf8cdb15af1aa8c16e9a3a75fbb35'
'd53da216538f2e741a6e048ed103964a91a98e9a3c10c27fdfa34d4692fdc455'
'921010cd8fab5f30be76c68b68c9b39fac9e21f4c4133bb709879592bbdf606e'
@@ -118,6 +124,11 @@ prepare() {
# https://crbug.com/1207478
patch -Np0 -i ../unexpire-accelerated-video-decode-flag.patch
+ # Upstream fixes
+ patch -Np1 -i ../maldoca-depend-on-zlib-instead-of-headers-only.patch
+ patch -Np1 -i ../ozone-x11-fix-VA-API.patch
+ patch -Np1 -i ../chromium-95-harfbuzz-3.patch
+
# Revert transition to -fsanitize-ignorelist (needs newer clang)
patch -Rp1 -i ../replace-blacklist-with-ignorelist.patch
@@ -132,8 +143,7 @@ prepare() {
patch -Np1 -i ../sql-make-VirtualCursor-standard-layout-type.patch
# Fixes for building with libstdc++ instead of libc++
- patch -Np1 -i ../patches/chromium-90-ruy-include.patch
- patch -Np1 -i ../patches/chromium-94-CustomSpaces-include.patch
+ patch -Np1 -i ../patches/chromium-95-quiche-include.patch
# Wayland/EGL regression (crbug #1071528 #1071550)
patch -Np1 -i ../wayland-egl.patch
diff --git a/chromium-95-harfbuzz-3.patch b/chromium-95-harfbuzz-3.patch
new file mode 100644
index 000000000000..33fe9556aaf3
--- /dev/null
+++ b/chromium-95-harfbuzz-3.patch
@@ -0,0 +1,31 @@
+From 9e00e702633c47c590a869bc66b5c2ceec09da50 Mon Sep 17 00:00:00 2001
+From: Dominik Röttsches <drott@chromium.org>
+Date: Tue, 28 Sep 2021 15:31:50 +0000
+Subject: [PATCH] Roll src/third_party/harfbuzz-ng/src/ 6602cbb70..a52c6df38 (80 commits)
+
+Fixed: 1252284
+Change-Id: Ie2ff99da5e41ca97b8881e1bd3e158881f4d5a8e
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3190252
+Commit-Queue: Dominik Röttsches <drott@chromium.org>
+Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
+Auto-Submit: Dominik Röttsches <drott@chromium.org>
+Reviewed-by: Calder Kitagawa <ckitagawa@chromium.org>
+Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#925776}
+
+(only components/paint_preview/common/subset_font.cc)
+---
+
+diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
+index 45daea7b1..43a448e 100644
+--- a/components/paint_preview/common/subset_font.cc
++++ b/components/paint_preview/common/subset_font.cc
+@@ -79,7 +79,7 @@
+ // Retain all variation information for OpenType variation fonts. See:
+ // https://docs.microsoft.com/en-us/typography/opentype/spec/otvaroverview
+ hb_set_t* skip_subset =
+- hb_subset_input_no_subset_tables_set(input.get()); // Owned by |input|.
++ hb_subset_input_set(input.get(), HB_SUBSET_SETS_NO_SUBSET_TABLE_TAG);
+ hb_set_add(skip_subset, HB_TAG('a', 'v', 'a', 'r'));
+ hb_set_add(skip_subset, HB_TAG('c', 'v', 'a', 'r'));
+ hb_set_add(skip_subset, HB_TAG('f', 'v', 'a', 'r'));
diff --git a/maldoca-depend-on-zlib-instead-of-headers-only.patch b/maldoca-depend-on-zlib-instead-of-headers-only.patch
new file mode 100644
index 000000000000..e1b438cdd756
--- /dev/null
+++ b/maldoca-depend-on-zlib-instead-of-headers-only.patch
@@ -0,0 +1,31 @@
+From 0aa878b7839141077071db97ba1cd30edf486827 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 15 Sep 2021 17:14:14 +0000
+Subject: [PATCH] maldoca: depend on zlib instead of headers only
+
+There is no zlib_common_headers target for unbundled zlib
+and in the end code links against zlib static library anyways.
+
+Bug: None
+Change-Id: I50b8bb5b480770b637904de00aecc3a629f09471
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3162976
+Reviewed-by: Daniel Rubery <drubery@chromium.org>
+Commit-Queue: Stephan Hartmann <stha09@googlemail.com>
+Cr-Commit-Position: refs/heads/main@{#921717}
+---
+ third_party/maldoca/BUILD.gn | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/third_party/maldoca/BUILD.gn b/third_party/maldoca/BUILD.gn
+index eeab2056b5..29a0a2ca49 100644
+--- a/third_party/maldoca/BUILD.gn
++++ b/third_party/maldoca/BUILD.gn
+@@ -224,7 +224,7 @@ source_set("maldoca-ole") {
+ "//third_party/libxml",
+ "//third_party/protobuf:protobuf_lite",
+ "//third_party/re2",
+- "//third_party/zlib:zlib_common_headers",
++ "//third_party/zlib:zlib",
+ "//third_party/zlib/google:zip",
+ ]
+
diff --git a/ozone-x11-fix-VA-API.patch b/ozone-x11-fix-VA-API.patch
new file mode 100644
index 000000000000..61d72bfb0137
--- /dev/null
+++ b/ozone-x11-fix-VA-API.patch
@@ -0,0 +1,671 @@
+From a4de986102a45e29c3ef596f22704bdca244c26c Mon Sep 17 00:00:00 2001
+From: Maksim Sisov <msisov@igalia.com>
+Date: Fri, 17 Sep 2021 08:45:55 +0000
+Subject: [PATCH] ozone/x11: fix VA-API.
+
+This patch fixes VA-API usage with Ozone/X11 backend (which
+is our default backend now as X11 has been deprecated -
+crrev.com/c/3114071)).
+
+non-Ozone X11 is disabled now and Ozone is always used
+on Linux. However, VA-API implementation is not Ozone friendly
+yet and requires major refactoring. But given that VA-API
+implementation on Linux worked only with X11, it's fine for
+now to change USE_X11 and !IsUsingOzonePlatform to
+BUILDFLAG(OZONE_PLATFORM_X11) and fail VA-API initialization
+in VADisplayState::Initialize for Ozone/Linux other than
+non-X11 backends.
+
+Bug: 1121948
+Change-Id: If85d289235e6d358103d9fa2bbe0f741fb599a26
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3141878
+Commit-Queue: Maksim Sisov <msisov@igalia.com>
+Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
+Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
+Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
+Reviewed-by: Alexander Dunaev <adunaev@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#922466}
+---
+ media/BUILD.gn | 3 -
+ media/gpu/BUILD.gn | 5 +-
+ media/gpu/args.gni | 13 +++-
+ media/gpu/vaapi/BUILD.gn | 8 +-
+ media/gpu/vaapi/va_stub_header.fragment | 6 +-
+ media/gpu/vaapi/vaapi_picture_factory.cc | 72 ++++++++----------
+ .../vaapi_picture_native_pixmap_angle.cc | 2 -
+ media/gpu/vaapi/vaapi_picture_tfp.cc | 2 -
+ .../vaapi/vaapi_video_decode_accelerator.cc | 9 +--
+ ...vaapi_video_decode_accelerator_unittest.cc | 11 +--
+ media/gpu/vaapi/vaapi_wrapper.cc | 76 +++++++++----------
+ media/gpu/vaapi/vaapi_wrapper.h | 8 +-
+ ui/ozone/platform/x11/ozone_platform_x11.cc | 3 +
+ ui/ozone/public/ozone_platform.h | 10 +++
+ 14 files changed, 108 insertions(+), 120 deletions(-)
+
+diff --git a/media/BUILD.gn b/media/BUILD.gn
+index dbee1d4338..d5c158c08f 100644
+--- a/media/BUILD.gn
++++ b/media/BUILD.gn
+@@ -130,9 +130,6 @@ component("media") {
+ public_deps += [ "//media/base/mac" ]
+ }
+
+- if (use_x11) {
+- deps += [ "//ui/base/x" ]
+- }
+ if (use_ozone) {
+ deps += [ "//ui/ozone" ]
+ }
+diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn
+index c7499485ac..3fedc78948 100644
+--- a/media/gpu/BUILD.gn
++++ b/media/gpu/BUILD.gn
+@@ -20,6 +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",
+ ]
+ }
+
+@@ -215,9 +216,7 @@ component("gpu") {
+ "windows/supported_profile_helpers.cc",
+ "windows/supported_profile_helpers.h",
+ ]
+- configs += [
+- "//third_party/khronos:khronos_headers",
+- ]
++ configs += [ "//third_party/khronos:khronos_headers" ]
+ public_deps += [ "//media/base/win:media_foundation_util" ]
+ deps += [
+ "//gpu/ipc/common:common",
+diff --git a/media/gpu/args.gni b/media/gpu/args.gni
+index 4004937949..2f53843918 100644
+--- a/media/gpu/args.gni
++++ b/media/gpu/args.gni
+@@ -3,7 +3,15 @@
+ # found in the LICENSE file.
+
+ import("//build/config/chromeos/ui_mode.gni")
+-import("//build/config/ui.gni")
++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 && !is_chromecast && !is_chromeos_lacros &&
++ (target_cpu == "x86" || target_cpu == "x64")
++}
+
+ declare_args() {
+ # Indicates if V4L plugin is used.
+@@ -21,8 +29,7 @@ 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 =
+- is_linux && use_x11 && (target_cpu == "x86" || target_cpu == "x64")
++ use_vaapi = use_vaapi_x11
+
+ # Indicates if ChromeOS protected media support exists. This is used
+ # to enable the CDM daemon in Chrome OS as well as support for
+diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
+index b11d2c60fa..0c2520dd6b 100644
+--- a/media/gpu/vaapi/BUILD.gn
++++ b/media/gpu/vaapi/BUILD.gn
+@@ -17,7 +17,7 @@ assert(use_vaapi)
+ generate_stubs("libva_stubs") {
+ extra_header = "va_stub_header.fragment"
+ sigs = [ "va.sigs" ]
+- if (use_x11) {
++ if (use_vaapi_x11) {
+ sigs += [ "va_x11.sigs" ]
+ }
+ if (is_chromeos_ash) {
+@@ -131,14 +131,14 @@ source_set("vaapi") {
+ ]
+ }
+
+- if (use_x11 || use_ozone || use_egl) {
++ if (use_ozone || use_egl) {
+ sources += [
+ "vaapi_picture_native_pixmap.cc",
+ "vaapi_picture_native_pixmap.h",
+ ]
+ }
+
+- if (use_x11) {
++ if (use_vaapi_x11) {
+ deps += [ "//ui/gfx/x" ]
+ sources += [
+ "vaapi_picture_native_pixmap_angle.cc",
+@@ -197,7 +197,7 @@ source_set("common") {
+ deps += [ "//ui/ozone" ]
+ }
+
+- if (use_x11) {
++ if (use_vaapi_x11) {
+ deps += [ "//ui/gfx/x" ]
+ }
+
+diff --git a/media/gpu/vaapi/va_stub_header.fragment b/media/gpu/vaapi/va_stub_header.fragment
+index bed198484d..e8c46c5e81 100644
+--- a/media/gpu/vaapi/va_stub_header.fragment
++++ b/media/gpu/vaapi/va_stub_header.fragment
+@@ -1,12 +1,14 @@
+ // The extra include header needed in the generated stub file for defining
+ // various libva types.
+
++#include "media/gpu/buildflags.h"
++
+ extern "C" {
+
+ #include <va/va_drm.h>
+ #include <va/va.h>
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ #include <va/va_x11.h>
+-#endif
++#endif // BUILDFLAG(USE_VAAPI_X11)
+
+ }
+diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
+index 719035b87c..9c7d7387d2 100644
+--- a/media/gpu/vaapi/vaapi_picture_factory.cc
++++ b/media/gpu/vaapi/vaapi_picture_factory.cc
+@@ -10,13 +10,13 @@
+ #include "ui/base/ui_base_features.h"
+ #include "ui/gl/gl_bindings.h"
+
+-#if defined(USE_X11)
+-#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
+-#include "media/gpu/vaapi/vaapi_picture_tfp.h"
+-#endif
+ #if defined(USE_OZONE)
+ #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
+-#endif
++#endif // defined(USE_OZONE)
++#if BUILDFLAG(USE_VAAPI_X11)
++#include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
++#include "media/gpu/vaapi/vaapi_picture_tfp.h"
++#endif // BUILDFLAG(USE_VAAPI_X11)
+ #if defined(USE_EGL)
+ #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
+ #endif
+@@ -46,15 +46,13 @@ VaapiPictureFactory::VaapiPictureFactory() {
+ vaapi_impl_pairs_.insert(
+ std::make_pair(gl::kGLImplementationEGLGLES2,
+ VaapiPictureFactory::kVaapiImplementationDrm));
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ vaapi_impl_pairs_.insert(
+ std::make_pair(gl::kGLImplementationEGLANGLE,
+ VaapiPictureFactory::kVaapiImplementationAngle));
+- if (!features::IsUsingOzonePlatform()) {
+- vaapi_impl_pairs_.insert(
+- std::make_pair(gl::kGLImplementationDesktopGL,
+- VaapiPictureFactory::kVaapiImplementationX11));
+- }
++ vaapi_impl_pairs_.insert(
++ std::make_pair(gl::kGLImplementationDesktopGL,
++ VaapiPictureFactory::kVaapiImplementationX11));
+ #endif
+
+ DeterminePictureCreationAndDownloadingMechanism();
+@@ -96,19 +94,19 @@ VaapiPictureFactory::GetVaapiImplementation(gl::GLImplementation gl_impl) {
+ }
+
+ uint32_t VaapiPictureFactory::GetGLTextureTarget() {
+-#if defined(USE_OZONE)
+- if (features::IsUsingOzonePlatform())
+- return GL_TEXTURE_EXTERNAL_OES;
+-#endif
++#if BUILDFLAG(USE_VAAPI_X11)
+ return GL_TEXTURE_2D;
++#else
++ return GL_TEXTURE_EXTERNAL_OES;
++#endif
+ }
+
+ gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
+-#if defined(USE_OZONE)
+- if (features::IsUsingOzonePlatform())
+- return gfx::BufferFormat::YUV_420_BIPLANAR;
+-#endif
++#if BUILDFLAG(USE_VAAPI_X11)
+ return gfx::BufferFormat::RGBX_8888;
++#else
++ return gfx::BufferFormat::YUV_420_BIPLANAR;
++#endif
+ }
+
+ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
+@@ -116,51 +114,43 @@ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
+ #if defined(USE_OZONE)
+ // We can be called without GL initialized, which is valid if we use Ozone.
+ case kVaapiImplementationNone:
+- if (features::IsUsingOzonePlatform()) {
+- create_picture_cb_ = base::BindRepeating(
+- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
+- needs_vpp_for_downloading_ = true;
+- }
+-
+- // This is reached by unit tests which don't require create_picture_cb_
+- // to be initialized or called.
++ create_picture_cb_ = base::BindRepeating(
++ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
++ needs_vpp_for_downloading_ = true;
+ break;
+ #endif // defined(USE_OZONE)
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ case kVaapiImplementationX11:
+- DCHECK(!features::IsUsingOzonePlatform());
+ create_picture_cb_ =
+ base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
+ // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
+ needs_vpp_for_downloading_ = false;
+ break;
+ case kVaapiImplementationAngle:
+- DCHECK(!features::IsUsingOzonePlatform());
+ create_picture_cb_ = base::BindRepeating(
+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
+ // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
+ needs_vpp_for_downloading_ = false;
+ break;
+-#endif // defined(USE_X11)
++#endif // BUILDFLAG(USE_VAAPI_X11)
+ case kVaapiImplementationDrm:
+ #if defined(USE_OZONE)
+- if (features::IsUsingOzonePlatform()) {
+- create_picture_cb_ = base::BindRepeating(
+- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
+- needs_vpp_for_downloading_ = true;
+- break;
+- }
+-#endif // defined(USE_OZONE)
+-#if defined(USE_EGL)
++ create_picture_cb_ = base::BindRepeating(
++ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
++ needs_vpp_for_downloading_ = true;
++ break;
++#elif defined(USE_EGL)
+ create_picture_cb_ = base::BindRepeating(
+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapEgl>);
+ needs_vpp_for_downloading_ = true;
+ break;
+-#endif // defined(USE_EGL)
++#else
+ // ozone or egl must be used to use the DRM implementation.
+- NOTREACHED();
++ FALLTHROUGH;
++#endif
+ default:
+ NOTREACHED();
++ break;
+ }
+ }
+
+diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
+index 9de0c93b44..e5b9908490 100644
+--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_angle.cc
+@@ -6,7 +6,6 @@
+
+ #include "media/gpu/vaapi/va_surface.h"
+ #include "media/gpu/vaapi/vaapi_wrapper.h"
+-#include "ui/base/ui_base_features.h"
+ #include "ui/gfx/x/connection.h"
+ #include "ui/gfx/x/future.h"
+ #include "ui/gfx/x/xproto.h"
+@@ -92,7 +91,6 @@ Status VaapiPictureNativePixmapAngle::Allocate(gfx::BufferFormat format) {
+ if (!make_context_current_cb_ || !make_context_current_cb_.Run())
+ return StatusCode::kVaapiBadContext;
+
+- DCHECK(!features::IsUsingOzonePlatform());
+ auto image =
+ base::MakeRefCounted<gl::GLImageEGLPixmap>(visible_size_, format);
+ if (!image)
+diff --git a/media/gpu/vaapi/vaapi_picture_tfp.cc b/media/gpu/vaapi/vaapi_picture_tfp.cc
+index 3f7e221d8a..11914e3640 100644
+--- a/media/gpu/vaapi/vaapi_picture_tfp.cc
++++ b/media/gpu/vaapi/vaapi_picture_tfp.cc
+@@ -6,7 +6,6 @@
+
+ #include "media/gpu/vaapi/va_surface.h"
+ #include "media/gpu/vaapi/vaapi_wrapper.h"
+-#include "ui/base/ui_base_features.h"
+ #include "ui/gfx/x/connection.h"
+ #include "ui/gfx/x/future.h"
+ #include "ui/gl/gl_bindings.h"
+@@ -37,7 +36,6 @@ VaapiTFPPicture::VaapiTFPPicture(
+ connection_(x11::Connection::Get()),
+ x_pixmap_(x11::Pixmap::None) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(!features::IsUsingOzonePlatform());
+ DCHECK(texture_id);
+ DCHECK(client_texture_id);
+ }
+diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+index 7514fe4fdd..e4cd7c8d89 100644
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+@@ -184,12 +184,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(const Config& config,
+ Client* client) {
+ DCHECK(task_runner_->BelongsToCurrentThread());
+
+-#if defined(USE_X11)
+- // TODO(crbug/1116701): implement decode acceleration when running with Ozone.
+- if (features::IsUsingOzonePlatform())
+- return false;
+-#endif
+-
+ vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
+
+ if (config.is_encrypted()) {
+@@ -1213,12 +1207,11 @@ VaapiVideoDecodeAccelerator::GetSupportedProfiles() {
+
+ VaapiVideoDecodeAccelerator::BufferAllocationMode
+ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_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);
+ // TODO(crbug/1116701): get video decode acceleration working with ozone.
+- DCHECK(!features::IsUsingOzonePlatform());
+ // For H.264 on older devices, another +1 is experimentally needed for
+ // high-to-high resolution changes.
+ // TODO(mcasas): Figure out why and why only H264, see crbug.com/912295 and
+diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
+index 5b9a543386..826bb103b1 100644
+--- a/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
++++ b/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
+@@ -17,7 +17,6 @@
+ #include "media/gpu/vaapi/vaapi_wrapper.h"
+ #include "testing/gmock/include/gmock/gmock.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+-#include "ui/base/ui_base_features.h"
+
+ using base::test::RunClosure;
+ using ::testing::_;
+@@ -416,12 +415,10 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, SupportedPlatforms) {
+ mock_vaapi_picture_factory_->GetVaapiImplementation(
+ gl::kGLImplementationEGLGLES2));
+
+-#if defined(USE_X11)
+- if (!features::IsUsingOzonePlatform()) {
+- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
+- mock_vaapi_picture_factory_->GetVaapiImplementation(
+- gl::kGLImplementationDesktopGL));
+- }
++#if BUILDFLAG(USE_VAAPI_X11)
++ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
++ mock_vaapi_picture_factory_->GetVaapiImplementation(
++ gl::kGLImplementationDesktopGL));
+ #endif
+ }
+
+diff --git a/media/gpu/vaapi/vaapi_wrapper.cc b/media/gpu/vaapi/vaapi_wrapper.cc
+index 754d258848..e528b0f84d 100644
+--- a/media/gpu/vaapi/vaapi_wrapper.cc
++++ b/media/gpu/vaapi/vaapi_wrapper.cc
+@@ -65,7 +65,7 @@
+ #include "ui/gl/gl_bindings.h"
+ #include "ui/gl/gl_implementation.h"
+
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ typedef XID Drawable;
+
+ extern "C" {
+@@ -73,7 +73,7 @@ extern "C" {
+ }
+
+ #include "ui/gfx/x/connection.h" // nogncheck
+-#endif
++#endif // BUILDFLAG(USE_VAAPI_X11)
+
+ #if defined(USE_OZONE)
+ #include "ui/ozone/public/ozone_platform.h"
+@@ -87,14 +87,14 @@ using media_gpu_vaapi::kModuleVa_prot;
+
+ using media_gpu_vaapi::kModuleVa;
+ using media_gpu_vaapi::kModuleVa_drm;
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ using media_gpu_vaapi::kModuleVa_x11;
+-#endif
++#endif // BUILDFLAG(USE_VAAPI_X11)
+ using media_gpu_vaapi::InitializeStubs;
+ using media_gpu_vaapi::IsVaInitialized;
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ using media_gpu_vaapi::IsVa_x11Initialized;
+-#endif
++#endif // BUILDFLAG(USE_VAAPI_X11)
+ using media_gpu_vaapi::IsVa_drmInitialized;
+ using media_gpu_vaapi::StubPathMap;
+
+@@ -559,10 +559,20 @@ VADisplayState::VADisplayState()
+ bool VADisplayState::Initialize() {
+ base::AutoLock auto_lock(va_lock_);
+
++#if defined(USE_OZONE) && defined(OS_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)
++ return false;
++#endif
++
+ bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
+-#if defined(USE_X11)
+- if (!features::IsUsingOzonePlatform())
+- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
++#if BUILDFLAG(USE_VAAPI_X11)
++ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
+ #endif
+ if (!libraries_initialized)
+ return false;
+@@ -577,34 +587,25 @@ bool VADisplayState::Initialize() {
+ return success;
+ }
+
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+
+ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
+- bool use_drm_as_fallback = false;
+ switch (gl::GetGLImplementation()) {
+ case gl::kGLImplementationEGLGLES2:
+ return vaGetDisplayDRM(drm_fd.get());
+
+ case gl::kGLImplementationNone:
+- use_drm_as_fallback = true;
+- FALLTHROUGH;
+
+ case gl::kGLImplementationDesktopGL: {
+- if (!features::IsUsingOzonePlatform()) {
+- VADisplay display =
+- vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
+- if (vaDisplayIsValid(display))
+- return display;
+- return vaGetDisplayDRM(drm_fd.get());
+- }
+- break;
++ VADisplay display =
++ vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
++ if (vaDisplayIsValid(display))
++ return display;
++ return vaGetDisplayDRM(drm_fd.get());
+ }
+
+- case gl::kGLImplementationEGLANGLE: {
+- if (!features::IsUsingOzonePlatform())
+- return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
+- break;
+- }
++ case gl::kGLImplementationEGLANGLE:
++ return vaGetDisplay(x11::Connection::Get()->GetXlibDisplay());
+
+ default:
+ LOG(WARNING) << "VAAPI video acceleration not available for "
+@@ -612,10 +613,6 @@ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
+ gl::GetGLImplementationParts());
+ return absl::nullopt;
+ }
+-
+- if (use_drm_as_fallback)
+- return vaGetDisplayDRM(drm_fd.get());
+- return absl::nullopt;
+ }
+
+ #else
+@@ -633,11 +630,11 @@ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
+ }
+ }
+
+-#endif // defined(USE_X11)
++#endif // BUILDFLAG(USE_VAAPI_X11)
+
+ bool VADisplayState::InitializeVaDisplay_Locked() {
+ absl::optional<VADisplay> display =
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ GetVADisplayStateX11(drm_fd_);
+ #else
+ GetVADisplayState(drm_fd_);
+@@ -702,10 +699,9 @@ bool VADisplayState::InitializeOnce() {
+ if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
+ return false;
+
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ if (gl::GetGLImplementation() == gl::kGLImplementationEGLANGLE &&
+ implementation_type_ == VAImplementation::kIntelIHD) {
+- DCHECK(!features::IsUsingOzonePlatform());
+ constexpr char libva_driver_impl_env[] = "LIBVA_DRIVER_NAME";
+ // TODO(crbug/1116703) The libva intel-media driver has a known segfault in
+ // vaPutSurface, so until this is fixed, fall back to the i965 driver. There
+@@ -722,7 +718,7 @@ bool VADisplayState::InitializeOnce() {
+ if (!InitializeVaDisplay_Locked() || !InitializeVaDriver_Locked())
+ return false;
+ }
+-#endif // USE_X11
++#endif // BUILDFLAG(USE_VAAPI_X11)
+
+ return true;
+ }
+@@ -2452,11 +2448,10 @@ bool VaapiWrapper::MapAndCopyAndExecute(
+ return Execute_Locked(va_surface_id, va_buffer_ids);
+ }
+
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
+ x11::Pixmap x_pixmap,
+ gfx::Size dest_size) {
+- DCHECK(!features::IsUsingOzonePlatform());
+ base::AutoLock auto_lock(*va_lock_);
+
+ VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
+@@ -2470,7 +2465,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
+ VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
+ return true;
+ }
+-#endif // USE_X11
++#endif // BUILDFLAG(USE_VAAPI_X11)
+
+ std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
+ VASurfaceID va_surface_id,
+@@ -2844,9 +2839,8 @@ void VaapiWrapper::PreSandboxInitialization() {
+
+ paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
+ paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
+-#if defined(USE_X11)
+- if (!features::IsUsingOzonePlatform())
+- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
++#if BUILDFLAG(USE_VAAPI_X11)
++ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
+ #endif
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+ paths[kModuleVa_prot].push_back(std::string("libva.so.") + va_suffix);
+diff --git a/media/gpu/vaapi/vaapi_wrapper.h b/media/gpu/vaapi/vaapi_wrapper.h
+index 0e3da53624..88ffcd0799 100644
+--- a/media/gpu/vaapi/vaapi_wrapper.h
++++ b/media/gpu/vaapi/vaapi_wrapper.h
+@@ -36,9 +36,9 @@
+ #include "third_party/abseil-cpp/absl/types/optional.h"
+ #include "ui/gfx/geometry/size.h"
+
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ #include "ui/gfx/x/xproto.h" // nogncheck
+-#endif // USE_X11
++#endif // BUILDFLAG(USE_VAAPI_X11)
+
+ namespace gfx {
+ enum class BufferFormat;
+@@ -426,13 +426,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
+ const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers)
+ WARN_UNUSED_RESULT;
+
+-#if defined(USE_X11)
++#if BUILDFLAG(USE_VAAPI_X11)
+ // Put data from |va_surface_id| into |x_pixmap| of size
+ // |dest_size|, converting/scaling to it.
+ bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
+ x11::Pixmap x_pixmap,
+ gfx::Size dest_size) WARN_UNUSED_RESULT;
+-#endif // USE_X11
++#endif // BUILDFLAG(USE_VAAPI_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 --git a/ui/ozone/platform/x11/ozone_platform_x11.cc b/ui/ozone/platform/x11/ozone_platform_x11.cc
+index 8889828e0f..963dc7a0cd 100644
+--- a/ui/ozone/platform/x11/ozone_platform_x11.cc
++++ b/ui/ozone/platform/x11/ozone_platform_x11.cc
+@@ -208,6 +208,9 @@ class OzonePlatformX11 : public OzonePlatform,
+ properties->supports_global_application_menus = true;
+ properties->app_modal_dialogs_use_event_blocker = true;
+ properties->fetch_buffer_formats_for_gmb_on_gpu = true;
++#if defined(OS_LINUX)
++ properties->supports_vaapi = true;
++#endif
+
+ initialised = true;
+ }
+diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
+index df95f07486..2d7f44bbfa 100644
+--- a/ui/ozone/public/ozone_platform.h
++++ b/ui/ozone/public/ozone_platform.h
+@@ -15,6 +15,7 @@
+ #include "base/macros.h"
+ #include "base/message_loop/message_pump_type.h"
+ #include "base/single_thread_task_runner.h"
++#include "build/build_config.h"
+ #include "mojo/public/cpp/bindings/binder_map.h"
+ #include "ui/gfx/buffer_types.h"
+ #include "ui/gfx/native_widget_types.h"
+@@ -154,6 +155,15 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
+ // Determines whether buffer formats should be fetched on GPU and passed
+ // back via gpu extra info.
+ bool fetch_buffer_formats_for_gmb_on_gpu = false;
++
++#if defined(OS_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;
++#endif
+ };
+
+ // Groups platform properties that can only be known at run time.