public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/chromium] epel9-next: Merge #34 `Use proper python3 print syntax`
@ 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 : b5a8d88748248e48937b326206a6bb9735bb3640
Author : Than Ngo <than@fedoraproject.org>
Date   : 2023-04-27T09:23:59+00:00
Stats  : +1197/-194 in 10 file(s)
URL    : https://src.fedoraproject.org/rpms/chromium/c/b5a8d88748248e48937b326206a6bb9735bb3640?branch=epel9-next

Log:
Merge #34 `Use proper python3 print syntax`

---
diff --git a/chromium.spec b/chromium.spec
index 908abf2..2b95841 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -1258,7 +1258,7 @@ build/linux/unbundle/replace_gn_files.py --system-libraries \
 	flac
 
 # Check that there is no system 'google' module, shadowing bundled ones:
-if python3 -c 'import google ; print google.__path__' 2> /dev/null ; then \
+if python3 -c 'import google ; print(google.__path__)' 2> /dev/null ; then \
     echo "Python 3 'google' module is defined, this will shadow modules of this build"; \
     exit 1 ; \
 fi

diff --git a/chromium-110-gtktheme.patch b/chromium-110-gtktheme.patch
deleted file mode 100644
index 3fcaa26..0000000
--- a/chromium-110-gtktheme.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-Update web_instance on GTK when checking for dark mode
-
-Adds some extra code to change the theme in the web instance when on GTK,
-to fix prefers-color-scheme.
-
-Also makes SystemDarkModeSupported return true on Linux,
-since the most modern Linux distributions support it,
-and Linux dark mode code doesn’t detect whether or not it is supported.
-This function seems to only be used in telemetry, so maybe it doesn’t
-need to be changed.
-
-Bug: 998903
-Change-Id: I02a084d9f733b01c8e6ad0f5ca5f1ebcfb16d475
-diff --git a/AUTHORS b/AUTHORS
-index 758d0bf..8c91146 100644
---- a/AUTHORS
-+++ b/AUTHORS
-@@ -735,6 +735,7 @@
- Leith Bade <leith@leithalweapon.geek.nz>
- Lei Gao <leigao@huawei.com>
- Lei Li <lli.kernel.kvm@gmail.com>
-+Lena Wildervanck <lena.wildervanck@gmail.com>
- Lenny Khazan <lenny.khazan@gmail.com>
- Leo Wolf <jclw@ymail.com>
- Leon Han <leon.han@intel.com>
-diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
-index 85c3931..2b0c2a84 100644
---- a/chrome/common/chrome_features.cc
-+++ b/chrome/common/chrome_features.cc
-@@ -1430,12 +1430,12 @@
- BASE_FEATURE(kWebUIDarkMode,
-              "WebUIDarkMode",
- #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
--    BUILDFLAG(IS_CHROMEOS)
-+    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
-              base::FEATURE_ENABLED_BY_DEFAULT
- #else
-              base::FEATURE_DISABLED_BY_DEFAULT
- #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) ||
--        // BUILDFLAG(IS_CHROMEOS)
-+        // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
- );
- 
- #if BUILDFLAG(IS_CHROMEOS_ASH)
-diff --git a/ui/gtk/native_theme_gtk.cc b/ui/gtk/native_theme_gtk.cc
-index a60d6e3..1200a80 100644
---- a/ui/gtk/native_theme_gtk.cc
-+++ b/ui/gtk/native_theme_gtk.cc
-@@ -165,6 +165,14 @@
-       UserHasContrastPreference()
-           ? ui::NativeThemeBase::PreferredContrast::kMore
-           : ui::NativeThemeBase::PreferredContrast::kNoPreference);
-+
-+  // Update the web instance too to fix prefers-color-theme
-+  NativeTheme* web_instance = NativeTheme::GetInstanceForWeb();
-+  web_instance->set_use_dark_colors(ShouldUseDarkColors());
-+  web_instance->set_preferred_color_scheme(CalculatePreferredColorScheme());
-+  web_instance->SetPreferredContrast(CalculatePreferredContrast());
-+  web_instance->NotifyOnNativeThemeUpdated();
-+
-   native_theme->NotifyOnNativeThemeUpdated();
- }
- 
-diff --git a/ui/native_theme/native_theme.cc b/ui/native_theme/native_theme.cc
-index 835fa36..feec109 100644
---- a/ui/native_theme/native_theme.cc
-+++ b/ui/native_theme/native_theme.cc
-@@ -36,7 +36,11 @@
- #if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_APPLE)
- // static
- bool NativeTheme::SystemDarkModeSupported() {
-+#if BUILDFLAG(IS_LINUX)
-+  return true;
-+#else
-   return false;
-+#endif
- }
- #endif
- 

diff --git a/chromium-112-check-passthrough-command-decoder.patch b/chromium-112-check-passthrough-command-decoder.patch
new file mode 100644
index 0000000..55fa1e0
--- /dev/null
+++ b/chromium-112-check-passthrough-command-decoder.patch
@@ -0,0 +1,71 @@
+From 041cb248e818823caaaabc67db92b16499d0416d Mon Sep 17 00:00:00 2001
+From: Vasiliy Telezhnikov <vasilyt@chromium.org>
+Date: Thu, 02 Feb 2023 15:42:28 +0000
+Subject: [PATCH] CHECK that passthrough command decoder is used on launched platforms
+
+This CL adds enforces that validating command decoder is not used on
+platforms where passthrough is fully launched. We still allow to use it
+by tests on linux
+
+Bug: 1406585
+Change-Id: Id6bc1d748fdf9c953dde76c8d4b5f59ddef60857
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4212134
+Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
+Commit-Queue: Vasiliy Telezhnikov <vasilyt@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#1100440}
+---
+
+diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
+index eb710696..b22dffb 100644
+--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
++++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
+@@ -3447,7 +3447,13 @@
+                                            outputter, group);
+   }
+ 
++// Allow linux to run fuzzers.
++#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) || BUILDFLAG(IS_LINUX)
+   return new GLES2DecoderImpl(client, command_buffer_service, outputter, group);
++#else
++  LOG(FATAL) << "Validating command decoder is not supported.";
++  return nullptr;
++#endif
+ }
+ 
+ GLES2DecoderImpl::GLES2DecoderImpl(
+diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
+index 40977d9b..50171e20 100644
+--- a/gpu/ipc/service/gpu_init.cc
++++ b/gpu/ipc/service/gpu_init.cc
+@@ -510,8 +510,9 @@
+ 
+   auto impl = gl::GetGLImplementationParts();
+   bool gl_disabled = impl == gl::kGLImplementationDisabled;
+-  bool is_swangle = impl == gl::ANGLEImplementation::kSwiftShader;
+ 
++#if BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER)
++  bool is_swangle = impl == gl::ANGLEImplementation::kSwiftShader;
+   // Compute passthrough decoder status before ComputeGpuFeatureInfo below.
+   // Do this after GL is initialized so extensions can be queried.
+   // Using SwANGLE forces the passthrough command decoder.
+@@ -533,6 +534,20 @@
+   }
+   gpu_preferences_.use_passthrough_cmd_decoder =
+       gpu_info_.passthrough_cmd_decoder;
++#else
++  // If gl is disabled passthrough/validating command decoder doesn't matter. If
++  // it's not ensure that passthrough command decoder is supported as it's our
++  // only option.
++  if (!gl_disabled) {
++    LOG_IF(FATAL, !gles2::PassthroughCommandDecoderSupported())
++        << "Passthrough is not supported, GL is "
++        << gl::GetGLImplementationGLName(gl::GetGLImplementationParts())
++        << ", ANGLE is "
++        << gl::GetGLImplementationANGLEName(gl::GetGLImplementationParts());
++    gpu_info_.passthrough_cmd_decoder = true;
++    gpu_preferences_.use_passthrough_cmd_decoder = true;
++  }
++#endif
+ 
+   // We need to collect GL strings (VENDOR, RENDERER) for blocklisting purposes.
+   if (!gl_disabled) {

diff --git a/chromium-112-feed_protos.patch b/chromium-112-feed_protos.patch
deleted file mode 100644
index 222d439..0000000
--- a/chromium-112-feed_protos.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Split out ios shared feed protos
-
-chrome_feed_response_metadata.proto is needed in ios so split it out
-so it can be separately compiled into ios.
-
-Change-Id: I9e5e50f5e1742258f5c8197d54f0c610b56daf4b
-Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4266050
-Commit-Queue: edchin <edchin@google.com>
-Reviewed-by: Dan H <harringtond@chromium.org>
-Cr-Commit-Position: refs/heads/main@{#1107357}
-diff --git a/components/feed/core/proto/BUILD.gn b/components/feed/core/proto/BUILD.gn
-index 51916e08..f0ec531 100644
---- a/components/feed/core/proto/BUILD.gn
-+++ b/components/feed/core/proto/BUILD.gn
-@@ -22,7 +22,6 @@
-     "v2/wire/capabilities_debug_data.proto",
-     "v2/wire/capability.proto",
-     "v2/wire/chrome_client_info.proto",
--    "v2/wire/chrome_feed_response_metadata.proto",
-     "v2/wire/chrome_fulfillment_info.proto",
-     "v2/wire/client_info.proto",
-     "v2/wire/client_user_profiles.proto",
-@@ -69,6 +68,10 @@
-   ]
- }
- 
-+proto_library("proto_ios_shared_v2") {
-+  sources = [ "v2/wire/chrome_feed_response_metadata.proto" ]
-+}
-+
- if (is_android) {
-   proto_java_library("proto_java_v2") {
-     proto_path = "../../../../"
-diff --git a/components/feed/core/v2/BUILD.gn b/components/feed/core/v2/BUILD.gn
-index ab5efcc4..b1d3fb4 100644
---- a/components/feed/core/v2/BUILD.gn
-+++ b/components/feed/core/v2/BUILD.gn
-@@ -172,6 +172,7 @@
-     ":ios_shared",
-     "//base",
-     "//components/feed/core/common:feed_core_common",
-+    "//components/feed/core/proto:proto_ios_shared_v2",
-     "//components/feed/core/proto:proto_v2",
-   ]
- }
-@@ -187,7 +188,7 @@
-   deps = [
-     "//base",
-     "//components/feed/core/common:feed_core_common",
--    "//components/feed/core/proto:proto_v2",
-+    "//components/feed/core/proto:proto_ios_shared_v2",
-     "//components/prefs",
-   ]
- }
-diff --git a/components/feed/core/v2/public/ios/BUILD.gn b/components/feed/core/v2/public/ios/BUILD.gn
-index 106f089a..59bdd2b 100644
---- a/components/feed/core/v2/public/ios/BUILD.gn
-+++ b/components/feed/core/v2/public/ios/BUILD.gn
-@@ -25,7 +25,6 @@
-   deps = [
-     ":feed_ios_public",
-     "//base/test:test_support",
--    "//components/feed/core/v2:feed_core_v2",
-     "//components/prefs",
-     "//components/prefs:test_support",
-     "//testing/gmock",

diff --git a/chromium-112-invert_of_GLImageNativePixmap_NativePixmapEGLBinding.patch b/chromium-112-invert_of_GLImageNativePixmap_NativePixmapEGLBinding.patch
new file mode 100644
index 0000000..80fe156
--- /dev/null
+++ b/chromium-112-invert_of_GLImageNativePixmap_NativePixmapEGLBinding.patch
@@ -0,0 +1,630 @@
+commit 7f0858c08dcef70ca26ce8527bbedfcc5c5218d3
+Author: Colin Blundell <blundell@chromium.org>
+Date:   Thu Feb 23 14:19:33 2023 +0000
+
+    [Ozone] Invert layering of GLImageNativePixmap & NativePixmapEGLBinding
+    
+    NativePixmapEGLBinding is currently a thin layer on top of
+    GLImageNativePixmap. This CL inverts the layering so that
+    GLImageNativePixmap instead sits on top of NativePixmapEGLBinding
+    (via the public Ozone ImportNativePixmap() method, for which all
+    implementations return NativePixmapEGLBinding). Note that this entails
+    moving GLImageNativePixmap into //gpu, as //ui/gl cannot depend on
+    //ozone/public.
+    
+    This inversion means that
+    (a) the SharedImage Ozone backing/representations no longer use GLImage
+    (b) when we no longer need GLImageNativePixmap we can simply directly
+    eliminate it.
+    
+    Followup CLs will fold NativePixmapEGLBindingHelper into
+    NativePixmapEGLBinding and make GLImageNativePixmap creation private
+    with friending to ensure that no more usage of the deprecated class
+    creeps in.
+    
+    Bug: 1412692
+    Change-Id: I5f01e9b1f616dd99b61cd203662d0d02d3da7b3e
+    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4262390
+    Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
+    Reviewed-by: ccameron chromium <ccameron@chromium.org>
+    Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
+    Commit-Queue: Colin Blundell <blundell@chromium.org>
+    Cr-Commit-Position: refs/heads/main@{#1108909}
+
+diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn
+index d08be597e3e5d..5ad724dd57bbb 100644
+--- a/gpu/command_buffer/service/BUILD.gn
++++ b/gpu/command_buffer/service/BUILD.gn
+@@ -397,6 +397,8 @@ target(link_target_type, "gles2_sources") {
+ 
+   if (use_ozone) {
+     sources += [
++      "shared_image/gl_image_native_pixmap.cc",
++      "shared_image/gl_image_native_pixmap.h",
+       "shared_image/gl_ozone_image_representation.cc",
+       "shared_image/gl_ozone_image_representation.h",
+       "shared_image/ozone_image_backing.cc",
+diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
+index e3f5b3c5721cf..a297347c19670 100644
+--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
++++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
+@@ -120,10 +120,10 @@
+ #endif
+ 
+ #if BUILDFLAG(IS_OZONE)
++#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
+ #include "ui/gfx/buffer_format_util.h"
+ #include "ui/gfx/buffer_usage_util.h"
+ #include "ui/gfx/native_pixmap.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
+ #include "ui/ozone/public/ozone_platform.h"
+ #include "ui/ozone/public/surface_factory_ozone.h"
+ #endif
+@@ -499,7 +499,7 @@ class BackTexture {
+ #if BUILDFLAG(IS_OZONE)
+   // The image that backs the texture, if its backed by a native
+   // GpuMemoryBuffer.
+-  scoped_refptr<gl::GLImageNativePixmap> image_;
++  scoped_refptr<GLImageNativePixmap> image_;
+ #endif
+ };
+ 
+@@ -2522,7 +2522,7 @@ class GLES2DecoderImpl : public GLES2Decoder,
+   // Note: Creation of anonymous images is possible only on Ozone.
+ #if BUILDFLAG(IS_OZONE)
+   bool SupportsCreateAnonymousImage();
+-  scoped_refptr<gl::GLImageNativePixmap> CreateAnonymousImage(
++  scoped_refptr<GLImageNativePixmap> CreateAnonymousImage(
+       const gfx::Size& size,
+       gfx::BufferFormat format,
+       bool* is_cleared,
+@@ -3242,7 +3242,7 @@ bool BackTexture::AllocateNativeGpuMemoryBuffer(const gfx::Size& size,
+     // duplicate BGRX_8888.
+     buffer_format = gfx::BufferFormat::BGRX_8888;
+   }
+-  scoped_refptr<gl::GLImageNativePixmap> image = decoder_->CreateAnonymousImage(
++  scoped_refptr<GLImageNativePixmap> image = decoder_->CreateAnonymousImage(
+       size, buffer_format, &is_cleared, Target(), id());
+   if (!image)
+     return false;
+@@ -19592,7 +19592,7 @@ bool GLES2DecoderImpl::SupportsCreateAnonymousImage() {
+       .supports_native_pixmaps;
+ }
+ 
+-scoped_refptr<gl::GLImageNativePixmap> GLES2DecoderImpl::CreateAnonymousImage(
++scoped_refptr<GLImageNativePixmap> GLES2DecoderImpl::CreateAnonymousImage(
+     const gfx::Size& size,
+     gfx::BufferFormat format,
+     bool* is_cleared,
+@@ -19612,8 +19612,8 @@ scoped_refptr<gl::GLImageNativePixmap> GLES2DecoderImpl::CreateAnonymousImage(
+                << gfx::BufferUsageToString(usage);
+     return nullptr;
+   }
+-  auto image = gl::GLImageNativePixmap::Create(size, format, std::move(pixmap),
+-                                               target, texture_id);
++  auto image = GLImageNativePixmap::Create(size, format, std::move(pixmap),
++                                           target, texture_id);
+   if (!image) {
+     LOG(ERROR) << "Failed to create GLImage " << size.ToString() << ", "
+                << gfx::BufferFormatToString(format) << ", usage "
+diff --git a/ui/gl/gl_image_native_pixmap.cc b/gpu/command_buffer/service/shared_image/gl_image_native_pixmap.cc
+similarity index 73%
+rename from ui/gl/gl_image_native_pixmap.cc
+rename to gpu/command_buffer/service/shared_image/gl_image_native_pixmap.cc
+index 6cbe7be2899de..d9101fbda893b 100644
+--- a/ui/gl/gl_image_native_pixmap.cc
++++ b/gpu/command_buffer/service/shared_image/gl_image_native_pixmap.cc
+@@ -2,9 +2,13 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
+-#include "ui/gl/gl_image_native_pixmap.h"
++#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
+ 
+-namespace gl {
++#include "ui/ozone/public/native_pixmap_gl_binding.h"
++#include "ui/ozone/public/ozone_platform.h"
++#include "ui/ozone/public/surface_factory_ozone.h"
++
++namespace gpu {
+ 
+ scoped_refptr<GLImageNativePixmap> GLImageNativePixmap::Create(
+     const gfx::Size& size,
+@@ -47,18 +51,18 @@ bool GLImageNativePixmap::InitializeFromNativePixmap(
+     const gfx::ColorSpace& color_space,
+     GLenum target,
+     GLuint texture_id) {
+-  binding_helper_ = NativePixmapEGLBindingHelper::CreateForPlane(
+-      size_, format, plane, std::move(pixmap), color_space, target, texture_id);
++  pixmap_gl_binding_ =
++      ui::OzonePlatform::GetInstance()
++          ->GetSurfaceFactoryOzone()
++          ->GetCurrentGLOzone()
++          ->ImportNativePixmap(std::move(pixmap), format, plane, size_,
++                               color_space, target, texture_id);
+ 
+-  return !!binding_helper_;
++  return !!pixmap_gl_binding_;
+ }
+ 
+ gfx::Size GLImageNativePixmap::GetSize() {
+   return size_;
+ }
+ 
+-unsigned GLImageNativePixmap::GetInternalFormat() {
+-  return binding_helper_->GetInternalFormat();
+-}
+-
+-}  // namespace gl
++}  // namespace gpu
+diff --git a/ui/gl/gl_image_native_pixmap.h b/gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h
+similarity index 72%
+rename from ui/gl/gl_image_native_pixmap.h
+rename to gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h
+index 5ff5e91b3ec18..4087360b04b45 100644
+--- a/ui/gl/gl_image_native_pixmap.h
++++ b/gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h
+@@ -2,21 +2,24 @@
+ // Use of this source code is governed by a BSD-style license that can be
+ // found in the LICENSE file.
+ 
+-#ifndef UI_GL_GL_IMAGE_NATIVE_PIXMAP_H_
+-#define UI_GL_GL_IMAGE_NATIVE_PIXMAP_H_
++#ifndef GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
++#define GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
+ 
+ #include <stdint.h>
+ 
++#include "gpu/gpu_gles2_export.h"
+ #include "ui/gfx/color_space.h"
+ #include "ui/gfx/native_pixmap.h"
+ #include "ui/gl/gl_bindings.h"
+-#include "ui/gl/gl_export.h"
+ #include "ui/gl/gl_image.h"
+-#include "ui/gl/native_pixmap_egl_binding_helper.h"
+ 
+-namespace gl {
++namespace ui {
++class NativePixmapGLBinding;
++}
+ 
+-class GL_EXPORT GLImageNativePixmap : public GLImage {
++namespace gpu {
++
++class GPU_GLES2_EXPORT GLImageNativePixmap : public gl::GLImage {
+  public:
+   // Create an EGLImage from a given NativePixmap and bind |texture_id| to
+   // |target| following by binding the image to |target|.
+@@ -41,22 +44,15 @@ class GL_EXPORT GLImageNativePixmap : public GLImage {
+       GLenum target,
+       GLuint texture_id);
+ 
+-  // Get the GL internal format of the image.
+-  // It is aligned with glTexImage{2|3}D's parameter |internalformat|.
+-  unsigned GetInternalFormat();
+-
+   // Overridden from GLImage:
+   gfx::Size GetSize() override;
+ 
+- protected:
+-  ~GLImageNativePixmap() override;
+-
+  private:
+   explicit GLImageNativePixmap(const gfx::Size& size);
++  ~GLImageNativePixmap() override;
+ 
+-  // Create an EGLImage from a given NativePixmap and bind |texture_id| to
+-  // |target| followed by binding the image to |target|. This EGLImage can be
+-  // converted to a GL texture.
++  // Create a NativePixmapGLBinding from a given NativePixmap. Returns true iff
++  // the binding was successfully created.
+   bool InitializeFromNativePixmap(gfx::BufferFormat format,
+                                   gfx::BufferPlane plane,
+                                   scoped_refptr<gfx::NativePixmap> pixmap,
+@@ -64,10 +60,10 @@ class GL_EXPORT GLImageNativePixmap : public GLImage {
+                                   GLenum target,
+                                   GLuint texture_id);
+ 
+-  std::unique_ptr<NativePixmapEGLBindingHelper> binding_helper_;
++  std::unique_ptr<ui::NativePixmapGLBinding> pixmap_gl_binding_;
+   const gfx::Size size_;
+ };
+ 
+-}  // namespace gl
++}  // namespace gpu
+ 
+-#endif  // UI_GL_GL_IMAGE_NATIVE_PIXMAP_H_
++#endif  // GPU_COMMAND_BUFFER_SERVICE_SHARED_IMAGE_GL_IMAGE_NATIVE_PIXMAP_H_
+diff --git a/gpu/command_buffer/service/shared_image/gl_ozone_image_representation.h b/gpu/command_buffer/service/shared_image/gl_ozone_image_representation.h
+index 31723894088e1..ade337bde9966 100644
+--- a/gpu/command_buffer/service/shared_image/gl_ozone_image_representation.h
++++ b/gpu/command_buffer/service/shared_image/gl_ozone_image_representation.h
+@@ -14,7 +14,6 @@
+ #include "gpu/command_buffer/service/shared_image/shared_image_representation.h"
+ #include "gpu/command_buffer/service/texture_manager.h"
+ #include "ui/gfx/native_pixmap.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
+ #include "ui/ozone/public/native_pixmap_gl_binding.h"
+ 
+ namespace gpu {
+diff --git a/gpu/command_buffer/service/shared_image/ozone_image_backing.cc b/gpu/command_buffer/service/shared_image/ozone_image_backing.cc
+index 8d4a7d9306eb1..7a652ae425c0e 100644
+--- a/gpu/command_buffer/service/shared_image/ozone_image_backing.cc
++++ b/gpu/command_buffer/service/shared_image/ozone_image_backing.cc
+@@ -36,7 +36,6 @@
+ #include "ui/gfx/native_pixmap.h"
+ #include "ui/gfx/native_widget_types.h"
+ #include "ui/gl/buildflags.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
+ 
+ #if BUILDFLAG(ENABLE_VULKAN)
+ #include "gpu/command_buffer/service/shared_image/skia_vk_ozone_image_representation.h"
+diff --git a/media/gpu/v4l2/BUILD.gn b/media/gpu/v4l2/BUILD.gn
+index 12e6b66cf7b89..ff7b5a1a50a38 100644
+--- a/media/gpu/v4l2/BUILD.gn
++++ b/media/gpu/v4l2/BUILD.gn
+@@ -98,6 +98,7 @@ source_set("v4l2") {
+     ":libv4l2_stubs",
+     ":v4l2_status",
+     "//base",
++    "//gpu/command_buffer/service:gles2",
+     "//gpu/ipc/common",
+     "//gpu/ipc/service",
+     "//media",
+diff --git a/media/gpu/v4l2/generic_v4l2_device.cc b/media/gpu/v4l2/generic_v4l2_device.cc
+index bdbb256ed578c..337ec0e7b372b 100644
+--- a/media/gpu/v4l2/generic_v4l2_device.cc
++++ b/media/gpu/v4l2/generic_v4l2_device.cc
+@@ -23,6 +23,7 @@
+ #include "base/strings/stringprintf.h"
+ #include "base/trace_event/trace_event.h"
+ #include "build/build_config.h"
++#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
+ #include "media/base/video_types.h"
+ #include "media/gpu/buildflags.h"
+ #include "media/gpu/chromeos/fourcc.h"
+@@ -32,7 +33,6 @@
+ #include "ui/gfx/native_pixmap_handle.h"
+ #include "ui/gl/egl_util.h"
+ #include "ui/gl/gl_bindings.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
+ #include "ui/ozone/public/ozone_platform.h"
+ #include "ui/ozone/public/surface_factory_ozone.h"
+ 
+@@ -281,7 +281,7 @@ EGLImageKHR GenericV4L2Device::CreateEGLImage(
+   return egl_image;
+ }
+ 
+-scoped_refptr<gl::GLImageNativePixmap> GenericV4L2Device::CreateGLImage(
++scoped_refptr<gpu::GLImageNativePixmap> GenericV4L2Device::CreateGLImage(
+     const gfx::Size& size,
+     const Fourcc fourcc,
+     gfx::NativePixmapHandle handle,
+@@ -317,7 +317,7 @@ scoped_refptr<gl::GLImageNativePixmap> GenericV4L2Device::CreateGLImage(
+   DCHECK(pixmap);
+ 
+   // TODO(b/220336463): plumb the right color space.
+-  auto image = gl::GLImageNativePixmap::Create(
++  auto image = gpu::GLImageNativePixmap::Create(
+       size, buffer_format, std::move(pixmap), target, texture_id);
+   DCHECK(image);
+   return image;
+diff --git a/media/gpu/v4l2/generic_v4l2_device.h b/media/gpu/v4l2/generic_v4l2_device.h
+index bb9ce391c15bd..fd84aee27097e 100644
+--- a/media/gpu/v4l2/generic_v4l2_device.h
++++ b/media/gpu/v4l2/generic_v4l2_device.h
+@@ -55,7 +55,7 @@ class GenericV4L2Device : public V4L2Device {
+                              const Fourcc fourcc,
+                              gfx::NativePixmapHandle handle) const override;
+ 
+-  scoped_refptr<gl::GLImageNativePixmap> CreateGLImage(
++  scoped_refptr<gpu::GLImageNativePixmap> CreateGLImage(
+       const gfx::Size& size,
+       const Fourcc fourcc,
+       gfx::NativePixmapHandle handle,
+diff --git a/media/gpu/v4l2/v4l2_device.h b/media/gpu/v4l2/v4l2_device.h
+index bdc39bf65ae38..ee74cbcd39957 100644
+--- a/media/gpu/v4l2/v4l2_device.h
++++ b/media/gpu/v4l2/v4l2_device.h
+@@ -28,6 +28,7 @@
+ #include "base/files/scoped_file.h"
+ #include "base/memory/ref_counted.h"
+ #include "base/sequence_checker.h"
++#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
+ #include "media/base/video_codecs.h"
+ #include "media/base/video_decoder_config.h"
+ #include "media/base/video_frame.h"
+@@ -42,7 +43,6 @@
+ #include "ui/gfx/geometry/size.h"
+ #include "ui/gfx/native_pixmap_handle.h"
+ #include "ui/gl/gl_bindings.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
+ 
+ // TODO(mojahsu): remove this once V4L2 headers are updated.
+ #ifndef V4L2_PIX_FMT_JPEG_RAW
+@@ -777,7 +777,7 @@ class MEDIA_GPU_EXPORT V4L2Device
+ 
+   // Create a GLImageNativePixmap from provided |handle|, taking full ownership
+   // of it.
+-  virtual scoped_refptr<gl::GLImageNativePixmap> CreateGLImage(
++  virtual scoped_refptr<gpu::GLImageNativePixmap> CreateGLImage(
+       const gfx::Size& size,
+       const Fourcc fourcc,
+       gfx::NativePixmapHandle handle,
+diff --git a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
+index a51acedc105b7..78cc605e986e6 100644
+--- a/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
++++ b/media/gpu/v4l2/v4l2_slice_video_decode_accelerator.cc
+@@ -30,6 +30,7 @@
+ #include "base/time/time.h"
+ #include "base/trace_event/memory_dump_manager.h"
+ #include "base/trace_event/trace_event.h"
++#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
+ #include "media/base/bind_to_current_loop.h"
+ #include "media/base/media_switches.h"
+ #include "media/base/scopedfd_helper.h"
+@@ -49,7 +50,6 @@
+ #include "ui/gl/gl_bindings.h"
+ #include "ui/gl/gl_context.h"
+ #include "ui/gl/gl_display.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
+ #include "ui/gl/gl_surface_egl.h"
+ #include "ui/gl/scoped_binders.h"
+ 
+@@ -1444,7 +1444,7 @@ void V4L2SliceVideoDecodeAccelerator::CreateGLImageFor(
+     return;
+   }
+ 
+-  scoped_refptr<gl::GLImageNativePixmap> gl_image =
++  scoped_refptr<gpu::GLImageNativePixmap> gl_image =
+       gl_device->CreateGLImage(visible_size, fourcc, std::move(handle),
+                                gl_device->GetTextureTarget(), texture_id);
+   if (!gl_image) {
+diff --git a/media/gpu/vaapi/BUILD.gn b/media/gpu/vaapi/BUILD.gn
+index 1ecf8854d02e7..7687384553806 100644
+--- a/media/gpu/vaapi/BUILD.gn
++++ b/media/gpu/vaapi/BUILD.gn
+@@ -96,6 +96,7 @@ source_set("vaapi") {
+     ":vaapi_status",
+     "//base",
+     "//build:chromeos_buildflags",
++    "//gpu/command_buffer/service:gles2",
+     "//gpu/config",
+     "//gpu/ipc/common",
+     "//gpu/ipc/service",
+diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
+index 06617ffec8e5a..626dda6312213 100644
+--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc
+@@ -4,6 +4,7 @@
+ 
+ #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h"
+ 
++#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
+ #include "media/base/format_utils.h"
+ #include "media/gpu/buffer_validation.h"
+ #include "media/gpu/chromeos/platform_video_frame_utils.h"
+@@ -15,7 +16,6 @@
+ #include "ui/gfx/linux/native_pixmap_dmabuf.h"
+ #include "ui/gfx/native_pixmap.h"
+ #include "ui/gl/gl_bindings.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
+ #include "ui/gl/scoped_binders.h"
+ #include "ui/ozone/public/ozone_platform.h"
+ #include "ui/ozone/public/surface_factory_ozone.h"
+@@ -87,7 +87,7 @@ VaapiStatus VaapiPictureNativePixmapOzone::Initialize(
+   const gfx::BufferFormat format = pixmap->GetBufferFormat();
+ 
+   // TODO(b/220336463): plumb the right color space.
+-  auto image = gl::GLImageNativePixmap::Create(
++  auto image = gpu::GLImageNativePixmap::Create(
+       visible_size_, format, std::move(pixmap),
+       base::strict_cast<GLenum>(texture_target_),
+       base::strict_cast<GLuint>(texture_id_));
+diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h b/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h
+index 101728f36c1e1..eaced9a8ccadf 100644
+--- a/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h
++++ b/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h
+@@ -17,7 +17,7 @@ namespace gfx {
+ class NativePixmap;
+ }  // namespace gfx
+ 
+-namespace gl {
++namespace gpu {
+ class GLImageNativePixmap;
+ }
+ 
+@@ -55,7 +55,7 @@ class VaapiPictureNativePixmapOzone : public VaapiPictureNativePixmap {
+   VaapiStatus Initialize(scoped_refptr<gfx::NativePixmap> pixmap);
+ 
+   // GLImage bound to the GL textures used by the VDA client.
+-  scoped_refptr<gl::GLImageNativePixmap> gl_image_;
++  scoped_refptr<gpu::GLImageNativePixmap> gl_image_;
+ };
+ 
+ }  // namespace media
+diff --git a/ui/gfx/linux/native_pixmap_dmabuf.h b/ui/gfx/linux/native_pixmap_dmabuf.h
+index 7f134110417ea..f12d4f5eac89d 100644
+--- a/ui/gfx/linux/native_pixmap_dmabuf.h
++++ b/ui/gfx/linux/native_pixmap_dmabuf.h
+@@ -17,7 +17,7 @@
+ namespace gfx {
+ 
+ // This class converts a gfx::NativePixmapHandle to a gfx::NativePixmap.
+-// It is useful because gl::GLImageNativePixmap::Initialize only takes
++// It is useful because gpu::GLImageNativePixmap::Initialize only takes
+ // a gfx::NativePixmap as input.
+ class GFX_EXPORT NativePixmapDmaBuf : public gfx::NativePixmap {
+  public:
+diff --git a/ui/gl/BUILD.gn b/ui/gl/BUILD.gn
+index cc23c0a8b4c64..2a07859c4dad8 100644
+--- a/ui/gl/BUILD.gn
++++ b/ui/gl/BUILD.gn
+@@ -226,8 +226,6 @@ component("gl") {
+ 
+     if (is_linux || is_chromeos || use_ozone) {
+       sources += [
+-        "gl_image_native_pixmap.cc",
+-        "gl_image_native_pixmap.h",
+         "native_pixmap_egl_binding_helper.cc",
+         "native_pixmap_egl_binding_helper.h",
+       ]
+diff --git a/ui/ozone/common/native_pixmap_egl_binding.cc b/ui/ozone/common/native_pixmap_egl_binding.cc
+index 8dce01a41281e..2e18e73eb6cbb 100644
+--- a/ui/ozone/common/native_pixmap_egl_binding.cc
++++ b/ui/ozone/common/native_pixmap_egl_binding.cc
+@@ -8,7 +8,7 @@
+ #include "base/memory/scoped_refptr.h"
+ #include "base/notreached.h"
+ #include "ui/gl/gl_bindings.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
++#include "ui/gl/native_pixmap_egl_binding_helper.h"
+ 
+ namespace ui {
+ 
+@@ -50,9 +50,9 @@ unsigned BufferFormatToGLDataType(gfx::BufferFormat format) {
+ }  // namespace
+ 
+ NativePixmapEGLBinding::NativePixmapEGLBinding(
+-    scoped_refptr<gl::GLImageNativePixmap> gl_image,
++    std::unique_ptr<gl::NativePixmapEGLBindingHelper> binding_helper,
+     gfx::BufferFormat format)
+-    : gl_image_(std::move(gl_image)), format_(format) {}
++    : binding_helper_(std::move(binding_helper)), format_(format) {}
+ NativePixmapEGLBinding::~NativePixmapEGLBinding() = default;
+ 
+ // static
+@@ -64,22 +64,22 @@ std::unique_ptr<NativePixmapGLBinding> NativePixmapEGLBinding::Create(
+     const gfx::ColorSpace& color_space,
+     GLenum target,
+     GLuint texture_id) {
+-  auto gl_image = gl::GLImageNativePixmap::CreateForPlane(
++  auto binding_helper = gl::NativePixmapEGLBindingHelper::CreateForPlane(
+       plane_size, plane_format, plane, std::move(pixmap), color_space, target,
+       texture_id);
+-  if (!gl_image) {
+-    LOG(ERROR) << "Unable to initialize GL image from pixmap";
++  if (!binding_helper) {
++    LOG(ERROR) << "Unable to initialize binding from pixmap";
+     return nullptr;
+   }
+ 
+-  auto binding = std::make_unique<NativePixmapEGLBinding>(std::move(gl_image),
+-                                                          plane_format);
++  auto binding = std::make_unique<NativePixmapEGLBinding>(
++      std::move(binding_helper), plane_format);
+ 
+   return binding;
+ }
+ 
+ GLuint NativePixmapEGLBinding::GetInternalFormat() {
+-  return gl_image_->GetInternalFormat();
++  return binding_helper_->GetInternalFormat();
+ }
+ 
+ GLenum NativePixmapEGLBinding::GetDataType() {
+diff --git a/ui/ozone/common/native_pixmap_egl_binding.h b/ui/ozone/common/native_pixmap_egl_binding.h
+index 44d68be3527a4..c0382b1068426 100644
+--- a/ui/ozone/common/native_pixmap_egl_binding.h
++++ b/ui/ozone/common/native_pixmap_egl_binding.h
+@@ -15,16 +15,17 @@ class ColorSpace;
+ }
+ 
+ namespace gl {
+-class GLImageNativePixmap;
++class NativePixmapEGLBindingHelper;
+ }
+ 
+ namespace ui {
+ 
+-// A binding maintained between GLImageNativePixmap and GL Textures in Ozone.
++// A binding maintained between NativePixmap and GL Textures in Ozone.
+ class NativePixmapEGLBinding : public NativePixmapGLBinding {
+  public:
+-  NativePixmapEGLBinding(scoped_refptr<gl::GLImageNativePixmap> gl_image,
+-                         gfx::BufferFormat format);
++  NativePixmapEGLBinding(
++      std::unique_ptr<gl::NativePixmapEGLBindingHelper> binding_helper,
++      gfx::BufferFormat format);
+   ~NativePixmapEGLBinding() override;
+ 
+   static std::unique_ptr<NativePixmapGLBinding> Create(
+@@ -41,10 +42,7 @@ class NativePixmapEGLBinding : public NativePixmapGLBinding {
+   GLenum GetDataType() override;
+ 
+  private:
+-  // TODO(hitawala): Merge BindTexImage, Initialize from GLImage and its
+-  // subclass NativePixmap to NativePixmapEGLBinding once we stop using them
+-  // elsewhere eg. VDA decoders in media.
+-  scoped_refptr<gl::GLImageNativePixmap> gl_image_;
++  std::unique_ptr<gl::NativePixmapEGLBindingHelper> binding_helper_;
+ 
+   gfx::BufferFormat format_;
+ };
+diff --git a/ui/ozone/gl/BUILD.gn b/ui/ozone/gl/BUILD.gn
+index 4fc90f0471362..6064eb6f83a8c 100644
+--- a/ui/ozone/gl/BUILD.gn
++++ b/ui/ozone/gl/BUILD.gn
+@@ -9,6 +9,14 @@ test("ozone_gl_unittests") {
+ 
+   deps = [
+     "//base/test:test_support",
++
++    # NOTE: The above tests of gpu::GLImageNativePixmap cannot easily be made
++    # to run as part of //gpu's gl_tests or gpu_unittests: they crash when run
++    # with the former due to differences in GL configuration, and they are
++    # skipped when run with the latter due to differences in Ozone
++    # configuration. Simply leave them here with this dependency for the short
++    # time remaining until GLImageNativePixmap is eliminated altogether.
++    "//gpu/command_buffer/service:gles2",
+     "//testing/gtest",
+     "//ui/gfx",
+     "//ui/gl:run_all_unittests",
+diff --git a/ui/ozone/gl/DEPS b/ui/ozone/gl/DEPS
+new file mode 100644
+index 0000000000000..e6142e85d2154
+--- /dev/null
++++ b/ui/ozone/gl/DEPS
+@@ -0,0 +1,6 @@
++specific_include_rules = {
++  # NOTE: See comment in ./BUILD.gn with respect to this dependency.
++  "gl_image_ozone_native_pixmap_unittest\.cc": [
++    "+gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h",
++  ],
++}
+diff --git a/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc b/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
+index 9a538903c8ff0..1527df91a3238 100644
+--- a/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
++++ b/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
+@@ -5,10 +5,10 @@
+ #include <stdint.h>
+ #include <memory>
+ 
++#include "gpu/command_buffer/service/shared_image/gl_image_native_pixmap.h"
+ #include "testing/gtest/include/gtest/gtest.h"
+ #include "ui/gfx/buffer_types.h"
+ #include "ui/gfx/client_native_pixmap.h"
+-#include "ui/gl/gl_image_native_pixmap.h"
+ #include "ui/gl/test/gl_image_test_template.h"
+ #include "ui/ozone/public/client_native_pixmap_factory_ozone.h"
+ #include "ui/ozone/public/ozone_platform.h"
+@@ -83,7 +83,7 @@ class GLImageNativePixmapTestDelegate : public GLImageTestDelegateBase {
+       glGenTextures(1, &texture_id_);
+     }
+ 
+-    auto image = gl::GLImageNativePixmap::Create(
++    auto image = gpu::GLImageNativePixmap::Create(
+         size, format, std::move(pixmap), GetTextureTarget(), texture_id_);
+     EXPECT_TRUE(image);
+     return image;
+@@ -100,8 +100,9 @@ class GLImageNativePixmapTestDelegate : public GLImageTestDelegateBase {
+         format == gfx::BufferFormat::YUV_420_BIPLANAR) {
+       return 1;
+     }
+-    if (format == gfx::BufferFormat::P010)
++    if (format == gfx::BufferFormat::P010) {
+       return 3;
++    }
+     return 0;
+   }
+ 

diff --git a/chromium-113-WebUIDarkMode.patch b/chromium-113-WebUIDarkMode.patch
new file mode 100644
index 0000000..6841bcc
--- /dev/null
+++ b/chromium-113-WebUIDarkMode.patch
@@ -0,0 +1,454 @@
+diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
+index 3470da1..ff39851b 100644
+--- a/chrome/browser/ui/BUILD.gn
++++ b/chrome/browser/ui/BUILD.gn
+@@ -5628,8 +5628,12 @@
+         sources += [
+           "views/chrome_browser_main_extra_parts_views_linux.cc",
+           "views/chrome_browser_main_extra_parts_views_linux.h",
++          "views/dark_mode_manager_linux.cc",
++          "views/dark_mode_manager_linux.h",
+         ]
+         deps += [
++          "//components/dbus/thread_linux",
++          "//dbus",
+           "//ui/base/cursor",
+           "//ui/ozone",
+         ]
+diff --git a/chrome/browser/ui/DEPS b/chrome/browser/ui/DEPS
+index fc3fab23..b56a704e 100644
+--- a/chrome/browser/ui/DEPS
++++ b/chrome/browser/ui/DEPS
+@@ -42,6 +42,9 @@
+   "browser_navigator_browsertest\.cc": [
+     "+ash/shell.h",
+   ],
++  "dark_mode_manager_linux\.cc": [
++    "+dbus",
++  ],
+   "fullscreen_controller_interactive_browsertest\.cc": [
+     "+ash/shell.h",
+   ],
+diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+index dbc9cc4e..d7fad5b 100644
+--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
++++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+@@ -7,6 +7,7 @@
+ #include "base/metrics/histogram_macros.h"
+ #include "chrome/browser/themes/theme_service_aura_linux.h"
+ #include "chrome/browser/ui/browser_list.h"
++#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
+ #include "chrome/browser/ui/views/theme_profile_key.h"
+ #include "ui/base/buildflags.h"
+ #include "ui/base/cursor/cursor_factory.h"
+@@ -56,6 +57,8 @@
+     UMA_HISTOGRAM_ENUMERATION("Linux.SystemTheme.Default",
+                               linux_ui_theme->GetNativeTheme()->system_theme());
+   }
++
++  dark_mode_manager_ = std::make_unique<ui::DarkModeManagerLinux>();
+ }
+ 
+ void ChromeBrowserMainExtraPartsViewsLinux::PreCreateThreads() {
+diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
+index 392d14c..6deb520 100644
+--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
++++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
+@@ -13,6 +13,7 @@
+ 
+ namespace ui {
+ class LinuxUiGetter;
++class DarkModeManagerLinux;
+ }
+ 
+ // Extra parts, which are used by both Ozone/X11/Wayland and inherited by the
+@@ -41,6 +42,8 @@
+   absl::optional<display::ScopedDisplayObserver> display_observer_;
+ 
+   std::unique_ptr<ui::LinuxUiGetter> linux_ui_getter_;
++
++  std::unique_ptr<ui::DarkModeManagerLinux> dark_mode_manager_;
+ };
+ 
+ #endif  // CHROME_BROWSER_UI_VIEWS_CHROME_BROWSER_MAIN_EXTRA_PARTS_VIEWS_LINUX_H_
+diff --git a/chrome/browser/ui/views/dark_mode_manager_linux.cc b/chrome/browser/ui/views/dark_mode_manager_linux.cc
+new file mode 100644
+index 0000000..bb638f7
+--- /dev/null
++++ b/chrome/browser/ui/views/dark_mode_manager_linux.cc
+@@ -0,0 +1,160 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
++
++#include "base/functional/bind.h"
++#include "base/logging.h"
++#include "components/dbus/thread_linux/dbus_thread_linux.h"
++#include "dbus/bus.h"
++#include "dbus/message.h"
++#include "dbus/object_proxy.h"
++#include "ui/linux/linux_ui.h"
++#include "ui/linux/linux_ui_factory.h"
++#include "ui/native_theme/native_theme.h"
++
++namespace {
++
++constexpr char kFreedesktopSettingsService[] = "org.freedesktop.portal.Desktop";
++constexpr char kFreedesktopSettingsObjectPath[] =
++    "/org/freedesktop/portal/desktop";
++constexpr char kFreedesktopSettingsInterface[] =
++    "org.freedesktop.portal.Settings";
++constexpr char kSettingChangedSignal[] = "SettingChanged";
++constexpr char kReadMethod[] = "Read";
++constexpr char kSettingsNamespace[] = "org.freedesktop.appearance";
++constexpr char kColorSchemeKey[] = "color-scheme";
++constexpr int kFreedesktopColorSchemeDark = 1;
++
++scoped_refptr<dbus::Bus> CreateBus() {
++  dbus::Bus::Options options;
++  options.bus_type = dbus::Bus::SESSION;
++  options.connection_type = dbus::Bus::PRIVATE;
++  options.dbus_task_runner = dbus_thread_linux::GetTaskRunner();
++  return base::MakeRefCounted<dbus::Bus>(options);
++}
++
++}  // namespace
++
++namespace ui {
++
++DarkModeManagerLinux::DarkModeManagerLinux()
++    : bus_(CreateBus()),
++      settings_proxy_(bus_->GetObjectProxy(
++          kFreedesktopSettingsService,
++          dbus::ObjectPath(kFreedesktopSettingsObjectPath))) {
++  // Subscribe to changes in the color scheme preference.
++  settings_proxy_->ConnectToSignal(
++      kFreedesktopSettingsInterface, kSettingChangedSignal,
++      base::BindRepeating(&DarkModeManagerLinux::OnPortalSettingChanged,
++                          weak_ptr_factory_.GetWeakPtr()),
++      base::BindOnce(&DarkModeManagerLinux::OnSignalConnected,
++                     weak_ptr_factory_.GetWeakPtr()));
++
++  // Read initial color scheme preference.
++  dbus::MethodCall method_call(kFreedesktopSettingsInterface, kReadMethod);
++  dbus::MessageWriter writer(&method_call);
++  writer.AppendString(kSettingsNamespace);
++  writer.AppendString(kColorSchemeKey);
++  settings_proxy_->CallMethod(
++      &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT,
++      base::BindOnce(&DarkModeManagerLinux::OnReadColorSchemeResponse,
++                     weak_ptr_factory_.GetWeakPtr()));
++
++  // Read the toolkit preference while asynchronously fetching the
++  // portal preference.
++  if (auto* linux_ui_theme = ui::GetDefaultLinuxUiTheme()) {
++    auto* native_theme = linux_ui_theme->GetNativeTheme();
++    native_theme_observer_.Observe(native_theme);
++    SetColorScheme(native_theme->ShouldUseDarkColors());
++  }
++}
++
++DarkModeManagerLinux::~DarkModeManagerLinux() {
++  settings_proxy_ = nullptr;
++  dbus::Bus* const bus_ptr = bus_.get();
++  bus_ptr->GetDBusTaskRunner()->PostTask(
++      FROM_HERE, base::BindOnce(&dbus::Bus::ShutdownAndBlock, std::move(bus_)));
++}
++
++void DarkModeManagerLinux::OnNativeThemeUpdated(
++    ui::NativeTheme* observed_theme) {
++  SetColorScheme(observed_theme->ShouldUseDarkColors());
++}
++
++void DarkModeManagerLinux::OnSignalConnected(const std::string& interface_name,
++                                             const std::string& signal_name,
++                                             bool connected) {
++  // Nothing to do.  Continue using the toolkit setting if !connected.
++}
++
++void DarkModeManagerLinux::OnPortalSettingChanged(dbus::Signal* signal) {
++  dbus::MessageReader reader(signal);
++
++  std::string namespace_changed;
++  std::string key_changed;
++  dbus::MessageReader variant_reader(nullptr);
++  if (!reader.PopString(&namespace_changed) ||
++      !reader.PopString(&key_changed) || !reader.PopVariant(&variant_reader)) {
++    LOG(ERROR) << "Received malformed Setting Changed signal from "
++                  "org.freedesktop.portal.Settings";
++    return;
++  }
++
++  if (namespace_changed != kSettingsNamespace ||
++      key_changed != kColorSchemeKey) {
++    return;
++  }
++
++  uint32_t new_color_scheme;
++  if (!variant_reader.PopUint32(&new_color_scheme)) {
++    LOG(ERROR)
++        << "Failed to read color-scheme value from SettingChanged signal";
++    return;
++  }
++
++  SetColorScheme(new_color_scheme == kFreedesktopColorSchemeDark);
++}
++
++void DarkModeManagerLinux::OnReadColorSchemeResponse(dbus::Response* response) {
++  if (!response) {
++    // Continue using the toolkit setting.
++    return;
++  }
++
++  dbus::MessageReader reader(response);
++  dbus::MessageReader variant_reader(nullptr);
++  if (!reader.PopVariant(&variant_reader)) {
++    LOG(ERROR) << "Failed to read variant from Read method response";
++    return;
++  }
++
++  uint32_t new_color_scheme;
++  if (!variant_reader.PopVariantOfUint32(&new_color_scheme)) {
++    LOG(ERROR) << "Failed to read color-scheme value from Read "
++                  "method response";
++    return;
++  }
++
++  // Ignore future updates from the toolkit theme.
++  native_theme_observer_.Reset();
++
++  SetColorScheme(new_color_scheme == kFreedesktopColorSchemeDark);
++}
++
++void DarkModeManagerLinux::SetColorScheme(bool prefer_dark_theme) {
++  if (prefer_dark_theme_ == prefer_dark_theme) {
++    return;
++  }
++  prefer_dark_theme_ = prefer_dark_theme;
++
++  NativeTheme* web_theme = NativeTheme::GetInstanceForWeb();
++  web_theme->set_use_dark_colors(prefer_dark_theme_);
++  web_theme->set_preferred_color_scheme(
++      prefer_dark_theme_ ? NativeTheme::PreferredColorScheme::kDark
++                         : NativeTheme::PreferredColorScheme::kLight);
++  web_theme->NotifyOnNativeThemeUpdated();
++}
++
++}  // namespace ui
+diff --git a/chrome/browser/ui/views/dark_mode_manager_linux.h b/chrome/browser/ui/views/dark_mode_manager_linux.h
+new file mode 100644
+index 0000000..34b07ff
+--- /dev/null
++++ b/chrome/browser/ui/views/dark_mode_manager_linux.h
+@@ -0,0 +1,62 @@
++// Copyright 2023 The Chromium Authors
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++
++#ifndef CHROME_BROWSER_UI_VIEWS_DARK_MODE_MANAGER_LINUX_H_
++#define CHROME_BROWSER_UI_VIEWS_DARK_MODE_MANAGER_LINUX_H_
++
++#include <string>
++
++#include "base/memory/scoped_refptr.h"
++#include "base/memory/weak_ptr.h"
++#include "base/scoped_observation.h"
++#include "ui/native_theme/native_theme_observer.h"
++
++namespace dbus {
++class Bus;
++class ObjectProxy;
++class Response;
++class Signal;
++}  // namespace dbus
++
++namespace ui {
++
++// Observes the system color scheme preference using
++// org.freedesktop.portal.Settings. Falls back to the toolkit preference if
++// org.freedesktop.portal.Settings is unavailable.  Propagates the dark mode
++// preference to the web theme.
++class DarkModeManagerLinux : public NativeThemeObserver {
++ public:
++  DarkModeManagerLinux();
++  DarkModeManagerLinux(const DarkModeManagerLinux&) = delete;
++  DarkModeManagerLinux& operator=(const DarkModeManagerLinux&) = delete;
++  ~DarkModeManagerLinux() override;
++
++ private:
++  // ui::NativeThemeObserver:
++  void OnNativeThemeUpdated(ui::NativeTheme* observed_theme) override;
++
++  // D-Bus async handlers
++  void OnSignalConnected(const std::string& interface_name,
++                         const std::string& signal_name,
++                         bool connected);
++  void OnPortalSettingChanged(dbus::Signal* signal);
++  void OnReadColorSchemeResponse(dbus::Response* response);
++
++  // Sets `prefer_dark_theme_` and propagates to the web theme.
++  void SetColorScheme(bool prefer_dark_theme);
++
++  scoped_refptr<dbus::Bus> bus_;
++  raw_ptr<dbus::ObjectProxy> settings_proxy_;
++
++  bool prefer_dark_theme_ = false;
++
++  base::ScopedObservation<NativeTheme, NativeThemeObserver>
++      native_theme_observer_{this};
++
++  base::WeakPtrFactory<DarkModeManagerLinux> weak_ptr_factory_{this};
++};
++
++}  // namespace ui
++
++#endif  // CHROME_BROWSER_UI_VIEWS_DARK_MODE_MANAGER_LINUX_H_
+diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
+index 91b1e98..7adddbd 100644
+--- a/chrome/common/chrome_features.cc
++++ b/chrome/common/chrome_features.cc
+@@ -1448,17 +1448,17 @@
+ BASE_FEATURE(kWebShare, "WebShare", base::FEATURE_DISABLED_BY_DEFAULT);
+ #endif
+ 
+-// Whether to enable "dark mode" enhancements in Mac Mojave or Windows 10 for
+-// UIs implemented with web technologies.
++// Whether to enable "dark mode" enhancements in Mac Mojave, Windows 10, or
++// Linux for UIs implemented with web technologies.
+ BASE_FEATURE(kWebUIDarkMode,
+              "WebUIDarkMode",
+ #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) || \
+-    BUILDFLAG(IS_CHROMEOS)
++    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+              base::FEATURE_ENABLED_BY_DEFAULT
+ #else
+              base::FEATURE_DISABLED_BY_DEFAULT
+ #endif  // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_ANDROID) ||
+-        // BUILDFLAG(IS_CHROMEOS)
++        // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX)
+ );
+ 
+ #if BUILDFLAG(IS_CHROMEOS_ASH)
+diff --git a/ui/qt/qt_ui.cc b/ui/qt/qt_ui.cc
+index b188ad0..6c0d2cd 100644
+--- a/ui/qt/qt_ui.cc
++++ b/ui/qt/qt_ui.cc
+@@ -98,6 +98,13 @@
+   QtNativeTheme& operator=(const QtNativeTheme&) = delete;
+   ~QtNativeTheme() override = default;
+ 
++  void ThemeChanged(bool prefer_dark_theme) {
++    set_use_dark_colors(IsForcedDarkMode() || prefer_dark_theme);
++    set_preferred_color_scheme(CalculatePreferredColorScheme());
++
++    NotifyOnNativeThemeUpdated();
++  }
++
+   // ui::NativeTheme:
+   DISABLE_CFI_VCALL
+   void PaintFrameTopArea(cc::PaintCanvas* canvas,
+@@ -387,7 +394,7 @@
+ }
+ 
+ void QtUi::ThemeChanged() {
+-  native_theme_->NotifyOnNativeThemeUpdated();
++  native_theme_->ThemeChanged(PreferDarkTheme());
+ }
+ 
+ DISABLE_CFI_VCALL
+diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
+index decfb02b6817e..108e2af907e25 100644
+--- a/chrome/browser/ui/BUILD.gn
++++ b/chrome/browser/ui/BUILD.gn
+@@ -5632,20 +5632,24 @@ static_library("ui") {
+       ]
+     }
+ 
+-    if (use_aura) {
++    if (use_aura && (is_linux || is_chromeos_lacros)) {
+       # These files can do Gtk+-based theming for builds with gtk enabled.
+-      if (is_linux || is_chromeos_lacros) {
++      sources += [
++        "views/chrome_browser_main_extra_parts_views_linux.cc",
++        "views/chrome_browser_main_extra_parts_views_linux.h",
++      ]
++      deps += [
++        "//ui/base/cursor",
++        "//ui/ozone",
++      ]
++      if (use_dbus) {
+         sources += [
+-          "views/chrome_browser_main_extra_parts_views_linux.cc",
+-          "views/chrome_browser_main_extra_parts_views_linux.h",
+           "views/dark_mode_manager_linux.cc",
+           "views/dark_mode_manager_linux.h",
+         ]
+         deps += [
+           "//components/dbus/thread_linux",
+           "//dbus",
+-          "//ui/base/cursor",
+-          "//ui/ozone",
+         ]
+       }
+     }
+diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+index d7fad5b5b9007..23d0611fdb2b5 100644
+--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
++++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+@@ -7,7 +7,6 @@
+ #include "base/metrics/histogram_macros.h"
+ #include "chrome/browser/themes/theme_service_aura_linux.h"
+ #include "chrome/browser/ui/browser_list.h"
+-#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
+ #include "chrome/browser/ui/views/theme_profile_key.h"
+ #include "ui/base/buildflags.h"
+ #include "ui/base/cursor/cursor_factory.h"
+@@ -19,6 +18,10 @@
+ #include "ui/native_theme/native_theme.h"
+ #include "ui/ozone/public/ozone_platform.h"
+ 
++#if defined(USE_DBUS)
++#include "chrome/browser/ui/views/dark_mode_manager_linux.h"
++#endif
++
+ namespace {
+ 
+ class LinuxUiGetterImpl : public ui::LinuxUiGetter {
+@@ -57,8 +60,9 @@ void ChromeBrowserMainExtraPartsViewsLinux::ToolkitInitialized() {
+     UMA_HISTOGRAM_ENUMERATION("Linux.SystemTheme.Default",
+                               linux_ui_theme->GetNativeTheme()->system_theme());
+   }
+-
++#if defined(USE_DBUS)
+   dark_mode_manager_ = std::make_unique<ui::DarkModeManagerLinux>();
++#endif
+ }
+ 
+ void ChromeBrowserMainExtraPartsViewsLinux::PreCreateThreads() {
+diff --git a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
+index 6deb5205d198a..bc9167bda1fc3 100644
+--- a/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
++++ b/chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.h
+@@ -13,7 +13,9 @@
+ 
+ namespace ui {
+ class LinuxUiGetter;
++#if defined(USE_DBUS)
+ class DarkModeManagerLinux;
++#endif
+ }
+ 
+ // Extra parts, which are used by both Ozone/X11/Wayland and inherited by the
+@@ -42,8 +44,9 @@ class ChromeBrowserMainExtraPartsViewsLinux
+   absl::optional<display::ScopedDisplayObserver> display_observer_;
+ 
+   std::unique_ptr<ui::LinuxUiGetter> linux_ui_getter_;
+-
++#if defined(USE_DBUS)
+   std::unique_ptr<ui::DarkModeManagerLinux> dark_mode_manager_;
++#endif
+ };
+ 
+ #endif  // CHROME_BROWSER_UI_VIEWS_CHROME_BROWSER_MAIN_EXTRA_PARTS_VIEWS_LINUX_H_

diff --git a/chromium-92.0.4515.107-py2-bootstrap.patch b/chromium-92.0.4515.107-py2-bootstrap.patch
deleted file mode 100644
index ea09033..0000000
--- a/chromium-92.0.4515.107-py2-bootstrap.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -up chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2 chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py
---- chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py.py2	2021-07-19 14:47:19.000000000 -0400
-+++ chromium-92.0.4515.107/third_party/catapult/common/py_vulcanize/py_vulcanize/generate.py	2021-07-26 17:02:23.160750472 -0400
-@@ -83,7 +83,7 @@ def _MinifyJS(input_js):
- 
-   with tempfile.NamedTemporaryFile() as _:
-     args = [
--        'python',
-+        'python2',
-         rjsmin_path
-     ]
-     p = subprocess.Popen(args,
-diff -up chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py.py2 chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py
---- chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py.py2	2021-07-19 14:45:43.000000000 -0400
-+++ chromium-92.0.4515.107/tools/gn/bootstrap/bootstrap.py	2021-07-26 17:02:23.160750472 -0400
-@@ -130,7 +130,7 @@ def main(argv):
-     if not options.debug:
-       gn_gen_args += ' is_debug=false'
-     subprocess.check_call([
--        gn_path, 'gen', out_dir,
-+        gn_path, 'gen', out_dir, ' --script-executable=/usr/bin/python2',
-         '--args=%s' % gn_gen_args, "--root=" + SRC_ROOT
-     ])
- 

diff --git a/chromium-browser.sh b/chromium-browser.sh
index 5c95ef8..492a496 100755
--- a/chromium-browser.sh
+++ b/chromium-browser.sh
@@ -52,4 +52,10 @@ CHROMIUM_DISTRO_FLAGS=" --enable-plugins \
                         --enable-sync \
                         --auto-ssl-client-auth @@EXTRA_FLAGS@@"
 
+# Sanitize std{in,out,err} because they'll be shared with untrusted child
+# processes (http://crbug.com/376567).
+exec < /dev/null
+exec > >(exec cat)
+exec 2> >(exec cat >&2)
+
 exec -a "$0" "$HERE/@@CHROMIUM_BROWSER_CHANNEL@@" $CHROMIUM_FLAGS $CHROMIUM_DISTRO_FLAGS "$@"

diff --git a/chromium.conf b/chromium.conf
index bf46e2c..dcaa798 100644
--- a/chromium.conf
+++ b/chromium.conf
@@ -1,8 +1,5 @@
 # system wide chromium flags
 CHROMIUM_FLAGS=""
-CHROMIUM_FLAGS+=" --disable-features=AudioServiceSandbox,UseChromeOSDirectVideoDecoder,AllowQt"
+CHROMIUM_FLAGS+=" --disable-features=AudioServiceSandbox,UseChromeOSDirectVideoDecoder"
 CHROMIUM_FLAGS+=" --enable-features=VaapiVideoDecoder,VaapiVideoEncoder"
-
-if [ "$XDG_SESSION_TYPE" == "wayland" ] || [[ $WAYLAND_DISPLAY ]] ; then
-  CHROMIUM_FLAGS+=" --use-gl=egl"
-fi
+CHROMIUM_FLAGS+=" --use-gl=egl"

diff --git a/chromium.spec b/chromium.spec
index d23fa1b..2b95841 100644
--- a/chromium.spec
+++ b/chromium.spec
@@ -241,8 +241,8 @@
 %endif
 
 Name:	chromium%{chromium_channel}
-Version: 112.0.5615.121
-Release: 1%{?dist}
+Version: 112.0.5615.165
+Release: 2%{?dist}
 Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use
 Url: http://www.chromium.org/Home
 License: BSD-3-Clause AND LGPL-2.1-or-later AND Apache-2.0 AND IJG AND MIT AND GPL-2.0-or-later AND ISC AND OpenSSL AND (MPL-1.1 OR GPL-2.0-only OR LGPL-2.0-only)
@@ -319,8 +319,8 @@ Patch90: chromium-109-disable-GlobalMediaControlsCastStartStop.patch
 # patch for using system opus
 Patch91: chromium-108-system-opus.patch
 
-# fix prefers-color-scheme
-Patch92: chromium-110-gtktheme.patch
+# enable WebUIDarkMode
+Patch92: chromium-113-WebUIDarkMode.patch
 
 # need to explicitly include a kernel header on EL7 to support MFD_CLOEXEC, F_SEAL_SHRINK, F_ADD_SEALS, F_SEAL_SEAL
 Patch100: chromium-108-el7-include-fcntl-memfd.patch
@@ -347,9 +347,6 @@ Patch106: chromium-98.0.4758.80-epel7-erase-fix.patch
 # Add additional operator== to make el7 happy.
 Patch107: chromium-99.0.4844.51-el7-extra-operator==.patch
 
-# Split out ios shared feed protos
-Patch108: chromium-112-feed_protos.patch
-
 # system ffmpeg
 Patch114: chromium-107-ffmpeg-duration.patch
 Patch115: chromium-107-proprietary-codecs.patch
@@ -370,6 +367,8 @@ Patch146: chromium-110-LargerThan4k.patch
 # VAAPI
 # Upstream turned VAAPI on in Linux in 86
 Patch202: chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch
+Patch203: chromium-112-check-passthrough-command-decoder.patch
+Patch204: chromium-112-invert_of_GLImageNativePixmap_NativePixmapEGLBinding.patch
 Patch205: chromium-86.0.4240.75-fix-vaapi-on-intel.patch
 Patch206: chromium-112-ozone-wayland-vaapi-support.patch
 Patch207: chromium-112-enable-vaapi-ozone-wayland.patch
@@ -425,7 +424,7 @@ BuildRequires: %{toolset}-%{dts_version}-libatomic-devel
 %if 0%{?rhel} == 7 || 0%{?rhel} == 8
 BuildRequires: %{toolset}-%{dts_version}-toolchain, %{toolset}-%{dts_version}-libatomic-devel
 %endif
-%if 0{?fedora} || 0%{?rhel} > 8
+%if 0%{?fedora} || 0%{?rhel} > 8
 BuildRequires: gcc-c++
 BuildRequires: gcc
 BuildRequires: binutils
@@ -931,7 +930,7 @@ udev.
 %patch -P91 -p1 -b .system-opus
 %endif
 
-%patch -P92 -p1 -b .gtk-prefers-color-scheme
+%patch -P92 -p1 -b .WebUIDarkMod
 
 # Fedora branded user agent
 %if 0%{?fedora}
@@ -958,10 +957,6 @@ 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
 
 %patch -P146 -p1 -b .LargerThan4k
@@ -971,6 +966,8 @@ udev.
 # Feature specific patches
 %if %{use_vaapi}
 %patch -P202 -p1 -b .accel-mjpeg
+%patch -P203 -p1 -R -b .revert
+%patch -P204 -p1 -R -b .revert
 %patch -P205 -p1 -b .vaapi-intel-fix
 %patch -P206 -p1 -b .wayland-vaapi
 %patch -P207 -p1 -b .enable-wayland-vaapi
@@ -980,7 +977,7 @@ udev.
 %patch -P300 -p1 -b .disblegnomekeyring
 %endif
 
-%if 0%{?rhel} == 8
+%if %{clang} && 0%{?rhel} == 8
 %patch -P301 -p1 -b .clang14_c++20
 %endif
 
@@ -1040,9 +1037,11 @@ sed -i 's|moc|moc-qt5|g' ui/qt/moc_wrapper.py
 export LANG=en_US.UTF-8
 
 # reduce warnings
+%if %{clang}
 FLAGS=' -Wno-deprecated-declarations -Wno-unknown-warning-option -Wno-unused-command-line-argument'
 FLAGS+=' -Wno-unused-but-set-variable -Wno-unused-result -Wno-unused-function -Wno-unused-variable'
 FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration'
+%endif
 
 %if %{system_build_flags}
 CFLAGS=${CFLAGS/-g }
@@ -1061,16 +1060,18 @@ CXXFLAGS="$FLAGS"
 %if %{clang}
 export CC=clang
 export CXX=clang++
+export AR=llvm-ar
+export NM=llvm-nm
+export READELF=llvm-readelf
 %else
 export CC=gcc
 export CXX=g++ 
+export AR=ar
+export NM=nm
+export READELF=readelf
 %endif
 export CFLAGS
 export CXXFLAGS
-export LDFLAGS="$LDFLAGS -Wl,--threads=4"
-export AR="llvm-ar"
-export NM="llvm-nm"
-export READELF="llvm-readelf"
 
 # enable toolset on el7
 %if 0%{?rhel} == 7
@@ -1142,6 +1143,7 @@ CHROMIUM_CORE_GN_DEFINES+=' enable_vr=false'
 CHROMIUM_CORE_GN_DEFINES+=' build_dawn_tests=false enable_perfetto_unittests=false'
 CHROMIUM_CORE_GN_DEFINES+=' disable_fieldtrial_testing_config=true'
 CHROMIUM_CORE_GN_DEFINES+=' blink_symbol_level=0 symbol_level=0 v8_symbol_level=0'
+CHROMIUM_CORE_GN_DEFINES+=' blink_enable_generated_code_formatting=false'
 export CHROMIUM_CORE_GN_DEFINES
 
 # browser gn defines
@@ -1653,6 +1655,18 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt
 %{chromium_path}/chromedriver
 
 %changelog
+* Sun Apr 23 2023 Than Ngo <than@redhat.com> - 112.0.5615.165-2
+- make --use-gl=egl default for x11/wayland
+- enable WebUIDarkMode
+
+* Thu Apr 20 2023 Than Ngo <than@redhat.com> - 112.0.5615.165-1
+- update to 112.0.5615.165
+
+* Mon Apr 17 2023 Than Ngo <than@redhat.com> - 112.0.5615.121-2
+- fix vaapi issue on xwayland
+- fix the build order, chrome_feed_response_metadata.pb.h file not found
+- fix compiler flags and typo
+
 * Sat Apr 15 2023 Than Ngo <than@redhat.com> - 112.0.5615.121-1
 - update to 112.0.5615.121
 

diff --git a/sources b/sources
index 2871077..2425ca7 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.121-clean.tar.xz) = 4dfb8abb5ae475f069ff18d98c6b8c5a241187ce2ed5d85d6bc6ac33efdcca6a657539df50b3836baca93190aff96676d6673a1a554b48394cb4625aaea0275d
+SHA512 (chromium-112.0.5615.165-clean.tar.xz) = 68f8f4f0e8add04e608c1d285351b38de0199ac5635b29dcce653b30435e68431f92ea7b381d6fe6cb4ffd5b1910e66ed6f82aab62a8fab952cb969a40f7456a

^ 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: Merge #34 `Use proper python3 print syntax` Than Ngo

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