diff mbox series

[meta-arago,master] chromium: Upgrade to v142.0.7444.175

Message ID 20260306055348.1760322-1-t-lannynd@ti.com
State Under Review
Delegated to: Ryan Eatmon
Headers show
Series [meta-arago,master] chromium: Upgrade to v142.0.7444.175 | expand

Commit Message

Thorsten Lannynd March 6, 2026, 5:53 a.m. UTC
Changes:
- Remove PowerVR-specific sandbox patch
- Remove platform conditionals and use ChromeOS-style device paths
  (/dev/video-dec, /dev/video-enc)
- Disable ThinLTO to prevent linker OOM crashes
- Fix clang library copying for both aarch64 and x86_64 architectures
- Add NSS pkg-config detection
- Rebase existing V4L2 patches to new Chromium version
- Removed PACKAGECONFIG[use-v4l2] and v4l2 flags as they enabled by default

Signed-off-by: Thorsten Lannynd <t-lannynd@ti.com>
---
 ...dbox-allow-access-to-PowerVR-GPU-fro.patch | 76 ----------------
 ...se-ChromeOS-style-dev-paths-for-all-.patch | 89 +++++++++++++++++++
 ...dbox-Allow-GPU-sandbox-access-to-V4L.patch | 23 ++---
 ...2-Fix-OUTPUT-queue-streaming-in-V4L2.patch | 44 ++-------
 ...oid-placing-incomplete-H264-access-.patch} | 10 +--
 .../chromium/chromium-ozone-wayland-arago.inc | 75 ++++++++++++++--
 ...ium-ozone-wayland_142.0.7444.175.bbappend} |  0
 7 files changed, 183 insertions(+), 134 deletions(-)
 delete mode 100644 meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch
 create mode 100644 meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch
 rename meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/{chromium-ozone-wayland-132.0.6834.83 => chromium-ozone-wayland-142.0.7444.175}/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch (71%)
 rename meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/{chromium-ozone-wayland-132.0.6834.83 => chromium-ozone-wayland-142.0.7444.175}/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch (67%)
 rename meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/{chromium-ozone-wayland-132.0.6834.83/0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch => chromium-ozone-wayland-142.0.7444.175/0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch} (82%)
 rename meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/{chromium-ozone-wayland_132.0.6834.83.bbappend => chromium-ozone-wayland_142.0.7444.175.bbappend} (100%)

Comments

PRC Automation March 6, 2026, 5:55 a.m. UTC | #1
meta-arago / na / 20260306055348.1760322-1-t-lannynd

PRC Results: FAIL

=========================================================
  check-yocto-patches: PASS
=========================================================
Patches
----------------------------------------
All patches passed



=========================================================
  apply-yocto-patch: PASS
=========================================================
master
=====================
Summary:
- Patch Series: [meta-arago][master][PATCH] chromium: Upgrade to v142.0.7444.175
- Submitter: From: Thorsten Lannynd <t-lannynd@ti.com>
-From: Darren Etheridge <a0867391@uda0393673-1.dhcp.ti.com>
+From: Thorsten Lannynd <t-lannynd@ti.com>
 From: Thorsten Lannynd <t-lannynd@ti.com>
 From: Thorsten Lannynd <t-lannynd@ti.com>
 From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
- Date: Date: Thu, 5 Mar 2026 23:53:48 -0600
-Date: Mon, 20 May 2024 15:48:36 -0500
+Date: Fri, 5 Dec 2025 12:40:27 -0600
-Date: Fri, 8 Aug 2025 23:05:18 -0500
+Date: Thu, 5 Mar 2026 12:02:31 -0600
 Date: Sat, 9 Aug 2025 01:46:14 -0500
 Date: Wed, 11 Jun 2025 11:07:05 +0300
- Num Patches: 1
- Mailing List (public inbox) Commit SHA: 42d3d0a522e81a7ab26073de6a5fd693bd4d8b12

Applied to:
- Repository: lcpd-prc-meta-arago
- Base Branch: master-wip
- Commit Author: Antonios Christidis <a-christidis@ti.com>
- Commit Subject: emptty: add version 0.15.0
- Commit SHA: 7e07ca47e0a7bc77ef7ab8bc0a10061a0c57e10d

Patches
----------------------------------------
All patches applied



=========================================================
  check-yocto-repo: FAIL
=========================================================
master
=====================
FAIL
    WARN: Are you missing a PV = "...". (PV-1)
        meta-arago-distro/recipes-graphics/emptty/emptty-conf.bb
    
    WARN: You might need a " " as the first character for the :append. (APPEND-2)
        meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb:10
            GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'pam', '', ',nopam', d)}"
    
    WARN: You might need a " " as the first character for the :append. (APPEND-2)
        meta-arago-distro/recipes-graphics/emptty/emptty_0.15.0.bb:11
            GO_TAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '', ',noxlib', d)}"
    
    WARN: The use of :append with other overrides needs to be manually checked. (APPEND-1)
        meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb:68
            RPROVIDES:${PN}:append = " virtual-emptty-conf weston-init"
    
    WARN: Are you missing a PV = "...". (PV-1)
        meta-arago-distro/recipes-graphics/wayland/weston-init-arago.bb
    
    For details on the above errors/warnings visit: https://lists.yoctoproject.org/g/meta-ti/wiki/40887
diff mbox series

Patch

diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch
deleted file mode 100644
index a9a5a49b..00000000
--- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch
+++ /dev/null
@@ -1,76 +0,0 @@ 
-From a27529b8808e2eaa18ae5a30d5fee8193969bde7 Mon Sep 17 00:00:00 2001
-From: Darren Etheridge <a0867391@uda0393673-1.dhcp.ti.com>
-Date: Mon, 20 May 2024 15:48:36 -0500
-Subject: [PATCH] chromium: gpu: sandbox: allow access to PowerVR GPU from
- sandbox
-
-Upstream-Status: Pending [not strictly necessary, but reduces
-permissions warnings on console]
-
-Chromium runs in a sandbox to limit access to the system, however
-the PowerVR drivers for the Imagination GPU used on TI hardware need
-some extra libraries along with the DRM device nodes to be opened up.
-This patch opens up the necessary pieces.
-
-Signed-off-by: Darren Etheridge <detheridge@ti.com>
----
- content/common/gpu_pre_sandbox_hook_linux.cc | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/content/common/gpu_pre_sandbox_hook_linux.cc b/content/common/gpu_pre_sandbox_hook_linux.cc
-index 28de3c7..7db0617 100644
---- a/content/common/gpu_pre_sandbox_hook_linux.cc
-+++ b/content/common/gpu_pre_sandbox_hook_linux.cc
-@@ -67,6 +67,11 @@ inline bool UseChromecastSandboxAllowlist() {
- #endif
- }
-
-+inline bool IsGPUIMGRogue() {
-+  return true;
-+}
-+
-+
- inline bool IsArchitectureArm() {
- #if defined(ARCH_CPU_ARM_FAMILY)
-   return true;
-@@ -484,6 +489,11 @@ std::vector<BrokerFilePermission> FilePermissionsForGpu(
-
-   AddVulkanICDPermissions(&permissions);
-
-+  if (IsGPUIMGRogue()) {
-+      // Add standard DRM permissions for snapdragon/PowerVR:
-+      AddDrmGpuPermissions(&permissions);
-+  }
-+
-   if (IsChromeOS()) {
-     // Permissions are additive, there can be multiple GPUs in the system.
-     AddStandardChromeOsPermissions(&permissions);
-@@ -552,6 +562,8 @@ void LoadArmGpuLibraries() {
-         DRI_DRIVER_DIR "/mediatek_dri.so",
-         DRI_DRIVER_DIR "/rockchip_dri.so",
-         DRI_DRIVER_DIR "/asahi_dri.so",
-+        DRI_DRIVER_DIR "/pvr_dri.so",
-+        DRI_DRIVER_DIR "/tidss_dri.so",
- #else
-         "/usr/lib64/dri/msm_dri.so",
-         "/usr/lib64/dri/panfrost_dri.so",
-@@ -559,6 +571,8 @@ void LoadArmGpuLibraries() {
-         "/usr/lib64/dri/rockchip_dri.so",
-         "/usr/lib64/dri/asahi_dri.so",
-         "/usr/lib/dri/msm_dri.so",
-+        "/usr/lib/dri/tidss_dri.so",
-+        "/usr/lib/dri/pvr_dri.so",
-         "/usr/lib/dri/panfrost_dri.so",
-         "/usr/lib/dri/mediatek_dri.so",
-         "/usr/lib/dri/rockchip_dri.so",
-@@ -655,7 +669,7 @@ sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU(
-   command_set.set(sandbox::syscall_broker::COMMAND_ACCESS);
-   command_set.set(sandbox::syscall_broker::COMMAND_OPEN);
-   command_set.set(sandbox::syscall_broker::COMMAND_STAT);
--  if (IsChromeOS() &&
-+  if ((IsGPUIMGRogue() || IsChromeOS()) &&
-       (options.use_amd_specific_policies ||
-        options.use_intel_specific_policies ||
-        options.use_nvidia_specific_policies ||
---
-2.34.1
diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch
new file mode 100644
index 00000000..2089b8d2
--- /dev/null
+++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch
@@ -0,0 +1,89 @@ 
+From 262a19d57fccf1b27ede283398278b52820f4aae Mon Sep 17 00:00:00 2001
+From: Thorsten Lannynd <t-lannynd@ti.com>
+Date: Fri, 5 Dec 2025 12:40:27 -0600
+Subject: [PATCH] media/gpu/v4l2: Use ChromeOS-style dev paths for all
+ platforms
+
+Upstream-Status: Inappropriate [embedded-specific,
+  requires custom udev rules]
+
+Remove platform-specific conditionals and standardize on ChromeOS device
+naming (/dev/video-dec, /dev/video-enc, etc) instead of generic /dev/video*.
+Reduces device scanning from 256 to 10 devices for improved enumeration speed.
+
+Signed-off-by: Thorsten Lannynd <t-lannynd@ti.com>
+---
+ media/gpu/v4l2/v4l2_device.cc | 16 ----------------
+ media/gpu/v4l2/v4l2_utils.cc  | 10 ----------
+ 2 files changed, 26 deletions(-)
+
+diff --git a/media/gpu/v4l2/v4l2_device.cc b/media/gpu/v4l2/v4l2_device.cc
+index ea35d10be8..dee743ed48 100644
+--- a/media/gpu/v4l2/v4l2_device.cc
++++ b/media/gpu/v4l2/v4l2_device.cc
+@@ -874,20 +874,11 @@ void V4L2Device::CloseDevice() {
+ }
+
+ void V4L2Device::EnumerateDevicesForType(Type type) {
+-#if BUILDFLAG(IS_CHROMEOS)
+   static const std::string kDecoderDevicePattern = "/dev/video-dec";
+   static const std::string kEncoderDevicePattern = "/dev/video-enc";
+   static const std::string kImageProcessorDevicePattern = "/dev/image-proc";
+   static const std::string kJpegDecoderDevicePattern = "/dev/jpeg-dec";
+   static const std::string kJpegEncoderDevicePattern = "/dev/jpeg-enc";
+-#else
+-  static const std::string kDecoderDevicePattern = "/dev/video";
+-  static const std::string kEncoderDevicePattern = "/dev/video";
+-  static const std::string kImageProcessorDevicePattern = "/dev/video";
+-  static const std::string kJpegDecoderDevicePattern = "/dev/video";
+-  static const std::string kJpegEncoderDevicePattern = "/dev/video";
+-#endif
+-
+   std::string device_pattern;
+   v4l2_buf_type input_buf_type;
+   v4l2_buf_type output_buf_type;
+@@ -924,19 +915,12 @@ void V4L2Device::EnumerateDevicesForType(Type type) {
+   // We are sandboxed, so we can't query directory contents to check which
+   // devices are actually available. Try to open the first 10; if not present,
+   // we will just fail to open immediately.
+-#if BUILDFLAG(IS_CHROMEOS)
+   constexpr int kMaxDevices = 10;
+   candidate_paths.reserve(kMaxDevices + 1);
+
+   // TODO(posciak): Remove this legacy unnumbered device once
+   // all platforms are updated to use numbered devices.
+   candidate_paths.push_back(device_pattern);
+-#else
+-  // On mainline Linux we need to check a much larger number of devices, mainly
+-  // because the device pattern is shared with ISP devices.
+-  constexpr int kMaxDevices = 256;
+-  candidate_paths.reserve(kMaxDevices);
+-#endif
+   for (int i = 0; i < kMaxDevices; ++i) {
+     candidate_paths.push_back(
+         base::StringPrintf("%s%d", device_pattern.c_str(), i));
+diff --git a/media/gpu/v4l2/v4l2_utils.cc b/media/gpu/v4l2/v4l2_utils.cc
+index d4cac5573c..50d720a365 100644
+--- a/media/gpu/v4l2/v4l2_utils.cc
++++ b/media/gpu/v4l2/v4l2_utils.cc
+@@ -583,18 +583,8 @@ std::optional<SupportedVideoDecoderConfigs> GetSupportedV4L2DecoderConfigs() {
+   SupportedVideoDecoderConfigs supported_media_configs;
+   std::vector<std::string> candidate_paths;
+
+-#if BUILDFLAG(IS_CHROMEOS)
+   constexpr char kVideoDevicePattern[] = "/dev/video-dec0";
+   candidate_paths.push_back(kVideoDevicePattern);
+-#else
+-  constexpr char kVideoDevicePattern[] = "/dev/video";
+-  constexpr int kMaxDevices = 256;
+-  candidate_paths.reserve(kMaxDevices);
+-  for (int i = 0; i < kMaxDevices; ++i) {
+-    candidate_paths.push_back(
+-        base::StringPrintf("%s%d", kVideoDevicePattern, i));
+-  }
+-#endif
+
+   for (const auto& path : candidate_paths) {
+     base::ScopedFD device_fd(
+--
+2.34.1
diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch
similarity index 71%
rename from meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch
rename to meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch
index 4ccb8fc1..a51fa322 100644
--- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch
+++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch
@@ -1,6 +1,6 @@ 
-From 99c59368f9cdd43638dd30c2ea867a950a54b648 Mon Sep 17 00:00:00 2001
+From d6a8f091cebd265c0f7f681173d2aa218a0b89cd Mon Sep 17 00:00:00 2001
 From: Thorsten Lannynd <t-lannynd@ti.com>
-Date: Fri, 8 Aug 2025 23:05:18 -0500
+Date: Thu, 5 Mar 2026 12:02:31 -0600
 Subject: [PATCH] chromium: gpu: sandbox: Allow GPU sandbox access to V4L2
  devices
 
@@ -13,27 +13,28 @@  Chromium with V4L2 for video processing.
 
 Signed-off-by: Thorsten Lannynd <t-lannynd@ti.com>
 ---
- content/common/gpu_pre_sandbox_hook_linux.cc | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
+ content/common/gpu_pre_sandbox_hook_linux.cc | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
 
 diff --git a/content/common/gpu_pre_sandbox_hook_linux.cc b/content/common/gpu_pre_sandbox_hook_linux.cc
-index 2a3abc9775..1865246fa8 100644
+index 2e53794fa3..9dec7fa08b 100644
 --- a/content/common/gpu_pre_sandbox_hook_linux.cc
 +++ b/content/common/gpu_pre_sandbox_hook_linux.cc
-@@ -516,11 +521,14 @@ std::vector<BrokerFilePermission> FilePermissionsForGpu(
-       AddDrmGpuPermissions(&permissions);
-   }
+@@ -627,13 +627,14 @@ std::vector<BrokerFilePermission> FilePermissionsForGpu(
+       BrokerFilePermission::ReadOnly(kDriRcPath)};
 
+   AddVulkanICDPermissions(&permissions);
++
 +  if (UseV4L2Codec(options)) {
-+      // Add V4L2 permissions for video decode/encode.
 +      AddV4L2GpuPermissions(&permissions, options);
 +  }
-+
+
    if (IsChromeOS()) {
      // Permissions are additive, there can be multiple GPUs in the system.
      AddStandardChromeOsPermissions(&permissions);
--    if (UseV4L2Codec(options))
+-    if (UseV4L2Codec(options)) {
 -      AddV4L2GpuPermissions(&permissions, options);
+-    }
      if (IsArchitectureArm()) {
        AddImgPvrGpuPermissions(&permissions);
        AddArmGpuPermissions(&permissions);
diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch
similarity index 67%
rename from meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch
rename to meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch
index 55a630eb..0a6c0f95 100644
--- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch
+++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch
@@ -1,7 +1,7 @@ 
-From 3f5cdbc3b1871b6b8cdfa96eccd96f59d66a8afc Mon Sep 17 00:00:00 2001
+From d1d9bcefa8fd299049e6e51855f41b67b27823ed Mon Sep 17 00:00:00 2001
 From: Thorsten Lannynd <t-lannynd@ti.com>
 Date: Sat, 9 Aug 2025 01:46:14 -0500
-Subject: [PATCH] chromium: gpu: v4l2: Fix OUTPUT queue streaming in
+Subject: [PATCH] media/gpu/v4l2: Fix OUTPUT queue streaming in
  V4L2StatefulVideoDecoder
 
 Upstream-Status: Inappropriate [this change is needed to satisfy
@@ -24,15 +24,14 @@  Linux distribution to set the correct device node names.
 
 Signed-off-by: Thorsten Lannynd <t-lannynd@ti.com>
 ---
- media/gpu/v4l2/v4l2_stateful_video_decoder.cc | 40 ++++++++++++++-----
- media/gpu/v4l2/v4l2_utils.cc                  |  2 +-
- 2 files changed, 32 insertions(+), 10 deletions(-)
+ media/gpu/v4l2/v4l2_stateful_video_decoder.cc | 32 +++++++++++++------
+ 1 file changed, 23 insertions(+), 9 deletions(-)
 
 diff --git a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
-index e5069a3acf..6d11ea7e0f 100644
+index 359145244d..e3aeb060c2 100644
 --- a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
 +++ b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
-@@ -410,10 +414,6 @@ void V4L2StatefulVideoDecoder::Initialize(const VideoDecoderConfig& config,
+@@ -417,10 +417,6 @@ void V4L2StatefulVideoDecoder::Initialize(const VideoDecoderConfig& config,
      std::move(init_cb).Run(DecoderStatus::Codes::kFailedToCreateDecoder);
      return;
    }
@@ -43,7 +42,7 @@  index e5069a3acf..6d11ea7e0f 100644
    client_->NotifyEstimatedMaxDecodeRequests(base::checked_cast<int>(
        std::min(static_cast<size_t>(4), num_input_buffers)));
 
-@@ -518,10 +518,22 @@ void V4L2StatefulVideoDecoder::Decode(scoped_refptr<DecoderBuffer> buffer,
+@@ -525,10 +521,22 @@ void V4L2StatefulVideoDecoder::Decode(scoped_refptr<DecoderBuffer> buffer,
                                            std::move(decode_cb));
    }
 
@@ -70,7 +69,7 @@  index e5069a3acf..6d11ea7e0f 100644
    }
 
    if (!event_task_runner_) {
-@@ -729,7 +741,13 @@ bool V4L2StatefulVideoDecoder::InitializeCAPTUREQueue() {
+@@ -743,7 +751,13 @@ bool V4L2StatefulVideoDecoder::InitializeCAPTUREQueue() {
    auto chosen_fourcc = output_format.fourcc;
    const auto chosen_size = output_format.size;
    const auto chosen_modifier = output_format.modifier;
@@ -85,32 +84,5 @@  index e5069a3acf..6d11ea7e0f 100644
    // If our |client_| has a VideoFramePool to allocate buffers for us, we'll
    // use it, otherwise we have to ask the driver.
    const bool use_v4l2_allocated_buffers = !client_->GetVideoFramePool();
-diff --git a/media/gpu/v4l2/v4l2_utils.cc b/media/gpu/v4l2/v4l2_utils.cc
-index 9646e8be73..6a7feb49c9 100644
---- a/media/gpu/v4l2/v4l2_utils.cc
-+++ b/media/gpu/v4l2/v4l2_utils.cc
-@@ -572,18 +572,10 @@ std::optional<SupportedVideoDecoderConfigs> GetSupportedV4L2DecoderConfigs() {
-   SupportedVideoDecoderConfigs supported_media_configs;
-   std::vector<std::string> candidate_paths;
-
--#if BUILDFLAG(IS_CHROMEOS)
--  constexpr char kVideoDevicePattern[] = "/dev/video-dec0";
--  candidate_paths.push_back(kVideoDevicePattern);
--#else
--  constexpr char kVideoDevicePattern[] = "/dev/video";
--  constexpr int kMaxDevices = 256;
--  candidate_paths.reserve(kMaxDevices);
--  for (int i = 0; i < kMaxDevices; ++i) {
--    candidate_paths.push_back(
--        base::StringPrintf("%s%d", kVideoDevicePattern, i));
--  }
--#endif
-+  constexpr char kVideoDevicePattern0[] = "/dev/video-dec0";
-+  constexpr char kVideoDevicePattern1[] = "/dev/video-dec1";
-+  candidate_paths.push_back(kVideoDevicePattern0);
-+  candidate_paths.push_back(kVideoDevicePattern1);
-
-   for (const auto& path : candidate_paths) {
-     base::ScopedFD device_fd(
 --
 2.34.1
diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch
similarity index 82%
rename from meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch
rename to meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch
index e0ca7dfd..caa61545 100644
--- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-132.0.6834.83/0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch
+++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-142.0.7444.175/0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch
@@ -1,4 +1,4 @@ 
-From 8542b683ca6a0774a452eb3d7cadc834d4f41436 Mon Sep 17 00:00:00 2001
+From 942c5f57d34c2d1b077240147bb29be84c773e62 Mon Sep 17 00:00:00 2001
 From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
 Date: Wed, 11 Jun 2025 11:07:05 +0300
 Subject: [PATCH] media/gpu/v4l2: Avoid placing incomplete H264 access units in
@@ -14,10 +14,10 @@  and may confuse the decoder.
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
-index 422cc72a34a83..61ab2f5bf1ab2 100644
+index e3aeb060c2..3657bc1d36 100644
 --- a/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
 +++ b/media/gpu/v4l2/v4l2_stateful_video_decoder.cc
-@@ -1340,7 +1340,7 @@ H264FrameReassembler::FindFrameBoundary(const uint8_t* const data,
+@@ -1342,7 +1342,7 @@ H264FrameReassembler::FindH264FrameBoundary(const uint8_t* const data,
            return std::nullopt;
          }
          previous_slice_header_.reset();
@@ -26,7 +26,7 @@  index 422cc72a34a83..61ab2f5bf1ab2 100644
                                   .is_start_of_new_frame = true,
                                   .nalu_size = nalu_size};
        case H264NALU::kPPS:
-@@ -1350,7 +1350,7 @@ H264FrameReassembler::FindFrameBoundary(const uint8_t* const data,
+@@ -1352,7 +1352,7 @@ H264FrameReassembler::FindH264FrameBoundary(const uint8_t* const data,
            return std::nullopt;
          }
          previous_slice_header_.reset();
@@ -35,7 +35,7 @@  index 422cc72a34a83..61ab2f5bf1ab2 100644
                                   .is_start_of_new_frame = true,
                                   .nalu_size = nalu_size};
        case H264NALU::kNonIDRSlice:
-@@ -1389,7 +1389,7 @@ H264FrameReassembler::FindFrameBoundary(const uint8_t* const data,
+@@ -1391,7 +1391,7 @@ H264FrameReassembler::FindH264FrameBoundary(const uint8_t* const data,
        case H264NALU::kReserved18:
          // Anything else than SPS, PPS and Non/IDRs marks a new frame boundary.
          previous_slice_header_.reset();
diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-arago.inc b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-arago.inc
index 53669cf5..e2d55180 100644
--- a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-arago.inc
+++ b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland-arago.inc
@@ -1,15 +1,78 @@ 
 PR:append = ".arago0"
 
-FILESEXTRAPATHS:prepend := "${THISDIR}/chromium-ozone-wayland-132.0.6834.83:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/chromium-ozone-wayland-142.0.7444.175:"
 
-PACKAGECONFIG[use-v4l2] = "use_v4l2_codec=true,use_v4l2_codec=false"
-PACKAGECONFIG:append = " proprietary-codecs use-v4l2"
+PACKAGECONFIG:append = " proprietary-codecs"
 
-CHROMIUM_EXTRA_ARGS:append = " ${@bb.utils.contains('PACKAGECONFIG', 'use-v4l2', '--ozone-platform-hint=wayland --enable-features=AcceleratedVideoDecoder,AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL', '', d)}"
+# Remove incompatible Rust 1.8x patch (for Rust 1.93+)
+SRC_URI:remove = "file://chromium-142-crabbyavif-rust18x.patch"
 
 SRC_URI:append = " \
-                  file://0001-chromium-gpu-sandbox-allow-access-to-PowerVR-GPU-fro.patch \
+                  file://0001-media-gpu-v4l2-Use-ChromeOS-style-dev-paths-for-all-.patch \
                   file://0002-chromium-gpu-sandbox-Allow-GPU-sandbox-access-to-V4L.patch \
                   file://0003-chromium-gpu-v4l2-Fix-OUTPUT-queue-streaming-in-V4L2.patch \
-                  file://0004-Avoid-placing-incomplete-H264-access-units-in-buffer.patch \
+                  file://0004-media-gpu-v4l2-Avoid-placing-incomplete-H264-access-.patch \
                   "
+
+# Disable ThinLTO to prevent linker OOM crashes
+GN_ARGS += " use_thin_lto=false"
+
+# Override do_copy_clang_library to handle both target and host architectures
+do_copy_clang_library() {
+    cp -r "${STAGING_LIBDIR_NATIVE}/clang/latest" "${STAGING_DIR_HOST}${nonarch_libdir}/clang/"
+    cd "${STAGING_DIR_HOST}${nonarch_libdir}/clang" || return
+
+    # Process both target arch (aarch64) and build arch (x86_64)
+    for ARCH in "${TARGET_ARCH}" "${BUILD_ARCH}"; do
+        echo "Processing clang libraries for architecture: $ARCH"
+        target_dir="latest/lib/${ARCH}-unknown-linux-gnu"
+        mkdir -p "$target_dir"
+
+        # Determine source sysroot based on architecture
+        if [ "$ARCH" = "${TARGET_ARCH}" ]; then
+            search_path="${STAGING_LIBDIR}"
+        else
+            search_path="${STAGING_LIBDIR_NATIVE}"
+        fi
+
+        # Find and copy library files from the appropriate sysroot
+        for lib_pattern in "libclang_rt.builtins-${ARCH}.a" "liborc_rt-${ARCH}.a"; do
+            lib_files=$(find "$search_path/clang" -name "$lib_pattern" 2>/dev/null)
+            for lib_file in $lib_files; do
+                if [ -f "$lib_file" ]; then
+                    base_name=$(basename "$lib_file")
+                    echo "Copying $lib_file to $target_dir/"
+                    cp "$lib_file" "$target_dir/" 2>/dev/null || true
+                fi
+            done
+        done
+
+        # Create generic names without architecture suffix
+        if [ -d "$target_dir" ]; then
+            cd "$target_dir" || continue
+            for file in libclang_rt.builtins-*.a liborc_rt-*.a; do
+                if [ -f "$file" ]; then
+                    generic_name=$(echo "$file" | sed -E 's/-(x86_64|aarch64|arm|i686)\.a$/.a/')
+                    if [ "$file" != "$generic_name" ] && [ ! -f "$generic_name" ]; then
+                        cp "$file" "$generic_name" 2>/dev/null || true
+                    fi
+                fi
+            done
+            cd "${STAGING_DIR_HOST}${nonarch_libdir}/clang" || return
+        fi
+
+        # Copy to native sysroot as well
+        native_arch_path="${STAGING_LIBDIR_NATIVE}/clang/latest/lib/${ARCH}-unknown-linux-gnu/"
+        if [ -d "$target_dir" ] && [ -n "$(ls -A "$target_dir" 2>/dev/null)" ]; then
+            mkdir -p "$native_arch_path"
+            cp -n "$target_dir"/* "$native_arch_path/" 2>/dev/null || true
+        fi
+    done
+}
+
+# Add pkg-config setup for NSS detection
+do_configure:prepend() {
+    export PKG_CONFIG_PATH="${STAGING_LIBDIR}/pkgconfig:${STAGING_DATADIR}/pkgconfig"
+    export PKG_CONFIG_SYSROOT_DIR="${STAGING_DIR_TARGET}"
+    export PKG_CONFIG_LIBDIR="${STAGING_LIBDIR}/pkgconfig"
+}
diff --git a/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland_132.0.6834.83.bbappend b/meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland_142.0.7444.175.bbappend
similarity index 100%
rename from meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland_132.0.6834.83.bbappend
rename to meta-arago-distro/dynamic-layers/chromium-browser-layer/recipes-browser/chromium/chromium-ozone-wayland_142.0.7444.175.bbappend