public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Than Ngo <than@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/chromium] epel9-next: update to 109.0.5414.74
Date: Fri, 07 Aug 2026 16:04:25 GMT [thread overview]
Message-ID: <178611866541.1.3196197667119187560.rpms-chromium-6c69a0f2ece7@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/chromium
Branch : epel9-next
Commit : 6c69a0f2ece7070a6b1cc353ab0df8354c6208e3
Author : Than Ngo <than@redhat.com>
Date : 2023-01-12T11:24:53+01:00
Stats : +791/-953 in 15 file(s)
URL : https://src.fedoraproject.org/rpms/chromium/c/6c69a0f2ece7070a6b1cc353ab0df8354c6208e3?branch=epel9-next
Log:
update to 109.0.5414.74
---
diff --git a/chromium-107.0.5304.101-system-minizip-header-fix.patch b/chromium-107.0.5304.101-system-minizip-header-fix.patch
deleted file mode 100644
index 5ce7fe5..0000000
--- a/chromium-107.0.5304.101-system-minizip-header-fix.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
---- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip 2022-11-14 11:48:36.877164150 +0100
-+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc 2022-11-14 11:51:55.791949494 +0100
-@@ -27,8 +27,8 @@ limitations under the License.
- #include "tensorflow_lite_support/cc/port/status_macros.h"
- #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h"
- #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
--#include "third_party/zlib/contrib/minizip/ioapi.h"
--#include "third_party/zlib/contrib/minizip/unzip.h"
-+#include <minizip/ioapi.h>
-+#include <minizip/unzip.h>
-
- namespace tflite {
- namespace metadata {
-diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
---- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip 2022-11-14 11:48:36.877164150 +0100
-+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc 2022-11-14 11:52:36.233736347 +0100
-@@ -26,8 +26,8 @@ limitations under the License.
- #include "tensorflow_lite_support/cc/port/statusor.h"
- #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h"
- #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
--#include "third_party/zlib/contrib/minizip/ioapi.h"
--#include "third_party/zlib/contrib/minizip/unzip.h"
-+#include <minizip/ioapi.h>
-+#include <minizip/zip.h>
-
- namespace tflite {
- namespace metadata {
-diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
---- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip 2022-11-09 01:41:13.000000000 +0100
-+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc 2022-11-14 11:48:36.877164150 +0100
-@@ -19,7 +19,7 @@ limitations under the License.
- #include <cstdio>
-
- #include "absl/strings/string_view.h" // from @com_google_absl
--#include "contrib/minizip/ioapi.h"
-+#include <minizip/ioapi.h>
-
- namespace tflite {
- namespace metadata {
-diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h
-diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
---- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip 2022-11-14 11:48:36.877164150 +0100
-+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc 2022-11-14 11:53:57.365294462 +0100
-@@ -19,7 +19,7 @@ limitations under the License.
- #include <cstdio>
-
- #include "absl/strings/string_view.h" // from @com_google_absl
--#include "third_party/zlib/contrib/minizip/ioapi.h"
-+#include <minizip/ioapi.h>
-
- namespace tflite {
- namespace metadata {
-diff -up chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
---- chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip 2022-11-14 11:48:36.877164150 +0100
-+++ chromium-107.0.5304.110/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h 2022-11-14 11:54:21.318756738 +0100
-@@ -19,7 +19,7 @@ limitations under the License.
- #include <cstdlib>
-
- #include "absl/strings/string_view.h" // from @com_google_absl
--#include "third_party/zlib/contrib/minizip/ioapi.h"
-+#include <minizip/ioapi.h>
-
- namespace tflite {
- namespace metadata {
diff --git a/chromium-107.0.5304.110-cstring-memset.patch b/chromium-107.0.5304.110-cstring-memset.patch
deleted file mode 100644
index 3cef5ef..0000000
--- a/chromium-107.0.5304.110-cstring-memset.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up chromium-107.0.5304.110/remoting/codec/video_encoder_active_map.cc.me chromium-107.0.5304.110/remoting/codec/video_encoder_active_map.cc
---- chromium-107.0.5304.110/remoting/codec/video_encoder_active_map.cc.me 2022-11-20 19:17:37.781264509 +0100
-+++ chromium-107.0.5304.110/remoting/codec/video_encoder_active_map.cc 2022-11-20 19:18:12.040865033 +0100
-@@ -6,6 +6,7 @@
-
- #include <algorithm>
- #include <utility>
-+#include <cstring>
-
- #include "base/check_op.h"
- #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
diff --git a/chromium-108-clang14-c++20-link-error.patch b/chromium-108-clang14-c++20-link-error.patch
deleted file mode 100644
index 968aab2..0000000
--- a/chromium-108-clang14-c++20-link-error.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -up chromium-108.0.5359.124/build/config/compiler/BUILD.gn.me chromium-108.0.5359.124/build/config/compiler/BUILD.gn
---- chromium-108.0.5359.124/build/config/compiler/BUILD.gn.me 2023-01-03 21:02:16.602183035 +0100
-+++ chromium-108.0.5359.124/build/config/compiler/BUILD.gn 2023-01-03 21:04:11.606320859 +0100
-@@ -589,15 +589,6 @@ config("compiler") {
- if (is_clang) {
- cflags_cc += [ "-fno-trigraphs" ]
- }
-- } else if (is_linux) {
-- # TODO(crbug.com/1284275): Switch to C++20 on all platforms.
-- if (is_clang) {
-- cflags_cc += [ "-std=${standard_prefix}++20" ]
-- } else {
-- # The gcc bots are currently using GCC 9, which is not new enough to
-- # support "c++20"/"gnu++20".
-- cflags_cc += [ "-std=${standard_prefix}++2a" ]
-- }
- } else {
- cflags_cc += [ "-std=${standard_prefix}++17" ]
- }
diff --git a/chromium-108-disable-GlobalMediaControlsCastStartStop.patch b/chromium-108-disable-GlobalMediaControlsCastStartStop.patch
deleted file mode 100644
index ccf52a9..0000000
--- a/chromium-108-disable-GlobalMediaControlsCastStartStop.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -up chromium-108.0.5359.124/chrome/browser/media/router/media_router_feature.cc.me chromium-108.0.5359.124/chrome/browser/media/router/media_router_feature.cc
---- chromium-108.0.5359.124/chrome/browser/media/router/media_router_feature.cc.me 2022-12-30 13:05:24.520593426 +0100
-+++ chromium-108.0.5359.124/chrome/browser/media/router/media_router_feature.cc 2022-12-30 14:03:08.996254352 +0100
-@@ -46,16 +46,9 @@ BASE_FEATURE(kDialEnforceUrlIPAddress,
- BASE_FEATURE(kMediaRemotingWithoutFullscreen,
- "MediaRemotingWithoutFullscreen",
- base::FEATURE_DISABLED_BY_DEFAULT);
--
--#if BUILDFLAG(IS_CHROMEOS)
- BASE_FEATURE(kGlobalMediaControlsCastStartStop,
- "GlobalMediaControlsCastStartStop",
- base::FEATURE_DISABLED_BY_DEFAULT);
--#else
--BASE_FEATURE(kGlobalMediaControlsCastStartStop,
-- "GlobalMediaControlsCastStartStop",
-- base::FEATURE_ENABLED_BY_DEFAULT);
--#endif // BUILDFLAG(IS_CHROMEOS)
-
- #endif // !BUILDFLAG(IS_ANDROID)
-
diff --git a/chromium-108-ozone-wayland-vaapi-support.patch b/chromium-108-ozone-wayland-vaapi-support.patch
deleted file mode 100644
index d31ca8c..0000000
--- a/chromium-108-ozone-wayland-vaapi-support.patch
+++ /dev/null
@@ -1,655 +0,0 @@
-author Jianhui Dai <jianhui.j.dai@intel.com> Tue Nov 15 06:18:04 2022
-committer Jianhui Dai <jianhui.j.dai@intel.com> Tue Nov 15 06:18:04 2022
-
-[Ozone/Linux] Support VA-API on Linux Ozone/Wayland
-
-VA-API supports different display backends [1]. VA/DRM and VA/X11 are
-used by Chromium at the moment. All Ozone platforms support VA/DRM by
-default. VA/X11 is supported only on Ozone/X11.
-
-This CL renames 'supports_vaapi' to 'supports_vaapi_x11'; it indicates
-if VA/X11 supported. Linux Ozone/X11 supports both VA/X11 and VA/DRM;
-Linux Ozone/Wayland supports only VA/DRM. `VaapiPictureFactory` also
-takes this flag to determine picture creation and downloading mechanism
-on Linux.
-
-[1] https://github.com/intel/libva/blob/master/va/va_backend.h
-
-Test: VDA video playback on Linux X11 and Linux Wayland
-Bug: 1326754,1116701
-Change-Id: I6d6bf781833a7752d23dafb2b63112c2fc81b17a
-diff -up chromium-108.0.5359.124/media/gpu/args.gni.wayland-vaapi chromium-108.0.5359.124/media/gpu/args.gni
---- chromium-108.0.5359.124/media/gpu/args.gni.wayland-vaapi 2022-12-14 01:39:52.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/args.gni 2023-01-05 10:13:08.291403261 +0100
-@@ -6,10 +6,14 @@ import("//build/config/chromeos/ui_mode.
- import("//build/config/ozone.gni")
-
- declare_args() {
-- # Indicates if X11 VA-API-based hardware acceleration is to be used.
-- # See also the comment near the |use_vaapi| arg.
-- use_vaapi_x11 = is_linux && ozone_platform_x11 &&
-- (target_cpu == "x86" || target_cpu == "x64") && !is_castos
-+ # Build Chrome support for using VA-API over X11. Note that setting this to true is
-+ # not a guarantee that Chrome will use (or even try to use) VA-API over X11. In
-+ # particular, it is possible to build Chrome with support for VA-API over X11 but
-+ # pick Wayland as the Ozone backend at runtime. In this case, Chrome will try to
-+ # use VA-API over DRM.
-+ support_vaapi_over_x11 =
-+ is_linux && ozone_platform_x11 &&
-+ (target_cpu == "x86" || target_cpu == "x64") && !is_castos
- }
-
- declare_args() {
-@@ -29,8 +33,9 @@ declare_args() {
- # is typically the case on x86-based ChromeOS devices.
- # VA-API should also be compiled by default on x11-using linux devices
- # using x86/x64.
-- use_vaapi = use_vaapi_x11 || (is_chromeos_lacros &&
-- (target_cpu == "x86" || target_cpu == "x64"))
-+ use_vaapi =
-+ support_vaapi_over_x11 ||
-+ (is_chromeos_lacros && (target_cpu == "x86" || target_cpu == "x64"))
-
- # Indicates if ChromeOS protected media support exists. This is used
- # to enable the CDM daemon in Chrome OS as well as support for
-diff -up chromium-108.0.5359.124/media/gpu/BUILD.gn.wayland-vaapi chromium-108.0.5359.124/media/gpu/BUILD.gn
---- chromium-108.0.5359.124/media/gpu/BUILD.gn.wayland-vaapi 2022-12-14 01:39:52.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/BUILD.gn 2023-01-05 10:13:08.291403261 +0100
-@@ -20,7 +20,7 @@ buildflag_header("buildflags") {
- "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
- "USE_V4L2_CODEC=$use_v4l2_codec",
- "USE_LIBV4L2=$use_v4lplugin",
-- "USE_VAAPI_X11=$use_vaapi_x11",
-+ "SUPPORT_VAAPI_OVER_X11=$support_vaapi_over_x11",
- ]
- }
-
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/BUILD.gn.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/BUILD.gn
---- chromium-108.0.5359.124/media/gpu/vaapi/BUILD.gn.wayland-vaapi 2022-12-14 01:39:52.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/vaapi/BUILD.gn 2023-01-05 10:13:08.291403261 +0100
-@@ -17,7 +17,7 @@ assert(use_vaapi)
- generate_stubs("libva_stubs") {
- extra_header = "va_stub_header.fragment"
- sigs = [ "va.sigs" ]
-- if (use_vaapi_x11) {
-+ if (support_vaapi_over_x11) {
- sigs += [ "va_x11.sigs" ]
- }
- if (is_chromeos_ash) {
-@@ -138,7 +138,7 @@ source_set("vaapi") {
- ]
- }
-
-- if (use_vaapi_x11) {
-+ if (support_vaapi_over_x11) {
- deps += [ "//ui/gfx/x" ]
- sources += [
- "vaapi_picture_native_pixmap_angle.cc",
-@@ -214,7 +214,7 @@ source_set("common") {
- deps += [ "//ui/ozone" ]
- }
-
-- if (use_vaapi_x11) {
-+ if (support_vaapi_over_x11) {
- deps += [ "//ui/gfx/x" ]
- }
-
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.cc.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.cc
---- chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.cc.wayland-vaapi 2022-12-14 01:39:53.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.cc 2023-01-05 10:32:58.616517572 +0100
-@@ -12,10 +12,10 @@
- #if defined(USE_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
- #endif // defined(USE_OZONE)
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
- #include "media/gpu/vaapi/vaapi_picture_tfp.h"
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -41,22 +41,32 @@ std::unique_ptr<VaapiPicture> CreateVaap
-
- } // namespace
-
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+VaapiPictureFactory::VaapiPictureFactory(
-+ absl::optional<bool> may_use_vaapi_over_x11)
-+ : may_use_vaapi_over_x11_(may_use_vaapi_over_x11) {
-+#else
- VaapiPictureFactory::VaapiPictureFactory() {
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLGLES2,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#if BUILDFLAG(USE_VAAPI_X11)
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationEGLANGLE,
-- VaapiPictureFactory::kVaapiImplementationAngle));
-- vaapi_impl_pairs_.insert(
-- std::make_pair(gl::kGLImplementationDesktopGL,
-- VaapiPictureFactory::kVaapiImplementationX11));
--#elif defined(USE_OZONE)
-+
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ CHECK(may_use_vaapi_over_x11_.has_value());
-+ if (may_use_vaapi_over_x11_.value()) {
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationEGLANGLE,
-+ VaapiPictureFactory::kVaapiImplementationAngle));
-+ vaapi_impl_pairs_.insert(
-+ std::make_pair(gl::kGLImplementationDesktopGL,
-+ VaapiPictureFactory::kVaapiImplementationX11));
-+ }
-+#else
- vaapi_impl_pairs_.insert(
- std::make_pair(gl::kGLImplementationEGLANGLE,
- VaapiPictureFactory::kVaapiImplementationDrm));
--#endif
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- DeterminePictureCreationAndDownloadingMechanism();
- }
-@@ -97,19 +107,19 @@ VaapiPictureFactory::GetVaapiImplementat
- }
-
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if BUILDFLAG(USE_VAAPI_X11)
-- return GL_TEXTURE_2D;
--#else
-+#if BUILDFLAG(IS_CHROMEOS)
- return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#else
-+ return GL_TEXTURE_2D;
-+#endif // BUILDFLAG(IS_CHROMEOS)
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if BUILDFLAG(USE_VAAPI_X11)
-- return gfx::BufferFormat::RGBX_8888;
--#else
-+#if BUILDFLAG(IS_CHROMEOS)
- return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#else
-+ return gfx::BufferFormat::RGBX_8888;
-+#endif // BUILDFLAG(IS_CHROMEOS)
- }
-
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -117,25 +127,30 @@ void VaapiPictureFactory::DeterminePictu
- #if defined(USE_OZONE)
- // We can be called without GL initialized, which is valid if we use Ozone.
- case kVaapiImplementationNone:
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ DCHECK(may_use_vaapi_over_x11_.value_or(false));
-+#endif
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
- needs_vpp_for_downloading_ = true;
- break;
- #endif // defined(USE_OZONE)
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- case kVaapiImplementationX11:
-+ DCHECK(may_use_vaapi_over_x11_.value_or(false));
- create_picture_cb_ =
- base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
- case kVaapiImplementationAngle:
-+ DCHECK(may_use_vaapi_over_x11_.value_or(false));
- create_picture_cb_ = base::BindRepeating(
- &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
- // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
- needs_vpp_for_downloading_ = false;
- break;
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- case kVaapiImplementationDrm:
- #if defined(USE_OZONE)
- create_picture_cb_ = base::BindRepeating(
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.h.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.h
---- chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.h.wayland-vaapi 2022-12-14 01:39:53.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.h 2023-01-05 10:13:08.291403261 +0100
-@@ -36,7 +36,11 @@ class MEDIA_GPU_EXPORT VaapiPictureFacto
- kVaapiImplementationAngle,
- };
-
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ explicit VaapiPictureFactory(absl::optional<bool> may_use_vaapi_over_x11);
-+#else
- VaapiPictureFactory();
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- VaapiPictureFactory(const VaapiPictureFactory&) = delete;
- VaapiPictureFactory& operator=(const VaapiPictureFactory&) = delete;
-@@ -85,6 +89,11 @@ class MEDIA_GPU_EXPORT VaapiPictureFacto
-
- CreatePictureCB create_picture_cb_;
- bool needs_vpp_for_downloading_ = false;
-+
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ // See comment in `VaapiWrapper::MayUseVaapiOverX11()`.
-+ absl::optional<bool> may_use_vaapi_over_x11_;
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- };
-
- } // namespace media
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
---- chromium-108.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.wayland-vaapi 2023-01-05 10:13:08.290403251 +0100
-+++ chromium-108.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2023-01-05 10:13:08.292403271 +0100
-@@ -184,7 +184,12 @@ bool VaapiVideoDecodeAccelerator::Initia
- Client* client) {
- DCHECK(task_runner_->BelongsToCurrentThread());
-
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ vaapi_picture_factory_ =
-+ std::make_unique<VaapiPictureFactory>(VaapiWrapper::MayUseVaapiOverX11());
-+#else
- vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- if (config.is_encrypted()) {
- NOTREACHED() << "Encrypted streams are not supported for this VDA";
-@@ -1210,7 +1215,7 @@ VaapiVideoDecodeAccelerator::GetSupporte
-
- VaapiVideoDecodeAccelerator::BufferAllocationMode
- VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
- // here.
- DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
---- chromium-108.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc.wayland-vaapi 2022-12-14 01:39:53.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc 2023-01-05 10:38:15.176631507 +0100
-@@ -38,6 +38,11 @@ struct TestParams {
- bool decode_using_client_picture_buffers;
- };
-
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+// TODO: Add it in TestParams to cover Ozone/Wayland.
-+bool kMayUseVaapiOverX11 = true;
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+
- constexpr int32_t kBitstreamId = 123;
- constexpr size_t kInputSize = 256;
-
-@@ -130,7 +135,13 @@ class MockVaapiPicture : public VaapiPic
-
- class MockVaapiPictureFactory : public VaapiPictureFactory {
- public:
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ explicit MockVaapiPictureFactory(absl::optional<bool> may_use_vaapi_over_x11)
-+ : VaapiPictureFactory(may_use_vaapi_over_x11) {}
-+#else
- MockVaapiPictureFactory() = default;
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+
- ~MockVaapiPictureFactory() override = default;
-
- MOCK_METHOD3(MockCreateVaapiPicture,
-@@ -164,7 +175,12 @@ class VaapiVideoDecodeAcceleratorTest :
- bool can_bind_to_sampler) { return true; })),
- decoder_thread_("VaapiVideoDecodeAcceleratorTestThread"),
- mock_decoder_(new ::testing::StrictMock<MockAcceleratedVideoDecoder>),
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ mock_vaapi_picture_factory_(
-+ new MockVaapiPictureFactory(kMayUseVaapiOverX11)),
-+#else
- mock_vaapi_picture_factory_(new MockVaapiPictureFactory()),
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- mock_vaapi_wrapper_(new MockVaapiWrapper(VaapiWrapper::kDecode)),
- mock_vpp_vaapi_wrapper_(new MockVaapiWrapper(VaapiWrapper::kDecode)),
- weak_ptr_factory_(this) {
-@@ -420,14 +436,16 @@ TEST_P(VaapiVideoDecodeAcceleratorTest,
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLGLES2));
-
--#if BUILDFLAG(USE_VAAPI_X11)
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationAngle,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationEGLANGLE));
-- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-- mock_vaapi_picture_factory_->GetVaapiImplementation(
-- gl::kGLImplementationDesktopGL));
--#elif defined(USE_OZONE)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ if (kMayUseVaapiOverX11) {
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationAngle,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationEGLANGLE));
-+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
-+ mock_vaapi_picture_factory_->GetVaapiImplementation(
-+ gl::kGLImplementationDesktopGL));
-+ }
-+#else
- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationDrm,
- mock_vaapi_picture_factory_->GetVaapiImplementation(
- gl::kGLImplementationEGLANGLE));
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/vaapi_wrapper.cc.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/vaapi_wrapper.cc
---- chromium-108.0.5359.124/media/gpu/vaapi/vaapi_wrapper.cc.wayland-vaapi 2022-12-14 01:39:53.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/vaapi/vaapi_wrapper.cc 2023-01-05 10:41:41.595648227 +0100
-@@ -62,7 +62,7 @@
- #include "ui/gl/gl_bindings.h"
- #include "ui/gl/gl_implementation.h"
-
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- typedef XID Drawable;
-
- extern "C" {
-@@ -70,7 +70,7 @@ extern "C" {
- }
-
- #include "ui/gfx/x/connection.h" // nogncheck
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- #if defined(USE_OZONE)
- #include "ui/ozone/public/ozone_platform.h"
-@@ -84,14 +84,14 @@ using media_gpu_vaapi::kModuleVa_prot;
-
- using media_gpu_vaapi::kModuleVa;
- using media_gpu_vaapi::kModuleVa_drm;
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- using media_gpu_vaapi::kModuleVa_x11;
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- using media_gpu_vaapi::InitializeStubs;
- using media_gpu_vaapi::IsVaInitialized;
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- using media_gpu_vaapi::IsVa_x11Initialized;
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- using media_gpu_vaapi::IsVa_drmInitialized;
- using media_gpu_vaapi::StubPathMap;
-
-@@ -668,6 +668,12 @@ class VADisplayState {
-
- void SetDrmFd(base::PlatformFile fd) { drm_fd_.reset(HANDLE_EINTR(dup(fd))); }
-
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ absl::optional<bool> MayUseVaapiOverX11() const {
-+ return may_use_vaapi_over_x11_;
-+ }
-+#endif
-+
- private:
- friend class base::NoDestructor<VADisplayState>;
-
-@@ -690,6 +696,13 @@ class VADisplayState {
- // Drm fd used to obtain access to the driver interface by VA.
- base::ScopedFD drm_fd_;
-
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ // Whether we'll be possibly using VA-API over Ozone/X11. This should only be
-+ // set (if at all) during the pre-sandbox initialization. If absl::nullopt,
-+ // all calls to Initialize() will return false immediately.
-+ absl::optional<bool> may_use_vaapi_over_x11_;
-+#endif
-+
- // The VADisplay handle. Valid between Initialize() and Deinitialize().
- VADisplay va_display_;
-
-@@ -708,6 +721,15 @@ VADisplayState* VADisplayState::Get() {
-
- // static
- void VADisplayState::PreSandboxInitialization() {
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ if (ui::OzonePlatform::IsInitialized()) {
-+ VADisplayState::Get()->may_use_vaapi_over_x11_ =
-+ ui::OzonePlatform::GetInstance()
-+ ->GetPlatformProperties()
-+ .supports_vaapi_x11;
-+ }
-+#endif
-+
- constexpr char kRenderNodeFilePattern[] = "/dev/dri/renderD%d";
- // This loop ends on either the first card that does not exist or the first
- // render node that is not vgem.
-@@ -740,20 +762,18 @@ VADisplayState::VADisplayState()
- bool VADisplayState::Initialize() {
- base::AutoLock auto_lock(va_lock_);
-
--#if defined(USE_OZONE) && BUILDFLAG(IS_LINUX)
-- // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-- // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
-- // for more details. This will also require revisiting everything that's
-- // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
-- // user chooses the Wayland backend for Ozone at runtime, then many things (if
-- // not all) that we do for X11 won't apply.
-- if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ if (!may_use_vaapi_over_x11_.has_value())
- return false;
- #endif
-
- bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
--#if BUILDFLAG(USE_VAAPI_X11)
-- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ // Initialize VA-API X11 display backend for Linux Ozone/X11.
-+ // See comment in OzonePlatform::PlatformProperties::supports_vaapi_x11 for
-+ // more details.
-+ if (may_use_vaapi_over_x11_.value())
-+ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
- #endif
- if (!libraries_initialized)
- return false;
-@@ -768,7 +788,7 @@ bool VADisplayState::Initialize() {
- return success;
- }
-
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
- switch (gl::GetGLImplementation()) {
-@@ -796,13 +816,19 @@ absl::optional<VADisplay> GetVADisplaySt
- }
- }
-
--#else
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
- switch (gl::GetGLImplementation()) {
- case gl::kGLImplementationEGLGLES2:
-+#if BUILDFLAG(IS_CHROMEOS)
-+ // GetVADisplayState() should not get called on Linux with Ozone/X11
-+ // (GetVADisplayStateX11() should get called instead), and we haven't tried
-+ // VA-API decoding on Linux with Ozone/Wayland and anything other than
-+ // native EGL/GLES2.
- case gl::kGLImplementationEGLANGLE:
- case gl::kGLImplementationNone:
-+#endif
- return vaGetDisplayDRM(drm_fd.get());
- default:
- LOG(WARNING) << "VAAPI video acceleration not available for "
-@@ -812,18 +838,23 @@ absl::optional<VADisplay> GetVADisplaySt
- }
- }
-
--#endif // BUILDFLAG(USE_VAAPI_X11)
--
- bool VADisplayState::InitializeVaDisplay_Locked() {
-- absl::optional<VADisplay> display =
--#if BUILDFLAG(USE_VAAPI_X11)
-- GetVADisplayStateX11(drm_fd_);
--#else
-- GetVADisplayState(drm_fd_);
--#endif
-+ absl::optional<VADisplay> display;
-
-- if (!display)
-- return false;
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ DCHECK(may_use_vaapi_over_x11_.has_value());
-+ if (may_use_vaapi_over_x11_.value()) {
-+ display = GetVADisplayStateX11(drm_fd_);
-+ if (!display)
-+ return false;
-+ }
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+
-+ if (!display) {
-+ display = GetVADisplayState(drm_fd_);
-+ if (!display)
-+ return false;
-+ }
-
- va_display_ = *display;
- if (!vaDisplayIsValid(va_display_)) {
-@@ -1656,6 +1687,13 @@ scoped_refptr<VaapiWrapper> VaapiWrapper
- enforce_sequence_affinity);
- }
-
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+// static
-+absl::optional<bool> VaapiWrapper::MayUseVaapiOverX11() {
-+ return VADisplayState::Get()->MayUseVaapiOverX11();
-+}
-+#endif
-+
- // static
- std::vector<SVCScalabilityMode> VaapiWrapper::GetSupportedScalabilityModes(
- VideoCodecProfile media_profile,
-@@ -2665,12 +2703,13 @@ bool VaapiWrapper::MapAndCopyAndExecute(
- return Execute_Locked(va_surface_id, va_buffer_ids);
- }
-
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size) {
- CHECK(!enforce_sequence_affinity_ ||
- sequence_checker_.CalledOnValidSequence());
-+ CHECK(MayUseVaapiOverX11().value_or(false));
- base::AutoLockMaybe auto_lock(va_lock_.get());
-
- VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
-@@ -2684,7 +2723,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap(
- VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
- return true;
- }
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
- VASurfaceID va_surface_id,
-@@ -3086,7 +3125,7 @@ void VaapiWrapper::PreSandboxInitializat
-
- paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
- paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
- #endif
- #if BUILDFLAG(IS_CHROMEOS_ASH)
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/vaapi_wrapper.h.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/vaapi_wrapper.h
---- chromium-108.0.5359.124/media/gpu/vaapi/vaapi_wrapper.h.wayland-vaapi 2022-12-14 01:39:53.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/vaapi/vaapi_wrapper.h 2023-01-05 10:13:08.292403271 +0100
-@@ -36,9 +36,9 @@
- #include "third_party/abseil-cpp/absl/types/optional.h"
- #include "ui/gfx/geometry/size.h"
-
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- #include "ui/gfx/x/xproto.h" // nogncheck
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- namespace gfx {
- enum class BufferFormat;
-@@ -186,6 +186,16 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- VaapiWrapper(const VaapiWrapper&) = delete;
- VaapiWrapper& operator=(const VaapiWrapper&) = delete;
-
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+ // Returns true if VaapiWrapper instances may use VA-API over X11 and false
-+ // otherwise (VA-API over DRM will be used). If this returns absl::nullopt,
-+ // it's because it was not possible to determine how VA-API may be used. This
-+ // should only be called after PreSandboxInitialization() (which is assumed to
-+ // be called only once during the GPU process startup) and is safe to call
-+ // from any thread. Additionally, this should always return the same value.
-+ static absl::optional<bool> MayUseVaapiOverX11();
-+#endif
-+
- // Returns the supported SVC scalability modes for specified profile.
- static std::vector<SVCScalabilityMode> GetSupportedScalabilityModes(
- VideoCodecProfile media_profile,
-@@ -439,13 +449,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
- VASurfaceID va_surface_id,
- const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers);
-
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- // Put data from |va_surface_id| into |x_pixmap| of size
- // |dest_size|, converting/scaling to it.
- [[nodiscard]] bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
- x11::Pixmap x_pixmap,
- gfx::Size dest_size);
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
- // memory with the given |format| and |size|. If |format| is not equal to the
-diff -up chromium-108.0.5359.124/media/gpu/vaapi/va_stub_header.fragment.wayland-vaapi chromium-108.0.5359.124/media/gpu/vaapi/va_stub_header.fragment
---- chromium-108.0.5359.124/media/gpu/vaapi/va_stub_header.fragment.wayland-vaapi 2022-12-14 01:39:52.000000000 +0100
-+++ chromium-108.0.5359.124/media/gpu/vaapi/va_stub_header.fragment 2023-01-05 10:13:08.291403261 +0100
-@@ -7,8 +7,8 @@ extern "C" {
-
- #include <va/va_drm.h>
- #include <va/va.h>
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- #include <va/va_x11.h>
--#endif // BUILDFLAG(USE_VAAPI_X11)
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-
- }
-diff -up chromium-108.0.5359.124/ui/ozone/platform/x11/ozone_platform_x11.cc.wayland-vaapi chromium-108.0.5359.124/ui/ozone/platform/x11/ozone_platform_x11.cc
---- chromium-108.0.5359.124/ui/ozone/platform/x11/ozone_platform_x11.cc.wayland-vaapi 2022-12-14 01:40:14.000000000 +0100
-+++ chromium-108.0.5359.124/ui/ozone/platform/x11/ozone_platform_x11.cc 2023-01-05 10:13:08.292403271 +0100
-@@ -196,7 +196,7 @@ class OzonePlatformX11 : public OzonePla
- properties->app_modal_dialogs_use_event_blocker = true;
- properties->fetch_buffer_formats_for_gmb_on_gpu = true;
- #if BUILDFLAG(IS_LINUX)
-- properties->supports_vaapi = true;
-+ properties->supports_vaapi_x11 = true;
- #endif
-
- initialised = true;
-diff -up chromium-108.0.5359.124/ui/ozone/public/ozone_platform.h.wayland-vaapi chromium-108.0.5359.124/ui/ozone/public/ozone_platform.h
---- chromium-108.0.5359.124/ui/ozone/public/ozone_platform.h.wayland-vaapi 2022-12-14 01:40:14.000000000 +0100
-+++ chromium-108.0.5359.124/ui/ozone/public/ozone_platform.h 2023-01-05 10:13:08.293403281 +0100
-@@ -145,12 +145,13 @@ class COMPONENT_EXPORT(OZONE) OzonePlatf
- bool fetch_buffer_formats_for_gmb_on_gpu = false;
-
- #if BUILDFLAG(IS_LINUX)
-- // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
-- // Linux. At the moment, VA-API Linux implementation supports only X11
-- // backend. This implementation must be refactored to support Ozone
-- // properly. As a temporary solution, VA-API on Linux checks if vaapi is
-- // supported (which implicitly means that it is Ozone/X11).
-- bool supports_vaapi = false;
-+ // VA-API supports different display backends.
-+ // See https://github.com/intel/libva/blob/master/va/va_backend.h
-+ //
-+ // VA/DRM and VA/X11 are used by Chromium at the moment. All Ozone platforms
-+ // support VA/DRM by default. `supports_vaapi_x11` indicates if VA/X11
-+ // supported; it is true only on Ozone/X11 platform.
-+ bool supports_vaapi_x11 = false;
- #endif
-
- // Indicates that the platform allows client applications to manipulate
diff --git a/chromium-108-vaapi-guard-vaapivideodecoder.patch b/chromium-108-vaapi-guard-vaapivideodecoder.patch
deleted file mode 100644
index bf684d2..0000000
--- a/chromium-108-vaapi-guard-vaapivideodecoder.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-commit f8f456983cf238d0429ab63466d75357d79a32da
-author Ted Meyer <tmathmeyer@chromium.org> Thu Dec 08 21:24:37 2022
-committer Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> Thu Dec 08 21:24:37 2022
-tree ebfdab985b269b73b48322db0caa594766c9bb58
-parent cbf3167e80fd2dc3a87cdc7143dcdb1edfcb1f72 [diff]
-Guard VaapiVideoDecoder behind more correct flags
-
-Vulkan on linux also needs the features kVulkanFromANGLE and
-kDefaultANGLEVulkan to function properly.
-
-Additinoally, Vaapi on GL needs to be guarded behind a flag.
-
-Bug: 1236697
-Bug: 1394888
-Bug: 1381114
-Bug: 1383140
-Change-Id: Ifb9da84b95e71fa39c1559455f25e7efcdc083f1
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4088731
-Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
-Commit-Queue: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1081118}
-diff -up chromium-108.0.5359.124/media/base/media_switches.cc.orig chromium-108.0.5359.124/media/base/media_switches.cc
---- chromium-108.0.5359.124/media/base/media_switches.cc.orig 2023-01-08 16:37:39.373874165 +0100
-+++ chromium-108.0.5359.124/media/base/media_switches.cc 2023-01-10 08:16:23.492761745 +0100
-@@ -577,6 +577,10 @@ BASE_FEATURE(kVaapiVideoDecodeLinux,
- "VaapiVideoDecoder",
- base::FEATURE_ENABLED_BY_DEFAULT);
-
-+BASE_FEATURE(kVaapiVideoDecodeLinuxGL,
-+ "VaapiVideoDecodeLinuxGL",
-+ base::FEATURE_DISABLED_BY_DEFAULT);
-+
- BASE_FEATURE(kVaapiVideoEncodeLinux,
- "VaapiVideoEncoder",
- base::FEATURE_DISABLED_BY_DEFAULT);
-diff -up chromium-108.0.5359.124/media/base/media_switches.h.orig chromium-108.0.5359.124/media/base/media_switches.h
---- chromium-108.0.5359.124/media/base/media_switches.h.orig 2023-01-08 16:37:39.379874227 +0100
-+++ chromium-108.0.5359.124/media/base/media_switches.h 2023-01-10 08:16:23.493761763 +0100
-@@ -216,6 +216,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseMe
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kUseR16Texture);
- #if BUILDFLAG(IS_LINUX)
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoDecodeLinux);
-+MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoDecodeLinuxGL);
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiVideoEncodeLinux);
- MEDIA_EXPORT BASE_DECLARE_FEATURE(kVaapiIgnoreDriverChecks);
- #endif // BUILDFLAG(IS_LINUX)
-diff -up chromium-108.0.5359.124/media/mojo/services/gpu_mojo_media_client_cros.cc.orig chromium-108.0.5359.124/media/mojo/services/gpu_mojo_media_client_cros.cc
---- chromium-108.0.5359.124/media/mojo/services/gpu_mojo_media_client_cros.cc.orig 2023-01-10 08:16:23.493761763 +0100
-+++ chromium-108.0.5359.124/media/mojo/services/gpu_mojo_media_client_cros.cc 2023-01-10 08:21:55.617909016 +0100
-@@ -78,10 +78,19 @@ VideoDecoderType GetActualPlatformDecode
- }
- case VideoDecoderType::kVaapi: {
- // Allow VaapiVideoDecoder on GL.
-- if (gpu_preferences.gr_context_type == gpu::GrContextType::kGL)
-- return VideoDecoderType::kVaapi;
-+ if (gpu_preferences.gr_context_type == gpu::GrContextType::kGL) {
-+ if (base::FeatureList::IsEnabled(kVaapiVideoDecodeLinuxGL)) {
-+ return VideoDecoderType::kVaapi;
-+ } else {
-+ return VideoDecoderType::kUnknown;
-+ }
-+ }
- if (gpu_preferences.gr_context_type != gpu::GrContextType::kVulkan)
- return VideoDecoderType::kUnknown;
-+ if (!base::FeatureList::IsEnabled(features::kVulkanFromANGLE))
-+ return VideoDecoderType::kUnknown;
-+ if (!base::FeatureList::IsEnabled(features::kDefaultANGLEVulkan))
-+ return VideoDecoderType::kUnknown;
- // If Vulkan is active, check Vulkan info if VaapiVideoDecoder is allowed.
- if (!gpu_info.vulkan_info.has_value())
- return VideoDecoderType::kUnknown;
diff --git a/chromium-109-clang14-c++20-link-error.patch b/chromium-109-clang14-c++20-link-error.patch
new file mode 100644
index 0000000..530915c
--- /dev/null
+++ b/chromium-109-clang14-c++20-link-error.patch
@@ -0,0 +1,17 @@
+diff -up chromium-109.0.5414.74/build/config/compiler/BUILD.gn.link-error-clang14 chromium-109.0.5414.74/build/config/compiler/BUILD.gn
+--- chromium-109.0.5414.74/build/config/compiler/BUILD.gn.link-error-clang14 2023-01-11 18:00:34.692512606 +0100
++++ chromium-109.0.5414.74/build/config/compiler/BUILD.gn 2023-01-11 18:30:10.905410122 +0100
+@@ -601,12 +601,7 @@ config("compiler") {
+ cflags_cc += [ "-fno-trigraphs" ]
+ }
+ } else if (is_clang) {
+- if (is_chromeos_device) {
+- # TODO(crbug.com/1392471): Support C++20 in CrOS toolchain.
+- cflags_cc += [ "-std=${standard_prefix}++17" ]
+- } else {
+- cflags_cc += [ "-std=${standard_prefix}++20" ]
+- }
++ cflags_cc += [ "-std=${standard_prefix}++17" ]
+ } else {
+ # The gcc bots are currently using GCC 9, which is not new enough to
+ # support "c++20"/"gnu++20".
diff --git a/chromium-109-disable-GlobalMediaControlsCastStartStop.patch b/chromium-109-disable-GlobalMediaControlsCastStartStop.patch
new file mode 100644
index 0000000..ae492a3
--- /dev/null
+++ b/chromium-109-disable-GlobalMediaControlsCastStartStop.patch
@@ -0,0 +1,19 @@
+diff -up chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc
+--- chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop 2023-01-11 15:27:50.587737070 +0100
++++ chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc 2023-01-11 15:30:35.136829951 +0100
+@@ -48,15 +48,9 @@ BASE_FEATURE(kMediaRemotingWithoutFullsc
+ "MediaRemotingWithoutFullscreen",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(IS_CHROMEOS)
+ BASE_FEATURE(kGlobalMediaControlsCastStartStop,
+ "GlobalMediaControlsCastStartStop",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+-#else
+-BASE_FEATURE(kGlobalMediaControlsCastStartStop,
+- "GlobalMediaControlsCastStartStop",
+- base::FEATURE_ENABLED_BY_DEFAULT);
+-#endif // BUILDFLAG(IS_CHROMEOS)
+
+ #endif // BUILDFLAG(IS_ANDROID)
+
diff --git a/chromium-109-ozone-wayland-vaapi-support.patch b/chromium-109-ozone-wayland-vaapi-support.patch
new file mode 100644
index 0000000..6aa6131
--- /dev/null
+++ b/chromium-109-ozone-wayland-vaapi-support.patch
@@ -0,0 +1,666 @@
+author Jianhui Dai <jianhui.j.dai@intel.com> Tue Nov 15 06:18:04 2022
+committer Jianhui Dai <jianhui.j.dai@intel.com> Tue Nov 15 06:18:04 2022
+
+[Ozone/Linux] Support VA-API on Linux Ozone/Wayland
+
+VA-API supports different display backends [1]. VA/DRM and VA/X11 are
+used by Chromium at the moment. All Ozone platforms support VA/DRM by
+default. VA/X11 is supported only on Ozone/X11.
+
+This CL renames 'supports_vaapi' to 'supports_vaapi_x11'; it indicates
+if VA/X11 supported. Linux Ozone/X11 supports both VA/X11 and VA/DRM;
+Linux Ozone/Wayland supports only VA/DRM. `VaapiPictureFactory` also
+takes this flag to determine picture creation and downloading mechanism
+on Linux.
+
+[1] https://github.com/intel/libva/blob/master/va/va_backend.h
+
+Test: VDA video playback on Linux X11 and Linux Wayland
+Bug: 1326754,1116701
+Change-Id: I6d6bf781833a7752d23dafb2b63112c2fc81b17a
+diff -up chromium-109.0.5359.124/media/gpu/args.gni.wayland-vaapi chromium-109.0.5359.124/media/gpu/args.gni
+--- chromium-109.0.5359.124/media/gpu/args.gni.wayland-vaapi 2022-12-14 01:39:52.000000000 +0100
++++ chromium-109.0.5359.124/media/gpu/args.gni 2023-01-05 10:13:08.291403261 +0100
+@@ -6,10 +6,14 @@ import("//build/config/chromeos/ui_mode.
+ import("//build/config/ozone.gni")
+
+ declare_args() {
+- # Indicates if X11 VA-API-based hardware acceleration is to be used.
+- # See also the comment near the |use_vaapi| arg.
+- use_vaapi_x11 = is_linux && ozone_platform_x11 &&
+- (target_cpu == "x86" || target_cpu == "x64") && !is_castos
++ # Build Chrome support for using VA-API over X11. Note that setting this to true is
++ # not a guarantee that Chrome will use (or even try to use) VA-API over X11. In
++ # particular, it is possible to build Chrome with support for VA-API over X11 but
++ # pick Wayland as the Ozone backend at runtime. In this case, Chrome will try to
++ # use VA-API over DRM.
++ support_vaapi_over_x11 =
++ is_linux && ozone_platform_x11 &&
++ (target_cpu == "x86" || target_cpu == "x64") && !is_castos
+ }
+
+ declare_args() {
+@@ -29,8 +33,9 @@ declare_args() {
+ # is typically the case on x86-based ChromeOS devices.
+ # VA-API should also be compiled by default on x11-using linux devices
+ # using x86/x64.
+- use_vaapi = use_vaapi_x11 || (is_chromeos_lacros &&
+- (target_cpu == "x86" || target_cpu == "x64"))
++ use_vaapi =
++ support_vaapi_over_x11 ||
++ (is_chromeos_lacros && (target_cpu == "x86" || target_cpu == "x64"))
+
+ # Indicates if ChromeOS protected media support exists. This is used
+ # to enable the CDM daemon in Chrome OS as well as support for
+diff -up chromium-109.0.5359.124/media/gpu/BUILD.gn.wayland-vaapi chromium-109.0.5359.124/media/gpu/BUILD.gn
+--- chromium-109.0.5359.124/media/gpu/BUILD.gn.wayland-vaapi 2022-12-14 01:39:52.000000000 +0100
++++ chromium-109.0.5359.124/media/gpu/BUILD.gn 2023-01-05 10:13:08.291403261 +0100
+@@ -20,7 +20,7 @@ buildflag_header("buildflags") {
+ "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs",
+ "USE_V4L2_CODEC=$use_v4l2_codec",
+ "USE_LIBV4L2=$use_v4lplugin",
+- "USE_VAAPI_X11=$use_vaapi_x11",
++ "SUPPORT_VAAPI_OVER_X11=$support_vaapi_over_x11",
+ ]
+ }
+
+diff -up chromium-109.0.5359.124/media/gpu/vaapi/BUILD.gn.wayland-vaapi chromium-109.0.5359.124/media/gpu/vaapi/BUILD.gn
+--- chromium-109.0.5359.124/media/gpu/vaapi/BUILD.gn.wayland-vaapi 2022-12-14 01:39:52.000000000 +0100
++++ chromium-109.0.5359.124/media/gpu/vaapi/BUILD.gn 2023-01-05 10:13:08.291403261 +0100
+@@ -17,7 +17,7 @@ assert(use_vaapi)
+ generate_stubs("libva_stubs") {
+ extra_header = "va_stub_header.fragment"
+ sigs = [ "va.sigs" ]
+- if (use_vaapi_x11) {
++ if (support_vaapi_over_x11) {
+ sigs += [ "va_x11.sigs" ]
+ }
+ if (is_chromeos_ash) {
+@@ -138,7 +138,7 @@ source_set("vaapi") {
+ ]
+ }
+
+- if (use_vaapi_x11) {
++ if (support_vaapi_over_x11) {
+ deps += [ "//ui/gfx/x" ]
+ sources += [
+ "vaapi_picture_native_pixmap_angle.cc",
+@@ -214,7 +214,7 @@ source_set("common") {
+ deps += [ "//ui/ozone" ]
+ }
+
+- if (use_vaapi_x11) {
++ if (support_vaapi_over_x11) {
+ deps += [ "//ui/gfx/x" ]
+ }
+
+diff -up chromium-109.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.h.wayland-vaapi chromium-109.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.h
+--- chromium-109.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.h.wayland-vaapi 2022-12-14 01:39:53.000000000 +0100
++++ chromium-109.0.5359.124/media/gpu/vaapi/vaapi_picture_factory.h 2023-01-05 10:13:08.291403261 +0100
+@@ -36,7 +36,11 @@ class MEDIA_GPU_EXPORT VaapiPictureFacto
+ kVaapiImplementationAngle,
+ };
+
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ explicit VaapiPictureFactory(absl::optional<bool> may_use_vaapi_over_x11);
++#else
+ VaapiPictureFactory();
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ VaapiPictureFactory(const VaapiPictureFactory&) = delete;
+ VaapiPictureFactory& operator=(const VaapiPictureFactory&) = delete;
+@@ -85,6 +89,11 @@ class MEDIA_GPU_EXPORT VaapiPictureFacto
+
+ CreatePictureCB create_picture_cb_;
+ bool needs_vpp_for_downloading_ = false;
++
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ // See comment in `VaapiWrapper::MayUseVaapiOverX11()`.
++ absl::optional<bool> may_use_vaapi_over_x11_;
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ };
+
+ } // namespace media
+diff -up chromium-109.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.wayland-vaapi chromium-109.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
+--- chromium-109.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.wayland-vaapi 2023-01-05 10:13:08.290403251 +0100
++++ chromium-109.0.5359.124/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2023-01-05 10:13:08.292403271 +0100
+@@ -184,7 +184,12 @@ bool VaapiVideoDecodeAccelerator::Initia
+ Client* client) {
+ DCHECK(task_runner_->BelongsToCurrentThread());
+
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ vaapi_picture_factory_ =
++ std::make_unique<VaapiPictureFactory>(VaapiWrapper::MayUseVaapiOverX11());
++#else
+ vaapi_picture_factory_ = std::make_unique<VaapiPictureFactory>();
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ if (config.is_encrypted()) {
+ NOTREACHED() << "Encrypted streams are not supported for this VDA";
+@@ -1210,7 +1215,7 @@ VaapiVideoDecodeAccelerator::GetSupporte
+
+ VaapiVideoDecodeAccelerator::BufferAllocationMode
+ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply
+ // here.
+ DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT);
+diff -up chromium-109.0.5359.124/media/gpu/vaapi/vaapi_wrapper.h.wayland-vaapi chromium-109.0.5359.124/media/gpu/vaapi/vaapi_wrapper.h
+--- chromium-109.0.5359.124/media/gpu/vaapi/vaapi_wrapper.h.wayland-vaapi 2022-12-14 01:39:53.000000000 +0100
++++ chromium-109.0.5359.124/media/gpu/vaapi/vaapi_wrapper.h 2023-01-05 10:13:08.292403271 +0100
+@@ -36,9 +36,9 @@
+ #include "third_party/abseil-cpp/absl/types/optional.h"
+ #include "ui/gfx/geometry/size.h"
+
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ #include "ui/gfx/x/xproto.h" // nogncheck
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ namespace gfx {
+ enum class BufferFormat;
+@@ -186,6 +186,16 @@ class MEDIA_GPU_EXPORT VaapiWrapper
+ VaapiWrapper(const VaapiWrapper&) = delete;
+ VaapiWrapper& operator=(const VaapiWrapper&) = delete;
+
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ // Returns true if VaapiWrapper instances may use VA-API over X11 and false
++ // otherwise (VA-API over DRM will be used). If this returns absl::nullopt,
++ // it's because it was not possible to determine how VA-API may be used. This
++ // should only be called after PreSandboxInitialization() (which is assumed to
++ // be called only once during the GPU process startup) and is safe to call
++ // from any thread. Additionally, this should always return the same value.
++ static absl::optional<bool> MayUseVaapiOverX11();
++#endif
++
+ // Returns the supported SVC scalability modes for specified profile.
+ static std::vector<SVCScalabilityMode> GetSupportedScalabilityModes(
+ VideoCodecProfile media_profile,
+@@ -439,13 +449,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper
+ VASurfaceID va_surface_id,
+ const std::vector<std::pair<VABufferID, VABufferDescriptor>>& va_buffers);
+
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ // Put data from |va_surface_id| into |x_pixmap| of size
+ // |dest_size|, converting/scaling to it.
+ [[nodiscard]] bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
+ x11::Pixmap x_pixmap,
+ gfx::Size dest_size);
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into
+ // memory with the given |format| and |size|. If |format| is not equal to the
+diff -up chromium-109.0.5359.124/media/gpu/vaapi/va_stub_header.fragment.wayland-vaapi chromium-109.0.5359.124/media/gpu/vaapi/va_stub_header.fragment
+--- chromium-109.0.5359.124/media/gpu/vaapi/va_stub_header.fragment.wayland-vaapi 2022-12-14 01:39:52.000000000 +0100
++++ chromium-109.0.5359.124/media/gpu/vaapi/va_stub_header.fragment 2023-01-05 10:13:08.291403261 +0100
+@@ -7,8 +7,8 @@ extern "C" {
+
+ #include <va/va_drm.h>
+ #include <va/va.h>
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ #include <va/va_x11.h>
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ }
+diff -up chromium-109.0.5359.124/ui/ozone/platform/x11/ozone_platform_x11.cc.wayland-vaapi chromium-109.0.5359.124/ui/ozone/platform/x11/ozone_platform_x11.cc
+--- chromium-109.0.5359.124/ui/ozone/platform/x11/ozone_platform_x11.cc.wayland-vaapi 2022-12-14 01:40:14.000000000 +0100
++++ chromium-109.0.5359.124/ui/ozone/platform/x11/ozone_platform_x11.cc 2023-01-05 10:13:08.292403271 +0100
+@@ -196,7 +196,7 @@ class OzonePlatformX11 : public OzonePla
+ properties->app_modal_dialogs_use_event_blocker = true;
+ properties->fetch_buffer_formats_for_gmb_on_gpu = true;
+ #if BUILDFLAG(IS_LINUX)
+- properties->supports_vaapi = true;
++ properties->supports_vaapi_x11 = true;
+ #endif
+
+ initialised = true;
+diff -up chromium-109.0.5359.124/ui/ozone/public/ozone_platform.h.wayland-vaapi chromium-109.0.5359.124/ui/ozone/public/ozone_platform.h
+--- chromium-109.0.5359.124/ui/ozone/public/ozone_platform.h.wayland-vaapi 2022-12-14 01:40:14.000000000 +0100
++++ chromium-109.0.5359.124/ui/ozone/public/ozone_platform.h 2023-01-05 10:13:08.293403281 +0100
+@@ -145,12 +145,13 @@ class COMPONENT_EXPORT(OZONE) OzonePlatf
+ bool fetch_buffer_formats_for_gmb_on_gpu = false;
+
+ #if BUILDFLAG(IS_LINUX)
+- // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
+- // Linux. At the moment, VA-API Linux implementation supports only X11
+- // backend. This implementation must be refactored to support Ozone
+- // properly. As a temporary solution, VA-API on Linux checks if vaapi is
+- // supported (which implicitly means that it is Ozone/X11).
+- bool supports_vaapi = false;
++ // VA-API supports different display backends.
++ // See https://github.com/intel/libva/blob/master/va/va_backend.h
++ //
++ // VA/DRM and VA/X11 are used by Chromium at the moment. All Ozone platforms
++ // support VA/DRM by default. `supports_vaapi_x11` indicates if VA/X11
++ // supported; it is true only on Ozone/X11 platform.
++ bool supports_vaapi_x11 = false;
+ #endif
+
+ // Indicates that the platform allows client applications to manipulate
+diff -up chromium-109.0.5414.74/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc.orig chromium-109.0.5414.74/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc
+--- chromium-109.0.5414.74/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc.orig 2023-01-04 20:20:18.000000000 +0100
++++ chromium-109.0.5414.74/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc 2023-01-11 14:31:01.033496121 +0100
+@@ -39,6 +39,11 @@ struct TestParams {
+ bool decode_using_client_picture_buffers;
+ };
+
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++// TODO: Add it in TestParams to cover Ozone/Wayland.
++bool kMayUseVaapiOverX11 = true;
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++
+ constexpr int32_t kBitstreamId = 123;
+ constexpr size_t kInputSize = 256;
+
+@@ -131,7 +136,13 @@ class MockVaapiPicture : public VaapiPic
+
+ class MockVaapiPictureFactory : public VaapiPictureFactory {
+ public:
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ explicit MockVaapiPictureFactory(absl::optional<bool> may_use_vaapi_over_x11)
++ : VaapiPictureFactory(may_use_vaapi_over_x11) {}
++#else
+ MockVaapiPictureFactory() = default;
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++
+ ~MockVaapiPictureFactory() override = default;
+
+ MOCK_METHOD3(MockCreateVaapiPicture,
+@@ -165,7 +176,12 @@ class VaapiVideoDecodeAcceleratorTest :
+ bool can_bind_to_sampler) { return true; })),
+ decoder_thread_("VaapiVideoDecodeAcceleratorTestThread"),
+ mock_decoder_(new ::testing::StrictMock<MockAcceleratedVideoDecoder>),
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ mock_vaapi_picture_factory_(
++ new MockVaapiPictureFactory(kMayUseVaapiOverX11)),
++#else
+ mock_vaapi_picture_factory_(new MockVaapiPictureFactory()),
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ mock_vaapi_wrapper_(new MockVaapiWrapper(VaapiWrapper::kDecode)),
+ mock_vpp_vaapi_wrapper_(new MockVaapiWrapper(VaapiWrapper::kDecode)),
+ weak_ptr_factory_(this) {
+@@ -421,14 +437,16 @@ TEST_P(VaapiVideoDecodeAcceleratorTest,
+ mock_vaapi_picture_factory_->GetVaapiImplementation(
+ gl::kGLImplementationEGLGLES2));
+
+-#if BUILDFLAG(USE_VAAPI_X11)
+- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationAngle,
+- mock_vaapi_picture_factory_->GetVaapiImplementation(
+- gl::kGLImplementationEGLANGLE));
+- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
+- mock_vaapi_picture_factory_->GetVaapiImplementation(
+- gl::kGLImplementationDesktopGL));
+-#elif BUILDFLAG(IS_OZONE)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ if (kMayUseVaapiOverX11) {
++ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationAngle,
++ mock_vaapi_picture_factory_->GetVaapiImplementation(
++ gl::kGLImplementationEGLANGLE));
++ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationX11,
++ mock_vaapi_picture_factory_->GetVaapiImplementation(
++ gl::kGLImplementationDesktopGL));
++ }
++#else
+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationDrm,
+ mock_vaapi_picture_factory_->GetVaapiImplementation(
+ gl::kGLImplementationEGLANGLE));
+diff -up chromium-109.0.5414.74/media/gpu/vaapi/vaapi_picture_factory.cc.orig chromium-109.0.5414.74/media/gpu/vaapi/vaapi_picture_factory.cc
+--- chromium-109.0.5414.74/media/gpu/vaapi/vaapi_picture_factory.cc.orig 2023-01-04 20:20:18.000000000 +0100
++++ chromium-109.0.5414.74/media/gpu/vaapi/vaapi_picture_factory.cc 2023-01-11 14:45:36.405506479 +0100
+@@ -13,10 +13,10 @@
+ #if BUILDFLAG(IS_OZONE)
+ #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
+ #endif // BUILDFLAG(IS_OZONE)
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ #include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
+ #include "media/gpu/vaapi/vaapi_picture_tfp.h"
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ #if defined(USE_EGL)
+ #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
+ #endif
+@@ -42,22 +42,32 @@
+
+ } // namespace
+
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++VaapiPictureFactory::VaapiPictureFactory(
++ absl::optional<bool> may_use_vaapi_over_x11)
++ : may_use_vaapi_over_x11_(may_use_vaapi_over_x11) {
++#else
+ VaapiPictureFactory::VaapiPictureFactory() {
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ vaapi_impl_pairs_.insert(
+ std::make_pair(gl::kGLImplementationEGLGLES2,
+ VaapiPictureFactory::kVaapiImplementationDrm));
+-#if BUILDFLAG(USE_VAAPI_X11)
+- vaapi_impl_pairs_.insert(
+- std::make_pair(gl::kGLImplementationEGLANGLE,
+- VaapiPictureFactory::kVaapiImplementationAngle));
+- vaapi_impl_pairs_.insert(
+- std::make_pair(gl::kGLImplementationDesktopGL,
+- VaapiPictureFactory::kVaapiImplementationX11));
+-#elif BUILDFLAG(IS_OZONE)
++
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ CHECK(may_use_vaapi_over_x11_.has_value());
++ if (may_use_vaapi_over_x11_.value()) {
++ vaapi_impl_pairs_.insert(
++ std::make_pair(gl::kGLImplementationEGLANGLE,
++ VaapiPictureFactory::kVaapiImplementationAngle));
++ vaapi_impl_pairs_.insert(
++ std::make_pair(gl::kGLImplementationDesktopGL,
++ VaapiPictureFactory::kVaapiImplementationX11));
++ }
++#else
+ vaapi_impl_pairs_.insert(
+ std::make_pair(gl::kGLImplementationEGLANGLE,
+ VaapiPictureFactory::kVaapiImplementationDrm));
+-#endif
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ DeterminePictureCreationAndDownloadingMechanism();
+ }
+@@ -98,19 +108,19 @@
+ }
+
+ uint32_t VaapiPictureFactory::GetGLTextureTarget() {
+-#if BUILDFLAG(USE_VAAPI_X11)
+- return GL_TEXTURE_2D;
+-#else
++#if BUILDFLAG(IS_CHROMEOS)
+ return GL_TEXTURE_EXTERNAL_OES;
+-#endif
++#else
++ return GL_TEXTURE_2D;
++#endif // BUILDFLAG(IS_CHROMEOS)
+ }
+
+ gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
+-#if BUILDFLAG(USE_VAAPI_X11)
+- return gfx::BufferFormat::RGBX_8888;
+-#else
++#if BUILDFLAG(IS_CHROMEOS)
+ return gfx::BufferFormat::YUV_420_BIPLANAR;
+-#endif
++#else
++ return gfx::BufferFormat::RGBX_8888;
++#endif // BUILDFLAG(IS_CHROMEOS)
+ }
+
+ void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
+@@ -118,25 +128,30 @@
+ #if BUILDFLAG(IS_OZONE)
+ // We can be called without GL initialized, which is valid if we use Ozone.
+ case kVaapiImplementationNone:
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ DCHECK(may_use_vaapi_over_x11_.value_or(false));
++#endif
+ create_picture_cb_ = base::BindRepeating(
+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
+ needs_vpp_for_downloading_ = true;
+ break;
+ #endif // BUILDFLAG(IS_OZONE)
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ case kVaapiImplementationX11:
++ DCHECK(may_use_vaapi_over_x11_.value_or(false));
+ create_picture_cb_ =
+ base::BindRepeating(&CreateVaapiPictureNativeImpl<VaapiTFPPicture>);
+ // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
+ needs_vpp_for_downloading_ = false;
+ break;
+ case kVaapiImplementationAngle:
++ DCHECK(may_use_vaapi_over_x11_.value_or(false));
+ create_picture_cb_ = base::BindRepeating(
+ &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapAngle>);
+ // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP.
+ needs_vpp_for_downloading_ = false;
+ break;
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ case kVaapiImplementationDrm:
+ #if BUILDFLAG(IS_OZONE)
+ create_picture_cb_ = base::BindRepeating(
+diff -up chromium-109.0.5414.74/media/gpu/vaapi/vaapi_wrapper.cc.orig chromium-109.0.5414.74/media/gpu/vaapi/vaapi_wrapper.cc
+--- chromium-109.0.5414.74/media/gpu/vaapi/vaapi_wrapper.cc.orig 2023-01-04 20:20:18.000000000 +0100
++++ chromium-109.0.5414.74/media/gpu/vaapi/vaapi_wrapper.cc 2023-01-11 15:08:02.721768243 +0100
+@@ -62,7 +62,7 @@
+ #include "ui/gl/gl_bindings.h"
+ #include "ui/gl/gl_implementation.h"
+
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ typedef XID Drawable;
+
+ extern "C" {
+@@ -70,7 +70,7 @@
+ }
+
+ #include "ui/gfx/x/connection.h" // nogncheck
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ #if BUILDFLAG(IS_OZONE)
+ #include "ui/ozone/public/ozone_platform.h"
+@@ -84,14 +84,14 @@
+
+ using media_gpu_vaapi::kModuleVa;
+ using media_gpu_vaapi::kModuleVa_drm;
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ using media_gpu_vaapi::kModuleVa_x11;
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ using media_gpu_vaapi::InitializeStubs;
+ using media_gpu_vaapi::IsVaInitialized;
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ using media_gpu_vaapi::IsVa_x11Initialized;
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ using media_gpu_vaapi::IsVa_drmInitialized;
+ using media_gpu_vaapi::StubPathMap;
+
+@@ -668,6 +668,12 @@
+
+ void SetDrmFd(base::PlatformFile fd) { drm_fd_.reset(HANDLE_EINTR(dup(fd))); }
+
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ absl::optional<bool> MayUseVaapiOverX11() const {
++ return may_use_vaapi_over_x11_;
++ }
++#endif
++
+ private:
+ friend class base::NoDestructor<VADisplayState>;
+
+@@ -690,6 +696,13 @@
+ // Drm fd used to obtain access to the driver interface by VA.
+ base::ScopedFD drm_fd_;
+
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ // Whether we'll be possibly using VA-API over Ozone/X11. This should only be
++ // set (if at all) during the pre-sandbox initialization. If absl::nullopt,
++ // all calls to Initialize() will return false immediately.
++ absl::optional<bool> may_use_vaapi_over_x11_;
++#endif
++
+ // The VADisplay handle. Valid between Initialize() and Deinitialize().
+ VADisplay va_display_;
+
+@@ -708,6 +721,15 @@
+
+ // static
+ void VADisplayState::PreSandboxInitialization() {
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ if (ui::OzonePlatform::IsInitialized()) {
++ VADisplayState::Get()->may_use_vaapi_over_x11_ =
++ ui::OzonePlatform::GetInstance()
++ ->GetPlatformProperties()
++ .supports_vaapi_x11;
++ }
++#endif
++
+ constexpr char kRenderNodeFilePattern[] = "/dev/dri/renderD%d";
+ // This loop ends on either the first card that does not exist or the first
+ // render node that is not vgem.
+@@ -740,20 +762,18 @@
+ bool VADisplayState::Initialize() {
+ base::AutoLock auto_lock(va_lock_);
+
+-#if BUILDFLAG(IS_OZONE) && BUILDFLAG(IS_LINUX)
+- // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on
+- // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi
+- // for more details. This will also require revisiting everything that's
+- // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the
+- // user chooses the Wayland backend for Ozone at runtime, then many things (if
+- // not all) that we do for X11 won't apply.
+- if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ if (!may_use_vaapi_over_x11_.has_value())
+ return false;
+ #endif
+
+ bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized();
+-#if BUILDFLAG(USE_VAAPI_X11)
+- libraries_initialized = libraries_initialized && IsVa_x11Initialized();
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ // Initialize VA-API X11 display backend for Linux Ozone/X11.
++ // See comment in OzonePlatform::PlatformProperties::supports_vaapi_x11 for
++ // more details.
++ if (may_use_vaapi_over_x11_.value())
++ libraries_initialized = libraries_initialized && IsVa_x11Initialized();
+ #endif
+ if (!libraries_initialized)
+ return false;
+@@ -768,7 +788,7 @@
+ return success;
+ }
+
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ absl::optional<VADisplay> GetVADisplayStateX11(const base::ScopedFD& drm_fd) {
+ switch (gl::GetGLImplementation()) {
+@@ -796,13 +816,19 @@
+ }
+ }
+
+-#else
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ absl::optional<VADisplay> GetVADisplayState(const base::ScopedFD& drm_fd) {
+ switch (gl::GetGLImplementation()) {
+ case gl::kGLImplementationEGLGLES2:
++#if BUILDFLAG(IS_CHROMEOS)
++ // GetVADisplayState() should not get called on Linux with Ozone/X11
++ // (GetVADisplayStateX11() should get called instead), and we haven't tried
++ // VA-API decoding on Linux with Ozone/Wayland and anything other than
++ // native EGL/GLES2.
+ case gl::kGLImplementationEGLANGLE:
+ case gl::kGLImplementationNone:
++#endif
+ return vaGetDisplayDRM(drm_fd.get());
+ default:
+ LOG(WARNING) << "VAAPI video acceleration not available for "
+@@ -812,18 +838,23 @@
+ }
+ }
+
+-#endif // BUILDFLAG(USE_VAAPI_X11)
+-
+ bool VADisplayState::InitializeVaDisplay_Locked() {
+- absl::optional<VADisplay> display =
+-#if BUILDFLAG(USE_VAAPI_X11)
+- GetVADisplayStateX11(drm_fd_);
+-#else
+- GetVADisplayState(drm_fd_);
+-#endif
++ absl::optional<VADisplay> display;
+
+- if (!display)
+- return false;
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++ DCHECK(may_use_vaapi_over_x11_.has_value());
++ if (may_use_vaapi_over_x11_.value()) {
++ display = GetVADisplayStateX11(drm_fd_);
++ if (!display)
++ return false;
++ }
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++
++ if (!display) {
++ display = GetVADisplayState(drm_fd_);
++ if (!display)
++ return false;
++ }
+
+ va_display_ = *display;
+ if (!vaDisplayIsValid(va_display_)) {
+@@ -1656,6 +1687,13 @@
+ enforce_sequence_affinity);
+ }
+
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
++// static
++absl::optional<bool> VaapiWrapper::MayUseVaapiOverX11() {
++ return VADisplayState::Get()->MayUseVaapiOverX11();
++}
++#endif
++
+ // static
+ std::vector<SVCScalabilityMode> VaapiWrapper::GetSupportedScalabilityModes(
+ VideoCodecProfile media_profile,
+@@ -2665,12 +2703,13 @@
+ return Execute_Locked(va_surface_id, va_buffer_ids);
+ }
+
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id,
+ x11::Pixmap x_pixmap,
+ gfx::Size dest_size) {
+ CHECK(!enforce_sequence_affinity_ ||
+ sequence_checker_.CalledOnValidSequence());
++ CHECK(MayUseVaapiOverX11().value_or(false));
+ base::AutoLockMaybe auto_lock(va_lock_.get());
+
+ VAStatus va_res = vaSyncSurface(va_display_, va_surface_id);
+@@ -2684,7 +2723,7 @@
+ VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false);
+ return true;
+ }
+-#endif // BUILDFLAG(USE_VAAPI_X11)
++#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+
+ std::unique_ptr<ScopedVAImage> VaapiWrapper::CreateVaImage(
+ VASurfaceID va_surface_id,
+@@ -3086,7 +3125,7 @@
+
+ paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix);
+ paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix);
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix);
+ #endif
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+diff -up chromium-109.0.5414.74/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc.orig chromium-109.0.5414.74/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
+--- chromium-109.0.5414.74/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc.orig 2023-01-11 20:45:17.347940426 +0100
++++ chromium-109.0.5414.74/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc 2023-01-11 20:45:58.314670752 +0100
+@@ -109,7 +109,7 @@
+ ui::OzonePlatform* platform = ui::OzonePlatform::GetInstance();
+ ui::SurfaceFactoryOzone* factory = platform->GetSurfaceFactoryOzone();
+ gfx::BufferUsage buffer_usage = gfx::BufferUsage::SCANOUT_VDA_WRITE;
+-#if BUILDFLAG(USE_VAAPI_X11)
++#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
+ // The 'VaapiVideoDecodeAccelerator' requires the VPP to download the decoded
+ // frame from the internal surface to the allocated native pixmap.
+ // 'SCANOUT_VDA_WRITE' is used for 'YUV_420_BIPLANAR' on ChromeOS; For Linux,
diff --git a/chromium-109-system-minizip-header-fix.patch b/chromium-109-system-minizip-header-fix.patch
new file mode 100644
index 0000000..f17c7fa
--- /dev/null
+++ b/chromium-109-system-minizip-header-fix.patch
@@ -0,0 +1,64 @@
+diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc
+--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc.system-minizip 2023-01-04 20:20:37.000000000 +0100
++++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc 2023-01-08 15:48:08.654793086 +0100
+@@ -27,8 +27,8 @@ limitations under the License.
+ #include "tensorflow_lite_support/cc/port/status_macros.h"
+ #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h"
+ #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
+-#include "third_party/zlib/contrib/minizip/ioapi.h"
+-#include "third_party/zlib/contrib/minizip/unzip.h"
++#include <minizip/ioapi.h>
++#include <minizip/unzip.h>
+
+ namespace tflite {
+ namespace metadata {
+diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc
+--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc.system-minizip 2023-01-04 20:20:37.000000000 +0100
++++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc 2023-01-08 15:48:08.655793097 +0100
+@@ -26,8 +26,8 @@ limitations under the License.
+ #include "tensorflow_lite_support/cc/port/statusor.h"
+ #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h"
+ #include "tensorflow_lite_support/metadata/metadata_schema_generated.h"
+-#include "third_party/zlib/contrib/minizip/ioapi.h"
+-#include "third_party/zlib/contrib/minizip/unzip.h"
++#include <minizip/ioapi.h>
++#include <minizip/zip.h>
+
+ namespace tflite {
+ namespace metadata {
+diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc
+--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc.system-minizip 2023-01-08 15:48:08.655793097 +0100
++++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc 2023-01-08 15:53:17.498329640 +0100
+@@ -19,7 +19,7 @@ limitations under the License.
+ #include <cstdio>
+
+ #include "absl/strings/string_view.h" // from @com_google_absl
+-#include "third_party/zlib/contrib/minizip/ioapi.h"
++#include <minizip/ioapi.h>
+
+ namespace tflite {
+ namespace metadata {
+diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc
+--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc.system-minizip 2023-01-04 20:20:37.000000000 +0100
++++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc 2023-01-08 15:48:08.655793097 +0100
+@@ -19,7 +19,7 @@ limitations under the License.
+ #include <cstdio>
+
+ #include "absl/strings/string_view.h" // from @com_google_absl
+-#include "third_party/zlib/contrib/minizip/ioapi.h"
++#include <minizip/ioapi.h>
+
+ namespace tflite {
+ namespace metadata {
+diff -up chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h
+--- chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h.system-minizip 2023-01-04 20:20:37.000000000 +0100
++++ chromium-109.0.5414.74/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h 2023-01-08 15:48:08.655793097 +0100
+@@ -19,7 +19,7 @@ limitations under the License.
+ #include <cstdlib>
+
+ #include "absl/strings/string_view.h" // from @com_google_absl
+-#include "third_party/zlib/contrib/minizip/ioapi.h"
++#include <minizip/ioapi.h>
+
+ namespace tflite {
+ namespace metadata {
diff --git a/chromium-84.0.4147.125-i686-fix_textrels.patch b/chromium-84.0.4147.125-i686-fix_textrels.patch
deleted file mode 100644
index e0fd5ec..0000000
--- a/chromium-84.0.4147.125-i686-fix_textrels.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up chromium-84.0.4147.125/third_party/ffmpeg/BUILD.gn.i686-textrels chromium-84.0.4147.125/third_party/ffmpeg/BUILD.gn
---- chromium-84.0.4147.125/third_party/ffmpeg/BUILD.gn.i686-textrels 2020-08-17 09:33:53.153653741 -0400
-+++ chromium-84.0.4147.125/third_party/ffmpeg/BUILD.gn 2020-08-17 09:34:25.099564669 -0400
-@@ -68,7 +68,7 @@ if (has_nasm_deps) {
- }
-
- # See comments on fix_textrels config.
-- if (use_lld && current_cpu == "x86" && !is_win) {
-+ if (current_cpu == "x86" && !is_win) {
- all_dependent_configs = [ ":fix_textrels" ]
- }
- }
diff --git a/chromium-98.0.4758.80-remoting-cstring.patch b/chromium-98.0.4758.80-remoting-cstring.patch
deleted file mode 100644
index 5c96921..0000000
--- a/chromium-98.0.4758.80-remoting-cstring.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -up chromium-98.0.4758.80/remoting/base/util.cc.remoting-cstring chromium-98.0.4758.80/remoting/base/util.cc
---- chromium-98.0.4758.80/remoting/base/util.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000
-+++ chromium-98.0.4758.80/remoting/base/util.cc 2022-02-02 15:55:01.352340901 +0000
-@@ -4,6 +4,7 @@
-
- #include "remoting/base/util.h"
-
-+#include <cstring>
- #include <math.h>
-
- #include "base/logging.h"
-diff -up chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc.remoting-cstring chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc
---- chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000
-+++ chromium-98.0.4758.80/remoting/client/display/gl_helpers.cc 2022-02-02 15:55:01.353340854 +0000
-@@ -5,6 +5,7 @@
- #include "remoting/client/display/gl_helpers.h"
-
- #include "base/logging.h"
-+#include <cstring>
-
- namespace remoting {
-
-diff -up chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc
---- chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000
-+++ chromium-98.0.4758.80/remoting/host/fake_mouse_cursor_monitor.cc 2022-02-02 15:55:01.353340854 +0000
-@@ -4,6 +4,7 @@
-
- #include "remoting/host/fake_mouse_cursor_monitor.h"
-
-+#include <cstring>
- #include <memory>
-
- #include "base/check.h"
-diff -up chromium-98.0.4758.80/remoting/host/host_config_unittest.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/host_config_unittest.cc
---- chromium-98.0.4758.80/remoting/host/host_config_unittest.cc.remoting-cstring 2022-02-02 15:55:01.353340854 +0000
-+++ chromium-98.0.4758.80/remoting/host/host_config_unittest.cc 2022-02-02 15:57:20.295794172 +0000
-@@ -10,6 +10,7 @@
- #include "base/values.h"
- #include "testing/gtest/include/gtest/gtest.h"
- #include "third_party/abseil-cpp/absl/types/optional.h"
-+#include <cstring>
-
- namespace remoting {
-
-diff -up chromium-98.0.4758.80/remoting/host/host_secret.cc.remoting-cstring chromium-98.0.4758.80/remoting/host/host_secret.cc
---- chromium-98.0.4758.80/remoting/host/host_secret.cc.remoting-cstring 2022-02-01 00:41:54.000000000 +0000
-+++ chromium-98.0.4758.80/remoting/host/host_secret.cc 2022-02-02 15:55:01.353340854 +0000
-@@ -6,7 +6,7 @@
-
- #include <stdint.h>
-
--#include <string>
-+#include <cstring>
-
- #include "base/rand_util.h"
- #include "base/strings/string_number_conversions.h"
diff --git a/chromium.spec b/chromium.spec
index 54fa790..02b5f3d 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -7,13 +7,13 @@
%endif
%global numjobs 10
-%ifarch aarch64 i686
+%ifarch aarch64
%global numjobs 8
%endif
# This flag is so I can build things very fast on a giant system.
# Enabling this in koji causes aarch64 builds to timeout indefinitely.
-%global use_all_cpus 0
+%global use_all_cpus 1
%if %{use_all_cpus}
%global numjobs %{_smp_build_ncpus}
@@ -30,7 +30,7 @@
ninja -j %{numjobs} -C '%1' '%2'
# enable|disable headless client build
-%global build_headless 1
+%global build_headless 0
# enable|disable chrome-remote-desktop build
%global build_remoting 0
@@ -111,14 +111,9 @@
# enable system brotli
%global bundlebrotli 0
-%if 0
# Chromium's fork of ICU is now something we can't unbundle.
# This is left here to ease the change if that ever switches.
-BuildRequires: libicu-devel >= 5.4
-%global bundleicu 0
-%else
%global bundleicu 1
-%endif
%global bundlere2 1
@@ -215,8 +210,8 @@ BuildRequires: libicu-devel >= 5.4
%endif
Name: chromium%{chromium_channel}
-Version: 108.0.5359.124
-Release: 5%{?dist}
+Version: 109.0.5414.74
+Release: 1%{?dist}
Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
Url: http://www.chromium.org/Home
License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2)
@@ -256,38 +251,32 @@ Patch11: chromium-93.0.4577.63-py3-bootstrap.patch
Patch12: chromium-101.0.4951.41-fedora-user-agent.patch
# Needs to be submitted..
-Patch51: chromium-96.0.4664.45-gcc-remoting-constexpr.patch
+Patch51: chromium-96.0.4664.45-gcc-remoting-constexpr.patch
# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-unbundle-zlib.patch
-Patch52: chromium-81.0.4044.92-unbundle-zlib.patch
+Patch52: chromium-81.0.4044.92-unbundle-zlib.patch
# ../../third_party/perfetto/include/perfetto/base/task_runner.h:48:55: error: 'uint32_t' has not been declared
-Patch56: chromium-96.0.4664.45-missing-cstdint-header.patch
+Patch56: chromium-96.0.4664.45-missing-cstdint-header.patch
# Missing <cstring> (thanks c++17)
-Patch57: chromium-96.0.4664.45-missing-cstring.patch
+Patch57: chromium-96.0.4664.45-missing-cstring.patch
# https://github.com/stha09/chromium-patches/blob/master/chromium-103-VirtualCursor-std-layout.patch
-Patch59: chromium-103-VirtualCursor-std-layout.patch
+Patch59: chromium-103-VirtualCursor-std-layout.patch
# Fix headers to look for system paths when we are using system minizip
-Patch61: chromium-107.0.5304.101-system-minizip-header-fix.patch
+Patch61: chromium-109-system-minizip-header-fix.patch
# Update bundled copy of wayland-client-core.h
-Patch62: chromium-105.0.5195.52-update-wayland-client-core.patch
+Patch62: chromium-105.0.5195.52-update-wayland-client-core.patch
# Fix issue where closure_compiler thinks java is only allowed in android builds
# https://bugs.chromium.org/p/chromium/issues/detail?id=1192875
-Patch65: chromium-91.0.4472.77-java-only-allowed-in-android-builds.patch
-
-# Fix missing cstring in remoting code
-Patch67: chromium-98.0.4758.80-remoting-cstring.patch
-
-# Apply fix_textrels hack for i686 (even without lld)
-Patch68: chromium-84.0.4147.125-i686-fix_textrels.patch
+Patch65: chromium-91.0.4472.77-java-only-allowed-in-android-builds.patch
# Update rjsmin to 1.2.0
-Patch69: chromium-103.0.5060.53-update-rjsmin-to-1.2.0.patch
+Patch69: chromium-103.0.5060.53-update-rjsmin-to-1.2.0.patch
# Update six to 1.16.0
Patch70: chromium-105.0.5195.52-python-six-1.16.0.patch
@@ -318,7 +307,7 @@ Patch89: chromium-108-system-brotli.patch
# disable GlobalMediaControlsCastStartStop to avoid crash
# when using the address bar media player button
-Patch90: chromium-108-disable-GlobalMediaControlsCastStartStop.patch
+Patch90: chromium-109-disable-GlobalMediaControlsCastStartStop.patch
# patch for using system opus
Patch91: chromium-108-system-opus.patch
@@ -361,9 +350,6 @@ Patch107: chromium-99.0.4844.51-el7-extra-operator==.patch
# AARCH64 neon symbols need to be prefixed too to prevent multiple definition issue at linktime
Patch110: chromium-90.0.4430.93-epel8-aarch64-libpng16-symbol-prefixes.patch
-# memset was not declared in this scope
-Patch113: chromium-107.0.5304.110-cstring-memset.patch
-
# system ffmpeg
Patch114: chromium-107-ffmpeg-duration.patch
Patch115: chromium-107-proprietary-codecs.patch
@@ -374,7 +360,7 @@ Patch117: chromium-108-ffmpeg-revert-new-channel-layout-api.patch
# clang =< 14 and C++20, linker errors std::u16string
# build failure on rhel and fedora 36
-Patch120: chromium-108-clang14-c++20-link-error.patch
+Patch120: chromium-109-clang14-c++20-link-error.patch
# enable Qt
Patch121: chromium-108-enable-allowqt.patch
@@ -383,8 +369,7 @@ Patch121: chromium-108-enable-allowqt.patch
# Upstream turned VAAPI on in Linux in 86
Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch
-Patch206: chromium-108-ozone-wayland-vaapi-support.patch
-Patch207: chromium-108-vaapi-guard-vaapivideodecoder.patch
+Patch206: chromium-109-ozone-wayland-vaapi-support.patch
# Apply these patches to work around EPEL8 issues
Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch
@@ -624,6 +609,10 @@ BuildRequires: python3-devel
BuildRequires: python3-zipp
BuildRequires: python3-simplejson
+%if 0%{?rhel} <= 8
+BuildRequires: python3-dataclasses
+%endif
+
%if ! 0%{?bundlepylibs}
%if 0%{?fedora} || 0%{?rhel} >= 8
BuildRequires: python3-beautifulsoup4
@@ -647,10 +636,6 @@ BuildRequires: re2-devel >= 20160401
BuildRequires: brotli-devel
%endif
-%if ! %{bundleopus}
-BuildRequires: opus-devel
-%endif
-
BuildRequires: speech-dispatcher-devel
BuildRequires: yasm
BuildRequires: zlib-devel
@@ -975,8 +960,6 @@ udev.
%endif
%patch65 -p1 -b .java-only-allowed
-%patch67 -p1 -b .remoting-cstring
-%patch68 -p1 -b .i686-textrels
%patch69 -p1 -b .update-rjsmin-to-1.2.0
%patch70 -p1 -b .update-six-to-1.16.0
%patch80 -p1 -b .EnumTable-crash
@@ -1009,8 +992,6 @@ udev.
%patch12 -p1 -b .fedora-user-agent
%endif
-%patch113 -p1 -b .memset
-
%if ! 0%{?bundleffmpegfree}
%patch114 -p1 -b .system-ffmppeg
%patch115 -p1 -b .prop-codecs
@@ -1044,7 +1025,6 @@ udev.
%patch202 -p1 -b .accel-mjpeg
%patch205 -p1 -b .vaapi-intel-fix
%patch206 -p1 -b .wayland-vaapi
-%patch207 -p1 -b .guard-vaapiVideoDecoder
%endif
%if 0%{?use_qt}
@@ -1272,7 +1252,6 @@ CHROMIUM_CORE_GN_DEFINES+=' use_custom_libcxx=false'
CHROMIUM_CORE_GN_DEFINES+=' use_kerberos=true'
CHROMIUM_CORE_GN_DEFINES+=' target_os="linux"'
CHROMIUM_CORE_GN_DEFINES+=' current_os="linux"'
-CHROMIUM_CORE_GN_DEFINES+=' use_allocator="none"'
CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false'
CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false'
CHROMIUM_CORE_GN_DEFINES+=' enable_iterator_debugging=false'
@@ -1776,6 +1755,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
%{chromium_path}/chromedriver
%changelog
+* Wed Jan 11 2023 Than Ngo <than@redhat.com> - 109.0.5414.74-1
+- update to 109.0.5414.74
+
* Tue Jan 10 2023 Than Ngo <than@redhat.com> - 108.0.5359.124-5
- enable qt backend for el >= 9 and fedora >= 35
- drop i686
diff --git a/clean_ffmpeg.sh b/clean_ffmpeg.sh
index 0035381..21f43f1 100755
--- a/clean_ffmpeg.sh
+++ b/clean_ffmpeg.sh
@@ -122,7 +122,6 @@ header_files=" libavcodec/x86/inline_asm.h \
libavcodec/mpegutils.h \
libavcodec/mpegvideo.h \
libavcodec/mpegvideodata.h \
- libavcodec/mpegvideodsp.h \
libavcodec/mpegvideoencdsp.h \
libavcodec/options_table.h \
libavcodec/opusdsp.h \
diff --git a/sources b/sources
index adb7c77..82a7d2d 100644
--- a/sources
+++ b/sources
@@ -19,4 +19,4 @@ SHA512 (NotoSansSymbols2-Regular.ttf) = 2644b42c3fdccfe12395f9b61553aced169a0f1d
SHA512 (NotoSansTibetan-Regular.ttf) = fb5a48fcaea80eebe7d692f6fcf00d59d47658a358d0ec8e046fc559873f88bd595b2da474d2826abd9e9305f3741c69058d867b1e6048f37fe7d71b5d3af36a
SHA512 (node-v16.17.0-linux-x64.tar.xz) = aedfeeb71420a7fbcb07fbc4c5d2ba74ffe4f88c15998809346a84148132ec866dbae4e848531a2a77ca41413f442e1046f981d4f188bdf667faf88069aa28cd
SHA512 (node-v16.17.0-linux-arm64.tar.xz) = ae4aabc2389779c9e1b4a15622cae3ba50e0c313ca3d7a1dc7b2344df06ade1f303d6a75b941d37e2a0ef368cf047c862a822a893684494f55446afd6ab0610e
-SHA512 (chromium-108.0.5359.124-clean.tar.xz) = a47fb046b5be2f26f65f467a20fe300a86542bebf3d7e8d8a6064458bf4cfcc0243a1f5212755d1d4121b79f79bc2d3b61d7918431daef26538f0755608e444b
+SHA512 (chromium-109.0.5414.74-clean.tar.xz) = 620836f27aeffa828f3ff434aa08025979bd98699288a14783a68e7f905d117ec7d2feec82c34c05dee1659c1e2a4c7bec1e279a34ff25b66246083364a5d12e
reply other threads:[~2026-08-07 16:04 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178611866541.1.3196197667119187560.rpms-chromium-6c69a0f2ece7@fedoraproject.org \
--to=than@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox