diff --git a/chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch b/chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch deleted file mode 100644 index 06116e4..0000000 --- a/chromium-104.0.5112.101-enable-hardware-accelerated-mjpeg.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff -up chromium-104.0.5112.101/chrome/browser/about_flags.cc.accel-mjpeg chromium-104.0.5112.101/chrome/browser/about_flags.cc ---- chromium-104.0.5112.101/chrome/browser/about_flags.cc.accel-mjpeg 2022-08-16 23:29:08.000000000 +0000 -+++ chromium-104.0.5112.101/chrome/browser/about_flags.cc 2022-08-18 14:21:36.762266571 +0000 -@@ -4485,12 +4485,12 @@ const FeatureEntry kFeatureEntries[] = { - flag_descriptions::kWebXrForceRuntimeDescription, kOsDesktop, - MULTI_VALUE_TYPE(kWebXrForceRuntimeChoices)}, - #endif // ENABLE_VR --#if BUILDFLAG(IS_CHROMEOS_ASH) -+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX) - {"disable-accelerated-mjpeg-decode", - flag_descriptions::kAcceleratedMjpegDecodeName, -- flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS, -+ flag_descriptions::kAcceleratedMjpegDecodeDescription, kOsCrOS | kOsLinux, - SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAcceleratedMjpegDecode)}, --#endif // BUILDFLAG(IS_CHROMEOS_ASH) -+#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX) - {"system-keyboard-lock", flag_descriptions::kSystemKeyboardLockName, - flag_descriptions::kSystemKeyboardLockDescription, kOsDesktop, - FEATURE_VALUE_TYPE(features::kSystemKeyboardLock)}, -diff -up chromium-104.0.5112.101/chrome/browser/flag_descriptions.cc.accel-mjpeg chromium-104.0.5112.101/chrome/browser/flag_descriptions.cc ---- chromium-104.0.5112.101/chrome/browser/flag_descriptions.cc.accel-mjpeg 2022-08-16 23:29:09.000000000 +0000 -+++ chromium-104.0.5112.101/chrome/browser/flag_descriptions.cc 2022-08-18 14:25:23.609572649 +0000 -@@ -4170,7 +4170,7 @@ const char kUseAngleGL[] = "OpenGL"; - - // ChromeOS ------------------------------------------------------------------- - --#if BUILDFLAG(IS_CHROMEOS_ASH) -+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX) - - const char kAcceleratedMjpegDecodeName[] = - "Hardware-accelerated mjpeg decode for captured frame"; -@@ -4178,6 +4178,10 @@ const char kAcceleratedMjpegDecodeDescri - "Enable hardware-accelerated mjpeg decode for captured frame where " - "available."; - -+#endif -+ -+#if BUILDFLAG(IS_CHROMEOS_ASH) -+ - const char kAdaptiveChargingForTestingName[] = - "Show adaptive charging notifications for testing"; - const char kAdaptiveChargingForTestingDescription[] = -diff -up chromium-104.0.5112.101/chrome/browser/flag_descriptions.h.accel-mjpeg chromium-104.0.5112.101/chrome/browser/flag_descriptions.h ---- chromium-104.0.5112.101/chrome/browser/flag_descriptions.h.accel-mjpeg 2022-08-18 14:21:36.765266469 +0000 -+++ chromium-104.0.5112.101/chrome/browser/flag_descriptions.h 2022-08-18 14:26:10.469983301 +0000 -@@ -2390,11 +2390,15 @@ extern const char kUseAngleGL[]; - - // ChromeOS ------------------------------------------------------------------- - --#if BUILDFLAG(IS_CHROMEOS_ASH) -+#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX) - - extern const char kAcceleratedMjpegDecodeName[]; - extern const char kAcceleratedMjpegDecodeDescription[]; - -+#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_LINUX) -+ -+#if BUILDFLAG(IS_CHROMEOS_ASH) -+ - extern const char kAdaptiveChargingName[]; - extern const char kAdaptiveChargingDescription[]; - diff --git a/chromium-109-disable-GlobalMediaControlsCastStartStop.patch b/chromium-109-disable-GlobalMediaControlsCastStartStop.patch deleted file mode 100644 index ae492a3..0000000 --- a/chromium-109-disable-GlobalMediaControlsCastStartStop.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -up chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc ---- chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop 2023-01-11 15:27:50.587737070 +0100 -+++ chromium-109.0.5414.74/chrome/browser/media/router/media_router_feature.cc 2023-01-11 15:30:35.136829951 +0100 -@@ -48,15 +48,9 @@ BASE_FEATURE(kMediaRemotingWithoutFullsc - "MediaRemotingWithoutFullscreen", - base::FEATURE_DISABLED_BY_DEFAULT); - --#if BUILDFLAG(IS_CHROMEOS) - BASE_FEATURE(kGlobalMediaControlsCastStartStop, - "GlobalMediaControlsCastStartStop", - base::FEATURE_DISABLED_BY_DEFAULT); --#else --BASE_FEATURE(kGlobalMediaControlsCastStartStop, -- "GlobalMediaControlsCastStartStop", -- base::FEATURE_ENABLED_BY_DEFAULT); --#endif // BUILDFLAG(IS_CHROMEOS) - - #endif // BUILDFLAG(IS_ANDROID) - diff --git a/chromium-112-check-passthrough-command-decoder.patch b/chromium-112-check-passthrough-command-decoder.patch deleted file mode 100644 index 55fa1e0..0000000 --- a/chromium-112-check-passthrough-command-decoder.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 041cb248e818823caaaabc67db92b16499d0416d Mon Sep 17 00:00:00 2001 -From: Vasiliy Telezhnikov -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 -Commit-Queue: Vasiliy Telezhnikov -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-enable-vaapi-ozone-wayland.patch b/chromium-112-enable-vaapi-ozone-wayland.patch deleted file mode 100644 index 1a75ce3..0000000 --- a/chromium-112-enable-vaapi-ozone-wayland.patch +++ /dev/null @@ -1,21 +0,0 @@ -author Yaowei Zhou Thu Feb 02 06:18:34 2023 -committer Yaowei Zhou Thu Feb 02 06:18:34 2023 -tree 62a79c7f155fc32140d3aa4c4a6b01b8d7eddfcc -parent 98e427b87ff8447180a60f20ee3792dcbd649481 [diff] -Enable VA-API flag on ozone wayland - -Bug: POC -Change-Id: I09f696bfe3be82930161ce005152d1397b93f636 -diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc -index b3190c6b..4a2c3bb 100644 ---- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc -+++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc -@@ -309,6 +309,8 @@ - properties->supports_global_screen_coordinates = - features::IsWaylandScreenCoordinatesEnabled(); - -+ properties->supports_vaapi_x11 = true; -+ - initialised = true; - } - diff --git a/chromium-108-ffmpeg-first_dts.patch b/chromium-112-ffmpeg-first_dts.patch similarity index 51% rename from chromium-108-ffmpeg-first_dts.patch rename to chromium-112-ffmpeg-first_dts.patch index 42b6313..6a8ab13 100644 --- a/chromium-108-ffmpeg-first_dts.patch +++ b/chromium-112-ffmpeg-first_dts.patch @@ -1,27 +1,29 @@ -diff -up chromium-108.0.5359.124/AUTHORS.first_dts chromium-108.0.5359.124/AUTHORS ---- chromium-108.0.5359.124/AUTHORS.first_dts 2022-12-31 15:30:52.923006393 +0100 -+++ chromium-108.0.5359.124/AUTHORS 2022-12-31 15:32:50.431215836 +0100 -@@ -97,6 +97,7 @@ Andra Paraschiv - Andreas Nazlidis - Andreas Papacharalampous -+Andreas Schneider - Andrei Borza - Andrei Parvu - Andrei Parvu -diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc ---- chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts 2022-12-14 01:39:52.000000000 +0100 -+++ chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc 2022-12-31 15:30:52.923006393 +0100 -@@ -58,7 +58,7 @@ namespace media { - - namespace { - --constexpr int64_t kInvalidPTSMarker = static_cast(0x8000000000000000); -+constexpr int64_t kRelativeTsBase = static_cast(0x7ffeffffffffffff); - - void SetAVStreamDiscard(AVStream* stream, AVDiscard discard) { - DCHECK(stream); -@@ -91,7 +91,7 @@ static base::TimeDelta FramesToTimeDelta +From 2aef9000a1c8d76d3072365ffcb471ebffa20d3d Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +Date: Tue, 15 Mar 2022 14:26:16 +0100 +Subject: [PATCH] Track first_dts instead of using non-upstream functions + +The function av_stream_get_first_dts() is not an upstream ffmpeg function and +is not available if you build with system ffmpeg. We can easily track the +first_dts on our own. + +See also +https://ffmpeg.org/pipermail/ffmpeg-devel/2021-September/285401.html + +Bug: 1306560 + +Signed-off-by: Andreas Schneider +Change-Id: I90ba3cf2f2e16f56a0b405f26c67f911349fb71d +--- + media/filters/ffmpeg_demuxer.cc | 18 ++++++++++++------ + media/filters/ffmpeg_demuxer.h | 3 +++ + 3 files changed, 16 insertions(+), 6 deletions(-) + +diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc +index 111899b661..799fc6e941 100644 +--- a/media/filters/ffmpeg_demuxer.cc ++++ b/media/filters/ffmpeg_demuxer.cc +@@ -97,7 +97,7 @@ static base::TimeDelta FramesToTimeDelta(int frames, double sample_rate) { sample_rate); } @@ -30,7 +32,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom // The default start time is zero. base::TimeDelta start_time; -@@ -101,12 +101,12 @@ static base::TimeDelta ExtractStartTime( +@@ -107,12 +107,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) { // Next try to use the first DTS value, for codecs where we know PTS == DTS // (excludes all H26x codecs). The start time must be returned in PTS. @@ -45,7 +47,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom if (first_pts < start_time) start_time = first_pts; } -@@ -275,6 +275,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream +@@ -283,6 +283,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream( fixup_negative_timestamps_(false), fixup_chained_ogg_(false), num_discarded_packet_warnings_(0), @@ -53,27 +55,18 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom last_packet_pos_(AV_NOPTS_VALUE), last_packet_dts_(AV_NOPTS_VALUE) { DCHECK(demuxer_); -@@ -341,6 +342,11 @@ void FFmpegDemuxerStream::EnqueuePacket( +@@ -349,6 +350,10 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) { int64_t packet_dts = packet->dts == AV_NOPTS_VALUE ? packet->pts : packet->dts; -+ if (first_dts_ == AV_NOPTS_VALUE && packet->dts != AV_NOPTS_VALUE && -+ last_packet_dts_ != AV_NOPTS_VALUE) { -+ first_dts_ = packet->dts - (last_packet_dts_ + kRelativeTsBase); ++ if (first_dts_ == AV_NOPTS_VALUE) { ++ first_dts_ = packet_dts; + } + // Chained ogg files have non-monotonically increasing position and time stamp // values, which prevents us from using them to determine if a packet should // be dropped. Since chained ogg is only allowed on single track audio only -@@ -683,6 +689,7 @@ void FFmpegDemuxerStream::FlushBuffers(b - ResetBitstreamConverter(); - - if (!preserve_packet_position) { -+ first_dts_ = AV_NOPTS_VALUE; - last_packet_pos_ = AV_NOPTS_VALUE; - last_packet_dts_ = AV_NOPTS_VALUE; - } -@@ -1434,7 +1441,8 @@ void FFmpegDemuxer::OnFindStreamInfoDone +@@ -1442,7 +1447,8 @@ void FFmpegDemuxer::OnFindStreamInfoDone(int result) { max_duration = std::max(max_duration, streams_[i]->duration()); @@ -83,7 +76,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom // Note: This value is used for seeking, so we must take the true value and // not the one possibly clamped to zero below. -@@ -1591,7 +1599,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::Find +@@ -1599,7 +1605,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindStreamWithLowestStartTimestamp( for (const auto& stream : streams_) { if (!stream || stream->IsEnabled() != enabled) continue; @@ -92,7 +85,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom continue; if (!lowest_start_time_stream || stream->start_time() < lowest_start_time_stream->start_time()) { -@@ -1612,7 +1620,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::Find +@@ -1620,7 +1626,7 @@ FFmpegDemuxerStream* FFmpegDemuxer::FindPreferredStreamForSeeking( if (stream->type() != DemuxerStream::VIDEO) continue; @@ -101,17 +94,11 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.cc.first_dts chrom continue; if (!stream->IsEnabled()) -@@ -1926,4 +1934,4 @@ void FFmpegDemuxer::RunPendingSeekCB(Pip - std::move(pending_seek_cb_).Run(status); - } - --} // namespace media -+} // namespace media -\ Kein Zeilenumbruch am Dateiende. -diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h.first_dts chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h ---- chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h.first_dts 2022-12-14 01:39:52.000000000 +0100 -+++ chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h 2022-12-31 15:30:52.924006403 +0100 -@@ -145,6 +145,8 @@ class MEDIA_EXPORT FFmpegDemuxerStream : +diff --git a/media/filters/ffmpeg_demuxer.h b/media/filters/ffmpeg_demuxer.h +index c147309d6f..48a8f6ad8c 100644 +--- a/media/filters/ffmpeg_demuxer.h ++++ b/media/filters/ffmpeg_demuxer.h +@@ -151,6 +151,8 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream { base::TimeDelta start_time() const { return start_time_; } void set_start_time(base::TimeDelta time) { start_time_ = time; } @@ -120,7 +107,7 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h.first_dts chromi private: friend class FFmpegDemuxerTest; -@@ -202,6 +204,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : +@@ -208,6 +210,7 @@ class MEDIA_EXPORT FFmpegDemuxerStream : public DemuxerStream { bool fixup_chained_ogg_; int num_discarded_packet_warnings_; @@ -128,3 +115,6 @@ diff -up chromium-108.0.5359.124/media/filters/ffmpeg_demuxer.h.first_dts chromi int64_t last_packet_pos_; int64_t last_packet_dts_; }; +-- +2.35.1 + diff --git a/chromium-112-invert_of_GLImageNativePixmap_NativePixmapEGLBinding.patch b/chromium-112-invert_of_GLImageNativePixmap_NativePixmapEGLBinding.patch deleted file mode 100644 index 80fe156..0000000 --- a/chromium-112-invert_of_GLImageNativePixmap_NativePixmapEGLBinding.patch +++ /dev/null @@ -1,630 +0,0 @@ -commit 7f0858c08dcef70ca26ce8527bbedfcc5c5218d3 -Author: Colin Blundell -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 - Reviewed-by: ccameron chromium - Reviewed-by: Andres Calderon Jaramillo - Commit-Queue: Colin Blundell - 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 image_; -+ scoped_refptr 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 CreateAnonymousImage( -+ scoped_refptr 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 image = decoder_->CreateAnonymousImage( -+ scoped_refptr 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 GLES2DecoderImpl::CreateAnonymousImage( -+scoped_refptr GLES2DecoderImpl::CreateAnonymousImage( - const gfx::Size& size, - gfx::BufferFormat format, - bool* is_cleared, -@@ -19612,8 +19612,8 @@ scoped_refptr 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::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 - -+#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 pixmap, -@@ -64,10 +60,10 @@ class GL_EXPORT GLImageNativePixmap : public GLImage { - GLenum target, - GLuint texture_id); - -- std::unique_ptr binding_helper_; -+ std::unique_ptr 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 GenericV4L2Device::CreateGLImage( -+scoped_refptr GenericV4L2Device::CreateGLImage( - const gfx::Size& size, - const Fourcc fourcc, - gfx::NativePixmapHandle handle, -@@ -317,7 +317,7 @@ scoped_refptr 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 CreateGLImage( -+ scoped_refptr 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 CreateGLImage( -+ virtual scoped_refptr 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_image = -+ scoped_refptr 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(texture_target_), - base::strict_cast(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 pixmap); - - // GLImage bound to the GL textures used by the VDA client. -- scoped_refptr gl_image_; -+ scoped_refptr 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_image, -+ std::unique_ptr 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 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(std::move(gl_image), -- plane_format); -+ auto binding = std::make_unique( -+ 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_image, -- gfx::BufferFormat format); -+ NativePixmapEGLBinding( -+ std::unique_ptr binding_helper, -+ gfx::BufferFormat format); - ~NativePixmapEGLBinding() override; - - static std::unique_ptr 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_image_; -+ std::unique_ptr 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 - #include - -+#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-112-norar.patch b/chromium-112-norar.patch deleted file mode 100644 index 41e54ef..0000000 --- a/chromium-112-norar.patch +++ /dev/null @@ -1,79 +0,0 @@ -diff -up chromium-112.0.5615.20/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-112.0.5615.20/chrome/common/safe_browsing/BUILD.gn ---- chromium-112.0.5615.20/chrome/common/safe_browsing/BUILD.gn.nounrar 2023-03-08 23:00:09.000000000 +0100 -+++ chromium-112.0.5615.20/chrome/common/safe_browsing/BUILD.gn 2023-03-10 16:02:12.970759171 +0100 -@@ -58,25 +58,6 @@ if (safe_browsing_mode == 1) { - public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ] - } - -- source_set("rar_analyzer") { -- sources = [ -- "rar_analyzer.cc", -- "rar_analyzer.h", -- ] -- -- deps = [ -- ":archive_analyzer_results", -- ":download_type_util", -- "//base", -- "//base:i18n", -- "//components/safe_browsing/content/common:file_type_policies", -- "//components/safe_browsing/core/common", -- "//third_party/unrar:unrar", -- ] -- -- public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ] -- } -- - if (is_linux || is_win) { - source_set("document_analyzer") { - sources = [ -@@ -172,7 +153,6 @@ source_set("safe_browsing") { - ":archive_analyzer_results", - ":binary_feature_extractor", - ":download_type_util", -- ":rar_analyzer", - "//components/safe_browsing/core/common", - "//third_party/lzma_sdk/google:seven_zip_reader", - ] -diff -up chromium-112.0.5615.20/chrome/common/safe_browsing/DEPS.nounrar chromium-112.0.5615.20/chrome/common/safe_browsing/DEPS ---- chromium-112.0.5615.20/chrome/common/safe_browsing/DEPS.nounrar 2023-03-08 23:00:09.000000000 +0100 -+++ chromium-112.0.5615.20/chrome/common/safe_browsing/DEPS 2023-03-10 13:20:06.558188423 +0100 -@@ -3,7 +3,6 @@ include_rules = [ - "+components/safe_browsing/core/common", - "+third_party/maldoca", - "+third_party/protobuf", -- "+third_party/unrar", - "+third_party/zlib", - "+third_party/lzma_sdk/google", - ] -diff -up chromium-112.0.5615.20/chrome/services/file_util/BUILD.gn.nounrar chromium-112.0.5615.20/chrome/services/file_util/BUILD.gn ---- chromium-112.0.5615.20/chrome/services/file_util/BUILD.gn.nounrar 2023-03-08 23:00:09.000000000 +0100 -+++ chromium-112.0.5615.20/chrome/services/file_util/BUILD.gn 2023-03-10 13:20:06.558188423 +0100 -@@ -60,7 +60,6 @@ source_set("file_util") { - deps += [ - "//chrome/common/safe_browsing", - "//chrome/common/safe_browsing:archive_analyzer_results", -- "//chrome/common/safe_browsing:rar_analyzer", - ] - - if (is_linux || is_win) { -diff -up chromium-112.0.5615.20/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-112.0.5615.20/chrome/services/file_util/safe_archive_analyzer.cc ---- chromium-112.0.5615.20/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2023-03-08 23:00:09.000000000 +0100 -+++ chromium-112.0.5615.20/chrome/services/file_util/safe_archive_analyzer.cc 2023-03-10 13:20:06.558188423 +0100 -@@ -45,12 +45,16 @@ void SafeArchiveAnalyzer::AnalyzeDmgFile - void SafeArchiveAnalyzer::AnalyzeRarFile(base::File rar_file, - base::File temporary_file, - AnalyzeRarFileCallback callback) { -+#if 0 - DCHECK(rar_file.IsValid()); - - safe_browsing::ArchiveAnalyzerResults results; - safe_browsing::rar_analyzer::AnalyzeRarFile( - std::move(rar_file), std::move(temporary_file), &results); - std::move(callback).Run(results); -+#else -+ NOTREACHED(); -+#endif - } - - void SafeArchiveAnalyzer::AnalyzeSevenZipFile( diff --git a/chromium-112-ozone-wayland-vaapi-support.patch b/chromium-112-ozone-wayland-vaapi-support.patch deleted file mode 100644 index 3f4d4af..0000000 --- a/chromium-112-ozone-wayland-vaapi-support.patch +++ /dev/null @@ -1,625 +0,0 @@ -diff -up chromium-112.0.5615.49/media/gpu/args.gni.wayland-vaapi chromium-112.0.5615.49/media/gpu/args.gni ---- chromium-112.0.5615.49/media/gpu/args.gni.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/args.gni 2023-04-14 21:29:41.776328044 +0200 -@@ -6,10 +6,14 @@ import("//build/config/chromeos/ui_mode. - import("//build/config/ozone.gni") - - declare_args() { -- # Indicates if X11 VA-API-based hardware acceleration is to be used. -- # See also the comment near the |use_vaapi| arg. -- use_vaapi_x11 = is_linux && ozone_platform_x11 && -- (target_cpu == "x86" || target_cpu == "x64") && !is_castos -+ # Build Chrome support for using VA-API over X11. Note that setting this to true is -+ # not a guarantee that Chrome will use (or even try to use) VA-API over X11. In -+ # particular, it is possible to build Chrome with support for VA-API over X11 but -+ # pick Wayland as the Ozone backend at runtime. In this case, Chrome will try to -+ # use VA-API over DRM. -+ support_vaapi_over_x11 = -+ is_linux && ozone_platform_x11 && -+ (target_cpu == "x86" || target_cpu == "x64") && !is_castos - } - - declare_args() { -@@ -29,8 +33,9 @@ declare_args() { - # is typically the case on x86-based ChromeOS devices. - # VA-API should also be compiled by default on x11-using linux devices - # using x86/x64. -- use_vaapi = use_vaapi_x11 || (is_chromeos_lacros && -- (target_cpu == "x86" || target_cpu == "x64")) -+ use_vaapi = -+ support_vaapi_over_x11 || -+ (is_chromeos_lacros && (target_cpu == "x86" || target_cpu == "x64")) - - # Indicates if ChromeOS protected media support exists. This is used - # to enable the CDM daemon in Chrome OS as well as support for -diff -up chromium-112.0.5615.49/media/gpu/BUILD.gn.wayland-vaapi chromium-112.0.5615.49/media/gpu/BUILD.gn ---- chromium-112.0.5615.49/media/gpu/BUILD.gn.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/BUILD.gn 2023-04-14 21:29:41.776328044 +0200 -@@ -20,7 +20,7 @@ buildflag_header("buildflags") { - "USE_VAAPI_IMAGE_CODECS=$use_vaapi_image_codecs", - "USE_V4L2_CODEC=$use_v4l2_codec", - "USE_LIBV4L2=$use_v4lplugin", -- "USE_VAAPI_X11=$use_vaapi_x11", -+ "SUPPORT_VAAPI_OVER_X11=$support_vaapi_over_x11", - ] - } - -diff -up chromium-112.0.5615.49/media/gpu/vaapi/BUILD.gn.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/BUILD.gn ---- chromium-112.0.5615.49/media/gpu/vaapi/BUILD.gn.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/BUILD.gn 2023-04-14 21:29:41.776328044 +0200 -@@ -17,7 +17,7 @@ assert(use_vaapi) - generate_stubs("libva_stubs") { - extra_header = "va_stub_header.fragment" - sigs = [ "va.sigs" ] -- if (use_vaapi_x11) { -+ if (support_vaapi_over_x11) { - sigs += [ "va_x11.sigs" ] - } - if (is_chromeos_ash) { -@@ -139,7 +139,7 @@ source_set("vaapi") { - ] - } - -- if (use_vaapi_x11) { -+ if (support_vaapi_over_x11) { - deps += [ "//ui/gfx/x" ] - sources += [ - "vaapi_picture_native_pixmap_angle.cc", -@@ -213,7 +213,7 @@ source_set("common") { - deps += [ "//ui/ozone" ] - } - -- if (use_vaapi_x11) { -+ if (support_vaapi_over_x11) { - deps += [ "//ui/gfx/x" ] - } - -diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.cc ---- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.cc.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.cc 2023-04-15 07:14:05.573796794 +0200 -@@ -13,9 +13,9 @@ - #if BUILDFLAG(IS_OZONE) - #include "media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.h" - #endif // BUILDFLAG(IS_OZONE) --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - #include "media/gpu/vaapi/vaapi_picture_native_pixmap_angle.h" --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - #if defined(USE_EGL) - #include "media/gpu/vaapi/vaapi_picture_native_pixmap_egl.h" - #endif -@@ -41,19 +41,28 @@ std::unique_ptr CreateVaap - - } // namespace - -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+VaapiPictureFactory::VaapiPictureFactory( -+ absl::optional may_use_vaapi_over_x11) -+ : may_use_vaapi_over_x11_(may_use_vaapi_over_x11) { -+#else - VaapiPictureFactory::VaapiPictureFactory() { -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - vaapi_impl_pairs_.insert( - std::make_pair(gl::kGLImplementationEGLGLES2, - VaapiPictureFactory::kVaapiImplementationDrm)); --#if BUILDFLAG(USE_VAAPI_X11) -- vaapi_impl_pairs_.insert( -- std::make_pair(gl::kGLImplementationEGLANGLE, -- VaapiPictureFactory::kVaapiImplementationAngle)); --#elif BUILDFLAG(IS_OZONE) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ CHECK(may_use_vaapi_over_x11_.has_value()); -+ if (may_use_vaapi_over_x11_.value()) { -+ vaapi_impl_pairs_.insert( -+ std::make_pair(gl::kGLImplementationEGLANGLE, -+ VaapiPictureFactory::kVaapiImplementationAngle)); -+ } -+#else - vaapi_impl_pairs_.insert( - std::make_pair(gl::kGLImplementationEGLANGLE, - VaapiPictureFactory::kVaapiImplementationDrm)); --#endif -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - DeterminePictureCreationAndDownloadingMechanism(); - } -@@ -93,19 +102,19 @@ VaapiPictureFactory::GetVaapiImplementat - } - - uint32_t VaapiPictureFactory::GetGLTextureTarget() { --#if BUILDFLAG(USE_VAAPI_X11) -- return GL_TEXTURE_2D; --#else -+#if BUILDFLAG(IS_CHROMEOS) - return GL_TEXTURE_EXTERNAL_OES; --#endif -+#else -+ return GL_TEXTURE_2D; -+#endif // BUILDFLAG(IS_CHROMEOS) - } - - gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() { --#if BUILDFLAG(USE_VAAPI_X11) -- return gfx::BufferFormat::RGBX_8888; --#else -+#if BUILDFLAG(IS_CHROMEOS) - return gfx::BufferFormat::YUV_420_BIPLANAR; --#endif -+#else -+ return gfx::BufferFormat::RGBX_8888; -+#endif // BUILDFLAG(IS_CHROMEOS) - } - - void VaapiPictureFactory::DeterminePictureCreationAndDownloadingMechanism() { -@@ -113,19 +122,23 @@ void VaapiPictureFactory::DeterminePictu - #if BUILDFLAG(IS_OZONE) - // We can be called without GL initialized, which is valid if we use Ozone. - case kVaapiImplementationNone: -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ DCHECK(may_use_vaapi_over_x11_.value_or(false)); -+#endif - create_picture_cb_ = base::BindRepeating( - &CreateVaapiPictureNativeImpl); - needs_vpp_for_downloading_ = true; - break; - #endif // BUILDFLAG(IS_OZONE) --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - case kVaapiImplementationAngle: -+ DCHECK(may_use_vaapi_over_x11_.value_or(false)); - create_picture_cb_ = base::BindRepeating( - &CreateVaapiPictureNativeImpl); - // Neither VaapiTFPPicture or VaapiPictureNativePixmapAngle needs the VPP. - needs_vpp_for_downloading_ = false; - break; --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - case kVaapiImplementationDrm: - #if BUILDFLAG(IS_OZONE) - create_picture_cb_ = base::BindRepeating( -diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.h.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.h ---- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.h.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_factory.h 2023-04-14 21:29:41.777328062 +0200 -@@ -35,7 +35,11 @@ class MEDIA_GPU_EXPORT VaapiPictureFacto - kVaapiImplementationAngle, - }; - -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ explicit VaapiPictureFactory(absl::optional may_use_vaapi_over_x11); -+#else - VaapiPictureFactory(); -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - VaapiPictureFactory(const VaapiPictureFactory&) = delete; - VaapiPictureFactory& operator=(const VaapiPictureFactory&) = delete; -@@ -84,6 +88,11 @@ class MEDIA_GPU_EXPORT VaapiPictureFacto - - CreatePictureCB create_picture_cb_; - bool needs_vpp_for_downloading_ = false; -+ -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ // See comment in `VaapiWrapper::MayUseVaapiOverX11()`. -+ absl::optional may_use_vaapi_over_x11_; -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - }; - - } // namespace media -diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc ---- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_picture_native_pixmap_ozone.cc 2023-04-14 21:29:41.777328062 +0200 -@@ -113,7 +113,7 @@ VaapiStatus VaapiPictureNativePixmapOzon - ui::OzonePlatform* platform = ui::OzonePlatform::GetInstance(); - ui::SurfaceFactoryOzone* factory = platform->GetSurfaceFactoryOzone(); - gfx::BufferUsage buffer_usage = gfx::BufferUsage::SCANOUT_VDA_WRITE; --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - // The 'VaapiVideoDecodeAccelerator' requires the VPP to download the decoded - // frame from the internal surface to the allocated native pixmap. - // 'SCANOUT_VDA_WRITE' is used for 'YUV_420_BIPLANAR' on ChromeOS; For Linux, -diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ---- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.wayland-vaapi 2023-04-14 21:29:41.775328024 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2023-04-14 21:29:41.777328062 +0200 -@@ -185,7 +185,12 @@ bool VaapiVideoDecodeAccelerator::Initia - Client* client) { - DCHECK(task_runner_->BelongsToCurrentThread()); - -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ vaapi_picture_factory_ = -+ std::make_unique(VaapiWrapper::MayUseVaapiOverX11()); -+#else - vaapi_picture_factory_ = std::make_unique(); -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - if (config.is_encrypted()) { - NOTREACHED() << "Encrypted streams are not supported for this VDA"; -@@ -1211,7 +1216,7 @@ VaapiVideoDecodeAccelerator::GetSupporte - - VaapiVideoDecodeAccelerator::BufferAllocationMode - VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() { --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - // The IMPORT mode is used for Android on Chrome OS, so this doesn't apply - // here. - DCHECK_NE(output_mode_, VideoDecodeAccelerator::Config::OutputMode::IMPORT); -diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc ---- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_video_decode_accelerator_unittest.cc 2023-04-15 07:38:19.058957112 +0200 -@@ -41,6 +41,11 @@ struct TestParams { - bool decode_using_client_picture_buffers; - }; - -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+// TODO: Add it in TestParams to cover Ozone/Wayland. -+bool kMayUseVaapiOverX11 = true; -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ - constexpr int32_t kBitstreamId = 123; - constexpr size_t kInputSize = 256; - -@@ -134,7 +139,13 @@ class MockVaapiPicture : public VaapiPic - - class MockVaapiPictureFactory : public VaapiPictureFactory { - public: -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ explicit MockVaapiPictureFactory(absl::optional may_use_vaapi_over_x11) -+ : VaapiPictureFactory(may_use_vaapi_over_x11) {} -+#else - MockVaapiPictureFactory() = default; -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ - ~MockVaapiPictureFactory() override = default; - - MOCK_METHOD3(MockCreateVaapiPicture, -@@ -167,7 +178,12 @@ class VaapiVideoDecodeAcceleratorTest : - const scoped_refptr& image) { return true; })), - decoder_thread_("VaapiVideoDecodeAcceleratorTestThread"), - mock_decoder_(new ::testing::StrictMock), -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ mock_vaapi_picture_factory_( -+ new MockVaapiPictureFactory(kMayUseVaapiOverX11)), -+#else - mock_vaapi_picture_factory_(new MockVaapiPictureFactory()), -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - mock_vaapi_wrapper_(new MockVaapiWrapper(VaapiWrapper::kDecode)), - mock_vpp_vaapi_wrapper_(new MockVaapiWrapper(VaapiWrapper::kDecode)), - weak_ptr_factory_(this) { -@@ -422,11 +438,13 @@ TEST_P(VaapiVideoDecodeAcceleratorTest, - mock_vaapi_picture_factory_->GetVaapiImplementation( - gl::kGLImplementationEGLGLES2)); - --#if BUILDFLAG(USE_VAAPI_X11) -- EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationAngle, -- mock_vaapi_picture_factory_->GetVaapiImplementation( -- gl::kGLImplementationEGLANGLE)); --#elif BUILDFLAG(IS_OZONE) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ if (kMayUseVaapiOverX11) { -+ EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationAngle, -+ mock_vaapi_picture_factory_->GetVaapiImplementation( -+ gl::kGLImplementationEGLANGLE)); -+ } -+#else - EXPECT_EQ(VaapiPictureFactory::kVaapiImplementationDrm, - mock_vaapi_picture_factory_->GetVaapiImplementation( - gl::kGLImplementationEGLANGLE)); -diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.cc.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.cc ---- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.cc.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.cc 2023-04-14 21:29:41.777328062 +0200 -@@ -62,7 +62,7 @@ - #include "ui/gl/gl_bindings.h" - #include "ui/gl/gl_implementation.h" - --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - typedef XID Drawable; - - extern "C" { -@@ -70,7 +70,7 @@ extern "C" { - } - - #include "ui/gfx/x/connection.h" // nogncheck --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - #if BUILDFLAG(IS_OZONE) - #include "ui/ozone/public/ozone_platform.h" -@@ -84,14 +84,14 @@ using media_gpu_vaapi::kModuleVa_prot; - - using media_gpu_vaapi::kModuleVa; - using media_gpu_vaapi::kModuleVa_drm; --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - using media_gpu_vaapi::kModuleVa_x11; --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - using media_gpu_vaapi::InitializeStubs; - using media_gpu_vaapi::IsVaInitialized; --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - using media_gpu_vaapi::IsVa_x11Initialized; --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - using media_gpu_vaapi::IsVa_drmInitialized; - using media_gpu_vaapi::StubPathMap; - -@@ -680,6 +680,12 @@ class VADisplayState { - - void SetDrmFd(base::PlatformFile fd) { drm_fd_.reset(HANDLE_EINTR(dup(fd))); } - -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ absl::optional MayUseVaapiOverX11() const { -+ return may_use_vaapi_over_x11_; -+ } -+#endif -+ - private: - friend class base::NoDestructor; - -@@ -702,6 +708,13 @@ class VADisplayState { - // Drm fd used to obtain access to the driver interface by VA. - base::ScopedFD drm_fd_; - -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ // Whether we'll be possibly using VA-API over Ozone/X11. This should only be -+ // set (if at all) during the pre-sandbox initialization. If absl::nullopt, -+ // all calls to Initialize() will return false immediately. -+ absl::optional may_use_vaapi_over_x11_; -+#endif -+ - // The VADisplay handle. Valid between Initialize() and Deinitialize(). - VADisplay va_display_; - -@@ -723,6 +736,15 @@ VADisplayState* VADisplayState::Get() { - - // static - void VADisplayState::PreSandboxInitialization() { -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ if (ui::OzonePlatform::IsInitialized()) { -+ VADisplayState::Get()->may_use_vaapi_over_x11_ = -+ ui::OzonePlatform::GetInstance() -+ ->GetPlatformProperties() -+ .supports_vaapi_x11; -+ } -+#endif -+ - constexpr char kRenderNodeFilePattern[] = "/dev/dri/renderD%d"; - // This loop ends on either the first card that does not exist or the first - // render node that is not vgem. -@@ -755,20 +777,18 @@ VADisplayState::VADisplayState() - bool VADisplayState::Initialize() { - base::AutoLock auto_lock(va_lock_); - --#if BUILDFLAG(IS_OZONE) && BUILDFLAG(IS_LINUX) -- // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on -- // Linux. See comment in OzonePlatform::PlatformProperties::supports_vaapi -- // for more details. This will also require revisiting everything that's -- // guarded by USE_VAAPI_X11. For example, if USE_VAAPI_X11 is true, but the -- // user chooses the Wayland backend for Ozone at runtime, then many things (if -- // not all) that we do for X11 won't apply. -- if (!ui::OzonePlatform::GetInstance()->GetPlatformProperties().supports_vaapi) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ if (!may_use_vaapi_over_x11_.has_value()) - return false; - #endif - - bool libraries_initialized = IsVaInitialized() && IsVa_drmInitialized(); --#if BUILDFLAG(USE_VAAPI_X11) -- libraries_initialized = libraries_initialized && IsVa_x11Initialized(); -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ // Initialize VA-API X11 display backend for Linux Ozone/X11. -+ // See comment in OzonePlatform::PlatformProperties::supports_vaapi_x11 for -+ // more details. -+ if (may_use_vaapi_over_x11_.value()) -+ libraries_initialized = libraries_initialized && IsVa_x11Initialized(); - #endif - if (!libraries_initialized) - return false; -@@ -783,7 +803,7 @@ bool VADisplayState::Initialize() { - return success; - } - --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - absl::optional GetVADisplayStateX11(const base::ScopedFD& drm_fd) { - switch (gl::GetGLImplementation()) { -@@ -809,13 +829,19 @@ absl::optional GetVADisplaySt - } - } - --#else -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - absl::optional GetVADisplayState(const base::ScopedFD& drm_fd) { - switch (gl::GetGLImplementation()) { - case gl::kGLImplementationEGLGLES2: -+#if BUILDFLAG(IS_CHROMEOS) -+ // GetVADisplayState() should not get called on Linux with Ozone/X11 -+ // (GetVADisplayStateX11() should get called instead), and we haven't tried -+ // VA-API decoding on Linux with Ozone/Wayland and anything other than -+ // native EGL/GLES2. - case gl::kGLImplementationEGLANGLE: - case gl::kGLImplementationNone: -+#endif - return vaGetDisplayDRM(drm_fd.get()); - default: - LOG(WARNING) << "VAAPI video acceleration not available for " -@@ -825,18 +851,23 @@ absl::optional GetVADisplaySt - } - } - --#endif // BUILDFLAG(USE_VAAPI_X11) -- - bool VADisplayState::InitializeVaDisplay_Locked() { -- absl::optional display = --#if BUILDFLAG(USE_VAAPI_X11) -- GetVADisplayStateX11(drm_fd_); --#else -- GetVADisplayState(drm_fd_); --#endif -+ absl::optional display; - -- if (!display) -- return false; -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ DCHECK(may_use_vaapi_over_x11_.has_value()); -+ if (may_use_vaapi_over_x11_.value()) { -+ display = GetVADisplayStateX11(drm_fd_); -+ if (!display) -+ return false; -+ } -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ -+ if (!display) { -+ display = GetVADisplayState(drm_fd_); -+ if (!display) -+ return false; -+ } - - va_display_ = *display; - if (!vaDisplayIsValid(va_display_)) { -@@ -1671,6 +1702,13 @@ scoped_refptr VaapiWrapper - enforce_sequence_affinity); - } - -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+// static -+absl::optional VaapiWrapper::MayUseVaapiOverX11() { -+ return VADisplayState::Get()->MayUseVaapiOverX11(); -+} -+#endif -+ - // static - std::vector VaapiWrapper::GetSupportedScalabilityModes( - VideoCodecProfile media_profile, -@@ -2684,12 +2722,13 @@ bool VaapiWrapper::MapAndCopyAndExecute( - return Execute_Locked(va_surface_id, va_buffer_ids); - } - --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - bool VaapiWrapper::PutSurfaceIntoPixmap(VASurfaceID va_surface_id, - x11::Pixmap x_pixmap, - gfx::Size dest_size) { - CHECK(!enforce_sequence_affinity_ || - sequence_checker_.CalledOnValidSequence()); -+ CHECK(MayUseVaapiOverX11().value_or(false)); - base::AutoLockMaybe auto_lock(va_lock_.get()); - - VAStatus va_res = vaSyncSurface(va_display_, va_surface_id); -@@ -2703,7 +2742,7 @@ bool VaapiWrapper::PutSurfaceIntoPixmap( - VA_SUCCESS_OR_RETURN(va_res, VaapiFunctions::kVAPutSurface, false); - return true; - } --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - std::unique_ptr VaapiWrapper::CreateVaImage( - VASurfaceID va_surface_id, -@@ -3105,7 +3144,7 @@ void VaapiWrapper::PreSandboxInitializat - - paths[kModuleVa].push_back(std::string("libva.so.") + va_suffix); - paths[kModuleVa_drm].push_back(std::string("libva-drm.so.") + va_suffix); --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - paths[kModuleVa_x11].push_back(std::string("libva-x11.so.") + va_suffix); - #endif - #if BUILDFLAG(IS_CHROMEOS_ASH) -diff -up chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.h.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.h ---- chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.h.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/vaapi_wrapper.h 2023-04-14 21:29:41.777328062 +0200 -@@ -36,9 +36,9 @@ - #include "third_party/abseil-cpp/absl/types/optional.h" - #include "ui/gfx/geometry/size.h" - --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - #include "ui/gfx/x/xproto.h" // nogncheck --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - namespace gfx { - enum class BufferFormat; -@@ -186,6 +186,16 @@ class MEDIA_GPU_EXPORT VaapiWrapper - VaapiWrapper(const VaapiWrapper&) = delete; - VaapiWrapper& operator=(const VaapiWrapper&) = delete; - -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) -+ // Returns true if VaapiWrapper instances may use VA-API over X11 and false -+ // otherwise (VA-API over DRM will be used). If this returns absl::nullopt, -+ // it's because it was not possible to determine how VA-API may be used. This -+ // should only be called after PreSandboxInitialization() (which is assumed to -+ // be called only once during the GPU process startup) and is safe to call -+ // from any thread. Additionally, this should always return the same value. -+ static absl::optional MayUseVaapiOverX11(); -+#endif -+ - // Returns the supported SVC scalability modes for specified profile. - static std::vector GetSupportedScalabilityModes( - VideoCodecProfile media_profile, -@@ -439,13 +449,13 @@ class MEDIA_GPU_EXPORT VaapiWrapper - VASurfaceID va_surface_id, - const std::vector>& va_buffers); - --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - // Put data from |va_surface_id| into |x_pixmap| of size - // |dest_size|, converting/scaling to it. - [[nodiscard]] bool PutSurfaceIntoPixmap(VASurfaceID va_surface_id, - x11::Pixmap x_pixmap, - gfx::Size dest_size); --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - // Creates a ScopedVAImage from a VASurface |va_surface_id| and map it into - // memory with the given |format| and |size|. If |format| is not equal to the -diff -up chromium-112.0.5615.49/media/gpu/vaapi/va_stub_header.fragment.wayland-vaapi chromium-112.0.5615.49/media/gpu/vaapi/va_stub_header.fragment ---- chromium-112.0.5615.49/media/gpu/vaapi/va_stub_header.fragment.wayland-vaapi 2023-03-30 02:33:53.000000000 +0200 -+++ chromium-112.0.5615.49/media/gpu/vaapi/va_stub_header.fragment 2023-04-14 21:29:41.777328062 +0200 -@@ -7,8 +7,8 @@ extern "C" { - - #include - #include --#if BUILDFLAG(USE_VAAPI_X11) -+#if BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - #include --#endif // BUILDFLAG(USE_VAAPI_X11) -+#endif // BUILDFLAG(SUPPORT_VAAPI_OVER_X11) - - } -diff -up chromium-112.0.5615.49/ui/ozone/platform/x11/ozone_platform_x11.cc.wayland-vaapi chromium-112.0.5615.49/ui/ozone/platform/x11/ozone_platform_x11.cc ---- chromium-112.0.5615.49/ui/ozone/platform/x11/ozone_platform_x11.cc.wayland-vaapi 2023-03-30 02:34:19.000000000 +0200 -+++ chromium-112.0.5615.49/ui/ozone/platform/x11/ozone_platform_x11.cc 2023-04-14 21:29:41.778328082 +0200 -@@ -197,7 +197,7 @@ class OzonePlatformX11 : public OzonePla - properties->app_modal_dialogs_use_event_blocker = true; - properties->fetch_buffer_formats_for_gmb_on_gpu = true; - #if BUILDFLAG(IS_LINUX) -- properties->supports_vaapi = true; -+ properties->supports_vaapi_x11 = true; - #endif - - initialised = true; -diff -up chromium-112.0.5615.49/ui/ozone/public/ozone_platform.h.wayland-vaapi chromium-112.0.5615.49/ui/ozone/public/ozone_platform.h ---- chromium-112.0.5615.49/ui/ozone/public/ozone_platform.h.wayland-vaapi 2023-03-30 02:34:19.000000000 +0200 -+++ chromium-112.0.5615.49/ui/ozone/public/ozone_platform.h 2023-04-14 21:29:41.778328082 +0200 -@@ -145,12 +145,13 @@ class COMPONENT_EXPORT(OZONE) OzonePlatf - bool fetch_buffer_formats_for_gmb_on_gpu = false; - - #if BUILDFLAG(IS_LINUX) -- // TODO(crbug.com/1116701): add vaapi support for other Ozone platforms on -- // Linux. At the moment, VA-API Linux implementation supports only X11 -- // backend. This implementation must be refactored to support Ozone -- // properly. As a temporary solution, VA-API on Linux checks if vaapi is -- // supported (which implicitly means that it is Ozone/X11). -- bool supports_vaapi = false; -+ // VA-API supports different display backends. -+ // See https://github.com/intel/libva/blob/master/va/va_backend.h -+ // -+ // VA/DRM and VA/X11 are used by Chromium at the moment. All Ozone platforms -+ // support VA/DRM by default. `supports_vaapi_x11` indicates if VA/X11 -+ // supported; it is true only on Ozone/X11 platform. -+ bool supports_vaapi_x11 = false; - #endif - - // Indicates that the platform allows client applications to manipulate diff --git a/chromium-113-disable-GlobalMediaControlsCastStartStop.patch b/chromium-113-disable-GlobalMediaControlsCastStartStop.patch new file mode 100644 index 0000000..cd1c072 --- /dev/null +++ b/chromium-113-disable-GlobalMediaControlsCastStartStop.patch @@ -0,0 +1,12 @@ +diff -up chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc +--- chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc.disable-GlobalMediaControlsCastStartStop 2023-04-07 13:54:52.562292026 +0200 ++++ chromium-113.0.5672.24/chrome/browser/media/router/media_router_feature.cc 2023-04-07 13:57:41.470414086 +0200 +@@ -68,7 +68,7 @@ BASE_FEATURE(kGlobalMediaControlsCastSta + #else + BASE_FEATURE(kGlobalMediaControlsCastStartStop, + "GlobalMediaControlsCastStartStop", +- base::FEATURE_ENABLED_BY_DEFAULT); ++ base::FEATURE_DISABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_CHROMEOS) + #endif // BUILDFLAG(IS_ANDROID) + diff --git a/chromium-109-gcc13.patch b/chromium-113-gcc13.patch similarity index 88% rename from chromium-109-gcc13.patch rename to chromium-113-gcc13.patch index 9333b70..ce10dfe 100644 --- a/chromium-109-gcc13.patch +++ b/chromium-113-gcc13.patch @@ -54,17 +54,6 @@ diff -up chromium-109.0.5414.74/net/base/net_export.h.me chromium-109.0.5414.74/ // Defines NET_EXPORT so that functionality implemented by the net module can // be exported to consumers, and NET_EXPORT_PRIVATE that allows unit tests to // access features not intended to be used directly by real consumers. -diff -up chromium-109.0.5414.74/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h.me chromium-109.0.5414.74/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h ---- chromium-109.0.5414.74/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h.me 2023-01-17 17:46:30.830283261 +0100 -+++ chromium-109.0.5414.74/net/third_party/quiche/src/quiche/quic/core/quic_connection_id.h 2023-01-17 17:46:40.158407274 +0100 -@@ -5,6 +5,7 @@ - #ifndef QUICHE_QUIC_CORE_QUIC_CONNECTION_ID_H_ - #define QUICHE_QUIC_CORE_QUIC_CONNECTION_ID_H_ - -+#include - #include - #include - diff -up chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h --- chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h.me 2023-01-17 17:12:34.184686515 +0100 +++ chromium-109.0.5414.74/sandbox/linux/syscall_broker/broker_file_permission.h 2023-01-17 17:13:16.537162420 +0100 @@ -386,3 +375,48 @@ diff -up chromium-109.0.5414.74/base/cpu.h.me chromium-109.0.5414.74/base/cpu.h #include #include "base/base_export.h" +diff -up chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h +--- chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h.me 2023-04-15 16:44:55.344305412 +0200 ++++ chromium-113.0.5672.24/third_party/vulkan-deps/vulkan-validation-layers/src/layers/external/vma/vk_mem_alloc.h 2023-04-15 16:47:09.028666995 +0200 +@@ -2854,6 +2854,7 @@ static void vma_aligned_free(void* VMA_N + + // Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString. + #if VMA_STATS_STRING_ENABLED ++#include + static inline void VmaUint32ToStr(char* VMA_NOT_NULL outStr, size_t strLen, uint32_t num) + { + snprintf(outStr, strLen, "%u", static_cast(num)); +diff -up chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h +--- chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h.me 2023-04-18 15:55:44.774916319 +0200 ++++ chromium-113.0.5672.37/chrome/browser/webauthn/authenticator_request_dialog_model.h 2023-04-18 15:55:54.441085882 +0200 +@@ -8,6 +8,7 @@ + #include + #include + #include ++#include + + #include "base/containers/span.h" + #include "base/functional/callback_forward.h" +diff -up chromium-113.0.5672.37/gin/time_clamper.h.me chromium-113.0.5672.37/gin/time_clamper.h +--- chromium-113.0.5672.37/gin/time_clamper.h.me 2023-04-18 16:38:41.180437467 +0200 ++++ chromium-113.0.5672.37/gin/time_clamper.h 2023-04-18 16:39:43.857049432 +0200 +@@ -48,7 +48,7 @@ class GIN_EXPORT TimeClamper { + const int64_t micros = now_micros % 1000; + // abs() is necessary for devices with times before unix-epoch (most likely + // configured incorrectly). +- if (abs(micros) + kResolutionMicros < 1000) { ++ if (std::abs(micros) + kResolutionMicros < 1000) { + return now_micros / 1000; + } + return ClampTimeResolution(now_micros) / 1000; +diff -up chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc +--- chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc.me 2023-04-21 08:07:55.362714544 +0200 ++++ chromium-113.0.5672.53/chrome/test/chromedriver/chrome/web_view_impl.cc 2023-04-21 08:14:35.424158693 +0200 +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include "base/check.h" + #include "base/files/file_path.h" diff --git a/chromium-113-norar.patch b/chromium-113-norar.patch new file mode 100644 index 0000000..dddc72f --- /dev/null +++ b/chromium-113-norar.patch @@ -0,0 +1,115 @@ +diff -up chromium-113.0.5672.24/chrome/common/safe_browsing/BUILD.gn.nounrar chromium-113.0.5672.24/chrome/common/safe_browsing/BUILD.gn +--- chromium-113.0.5672.24/chrome/common/safe_browsing/BUILD.gn.nounrar 2023-04-07 13:11:59.495927476 +0200 ++++ chromium-113.0.5672.24/chrome/common/safe_browsing/BUILD.gn 2023-04-07 13:47:57.004758029 +0200 +@@ -143,8 +143,6 @@ source_set("safe_browsing") { + "protobuf_message_log_macros.h", + "protobuf_message_read_macros.h", + "protobuf_message_write_macros.h", +- "rar_analyzer.cc", +- "rar_analyzer.h", + "seven_zip_analyzer.cc", + "seven_zip_analyzer.h", + "zip_analyzer.cc", +@@ -160,7 +158,6 @@ source_set("safe_browsing") { + "//components/safe_browsing/content/common:file_type_policies", + "//components/safe_browsing/core/common", + "//third_party/lzma_sdk/google:seven_zip_reader", +- "//third_party/unrar:unrar", + ] + + if (is_linux) { +diff -up chromium-113.0.5672.24/chrome/common/safe_browsing/DEPS.nounrar chromium-113.0.5672.24/chrome/common/safe_browsing/DEPS +--- chromium-113.0.5672.24/chrome/common/safe_browsing/DEPS.nounrar 2023-04-04 20:41:26.000000000 +0200 ++++ chromium-113.0.5672.24/chrome/common/safe_browsing/DEPS 2023-04-07 13:11:59.495927476 +0200 +@@ -3,7 +3,6 @@ include_rules = [ + "+components/safe_browsing/core/common", + "+third_party/maldoca", + "+third_party/protobuf", +- "+third_party/unrar", + "+third_party/zlib", + "+third_party/lzma_sdk/google", + ] +diff -up chromium-113.0.5672.24/chrome/services/file_util/BUILD.gn.nounrar chromium-113.0.5672.24/chrome/services/file_util/BUILD.gn +diff -up chromium-113.0.5672.24/chrome/services/file_util/safe_archive_analyzer.cc.nounrar chromium-113.0.5672.24/chrome/services/file_util/safe_archive_analyzer.cc +--- chromium-113.0.5672.24/chrome/services/file_util/safe_archive_analyzer.cc.nounrar 2023-04-07 13:11:59.495927476 +0200 ++++ chromium-113.0.5672.24/chrome/services/file_util/safe_archive_analyzer.cc 2023-04-07 13:52:52.998109006 +0200 +@@ -61,6 +61,7 @@ void SafeArchiveAnalyzer::AnalyzeRarFile + base::File rar_file, + mojo::PendingRemote temp_file_getter, + AnalyzeRarFileCallback callback) { ++#if 0 + DCHECK(rar_file.IsValid()); + temp_file_getter_.Bind(std::move(temp_file_getter)); + callback_ = std::move(callback); +@@ -76,6 +77,9 @@ void SafeArchiveAnalyzer::AnalyzeRarFile + rar_analyzer_.Init(std::move(rar_file), base::FilePath(), + std::move(analysis_finished_callback), + std::move(temp_file_getter_callback), &results_); ++#else ++ NOTREACHED(); ++#endif + } + + void SafeArchiveAnalyzer::AnalyzeSevenZipFile( +diff -up chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.cc.me chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.cc +--- chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.cc.me 2023-04-23 18:10:06.103858362 +0200 ++++ chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.cc 2023-04-23 18:12:05.428092347 +0200 +@@ -18,7 +18,7 @@ + #include "base/time/time.h" + #include "build/build_config.h" + #include "chrome/common/safe_browsing/archive_analyzer_results.h" +-#include "chrome/common/safe_browsing/rar_analyzer.h" ++//#include "chrome/common/safe_browsing/rar_analyzer.h" + #include "components/safe_browsing/content/common/file_type_policies.h" + #include "components/safe_browsing/core/common/features.h" + #include "components/safe_browsing/core/common/proto/csd.pb.h" +@@ -132,14 +132,14 @@ bool ZipAnalyzer::AnalyzeNestedArchive( + std::move(nested_analysis_finished_callback), + get_temp_file_callback_, results_); + return true; +- } else if (file_type == DownloadFileType::RAR) { ++ } /* else if (file_type == DownloadFileType::RAR) { + nested_rar_analyzer_ = std::make_unique(); + nested_rar_analyzer_->Init(temp_file_.Duplicate(), + root_zip_path_.Append(path), + std::move(nested_analysis_finished_callback), + get_temp_file_callback_, results_); + return true; +- } ++ }*/ + return false; + } + +diff -up chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.h.me chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.h +--- chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.h.me 2023-04-23 18:12:11.316203496 +0200 ++++ chromium-113.0.5672.53/chrome/common/safe_browsing/zip_analyzer.h 2023-04-23 18:12:26.827498082 +0200 +@@ -78,7 +78,7 @@ class ZipAnalyzer { + // DFS. + // TODO(crbug.com/1426164) Create a common class to hold all analyzers. + std::unique_ptr nested_zip_analyzer_; +- std::unique_ptr nested_rar_analyzer_; ++// std::unique_ptr nested_rar_analyzer_; + + base::WeakPtrFactory weak_factory_{this}; + }; +diff -up chromium-113.0.5672.53/chrome/services/file_util/safe_archive_analyzer.h.me chromium-113.0.5672.53/chrome/services/file_util/safe_archive_analyzer.h +--- chromium-113.0.5672.53/chrome/services/file_util/safe_archive_analyzer.h.me 2023-04-23 18:06:26.476791520 +0200 ++++ chromium-113.0.5672.53/chrome/services/file_util/safe_archive_analyzer.h 2023-04-23 18:08:58.594606171 +0200 +@@ -6,7 +6,7 @@ + #define CHROME_SERVICES_FILE_UTIL_SAFE_ARCHIVE_ANALYZER_H_ + + #include "chrome/common/safe_browsing/archive_analyzer_results.h" +-#include "chrome/common/safe_browsing/rar_analyzer.h" ++//#include "chrome/common/safe_browsing/rar_analyzer.h" + #include "chrome/services/file_util/public/mojom/safe_archive_analyzer.mojom.h" + #include "mojo/public/cpp/bindings/remote.h" + +@@ -59,7 +59,7 @@ class SafeArchiveAnalyzer : public chrom + void Timeout(); + + safe_browsing::ZipAnalyzer zip_analyzer_; +- safe_browsing::RarAnalyzer rar_analyzer_; ++// safe_browsing::RarAnalyzer rar_analyzer_; + + // A timer to ensure no archive takes too long to unpack. + base::OneShotTimer timeout_timer_; diff --git a/chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch b/chromium-113-rhel8-force-disable-use_gnome_keyring.patch similarity index 50% rename from chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch rename to chromium-113-rhel8-force-disable-use_gnome_keyring.patch index a65f244..691f528 100644 --- a/chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch +++ b/chromium-113-rhel8-force-disable-use_gnome_keyring.patch @@ -1,6 +1,6 @@ -diff -up chromium-99.0.4844.51/components/os_crypt/features.gni.disblegnomekeyring chromium-99.0.4844.51/components/os_crypt/features.gni ---- chromium-99.0.4844.51/components/os_crypt/features.gni.disblegnomekeyring 2022-03-05 14:24:15.073877597 -0500 -+++ chromium-99.0.4844.51/components/os_crypt/features.gni 2022-03-05 14:25:04.174183483 -0500 +diff -up chromium-113.0.5672.24/components/os_crypt/sync/features.gni.disblegnomekeyring chromium-113.0.5672.24/components/os_crypt/sync/features.gni +--- chromium-113.0.5672.24/components/os_crypt/sync/features.gni.disblegnomekeyring 2023-04-07 14:23:11.083985460 +0200 ++++ chromium-113.0.5672.24/components/os_crypt/sync/features.gni 2023-04-07 14:23:44.276599353 +0200 @@ -8,7 +8,7 @@ import("//build/config/ui.gni") declare_args() { # Whether to use libgnome-keyring (deprecated by libsecret). diff --git a/chromium-71.0.3578.98-widevine-r3.patch b/chromium-71.0.3578.98-widevine-r3.patch deleted file mode 100644 index 06b5c7b..0000000 --- a/chromium-71.0.3578.98-widevine-r3.patch +++ /dev/null @@ -1,10 +0,0 @@ -diff -upr chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h ---- chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 20:18:01.000000000 +0000 -+++ chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h 2018-12-21 21:37:45.635374949 +0000 -@@ -12,4 +12,6 @@ - // - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available - // as a string, e.g., "1.0.123.456"). - -+#define WIDEVINE_CDM_VERSION_STRING "unknown" -+ - #endif // WIDEVINE_CDM_VERSION_H_ diff --git a/chromium-86.0.4240.75-fix-vaapi-on-intel.patch b/chromium-86.0.4240.75-fix-vaapi-on-intel.patch deleted file mode 100644 index 04fa2a7..0000000 --- a/chromium-86.0.4240.75-fix-vaapi-on-intel.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -up chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.vaapi-intel-fix chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc ---- chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc.vaapi-intel-fix 2020-10-07 12:38:47.000000000 -0400 -+++ chromium-86.0.4240.75/media/gpu/vaapi/vaapi_video_decode_accelerator.cc 2020-10-14 16:20:46.938556042 -0400 -@@ -58,6 +58,7 @@ unsigned int GetVaFormatForVideoCodecPro - return VA_RT_FORMAT_YUV420; - } - -+#if defined(OS_ANDROID) || defined(OS_CHROMEOS) - // Returns true if the CPU is an Intel Gemini Lake or later (including Kaby - // Lake) Cpu platform id's are referenced from the following file in kernel - // source arch/x86/include/asm/intel-family.h -@@ -70,6 +71,7 @@ bool IsGeminiLakeOrLater() { - cpuid.model() >= kGeminiLakeModelId; - return is_geminilake_or_later; - } -+#endif - - } // namespace - -@@ -1214,6 +1216,8 @@ VaapiVideoDecodeAccelerator::DecideBuffe - if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT) - return BufferAllocationMode::kNormal; - -+#if defined(OS_ANDROID) || defined(OS_CHROMEOS) -+ // Move this to chromeOs only as it is causing problem in some intel linux drivers - // On Gemini Lake, Kaby Lake and later we can pass to libva the client's - // PictureBuffers to decode onto, which skips the use of the Vpp unit and its - // associated format reconciliation copy, avoiding all internal buffer -@@ -1229,6 +1233,7 @@ VaapiVideoDecodeAccelerator::DecideBuffe - num_extra_pics_ = 3; - return BufferAllocationMode::kNone; - } -+#endif - - // For H.264 on older devices, another +1 is experimentally needed for - // high-to-high resolution changes. diff --git a/chromium-99.0.4844.51-widevine-no-download.patch b/chromium-99.0.4844.51-widevine-no-download.patch deleted file mode 100644 index 951840d..0000000 --- a/chromium-99.0.4844.51-widevine-no-download.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up chromium-99.0.4844.51/chrome/browser/component_updater/registration.cc.widevine-no-download chromium-99.0.4844.51/chrome/browser/component_updater/registration.cc ---- chromium-99.0.4844.51/chrome/browser/component_updater/registration.cc.widevine-no-download 2022-03-04 14:57:16.459599123 +0000 -+++ chromium-99.0.4844.51/chrome/browser/component_updater/registration.cc 2022-03-04 14:58:39.560763939 +0000 -@@ -105,10 +105,6 @@ void RegisterComponentsForUpdate() { - RegisterMediaFoundationWidevineCdmComponent(cus); - #endif - --#if BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) -- RegisterWidevineCdmComponent(cus); --#endif // BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) -- - #if BUILDFLAG(ENABLE_NACL) && !BUILDFLAG(IS_ANDROID) - #if BUILDFLAG(IS_CHROMEOS_ASH) - // PNaCl on Chrome OS is on rootfs and there is no need to download it. But diff --git a/chromium.conf b/chromium.conf index dcaa798..0274434 100644 --- a/chromium.conf +++ b/chromium.conf @@ -1,5 +1,4 @@ # system wide chromium flags CHROMIUM_FLAGS="" -CHROMIUM_FLAGS+=" --disable-features=AudioServiceSandbox,UseChromeOSDirectVideoDecoder" -CHROMIUM_FLAGS+=" --enable-features=VaapiVideoDecoder,VaapiVideoEncoder" -CHROMIUM_FLAGS+=" --use-gl=egl" +CHROMIUM_FLAGS+=" --disable-features=AudioServiceSandbox,Vulkan,AllowQt" +CHROMIUM_FLAGS+=" --enable-features=VaapiVideoDecoder,VaapiVideoEncoder,VaapiVideoDecodeLinuxGL" diff --git a/chromium.spec b/chromium.spec index 2b95841..f9218ec 100644 --- a/chromium.spec +++ b/chromium.spec @@ -241,8 +241,8 @@ %endif Name: chromium%{chromium_channel} -Version: 112.0.5615.165 -Release: 2%{?dist} +Version: 113.0.5672.63 +Release: 1%{?dist} Summary: A WebKit (Blink) powered web browser that Google doesn't want you to use Url: http://www.chromium.org/Home License: BSD-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) @@ -260,18 +260,11 @@ Patch2: chromium-107.0.5304.110-gn-system.patch Patch5: chromium-77.0.3865.75-no-zlib-mangle.patch # Do not use unrar code, it is non-free -Patch6: chromium-112-norar.patch - -# Use Gentoo's Widevine hack -# https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/chromium/files/chromium-widevine-r3.patch -Patch7: chromium-71.0.3578.98-widevine-r3.patch +Patch6: chromium-113-norar.patch # Try to load widevine from other places Patch8: chromium-108-widevine-other-locations.patch -# Do not download proprietary widevine module in the background (thanks Debian) -Patch9: chromium-99.0.4844.51-widevine-no-download.patch - # Tell bootstrap.py to always use the version of Python we specify Patch11: chromium-93.0.4577.63-py3-bootstrap.patch @@ -314,7 +307,7 @@ Patch89: chromium-108-system-brotli.patch # disable GlobalMediaControlsCastStartStop to avoid crash # when using the address bar media player button -Patch90: chromium-109-disable-GlobalMediaControlsCastStartStop.patch +Patch90: chromium-113-disable-GlobalMediaControlsCastStartStop.patch # patch for using system opus Patch91: chromium-108-system-opus.patch @@ -351,12 +344,12 @@ Patch107: chromium-99.0.4844.51-el7-extra-operator==.patch Patch114: chromium-107-ffmpeg-duration.patch Patch115: chromium-107-proprietary-codecs.patch # drop av_stream_get_first_dts from internal ffmpeg -Patch116: chromium-108-ffmpeg-first_dts.patch +Patch116: chromium-112-ffmpeg-first_dts.patch # revert new-channel-layout-api on f36, old ffmpeg-free Patch117: chromium-108-ffmpeg-revert-new-channel-layout-api.patch # gcc13 -Patch122: chromium-109-gcc13.patch +Patch122: chromium-113-gcc13.patch # Patches by Stephan Hartmann, https://github.com/stha09/chromium-patches Patch130: chromium-103-VirtualCursor-std-layout.patch @@ -364,17 +357,8 @@ Patch130: chromium-103-VirtualCursor-std-layout.patch # Pagesize > 4kb 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 - # Apply these patches to work around EPEL8 issues -Patch300: chromium-99.0.4844.51-rhel8-force-disable-use_gnome_keyring.patch +Patch300: chromium-113-rhel8-force-disable-use_gnome_keyring.patch # workaround for bug in clang 14 with c++20 on rhel9, linker errors std::u16string Patch301: chromium-112-workaround-llvm14-c++20-epel8.patch @@ -896,9 +880,7 @@ udev. %patch -P2 -p1 -b .gnsystem %patch -P5 -p1 -b .nozlibmangle %patch -P6 -p1 -b .nounrar -%patch -P7 -p1 -b .widevine-hack %patch -P8 -p1 -b .widevine-other-locations -%patch -P9 -p1 -b .widevine-no-download %patch -P11 -p1 -b .py3 %patch -P20 -p1 -b .disable-font-test @@ -963,16 +945,6 @@ udev. %patch -P122 -p1 -b .gcc13 -# 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 -%endif - %if 0%{?rhel} >= 8 %patch -P300 -p1 -b .disblegnomekeyring %endif @@ -1040,7 +1012,7 @@ export LANG=en_US.UTF-8 %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' +FLAGS+=' -Wno-unused-const-variable -Wno-unneeded-internal-declaration -Wno-unknown-attributes' %endif %if %{system_build_flags} @@ -1258,7 +1230,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 @@ -1655,6 +1627,9 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/chromedriver %changelog +* Wed May 03 2023 Than Ngo - 113.0.5672.63-1 +- update to 113.0.5672.63 + * Sun Apr 23 2023 Than Ngo - 112.0.5615.165-2 - make --use-gl=egl default for x11/wayland - enable WebUIDarkMode diff --git a/sources b/sources index 2425ca7..d343ddb 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.165-clean.tar.xz) = 68f8f4f0e8add04e608c1d285351b38de0199ac5635b29dcce653b30435e68431f92ea7b381d6fe6cb4ffd5b1910e66ed6f82aab62a8fab952cb969a40f7456a +SHA512 (chromium-113.0.5672.63-clean.tar.xz) = f172496e8569864db26872a4762564f094c3ca726f340d69c9dfaca6c260b0a4bbb37ad711f6ab6b9efd9ee58510b1a2a130f829183ae6a3bd711e7d1478954b