public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: update to 112.0.5615.121
@ 2026-08-07 16:05 Than Ngo
  0 siblings, 0 replies; only message in thread
From: Than Ngo @ 2026-08-07 16:05 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/chromium
Branch : epel9-next
Commit : 74038a0c7fd9c0cfe7c474d418888a5cb54e2a06
Author : Than Ngo <than@redhat.com>
Date   : 2023-04-15T09:45:22+02:00
Stats  : +350/-593 in 5 file(s)
URL    : https://src.fedoraproject.org/rpms/chromium/c/74038a0c7fd9c0cfe7c474d418888a5cb54e2a06?branch=epel9-next

Log:
update to 112.0.5615.121

---
diff --git a/chromium-110-ozone-wayland-vaapi-support.patch b/chromium-110-ozone-wayland-vaapi-support.patch
deleted file mode 100644
index fdcff26..0000000
--- a/chromium-110-ozone-wayland-vaapi-support.patch
+++ /dev/null
@@ -1,584 +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-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_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 -up chromium-110.0.5481.61/media/gpu/vaapi/vaapi_picture_factory.cc.me1 chromium-110.0.5481.61/media/gpu/vaapi/vaapi_picture_factory.cc
---- chromium-110.0.5481.61/media/gpu/vaapi/vaapi_picture_factory.cc.me1	2023-02-01 16:42:01.000000000 +0100
-+++ chromium-110.0.5481.61/media/gpu/vaapi/vaapi_picture_factory.cc	2023-02-04 16:45:27.769211581 +0100
-@@ -13,9 +13,9 @@
- #if BUILDFLAG(IS_OZONE)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
- #endif  // BUILDFLAG(IS_OZONE)
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h"
--#endif  // BUILDFLAG(USE_VAAPI_X11)
-+#endif  // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- #if defined(USE_EGL)
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h"
- #endif
-@@ -41,19 +41,28 @@ std::unique_ptr<VaapiPicture> CreateVaap
- 
- }  // namespace
- 
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+VaapiPictureFactory::VaapiPictureFactory(
-+    absl::optional<bool> may_use_vaapi_over_x11)
-+    : may_use_vaapi_over_x11_(may_use_vaapi_over_x11) {
-+#else
- VaapiPictureFactory::VaapiPictureFactory() {
-+#endif
-   vaapi_impl_pairs_.insert(
-       std::make_pair(gl::kGLImplementationEGLGLES2,
-                      VaapiPictureFactory::kVaapiImplementationDrm));
--#if BUILDFLAG(USE_VAAPI_X11)
--  vaapi_impl_pairs_.insert(
--      std::make_pair(gl::kGLImplementationEGLANGLE,
--                     VaapiPictureFactory::kVaapiImplementationAngle));
--#elif BUILDFLAG(IS_OZONE)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+  CHECK(may_use_vaapi_over_x11_.has_value());
-+  if (may_use_vaapi_over_x11_.value()) {
-+    vaapi_impl_pairs_.insert(
-+        std::make_pair(gl::kGLImplementationEGLANGLE,
-+                       VaapiPictureFactory::kVaapiImplementationAngle));
-+  }
-+#else
-   vaapi_impl_pairs_.insert(
-       std::make_pair(gl::kGLImplementationEGLANGLE,
-                      VaapiPictureFactory::kVaapiImplementationDrm));
--#endif
-+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
- 
-   DeterminePictureCreationAndDownloadingMechanism();
- }
-@@ -93,19 +102,19 @@ VaapiPictureFactory::GetVaapiImplementat
- }
- 
- uint32_t VaapiPictureFactory::GetGLTextureTarget() {
--#if BUILDFLAG(USE_VAAPI_X11)
--  return GL_TEXTURE_2D;
--#else
-+#if BUILDFLAG(IS_CHROMEOS)
-   return GL_TEXTURE_EXTERNAL_OES;
--#endif
-+#else
-+  return GL_TEXTURE_2D;
-+#endif  // BUILDFLAG(IS_CHROMEOS)
- }
- 
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if BUILDFLAG(USE_VAAPI_X11)
--  return gfx::BufferFormat::RGBX_8888;
--#else
-+#if BUILDFLAG(IS_CHROMEOS)
-   return gfx::BufferFormat::YUV_420_BIPLANAR;
--#endif
-+#else
-+  return gfx::BufferFormat::RGBX_8888;
-+#endif  // BUILDFLAG(IS_CHROMEOS)
- }
- 
- void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() {
-@@ -113,19 +122,23 @@ void VaapiPictureFactory::DeterminePictu
- #if BUILDFLAG(IS_OZONE)
-     // We can be called without GL initialized, which is valid if we use Ozone.
-     case kVaapiImplementationNone:
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-+      DCHECK(may_use_vaapi_over_x11_.value_or(false));
-+#endif
-       create_picture_cb_ = base::BindRepeating(
-           &CreateVaapiPictureNativeImpl<VaapiPictureNativePixmapOzone>);
-       needs_vpp_for_downloading_ = true;
-       break;
- #endif  // BUILDFLAG(IS_OZONE)
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11)
-     case kVaapiImplementationAngle:
-+      CHECK(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 --git a/chromium-112-enable-vaapi-ozone-wayland.patch b/chromium-112-enable-vaapi-ozone-wayland.patch
new file mode 100644
index 0000000..1a75ce3
--- /dev/null
+++ b/chromium-112-enable-vaapi-ozone-wayland.patch
@@ -0,0 +1,21 @@
+author	Yaowei Zhou <yaowei.zhou@intel.com>	Thu Feb 02 06:18:34 2023
+committer	Yaowei Zhou <yaowei.zhou@intel.com>	Thu Feb 02 06:18:34 2023
+tree	62a79c7f155fc32140d3aa4c4a6b01b8d7eddfcc
+parent	98e427b87ff8447180a60f20ee3792dcbd649481 [diff]
+Enable VA-API flag on ozone wayland
+
+Bug: POC
+Change-Id: I09f696bfe3be82930161ce005152d1397b93f636
+diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
+index b3190c6b..4a2c3bb 100644
+--- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc
++++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
+@@ -309,6 +309,8 @@
+       properties->supports_global_screen_coordinates =
+           features::IsWaylandScreenCoordinatesEnabled();
+ 
++      properties->supports_vaapi_x11 = true;
++
+       initialised = true;
+     }
+ 

diff --git a/chromium-112-workaround-llvm14-c++20-epel8.patch b/chromium-112-workaround-llvm14-c++20-epel8.patch
new file mode 100644
index 0000000..d357538
--- /dev/null
+++ b/chromium-112-workaround-llvm14-c++20-epel8.patch
@@ -0,0 +1,312 @@
+diff -up chromium-112.0.5615.49/base/clang_work_around.h.me chromium-112.0.5615.49/base/clang_work_around.h
+--- chromium-112.0.5615.49/base/clang_work_around.h.me	2023-04-10 12:10:42.229455956 +0200
++++ chromium-112.0.5615.49/base/clang_work_around.h	2023-04-10 12:16:41.191744766 +0200
+@@ -0,0 +1,10 @@
++//
++// workaound for clang-14 in c++20 mode
++//
++
++#ifndef WORKAROUND_CLANG14_IN_C_PLUS_PLUS_20_H
++#define WORKAROUND_CLANG14_IN_C_PLUS_PLUS_20_H
++
++static std::u16string clang_string_workaround(const char16_t* a, const char16_t* b) { return {a, b}; }
++
++#endif  // WORKAROUND_CLANG14_IN_C_PLUS_PLUS_20_H
+diff -up chromium-112.0.5615.49/base/i18n/number_formatting.cc.me chromium-112.0.5615.49/base/i18n/number_formatting.cc
+--- chromium-112.0.5615.49/base/i18n/number_formatting.cc.me	2023-04-10 11:26:58.126271434 +0200
++++ chromium-112.0.5615.49/base/i18n/number_formatting.cc	2023-04-10 12:13:17.573209444 +0200
+@@ -18,6 +18,7 @@
+ #include "base/strings/utf_string_conversions.h"
+ #include "third_party/icu/source/common/unicode/ustring.h"
+ #include "third_party/icu/source/i18n/unicode/numfmt.h"
++#include "base/clang_work_around.h"
+ 
+ namespace base {
+ 
+diff -up chromium-112.0.5615.49/base/i18n/time_formatting.cc.me chromium-112.0.5615.49/base/i18n/time_formatting.cc
+--- chromium-112.0.5615.49/base/i18n/time_formatting.cc.me	2023-04-10 10:21:25.360079525 +0200
++++ chromium-112.0.5615.49/base/i18n/time_formatting.cc	2023-04-10 12:13:36.373485371 +0200
+@@ -22,6 +22,7 @@
+ #include "third_party/icu/source/i18n/unicode/fmtable.h"
+ #include "third_party/icu/source/i18n/unicode/measfmt.h"
+ #include "third_party/icu/source/i18n/unicode/smpdtfmt.h"
++#include "base/clang_work_around.h"
+ 
+ namespace base {
+ namespace {
+diff -up chromium-112.0.5615.49/base/strings/string_piece.cc.me chromium-112.0.5615.49/base/strings/string_piece.cc
+--- chromium-112.0.5615.49/base/strings/string_piece.cc.me	2023-04-10 10:20:40.230277808 +0200
++++ chromium-112.0.5615.49/base/strings/string_piece.cc	2023-04-10 12:14:00.262863956 +0200
+@@ -12,6 +12,7 @@
+ 
+ #include "base/strings/utf_string_conversions.h"
+ #include "build/build_config.h"
++#include "base/clang_work_around.h"
+ 
+ namespace base {
+ namespace {
+diff -up chromium-112.0.5615.49/components/url_formatter/spoof_checks/skeleton_generator.cc.me chromium-112.0.5615.49/components/url_formatter/spoof_checks/skeleton_generator.cc
+--- chromium-112.0.5615.49/components/url_formatter/spoof_checks/skeleton_generator.cc.me	2023-04-10 11:27:36.207948830 +0200
++++ chromium-112.0.5615.49/components/url_formatter/spoof_checks/skeleton_generator.cc	2023-04-10 12:17:36.338730147 +0200
+@@ -15,6 +15,7 @@
+ #include "third_party/icu/source/i18n/unicode/regex.h"
+ #include "third_party/icu/source/i18n/unicode/translit.h"
+ #include "third_party/icu/source/i18n/unicode/uspoof.h"
++#include "base/clang_work_around.h"
+ 
+ namespace {
+ 
+diff -up chromium-112.0.5615.49/content/child/browser_font_resource_trusted.cc.me chromium-112.0.5615.49/content/child/browser_font_resource_trusted.cc
+--- chromium-112.0.5615.49/content/child/browser_font_resource_trusted.cc.me	2023-04-10 11:28:09.962549271 +0200
++++ chromium-112.0.5615.49/content/child/browser_font_resource_trusted.cc	2023-04-10 12:12:14.242145968 +0200
+@@ -26,6 +26,7 @@
+ #include "third_party/skia/include/core/SkRect.h"
+ #include "ui/gfx/geometry/rect_f.h"
+ #include "ui/gfx/ubidi_deleter.h"
++#include "base/clang_work_around.h"
+ 
+ using ppapi::StringVar;
+ using ppapi::thunk::EnterResourceNoLock;
+diff -up chromium-112.0.5615.49/content/common/zygote/zygote_communication_linux.cc.me chromium-112.0.5615.49/content/common/zygote/zygote_communication_linux.cc
+--- chromium-112.0.5615.49/content/common/zygote/zygote_communication_linux.cc.me	2023-04-10 10:19:32.223069670 +0200
++++ chromium-112.0.5615.49/content/common/zygote/zygote_communication_linux.cc	2023-04-10 12:12:31.315438868 +0200
+@@ -22,6 +22,7 @@
+ #include "content/public/common/result_codes.h"
+ #include "sandbox/policy/switches.h"
+ #include "third_party/icu/source/i18n/unicode/timezone.h"
++#include "base/clang_work_around.h"
+ 
+ namespace content {
+ 
+diff -up chromium-112.0.5615.49/mojo/public/cpp/base/string16_mojom_traits.cc.me chromium-112.0.5615.49/mojo/public/cpp/base/string16_mojom_traits.cc
+--- chromium-112.0.5615.49/mojo/public/cpp/base/string16_mojom_traits.cc.me	2023-04-10 11:26:20.277598168 +0200
++++ chromium-112.0.5615.49/mojo/public/cpp/base/string16_mojom_traits.cc	2023-04-10 12:12:56.706874472 +0200
+@@ -6,6 +6,8 @@
+ 
+ #include "mojo/public/cpp/base/big_buffer_mojom_traits.h"
+ 
++#include "base/clang_work_around.h"
++
+ namespace mojo {
+ 
+ // static
+diff -up chromium-112.0.5615.49/third_party/blink/common/page_state/page_state_serialization.cc.me chromium-112.0.5615.49/third_party/blink/common/page_state/page_state_serialization.cc
+--- chromium-112.0.5615.49/third_party/blink/common/page_state/page_state_serialization.cc.me	2023-04-10 11:22:27.525457904 +0200
++++ chromium-112.0.5615.49/third_party/blink/common/page_state/page_state_serialization.cc	2023-04-10 12:14:21.584248718 +0200
+@@ -24,6 +24,7 @@
+ #include "ui/display/screen.h"
+ #include "ui/gfx/geometry/mojom/geometry_mojom_traits.h"
+ #include "url/mojom/url_gurl_mojom_traits.h"
++#include "base/clang_work_around.h"
+ 
+ namespace blink {
+ 
+diff -up chromium-112.0.5615.49/base/strings/escape.cc.me chromium-112.0.5615.49/base/strings/escape.cc
+--- chromium-112.0.5615.49/base/strings/escape.cc.me	2023-04-10 16:10:08.298906995 +0200
++++ chromium-112.0.5615.49/base/strings/escape.cc	2023-04-10 16:10:17.751072552 +0200
+@@ -14,6 +14,7 @@
+ #include "base/strings/utf_string_conversion_utils.h"
+ #include "base/strings/utf_string_conversions.h"
+ #include "base/third_party/icu/icu_utf.h"
++#include "base/clang_work_around.h"
+ 
+ namespace base {
+ 
+diff -up chromium-112.0.5615.49/base/strings/string_split.cc.me chromium-112.0.5615.49/base/strings/string_split.cc
+--- chromium-112.0.5615.49/base/strings/string_split.cc.me	2023-04-10 16:17:49.702245206 +0200
++++ chromium-112.0.5615.49/base/strings/string_split.cc	2023-04-10 16:17:56.420471079 +0200
+@@ -10,6 +10,7 @@
+ #include "base/strings/string_split_internal.h"
+ #include "base/strings/string_util.h"
+ #include "base/third_party/icu/icu_utf.h"
++#include "base/clang_work_around.h"
+ 
+ namespace base {
+ 
+diff -up chromium-112.0.5615.49/chrome/browser/sharing/click_to_call/click_to_call_utils.cc.me chromium-112.0.5615.49/chrome/browser/sharing/click_to_call/click_to_call_utils.cc
+--- chromium-112.0.5615.49/chrome/browser/sharing/click_to_call/click_to_call_utils.cc.me	2023-04-10 16:09:21.861093623 +0200
++++ chromium-112.0.5615.49/chrome/browser/sharing/click_to_call/click_to_call_utils.cc	2023-04-10 16:09:31.428261186 +0200
+@@ -21,6 +21,7 @@
+ #include "third_party/re2/src/re2/re2.h"
+ #include "url/url_constants.h"
+ #include "url/url_util.h"
++#include "base/clang_work_around.h"
+ 
+ namespace {
+ 
+diff -up chromium-112.0.5615.49/ui/ozone/platform/wayland/host/wayland_exchange_data_provider.cc.me chromium-112.0.5615.49/ui/ozone/platform/wayland/host/wayland_exchange_data_provider.cc
+--- chromium-112.0.5615.49/ui/ozone/platform/wayland/host/wayland_exchange_data_provider.cc.me	2023-04-10 16:05:55.155357863 +0200
++++ chromium-112.0.5615.49/ui/ozone/platform/wayland/host/wayland_exchange_data_provider.cc	2023-04-10 16:06:09.726629617 +0200
+@@ -27,6 +27,7 @@
+ #include "url/gurl.h"
+ #include "url/url_canon.h"
+ #include "url/url_util.h"
++#include "base/clang_work_around.h"
+ 
+ #if BUILDFLAG(IS_CHROMEOS_LACROS)
+ #include "ui/base/data_transfer_policy/data_transfer_endpoint_serializer.h"
+diff -up chromium-112.0.5615.49/base/i18n/break_iterator.cc.me chromium-112.0.5615.49/base/i18n/break_iterator.cc
+--- chromium-112.0.5615.49/base/i18n/break_iterator.cc.me	2023-04-11 09:19:54.124933361 +0200
++++ chromium-112.0.5615.49/base/i18n/break_iterator.cc	2023-04-11 09:20:14.790301819 +0200
+@@ -15,6 +15,7 @@
+ #include "third_party/icu/source/common/unicode/ubrk.h"
+ #include "third_party/icu/source/common/unicode/uchar.h"
+ #include "third_party/icu/source/common/unicode/ustring.h"
++#include "base/clang_work_around.h"
+ 
+ namespace base {
+ namespace i18n {
+diff -up chromium-112.0.5615.49/base/i18n/message_formatter.cc.me chromium-112.0.5615.49/base/i18n/message_formatter.cc
+--- chromium-112.0.5615.49/base/i18n/message_formatter.cc.me	2023-04-11 09:20:34.687657454 +0200
++++ chromium-112.0.5615.49/base/i18n/message_formatter.cc	2023-04-11 09:21:28.617663963 +0200
+@@ -13,6 +13,7 @@
+ #include "third_party/icu/source/common/unicode/utypes.h"
+ #include "third_party/icu/source/i18n/unicode/fmtable.h"
+ #include "third_party/icu/source/i18n/unicode/msgfmt.h"
++#include "base/clang_work_around.h"
+ 
+ using icu::UnicodeString;
+ 
+diff -up chromium-112.0.5615.49/base/time/time.cc.me chromium-112.0.5615.49/base/time/time.cc
+--- chromium-112.0.5615.49/base/time/time.cc.me	2023-04-11 09:23:22.732757775 +0200
++++ chromium-112.0.5615.49/base/time/time.cc	2023-04-11 09:23:33.655958193 +0200
+@@ -17,6 +17,7 @@
+ #include "base/time/time_override.h"
+ #include "build/build_config.h"
+ #include "third_party/abseil-cpp/absl/types/optional.h"
++#include "base/clang_work_around.h"
+ 
+ namespace base {
+ 
+diff -up chromium-112.0.5615.49/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc.me chromium-112.0.5615.49/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc
+--- chromium-112.0.5615.49/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc.me	2023-04-11 09:36:50.646409434 +0200
++++ chromium-112.0.5615.49/chrome/browser/ui/webui/downloads/downloads_list_tracker.cc	2023-04-11 09:37:07.977731153 +0200
+@@ -36,6 +36,7 @@
+ #include "net/base/filename_util.h"
+ #include "third_party/icu/source/i18n/unicode/datefmt.h"
+ #include "ui/base/l10n/time_format.h"
++#include "base/clang_work_around.h"
+ 
+ using content::BrowserContext;
+ using content::DownloadManager;
+diff -up chromium-112.0.5615.49/chrome/browser/ui/webui/new_tab_page/untrusted_source.cc.me chromium-112.0.5615.49/chrome/browser/ui/webui/new_tab_page/untrusted_source.cc
+--- chromium-112.0.5615.49/chrome/browser/ui/webui/new_tab_page/untrusted_source.cc.me	2023-04-11 09:37:21.262977759 +0200
++++ chromium-112.0.5615.49/chrome/browser/ui/webui/new_tab_page/untrusted_source.cc	2023-04-11 09:37:27.594095277 +0200
+@@ -33,6 +33,7 @@
+ #include "ui/base/resource/resource_bundle.h"
+ #include "ui/base/template_expressions.h"
+ #include "url/url_util.h"
++#include "base/clang_work_around.h"
+ 
+ namespace {
+ 
+diff -up chromium-112.0.5615.49/components/autofill/content/renderer/html_based_username_detector.cc.me chromium-112.0.5615.49/components/autofill/content/renderer/html_based_username_detector.cc
+--- chromium-112.0.5615.49/components/autofill/content/renderer/html_based_username_detector.cc.me	2023-04-11 09:38:01.297776504 +0200
++++ chromium-112.0.5615.49/components/autofill/content/renderer/html_based_username_detector.cc	2023-04-11 09:38:07.899908357 +0200
+@@ -18,6 +18,7 @@
+ #include "components/autofill/content/renderer/html_based_username_detector_vocabulary.h"
+ #include "components/autofill/core/common/form_data.h"
+ #include "third_party/blink/public/web/web_form_element.h"
++#include "base/clang_work_around.h"
+ 
+ using blink::WebFormControlElement;
+ using blink::WebFormElement;
+diff -up chromium-112.0.5615.49/components/autofill/core/browser/autofill_data_util.cc.me chromium-112.0.5615.49/components/autofill/core/browser/autofill_data_util.cc
+--- chromium-112.0.5615.49/components/autofill/core/browser/autofill_data_util.cc.me	2023-04-11 09:33:59.637234801 +0200
++++ chromium-112.0.5615.49/components/autofill/core/browser/autofill_data_util.cc	2023-04-11 09:34:08.353412198 +0200
+@@ -25,6 +25,7 @@
+ #include "components/strings/grit/components_strings.h"
+ #include "third_party/icu/source/common/unicode/uscript.h"
+ #include "third_party/re2/src/re2/re2.h"
++#include "base/clang_work_around.h"
+ 
+ namespace autofill {
+ namespace data_util {
+diff -up chromium-112.0.5615.49/components/autofill/core/browser/data_model/borrowed_transliterator.cc.me chromium-112.0.5615.49/components/autofill/core/browser/data_model/borrowed_transliterator.cc
+--- chromium-112.0.5615.49/components/autofill/core/browser/data_model/borrowed_transliterator.cc.me	2023-04-11 09:33:33.683706577 +0200
++++ chromium-112.0.5615.49/components/autofill/core/browser/data_model/borrowed_transliterator.cc	2023-04-11 09:33:40.115837491 +0200
+@@ -6,6 +6,7 @@
+ 
+ #include "base/logging.h"
+ #include "base/no_destructor.h"
++#include "base/clang_work_around.h"
+ 
+ namespace autofill {
+ 
+diff -up chromium-112.0.5615.49/components/autofill/core/browser/form_processing/label_processing_util.cc.me chromium-112.0.5615.49/components/autofill/core/browser/form_processing/label_processing_util.cc
+--- chromium-112.0.5615.49/components/autofill/core/browser/form_processing/label_processing_util.cc.me	2023-04-11 09:35:15.569558729 +0200
++++ chromium-112.0.5615.49/components/autofill/core/browser/form_processing/label_processing_util.cc	2023-04-11 09:35:22.156704236 +0200
+@@ -7,6 +7,7 @@
+ #include "base/ranges/algorithm.h"
+ #include "base/strings/string_split.h"
+ #include "base/strings/utf_string_conversions.h"
++#include "base/clang_work_around.h"
+ 
+ namespace autofill {
+ 
+diff -up chromium-112.0.5615.49/components/autofill/core/common/autofill_regexes.cc.me chromium-112.0.5615.49/components/autofill/core/common/autofill_regexes.cc
+--- chromium-112.0.5615.49/components/autofill/core/common/autofill_regexes.cc.me	2023-04-11 09:24:03.442503498 +0200
++++ chromium-112.0.5615.49/components/autofill/core/common/autofill_regexes.cc	2023-04-11 09:24:10.633634865 +0200
+@@ -12,6 +12,7 @@
+ #include "base/check.h"
+ #include "base/i18n/unicodestring.h"
+ #include "base/memory/ptr_util.h"
++#include "base/clang_work_around.h"
+ 
+ namespace {
+ 
+diff -up chromium-112.0.5615.49/components/bookmarks/browser/titled_url_index.cc.me chromium-112.0.5615.49/components/bookmarks/browser/titled_url_index.cc
+--- chromium-112.0.5615.49/components/bookmarks/browser/titled_url_index.cc.me	2023-04-11 09:35:47.419224388 +0200
++++ chromium-112.0.5615.49/components/bookmarks/browser/titled_url_index.cc	2023-04-11 09:35:53.917341490 +0200
+@@ -29,6 +29,7 @@
+ #include "components/query_parser/snippet.h"
+ #include "third_party/icu/source/common/unicode/normalizer2.h"
+ #include "third_party/icu/source/common/unicode/utypes.h"
++#include "base/clang_work_around.h"
+ 
+ namespace bookmarks {
+ 
+diff -up chromium-112.0.5615.49/components/omnibox/browser/tailored_word_break_iterator.cc.me chromium-112.0.5615.49/components/omnibox/browser/tailored_word_break_iterator.cc
+--- chromium-112.0.5615.49/components/omnibox/browser/tailored_word_break_iterator.cc.me	2023-04-11 09:36:26.323925501 +0200
++++ chromium-112.0.5615.49/components/omnibox/browser/tailored_word_break_iterator.cc	2023-04-11 09:36:32.480043078 +0200
+@@ -5,6 +5,7 @@
+ #include "components/omnibox/browser/tailored_word_break_iterator.h"
+ 
+ #include "base/strings/string_piece.h"
++#include "base/clang_work_around.h"
+ 
+ namespace {
+ constexpr char16_t kUnderscore = '_';
+diff -up chromium-112.0.5615.49/components/sync/base/time.cc.me chromium-112.0.5615.49/components/sync/base/time.cc
+--- chromium-112.0.5615.49/components/sync/base/time.cc.me	2023-04-11 09:32:48.709645320 +0200
++++ chromium-112.0.5615.49/components/sync/base/time.cc	2023-04-11 09:32:56.044820918 +0200
+@@ -11,6 +11,7 @@
+ #include "base/strings/utf_string_conversions.h"
+ #include "third_party/icu/source/common/unicode/utypes.h"
+ #include "third_party/icu/source/i18n/unicode/smpdtfmt.h"
++#include "base/clang_work_around.h"
+ 
+ namespace syncer {
+ 
+diff -up chromium-112.0.5615.49/ui/base/x/selection_utils.cc.me chromium-112.0.5615.49/ui/base/x/selection_utils.cc
+--- chromium-112.0.5615.49/ui/base/x/selection_utils.cc.me	2023-04-11 09:22:42.734023876 +0200
++++ chromium-112.0.5615.49/ui/base/x/selection_utils.cc	2023-04-11 09:22:51.565185914 +0200
+@@ -18,6 +18,7 @@
+ #include "base/strings/utf_string_conversions.h"
+ #include "ui/base/clipboard/clipboard_constants.h"
+ #include "ui/gfx/x/x11_atom_cache.h"
++#include "base/clang_work_around.h"
+ 
+ namespace ui {
+ 
+diff -up chromium-112.0.5615.49/chrome/test/chromedriver/server/http_handler.cc.me chromium-112.0.5615.49/chrome/test/chromedriver/server/http_handler.cc
+--- chromium-112.0.5615.49/chrome/test/chromedriver/server/http_handler.cc.me	2023-04-11 09:43:01.795293420 +0200
++++ chromium-112.0.5615.49/chrome/test/chromedriver/server/http_handler.cc	2023-04-11 09:43:13.763545992 +0200
+@@ -46,6 +46,7 @@
+ #include "services/network/public/mojom/url_loader_factory.mojom.h"
+ #include "services/network/transitional_url_loader_factory_owner.h"
+ #include "url/url_util.h"
++#include "base/clang_work_around.h"
+ 
+ #if BUILDFLAG(IS_MAC)
+ #include "base/mac/scoped_nsautorelease_pool.h"

diff --git a/chromium.spec b/chromium.spec
index 60b81dc..6fc5717 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -241,7 +241,7 @@
 %endif
 
 Name:	chromium%{chromium_channel}
-Version: 112.0.5615.49
+Version: 112.0.5615.121
 Release: 1%{?dist}
 Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
 Url: http://www.chromium.org/Home
@@ -371,11 +371,15 @@ Patch146: chromium-110-LargerThan4k.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-110-ozone-wayland-vaapi-support.patch
+Patch206: chromium-112-ozone-wayland-vaapi-support.patch
+Patch207: chromium-112-enable-vaapi-ozone-wayland.patch
 
 # Apply these patches to work around EPEL8 issues
 Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch
 
+# workaround for bug in clang 14 with c++20 on rhel9, linker errors std::u16string
+Patch301: chromium-112-workaround-llvm14-c++20-epel8.patch
+
 # Use chromium-latest.py to generate clean tarball from released build tarballs, found here:
 # http://build.chromium.org/buildbot/official/
 # For Chromium Fedora use chromium-latest.py --stable --ffmpegclean --ffmpegarm
@@ -954,7 +958,9 @@ udev.
 %patch -P107 -p1 -b .el7-extra-operator-equalequal
 %endif
 
+%if 0%{?fedora} == 37
 %patch -P108 -p1 -R -b .chrome_feed_response_metadata
+%endif
 
 %patch -P130 -p1 -b .VirtualCursor-std-layout
 
@@ -967,12 +973,17 @@ udev.
 %patch -P202 -p1 -b .accel-mjpeg
 %patch -P205 -p1 -b .vaapi-intel-fix
 %patch -P206 -p1 -b .wayland-vaapi
+%patch -P207 -p1 -b .enable-wayland-vaapi
 %endif
 
 %if 0%{?rhel} >= 8
 %patch -P300 -p1 -b .disblegnomekeyring
 %endif
 
+%if 0%{?rhel} == 8
+%patch -P301 -p1 -b .clang14_c++20
+%endif
+
 # Change shebang in all relevant files in this directory and all subdirectories
 # See `man find` for how the `-exec command {} +` syntax works
 find -type f \( -iname "*.py" \) -exec sed -i '1s=^#! */usr/bin/\(python\|env python\)[23]\?=#!%{__python3}=' {} +
@@ -1121,12 +1132,6 @@ CHROMIUM_CORE_GN_DEFINES+=' use_gold=false'
 CHROMIUM_CORE_GN_DEFINES+=' target_cpu="arm64"'
 %endif
 
-# clang =< 14 and C++20, linker errors std::u16string
-# build failure on rhel8
-%if 0%{?rhel} == 8
-CHROMIUM_CORE_GN_DEFINES+=' use_cxx17=true'
-%endif
-
 CHROMIUM_CORE_GN_DEFINES+=' icu_use_data_file=true'
 CHROMIUM_CORE_GN_DEFINES+=' target_os="linux"'
 CHROMIUM_CORE_GN_DEFINES+=' current_os="linux"'
@@ -1648,6 +1653,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
 %{chromium_path}/chromedriver
 
 %changelog
+* Sat Apr 15 2023 Than Ngo <than@redhat.com> - 112.0.5615.121-1
+- update to 112.0.5615.121
+
 * Wed Apr 05 2023 Than Ngo <than@redhat.com> - 112.0.5615.49-1
 - update to 112.0.5615.49
 - fix #2184142, Small fonts in menus

diff --git a/sources b/sources
index 4487c5a..2871077 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
 SHA512 (node-v19.8.1-linux-arm64.tar.xz) = 86ff19085669e92ce7afe2fd7d4df0c5441df2d88c00f29d5463b805f3cf5625626db8aebf98349c9a495b772da1ce6d68263730018207ea98815058a1c81397
 SHA512 (node-v19.8.1-linux-x64.tar.xz) = 925c0037c6b7074d0b0245bced20d0a0d9b1300f53b808106f16b5018d763f5f5b00bc321b33fa1033d736b1e1076608da9b7fcae66aed53d27b100b1186e2c6
-SHA512 (chromium-112.0.5615.49-clean.tar.xz) = cda9247696503dc0be0d9519f85c0619736da66410751412819362beeb115a51da1f90b15c60bae0d517fea70dca5797ae5eccf728ee13fd1cf29d1fe216f943
+SHA512 (chromium-112.0.5615.121-clean.tar.xz) = 4dfb8abb5ae475f069ff18d98c6b8c5a241187ce2ed5d85d6bc6ac33efdcca6a657539df50b3836baca93190aff96676d6673a1a554b48394cb4625aaea0275d

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-07 16:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-07 16:05 [rpms/chromium] epel9-next: update to 112.0.5615.121 Than Ngo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox